minzhang1999 发表于 2010-4-17 16:38

用solve可否求解含贝塞尔函数的方程

程序如下:
symsx y v a b s D E h
J0=besselj(0,x); Y0=bessely(0,x); %第一、二类贝塞尔函数
I0=besseli(0,x); K0=besselk(0,x); %第一、二类修正贝塞尔函数
J1=besselj(1,y); Y1=bessely(1,y);
I1=besseli(1,y); K1=besselk(1,y);
x=0.02*s;y=0.1*s;
%D=E*h^3/(12*(1-v^2));
A=[J0 I0 Y0 K0;
   -J1 I1 -Y1 -K1;
   J0-(1-v)*J1/y -(I0-(1-v)*I1/y) Y0-(1-v)*Y1/y -(K0+(1-v)*K1/y);
   -y*J1 -y*I1 -y*Y1 y*K1];
Q=det(A);
a=0.02;b=0.1;h=0.002;v=0.3;E=110e+9;p=8500;
EQ=subs(Q);
s=solve(EQ,'s')

运行后出现:
Warning: Warning, solutions may have been lost

s =

                                                                        0
-.28520623831532364547345649892785e-37-14.117914639343273102748346261382*i
                                       -14.117914639343273102748346261382
结果不对呀!是不是不能用solve解?
请高手指点指点!

ChaChing 发表于 2010-4-17 23:10

回复 楼主 minzhang1999 的帖子

个人水平专业有限, 数学方面忘干净了
但瞄了下, 总直觉直接使用数值计算即可!不行吗?

minzhang1999 发表于 2010-4-18 10:02

我要的结果应该是正的,但计算出的是负的,很困惑。

ChaChing 发表于 2010-4-18 11:44

其实昨晚我是有试跑过, 但没有Warning而且仅s=0
版本是2009a

minzhang1999 发表于 2010-4-21 14:15

我用的版本是2007a,问题还是没解决!
页: [1]
查看完整版本: 用solve可否求解含贝塞尔函数的方程