24小时热门版块排行榜    

查看: 703  |  回复: 0

小豌豆mu

新虫 (初入文坛)

[求助] 一个解函数的小问题,solve函数的应用,小白求救

编的程序如下所示,
clear all;
close all;
syms he x y z p m E Ex Ex2 ;%p-半径,
for n=1:4;
    he=((x-p*cos(2*pi*n/4))^2+(y-p*sin(2*pi*n/4))^2+z^2)^(-(m+2)/2);
end
E=(z^m)*he;
Ex=diff(E,'x') ;
Ex2=diff(E,'x',2);
disp(Ex);
disp(Ex2);
F=Ex2;
H=subs(F,{x,y},[0,0]);



S=solve('subs(F,{x,y},[0,0])=0','p');

disp (S);


如果直接输入S=solve('subs(F,{x,y},[0,0])=0','p');或者S=solve('H=0','p');就会提示我输入的不是有效的方程式。。错误显示如下:

??? Error using ==> solve>getEqns at 182
' subs(F,{x,y},[0,0])=0 ' is not a valid expression or equation.

Error in ==> solve at 67
[eqns,vars] = getEqns(varargin{:});

但是如果把前面算出来的H,直接复制,然后S=solve('表达式=0',‘p’),就可以解出我要的表达式,程序如下:

S=solve('(4*p^2*z^m*(m/2 + 1)*(m/2 + 2))/((411376139330301510538742295639362304861256537891262433499875377*p^2)/411376139330301510538742295639337626245683966408394965837152256 + z^2)^(m/2 + 3) - (2*z^m*(m/2 + 1))/((411376139330301510538742295639362304861256537891262433499875377*p^2)/411376139330301510538742295639337626245683966408394965837152256 + z^2)^(m/2 + 2)=0','p');

disp (S);


结果如下:
20282409603651670423947251286016*z*(1/(411376139330301510538742295639337626245683966408394965837152256*m + 1234128417990904531616226886917988200121479327742317429848733647))^(1/2)
-20282409603651670423947251286016*z*(1/(411376139330301510538742295639337626245683966408394965837152256*m + 1234128417990904531616226886917988200121479327742317429848733647))^(1/2)


但是这样,每次都得复制弄一下,好麻烦,,大神求教,怎么能把那个表达式给整合进去,直接让它出结果。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小豌豆mu 的主题更新
信息提示
请填处理意见