我刚开始学习Matlab,如果有人能澄清我的困惑,我将不胜感激......
我正在尝试使用 Lax-Wendroff 方案求解非均匀传输方程,代码如下。matlab告诉我最后一行代码有错误(U(j+1,2:N)=(1/2).*sigma...),即1. Error using *; 2. 内矩阵尺寸必须一致。
我知道 sigma 和 U 的维度不兼容(作为矩阵),但我不知道(和经验)如何解决这个问题......公式没有问题,但我真的很难处理代码。
a = -10;
b = 10;
delta_x = (b-a)/N;
x = a:delta_x:b;
tfinal = 2;
delta_t = tfinal/M;
t = 0:delta_t:tfinal;
c = 3-2.* exp(-(1/4).*(x.^2)) ;
sigma = c.*(delta_t/delta_x);
U=zeros(M+1,N+1);
U(1,:)=f(x);
for j=1:M
U(j+1,2:N)=(1/2).*sigma.*(sigma-1).*U(j,3:N+1)-((sigma).^2-1).*U(j,2:N)+(1/2).*sigma.*(sigma+1)*U(j,1:N-1);
end
太感谢了!