You are doing things in the wrong order.
k,e,m,w are not unknowns. They are knowns. So why have you set them up as symbolic?
Next, subtract k from the right hand side. Don't set the two equal. This lets you plot the thing. ALWAYS PLOT EVERYTHING! Do that before you just throw it into a solver.
syms s
k=1; e=0.0006; m=2000; w=2*pi*10^6;
eqn = (w*sqrt(e*m/2)*sqrt(sqrt(1+(s/(w*e))^2)-1)) - k;
fplot(eqn,[-.1,.1])
yline(0);
grid on
I've plotted it over a fairly small domain. It does cross the line at y==0.
ssol = solve(eqn,s)
ssol =
-(1288490188800*pi*3^(1/2)*18206206649565666255441706068998^(1/2))/27309309974347922922410255680009
(1288490188800*pi*3^(1/2)*18206206649565666255441706068998^(1/2))/27309309974347922922410255680009
vpa(ssol)
ans =
-0.0010954451150103438340309550004199
0.0010954451150103438340309550004199
Yes, you could have set everything up as symbolic, then substitute the values of k,e,m,w in at the end.
syms k w m e s
eqn = (w*sqrt(e*m/2)*sqrt(sqrt(1+(s/(w*e))^2)-1)) - k
eqn =
w*((s^2/(e^2*w^2) + 1)^(1/2) - 1)^(1/2)*((e*m)/2)^(1/2) - k
ssol = solve(eqn,s)
ssol =
-(2*k*(k^2 + e*m*w^2)^(1/2))/(m*w)
(2*k*(k^2 + e*m*w^2)^(1/2))/(m*w)
So then read the help for subs.
help subs
Best Answer