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("誤差曲面")
發(fā)現(xiàn)是FOR循環(huán)內(nèi)的矩陣轉(zhuǎn)置處出現(xiàn)了問題,但是無法清晰定位具體發(fā)生了什么導(dǎo)致的問題,希望開發(fā)組能解決。