%% 牛顿迭代法 clc; clear;

x0 = 101:111; % 待求解的数 x = zeros(1, length(x0)); % 初始化结果

for i = 1:length(x0) x(i) = x0(i); % 初始值 while abs(x(i)^3 - x0(i)) > 1e-6 % 当误差小于1e-6时停止迭代 x(i) = x(i) - (x(i)^3 - x0(i)) / (3 * x(i)^2); % 迭代公式 end end

% 输出结果,保留6位有效数字 fprintf('牛顿迭代法的结果: '); fprintf('%12s %12s ', 'x0', 'x'); fprintf('%12.6f %12.6f ', [x0; x]);

% 输出立方根表,以11*2矩阵的形式进行输出 fprintf(' 立方根表: '); fprintf('%12s %12s ', 'x0', 'x'); for i = 1:length(x0) fprintf('%12.6f %12.6f ', [x0(i), x(i)]); if mod(i, 11) == 0 fprintf(' '); end end

%% 简化牛顿迭代法 clc; clear;

x0 = 101:111; % 待求解的数 x = zeros(1, length(x0)); % 初始化结果

for i = 1:length(x0) x(i) = x0(i); % 初始值 while abs(x(i)^3 - x0(i)) > 1e-6 % 当误差小于1e-6时停止迭代 x(i) = (2 * x(i) + x0(i) / x(i)^2) / 3; % 迭代公式 end end

% 输出结果,保留6位有效数字 fprintf('简化牛顿迭代法的结果: '); fprintf('%12s %12s ', 'x0', 'x'); fprintf('%12.6f %12.6f ', [x0; x]);

% 输出立方根表,以11*2矩阵的形式进行输出 fprintf(' 立方根表: '); fprintf('%12s %12s ', 'x0', 'x'); for i = 1:length(x0) fprintf('%12.6f %12.6f ', [x0(i), x(i)]); if mod(i, 11) == 0 fprintf(' '); end end


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

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