MATLAB: How to solve this equation Numerically [VPASOLVE]

equationnumerical equationsolvesymbolicsymsvpasolve

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?

Best Answer

  • 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