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)*sqr
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/14 15:09:51
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)*sqr
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高手进!方程复数解!方程代码如下: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)*sqr
虚数解用单纯的fsolve来解是不行的,误差过大,导致不稳定性太强,建议用二分法来迭代,这样无论是实数解还是虚数解都可以求出来
u=2.65e+10;
c1b=5.057e+10;
cv=2596.15;
cs=3128.89;
us01=10;
us12=20;
h=0.000000001;
x=5;
f=@(x,y) abs(tan(x*sqrt((y/cv)^2-1))-(c1b*sqrt((y/cv)^2-1)*(u*sqrt(1-(y/cs)^2)+...
全部展开
u=2.65e+10;
c1b=5.057e+10;
cv=2596.15;
cs=3128.89;
us01=10;
us12=20;
h=0.000000001;
x=5;
f=@(x,y) abs(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)));
[s v]=fminbnd(@(cp) f(x,cp),0,2596)
s =
389.4398
v =
1.1450e-009
原来函数如果是返回复数
那么正真为0的结果是实部为0,虚部也为0
更简单的是结果的模为0,也就是abs(f)=0
那么在区间中找到这个模的绝度值最小的位置,就是方程的解
这里的结果是
cp取值 389.4398
这时候f的模的值是1.1450e-009,很接近0,在误差范围内,这个可能是函数的解
收起