24小时热门版块排行榜    

查看: 2429  |  回复: 1
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

mavisym

金虫 (小有名气)

[求助] 求助,MATLAB报错

我的公式明明除的是实数,matlab报错如下:
错误使用 mupadmex
Error in MuPAD command: Division by zero.
[_power]
  Evaluating: symobj::trysubs

出错 sym/subs>mupadsubs (line 139)
G = mupadmex('symobj::fullsubs',F.s,X2,Y2);

出错 sym/subs (line 124)
    G = mupadsubs(F,X,Y);

出错 Chebyshev (line 67)
         K1(alf,alf)=4*D*a*b.*(XGM(3,3).*PSI(1,1)+XGM(1,1).*PSI(3,3)+nju.*XGM(3,1).*PSI(1,3))+...


程序如下
clear
clc

a=2;b=1;h=0.1;lu=2.71;
nju=0.3;
D=20;

%SSSS
%
kx0=5e7;Kx0=0;kxa=5e7;Kxa=0;
ky0=5e7;Ky0=0;kyb=5e7;Kyb=0;
%}

N=5;M=5;
K1=zeros((M+1)*(N+1),(M+1)*(N+1));
M1=zeros((M+1)*(N+1),(M+1)*(N+1));
Q=zeros((M+1)*(N+1),1);
F=zeros((M+1)*(N+1),1);

for n=1:N
    for m=1:M
        syms z e;
       Tn=cos(n*acos(z));Tm=cos(m*acos(e));
       for tao=1:3
       for tao1=1:3
           if (tao==1&&tao1==1)
            X=Tn.*Tn;
            P=Tm.*Tm;
           elseif tao==1
             X=Tn.*diff(Tn,tao1-1)/a.^(tao1-1);
             P=Tm.*diff(Tm,tao1-1)/b.^(tao1-1);
               elseif tao1==1
                 X=diff(Tn,tao-1)/a.^(tao-1).*Tn;
                 P=diff(Tm,tao-1)/b.^(tao-1).*Tm;
                   else
             X=diff(Tn,tao-1)/a.^(tao-1).*diff(Tn,tao1-1)/a.^(tao1-1);
             P=diff(Tm,tao-1)/b.^(tao-1).*diff(Tm,tao1-1)/b.^(tao1-1);
            end
            XGM(tao,tao1)=double(int(X,z,-1,1));
            PSI(tao,tao1)=double(int(P,e,-1,1));
           
            
       end
       end
   
      alf=(M+1)*(N+1);
        Tn1=diff(Tn,'z');Tm1=diff(Tm,'e');

         K1(alf,alf)=4*D*a*b.*(XGM(3,3).*PSI(1,1)+XGM(1,1).*PSI(3,3)+nju.*XGM(3,1).*PSI(1,3))+...
           4*D*a*b.*(nju.*XGM(1,3).*PSI(3,1)+2*(1-nju).*XGM(2,2).*PSI(2,2))+...
           (kx0*b.*(eval(subs(Tn1,z,-1))).^2/2).*PSI(1,1)+2*Kx0*b.*(eval(subs(Tn1,z,-1))).^2/a^2;
%          (kxa*b.*(eval(subs(Tn1,z,1))).^2/2).*PSI(1,1)+2*Kxa*b.*(eval(subs(Tn1,z,1))).^2/a^2+...
%          (ky0*a.*(eval(subs(Tm1,z,-1))).^2/2).*XGM(1,1)+2*Ky0*a.*(eval(subs(Tm1,z,-1))).^2/b^2+...
%          (kyb*a.*(eval(subs(Tm1,z,1))).^2/2).*XGM(1,1)+2*Kyb*a.*(eval(subs(Tm1,z,1))).^2/b^2;
   
    M1(alf,alf)=lu*h*a*b.*XGM(1,1).*PSI(1,1)/4;
         
    end
end

我注释的三个公式本来是一个长的,分开找错误的,如果是个长的就报别的错
从 sym 转换为 double 时出现以下错误:
错误使用 mupadmex
Error in MuPAD command: DOUBLE cannot convert
the input expression into a double array.
If the input expression contains a symbolic
variable, use the VPA function instead.

出错 Chebyshev (line 67)
         K1(alf,alf)=4*D*a*b.*(XGM(3,3).*PSI(1,1)+XGM(1,1).*PSI(3,3)+nju.*XGM(3,1).*PSI(1,3))+...



求大神帮忙,实在不知道怎么搞
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gczhusainan

新虫 (小有名气)

我现在也遇到这个问题了,楼主咋解决的啊
2楼2017-03-31 10:10:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mavisym 的主题更新
信息提示
请填处理意见