[已答复] 关于\的使用问题,有报错但不知道问题

[复制链接]
Gibson 发表于 2017-4-17 16:46:21
function [u,v]=implicit(ul,ur,vl,vr,r,M,N,x,t,s)
h=x/N;
l=t/M;
A=-s*l;B=h^2+2*s*l;C=-s*l;
E=-(h*l)/2;D=h^2;
u=zeros(M+1,N+1);
v=zeros(M+1,N+1);
W=zeros(N+1,N+1);
Z=zeros(M+1,N+1);
Y=zeros(M+1,N+1);

for i=1:(N+1)/2;
    u(1,i)=ul;
    v(1,i)=vl;
end
for i=(N+1)/2+1:N+1;
    u(1,i)=ur;
    v(1,i)=vr;
end
for j=2:N+1
    for i=j
      W(i,j-1)=A;
      W(i,j)=B  ;
      W(i,j+1)= C;
    end
        W(1,1)=B;
      W(1,2)=C  ;
end
for i=2:M
     Q(1)=u(i-1,2)*v(i-1,2);
      Z(i-1,1)=Q(1);
       P(1)=(v(i-1,1)-r*u(i-1,1)^r)*(v(i-1,2));
         Y(i-1,1)=P(1);
         Q(N+1)=-u(i-1,N-1)*v(i-1,N-1);
      Z(i-1,N+1)=Q(N+1);
       P(N+1)=-(v(i-1,N)-r*u(i-1,N)^r)*(v(i-1,N-1));
         Y(i-1,N+1)=P(N+1);
    for j=2:N
       Q(j)=u(i-1,j+1)*v(i-1,j+1)-u(i-1,j-1)*v(i-1,j-1);
      Z(i-1,j)=Q(j);
       P(j)=(v(i-1,j)-r*u(i-1,j)^r)*(v(i-1,j+1)-v(i-1,j-1));
         Y(i-1,j)=P(j);
    end

       u(i,:)=(D*u(i-1,:)+E*Z(i-1,:))/W;
        v(i,:)=(D*v(i-1,:)+E*Y(i-1,:))/W;
end
>> [u,v]=implicit(4,3,1.2,2,0.9,49,49,49,49,0.01);
错误使用  /
矩阵维度必须一致。

出错 implicit (line 45)
       u(i,:)=(D*u(i-1,:)+E*Z(i-1,:))/W;

拜托大神

9 条回复


diting14 发表于 2017-4-17 16:47:50
你这个矩阵的除法是不是不满足除的条件啊

Gibson 发表于 2017-4-17 16:48:41
diting14 发表于 2017-4-17 16:47
你这个矩阵的除法是不是不满足除的条件啊

OTZ能详细解释下吗

Gibson 发表于 2017-4-17 16:54:15
diting14 发表于 2017-4-17 16:47
你这个矩阵的除法是不是不满足除的条件啊

维数检查了一下,应该没什么问题

18833126693 发表于 2017-4-17 17:05:16
u(i,:)=(D*u(i-1,:)+E*Z(i-1,:))/W;
这一行上面,你添加两行:
size(D*u(i-1,:)+E*Z(i-1,:))
size(W)
看下矩阵的维度,报错说明就是你这俩矩阵除法有问题

diting14 发表于 2017-4-17 17:05:57
Gibson 发表于 2017-4-17 16:54
维数检查了一下,应该没什么问题

没问题就是MATLAB开小差去了呗

Gibson 发表于 2017-4-17 17:16:28
18833126693 发表于 2017-4-17 17:05
u(i,=(D*u(i-1,+E*Z(i-1,)/W;
这一行上面,你添加两行:
size(D*u(i-1,+E*Z(i-1,)

好我去试试看

Gibson 发表于 2017-4-17 17:16:58
diting14 发表于 2017-4-17 17:05
没问题就是MATLAB开小差去了呗

:L您说的我汗颜

Gibson 发表于 2017-4-17 17:31:13
18833126693 发表于 2017-4-17 17:05
u(i,=(D*u(i-1,+E*Z(i-1,)/W;
这一行上面,你添加两行:
size(D*u(i-1,+E*Z(i-1,)

解决了,谢谢

Gibson 发表于 2017-4-17 17:31:36
18833126693 发表于 2017-4-17 17:05
u(i,=(D*u(i-1,+E*Z(i-1,)/W;
这一行上面,你添加两行:
size(D*u(i-1,+E*Z(i-1,)

解决了谢谢:handshake
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表