作业帮 > 数学 > 作业

matlab高手进!方程复数解!

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:数学作业 时间:2024/07/02 22:26:02
matlab高手进!方程复数解!
方程代码如下:
syms y;
u=2.65e+10;
c1b=5.057e+10;
cv=2596.15;
cs=3128.89;
us01=10;
us12=20;
h=0.000000001;
x=5;
f=tan(x*i*sqrt(1-(y/cv)^2))-(c1b*i*sqrt(1-(y/cv)^2)*(u*sqrt(1-(y/cs)^2)+(x/h)*us12-(x/h)*us01))/((u*(x/h)*sqrt(1-(y/cs)^2)+((x/h)^2)*us12)*us01+c1b^2*i*(1-(y/cv)^2));
只有y是未知数,i是虚数单位,求y在0到cv之间的复数解
上式还有一种没有虚数的表达,如下:
f=tan(x*sqrt((y/cv)^2-1))-(c1b*sqrt((y/cv)^2-1)*(u*sqrt(1-(y/cs)^2)+(x/h)*us12-(x/h)*us01))/((u*(x/h)*sqrt(1-(y/cs)^2)+((x/h)^2)*us12)*us01+c1b^2*((y/cv)^2-1));
两个方程都是一样的,只不过一个含i,一个不含.
求y在0到cv之间的虚数解,附上代码,比较急,
不要给我说用solve,我用过是不行的!
matlab高手进!方程复数解!
虚数解用单纯的fsolve来解是不行的,误差过大,导致不稳定性太强,建议用二分法来迭代,这样无论是实数解还是虚数解都可以求出来