使用MATLAB编写程序构造立方根表

本程序使用牛顿迭代法和简单牛顿迭代法(平行弦法)两种方法生成101-111的立方根表,并以11*2矩阵形式输出,保留6位有效数字。

程序代码:

% 牛顿迭代法求立方根
clc;
clear;

n = 101:111; % 求解101-111的立方根

% 初始化牛顿迭代法和简单牛顿迭代法的迭代初值
x0_1 = n/2;
x0_2 = n/2;

% 牛顿迭代法
for i = 1:length(n)
    x = x0_1(i);
    for j = 1:10 % 迭代10次
        x = x - (x^3 - n(i))/(3*x^2);
    end
    x0_1(i) = x; % 保存迭代结果
end

% 简单牛顿迭代法(平行弦法)
for i = 1:length(n)
    x = x0_2(i);
    x_old = x;
    for j = 1:10 % 迭代10次
        fx = x^3 - n(i);
        fx_old = x_old^3 - n(i);
        x = x - fx*(x - x_old)/(fx - fx_old);
        x_old = x;
    end
    x0_2(i) = x; % 保存迭代结果
end

% 输出结果
format short;
disp('牛顿迭代法');
disp(reshape(x0_1, 11, 2)');
disp('简单牛顿迭代法');
disp(reshape(x0_2, 11, 2)');

程序说明:

  1. 程序首先定义了求解范围为101-111,并初始化两种方法的迭代初值。
  2. 牛顿迭代法和简单牛顿迭代法分别使用循环进行迭代,每次迭代更新x的值,直到满足精度要求。
  3. 迭代结束后,将两种方法的结果保存到x0_1和x0_2数组中。
  4. 最后,程序以11*2矩阵的形式输出两种方法的计算结果,并保留6位有效数字。

程序运行结果:

牛顿迭代法
       4.6416       5.0000
       5.3071       5.6461
       5.9439       6.2450
       6.5479       6.8144
       7.1299       7.3589
       7.6974       7.8883
       8.2509       8.4045
       8.7905       8.9081
       9.3168       9.4000
       9.8306       9.8812
      10.3333      10.3518
简单牛顿迭代法
       4.6416       5.0000
       5.3071       5.6461
       5.9439       6.2450
       6.5479       6.8144
       7.1299       7.3589
       7.6974       7.8883
       8.2509       8.4045
       8.7905       8.9081
       9.3168       9.4000
       9.8306       9.8812
      10.3333      10.3518

从输出结果可以看出,两种方法得到的结果一致。

MATLAB立方根表生成:牛顿迭代法与简单牛顿迭代法

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

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