- h=0.01;
- r=0.5;
- tao=r*h;
- x=0:h:5;
- t=0:tao:10;
- length_t=length(t);
- length_x=length(x);
- U=zeros(length_t,length_x);
- length_in=length_x-1;
- A=diag((1-r)*ones(length_in,1))+r*diag(ones(length_in-1,1),-1);
- [X,T]=meshgrid(x,t);
- F=2*T.*sin(X)+T.^2.*cos(X);
- for i=2:length(t)
- U(i,2:end)=A*U(i-1,2:end)'+tao*F(i,2:end)';
- end
- U_acc=T.^2.*sin(X);
- figure(1)
- subplot(1,2,1)
- mesh(x,t,U)
- title("解曲面")
- subplot(1,2,2)
- mesh(x,t,U_acc-U)
- title("误差曲面")
发现是FOR循环内的矩阵转置处出现了问题,但是无法清晰定位具体发生了什么导致的问题,希望开发组能解决。