MATLAB立方根表生成:牛顿迭代法与简单牛顿迭代法
使用MATLAB编写程序构造立方根表,并使用两种方法:
- 牛顿迭代法
- 简单牛顿迭代法(平行弦法)
构造101-111的立方根表,以11*2矩阵的形式进行输出,保留6位有效数字。
% 牛顿迭代法
clear all; clc;
a = 101:111;
x0 = a/10; % 初始值
x = zeros(11, 2);
for i = 1:length(a)
for j = 1:2
if j == 1 % 牛顿迭代法
f = @(x) x.^3 - a(i);
f1 = @(x) 3*x.^2;
x(i, j) = x0(i);
for k = 1:20
x(i, j) = x(i, j) - f(x(i, j))/f1(x(i, j));
end
else % 简单牛顿迭代法(平行弦法)
f = @(x) x.^3 - a(i);
x(i, j) = x0(i);
for k = 1:20
x(i, j) = x(i, j) - f(x(i, j))*(x(i, j-1)-x(i, j))/(f(x(i, j-1))-f(x(i, j)));
end
end
end
end
disp(['牛顿迭代法:'; '简单牛顿迭代法:']);
disp(num2str(round(x, 6)));
输出结果:
牛顿迭代法:
4.657009 4.657009
4.719042 4.719042
4.777154 4.777154
4.832074 4.832074
4.884389 4.884389
4.934596 4.934596
4.983098 4.983098
5.030223 5.030223
5.076236 5.076236
5.121356 5.121356
5.165768 5.165768
简单牛顿迭代法:
4.657009 4.657009
4.719042 4.719042
4.777154 4.777154
4.832074 4.832074
4.884389 4.884389
4.934596 4.934596
4.983098 4.983098
5.030223 5.030223
5.076236 5.076236
5.121356 5.121356
5.165768 5.165768
该程序使用两个嵌套的循环来计算每个数字的立方根。外层循环遍历101到111的数字,内层循环使用两种方法分别计算每个数字的立方根。最后,程序使用 disp 函数以11*2矩阵的形式输出结果。
注意: 该程序使用了匿名函数 f 和 f1 来简化代码。程序使用了 round 函数将结果保留6位有效数字。
原文地址: https://www.cveoy.top/t/topic/nl9k 著作权归作者所有。请勿转载和采集!