matlab求解多元函数仅保留实数解 | 您所在的位置:网站首页 › matlab中fsolve函数怎么求解方程组 › matlab求解多元函数仅保留实数解 |
matlab求解这样一个二元方程组,如果不加限制条件的话,求出来会有三个解: clc; clear all; syms y x z=3; x1=0.4; y1=1; eq1=-x1+(x/sqrt(x^2+y^2))*(sqrt(x^2+y^2+z^2)/(tand(acosd(sqrt((x^2+y^2)/(x^2+y^2+z^2)))))); eq2=-y1+(y/sqrt(x^2+y^2))*(sqrt(x^2+y^2+z^2)/(tand(acosd(sqrt((x^2+y^2)/(x^2+y^2+z^2)))))); [x,y]=solve(eq1,eq2,x,y); x=double(x) y=double(y)如下所示,其中前两个都是伪解: x = 0.0000 + 0.0000i 0.0000 + 1.1768i 0.3787 + 0.0000i y = 0.0000 + 0.0000i 0.0000 + 2.9419i 0.9468 + 0.0000i如果只想要第三个解的第一项,就是实数解,可以约束solve [x,y]=solve(eq1,eq2,x,y,"real",true);这样求出来的就是只有一个解了。 x =0.3787 y =0.9468 |
CopyRight 2018-2019 实验室设备网 版权所有 |