ef_euler.m
来自「matlab科学计算继续上传」· M 代码 · 共 23 行
M
23 行
function [u,x,t] = EF_Euler(A,xf,T,it0,bx0,bxf,M,N)
%解方程 A u_xx = u_t , 0 <= x <= xf, 0 <= t <= T
%初值: u(x,0) = it0(x)
% 边界条件: u(0,t) = bx0(t), u(xf,t) = bxf(t)
% M : x 轴的等分段数
% N : t 轴的等分段数
dx = xf/M; x = [0:M]'*dx;
dt = T/N; t = [0:N]*dt;
for i = 1:M + 1
u(i,1) = it0(x(i));
end
for n = 1:N + 1
u([1 M + 1],n) = [bx0(t(n)); bxf(t(n))];
end
r = A*dt/dx/dx, r1 = 1 - 2*r;
if(r>0.5)
disp('r>0.5,unstability');
end
for k = 1:N
for i = 2:M
u(i,k+1) = r*(u(i + 1,k) + u(i-1,k)) + r1*u(i,k); %(9.2.3)
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?