0

我在处理这段代码时遇到了一些问题。我的教授要求我们在 MATLAB 中创建一个函数“feuler.m”来解决由微分方程 u′(t) = (2+2t)e^t 和初始条件 u(0) = 0 在区间 [0, 5] 上使用(前向)欧拉方法绘制精确解和近似解。

输入应为:n,区间 [0,5] 应划分为的子区间数。

输出应该是精确解和数值解的图形,并打印真实解和数值解之间的最大误差值。

请注意,精确解由 u(t) = 2tet 给出。

到目前为止,我已经编写了代码:

function myeuler(N)
   t = linspace(0, 5, N+1)';
   ua = zeros(N+1,1);
   ue = 2*t.*exp(t);
   h = 5/N;
   A = zeros(N,N);
   A(2:N,1:N-1) = -eye(N-1);
   A = A + eye(N);
   b = h*(2+2*t(1:N)).*exp(t(1:N));
   b(1) = b(1) + ua(1);
   ua(2:N+1) = A\b;
   plot(t, ua, 'r', t, ue, 'g')
end

我不确定这是否正确。

4

0 回答 0