解一道题

在这里插入图片描述

格式的表达

在这里插入图片描述

在这里插入图片描述
代码示例:

%% 用三种方法求解公式
h = 0.01; t = 0:h:1;N = length(t);
y = zeros(1,N);y(1) = 1;
df = @(t,y)(-y+t+1);
%改进Euler法(迭代方法)
w = y(1);
for k = 1:N-1
    wk = w + h*df(t(k), w);
    z1 = wk;
    z2 = Inf;
    while abs(z1-z2)>eps
        z2 = z1;
        z1 = w + (h/2)*(df(t(k),w)+df(t(k+1),z1));
    end
    w = z1;
    y(k+1) = w;
end
impE = y(N)
%中点法
y = zeros(1,N);y(1) = 1;
k = 1;
while k<=N-1
    y_half = y(k)+(h/2)*df(t(k),y(k));
    y(k+1) = y(k)+df(t(k)+h/2,y_half)*h;
    k = k+1;
end
cenE = y(N)
%Heun
y = zeros(1,N);y(1) = 1;
k = 1;
while k<=N-1
    y(k+1) = y(k)+(h/4)*(df(t(k),y(k))+3*df(t(k)+2*h/3,y(k)+2*h/3*df(t(k),y(k))));
    k = k+1;
end
Heun = y(N)
%% 误差
f = @(t)(exp(-t)+t);
error1 = abs(f(1) - impE)
error2 = abs(f(1) - cenE)
error3 = abs(f(1) - Heun)

结果如下:

error1为改进欧拉法
error2为中点法
error3为Heun法

当h=0.1时:
在这里插入图片描述

当h=0.01时:
在这里插入图片描述
他们都是二阶精度格式,其中改进欧拉的效果会更好一些

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐