使用Euler方法在MATLAB中绘图

时间:2019-11-25 06:12:13

标签: matlab function differential-equations eulers-number

我在使用此代码时遇到了麻烦。我的教授要求我们在MATLAB中创建一个函数“ feuler.m”,以解决微分方程u′(t)=(2 + 2t)e ^ t和初始条件u(0)=给出的初值问题。区间[0,5]中为0,该区间使用(向前)欧拉方法绘制精确解以及近似解。

输入应为: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

我不确定这是否正确。

0 个答案:

没有答案