抛物线显示差分格式matlab,与u=e^(-t)sinx比较,谢谢啊,我只给的起那么多分了,帮帮忙吧。

2025-03-25 10:31:57
推荐回答(1个)
回答(1):

显示格式的效果比较差,而且对时间步长有限制,不然解就比较差了。下面是matlab的代码,可以参考,其实主要部分是离散格式,掌握好网格划分与差分格式,其他的都是编程问题了。
%不知道你想比较什么,直接运行出图吧
N = 10;%建议取值10与30进行对比,取10时网格比较粗糙但效果可以,取30时结果发散。
%希望不要追问隐式格式的,那个又是另一种了。
T = 1;
X = pi;
dt = T/(N-1);
dx = X/(N-1);
t = 0:dt:T;
x = 0:dx:X;
co = dt/dx/dx;
u = zeros(N);
u(1,:) = sin(x);
u(:,1) = 0;
u(:,N) = 0;
for i = 2:N
for j = 2:N-1
u(i,j) = co*(u(i-1,j-1)+u(i-1,j+1)-2*u(i-1,j))+u(i-1,j);
end
end
v = zeros(N);
for i = 1:N
for j = 1:N
v(i,j) = exp(-t(i))*sin(x(j));
end
end
figure();
surf(x,t,u);
figure();
surf(x,t,v);