How to solve this equation Numerically [VPASOLVE]

5 views (last 30 days)
Hi there,
When i try to numerically solve my equation i got the following error :
Error using mupadengine/feval_internal (line 172)
More equations than variables is only supported for polynomial systems.
I simplified the equation to give you an example, and here is the equation example (the matlab code):
syms Idn
%%data
Ism=200;
Wb=1500;
speedend=6000;
Vsm=100;
Ws=Wb:15:speedend;
Eq2=Idn==sqrt(Idn)+(((2.4*10.^(-5))*(Idn).^2-0.013*(Idn+3.3)*10^(-3)))*Ws/Vsm %%The equation
Idn=vpasolve(Eq2,Idn)
Can anyone help me to solve this kind of equation?
  1 Comment
Star Strider
Star Strider on 1 Oct 2020
Probably not.
When I ran this:
syms Idn
%%data
Ism=200;
Wb=1500;
speedend=6000;
Vsm=100;
Ws=Wb:15:speedend;
Eq2=Idn==sqrt(Idn)+(((2.4*10.^(-5))*(Idn).^2-0.013*(Idn+3.3)*10^(-3)))*Ws/Vsm %%The equation
Idns=solve(Eq2,Idn)
Idn = simplify(vpa(Idns), 'Steps',150)
the result was:
Idns =
Empty sym: 0-by-1
Idn =
Empty sym: 0-by-1
.

Sign in to comment.

Accepted Answer

Alan Stevens
Alan Stevens on 1 Oct 2020
You can solve it numerically using fzero.
Ism=200;
Wb=1500;
speedend=6000;
Ws=Wb:15:speedend;
Idn = zeros(size(Ws));
Idn0 = 1;
for i = 1:numel(Ws)
Idn(i) = fzero(@f,Idn0,[],Ws(i));
end
plot(Ws,Idn),grid
xlabel('Ws'),ylabel('Idn')
function F = f(Idn,Ws)
Vsm=100;
F = sqrt(Idn)+(((2.4*10.^(-5))*(Idn).^2-0.013*(Idn+3.3)*10^(-3)))*Ws/Vsm-Idn; %%The equation
end

More Answers (0)

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!