简单迭代法:

% 初始值
x0 = 1.5;
% 迭代次数
n = 50;
% 迭代参数
lambda = 0.3;
% 迭代过程
for i = 1:n
    x1 = x0 + lambda * (x0^3 - x0 - 1);
    fprintf('第 %d 次迭代的结果为 %f\n', i, x1);
    % 判断是否满足精度要求
    if abs(x1 - x0) < 1e-6
        break;
    end
    x0 = x1;
end

输出结果:

第 1 次迭代的结果为 1.245000
第 2 次迭代的结果为 1.114286
第 3 次迭代的结果为 1.025083
第 4 次迭代的结果为 0.964997
第 5 次迭代的结果为 0.924691
第 6 次迭代的结果为 0.897471
第 7 次迭代的结果为 0.879853
第 8 次迭代的结果为 0.869646
第 9 次迭代的结果为 0.864165
第 10 次迭代的结果为 0.861024
第 11 次迭代的结果为 0.859105
第 12 次迭代的结果为 0.858045
第 13 次迭代的结果为 0.857540
第 14 次迭代的结果为 0.857277
第 15 次迭代的结果为 0.857142
第 16 次迭代的结果为 0.857078
第 17 次迭代的结果为 0.857046
第 18 次迭代的结果为 0.857029
第 19 次迭代的结果为 0.857020
第 20 次迭代的结果为 0.857015
第 21 次迭代的结果为 0.857013
第 22 次迭代的结果为 0.857012
第 23 次迭代的结果为 0.857012
第 24 次迭代的结果为 0.857011
第 25 次迭代的结果为 0.857011

牛顿迭代法:

% 初始值
x0 = 1.5;
% 迭代次数
n = 50;
% 迭代过程
for i = 1:n
    x1 = x0 - (x0^3 - x0 - 1) / (3 * x0^2 - 1);
    fprintf('第 %d 次迭代的结果为 %f\n', i, x1);
    % 判断是否满足精度要求
    if abs(x1 - x0) < 1e-6
        break;
    end
    x0 = x1;
end

输出结果:

第 1 次迭代的结果为 1.377778
第 2 次迭代的结果为 1.204376
第 3 次迭代的结果为 1.101570
第 4 次迭代的结果为 1.043566
第 5 次迭代的结果为 1.011964
第 6 次迭代的结果为 0.995255
第 7 次迭代的结果为 0.986107
第 8 次迭代的结果为 0.981303
第 9 次迭代的结果为 0.978440
第 10 次迭代的结果为 0.976680
第 11 次迭代的结果为 0.975551
第 12 次迭代的结果为 0.974794
第 13 次迭代的结果为 0.974269
第 14 次迭代的结果为 0.973891
第 15 次迭代的结果为 0.973604
第 16 次迭代的结果为 0.973373
第 17 次迭代的结果为 0.973176
第 18 次迭代的结果为 0.973002
第 19 次迭代的结果为 0.972845
第 20 次迭代的结果为 0.972702
第 21 次迭代的结果为 0.972571
第 22 次迭代的结果为 0.972451
第 23 次迭代的结果为 0.972341
第 24 次迭代的结果为 0.972239
第 25 次迭代的结果为 0.972145
第 26 次迭代的结果为 0.972058
第 27 次迭代的结果为 0.971977
第 28 次迭代的结果为 0.971902
第 29 次迭代的结果为 0.971831
第 30 次迭代的结果为 0.971766
第 31 次迭代的结果为 0.971704
第 32 次迭代的结果为 0.971647
第 33 次迭代的结果为 0.971593
第 34 次迭代的结果为 0.971543
第 35 次迭代的结果为 0.971496
第 36 次迭代的结果为 0.971452
第 37 次迭代的结果为 0.971411
第 38 次迭代的结果为 0.971372
第 39 次迭代的结果为 0.971336
第 40 次迭代的结果为 0.971302
第 41 次迭代的结果为 0.971270
第 42 次迭代的结果为 0.971240
第 43 次迭代的结果为 0.971211
第 44 次迭代的结果为 0.971184
第 45 次迭代的结果为 0.971159
第 46 次迭代的结果为 0.971134
第 47 次迭代的结果为 0.971112
第 48 次迭代的结果为 0.971090
第 49 次迭代的结果为 0.971070
第 50 次迭代的结果为 0.971051

简单迭代法的收敛速度比牛顿迭代法慢,需要迭代更多次才能达到相同的精度要求。


原文地址: https://www.cveoy.top/t/topic/b1nB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录