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,我用过是不行的!
方程代码如下:
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高手进!方程复数解!](/uploads/image/z/16842466-10-6.jpg?t=matlab%E9%AB%98%E6%89%8B%E8%BF%9B%21%E6%96%B9%E7%A8%8B%E5%A4%8D%E6%95%B0%E8%A7%A3%21)
虚数解用单纯的fsolve来解是不行的,误差过大,导致不稳定性太强,建议用二分法来迭代,这样无论是实数解还是虚数解都可以求出来