How to solve this equation Numerically [VPASOLVE]
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
Star Strider
2020-10-1
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
.
采纳的回答
Alan Stevens
2020-10-1
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
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Equation Solving 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!