2744557306 发表于 2023-12-31 17:55

二阶和四阶的泰勒展开法(Taylor's method)来数值求解常微分方程初值问题

这段 MATLAB 代码实现了使用二阶和四阶的泰勒展开法(Taylor's method)来数值求解常微分方程初值问题,并将结果与精确解进行比较。以下是代码的主要解释:
function y = Taylor(a, b, N, af)
    h = (b - a) / N;
    x(1) = a;
    y2(1) = af;
    y4(1) = af;
    jqj(1) = af;

    for i = 2:N
        % 二阶Taylor法
        y2(i) = y2(i-1) + h * ((1 - h/2) * (x(i-1) - y2(i-1)) + 1);

        % 四阶Taylor法
        y4(i) = y4(i-1) + h * ((1 - h/2 + h^2/6 - h^3/24) * (x(i-1) - y4(i-1)) + 1);

        x(i) = a + (i-1) * h;
        jqj(i) = x(i) + exp(-x(i));
    end

    % 将结果输出为矩阵形式
    result = ;

    % 绘制曲线
    plot(x, y2, 'r', x, y4, 'b', x, jqj, 'g');
    legend('Taylor2法', 'Taylor4法', '精确解');
end

该函数的输入参数包括求解区间 、步数 N 以及初始条件 af。函数使用二阶和四阶的泰勒展开法来逐步求解微分方程。最后,结果以矩阵形式输出,并绘制了二阶Taylor法、四阶Taylor法和精确解的曲线。
你可以调用这个函数,例如 Taylor(0, 1, 100, 1),其中参数表示解在区间 上,步数为 100,初始条件为 1。


页: [1]
查看完整版本: 二阶和四阶的泰勒展开法(Taylor's method)来数值求解常微分方程初值问题