该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit)
%%
%牛顿迭代法(切线法)求解方程f_name = 0根的MATLAB实现
% f_name为迭代函数
% x_start为开始迭代的初始坐标
% tolerance为函数迭代的精度要求
% n_limit为函数的最大迭代次数
%%
% x_reality为最终迭代结果
% n_reality为最后的迭代次数
%%
format long; % 计算结果保留到小数点后14位
fprintf('牛顿迭代法求方程: %s = 0 的近似根\n',f_name);
del_x = 0.0000001; % 用于求函数导数值的极小量
n_reality = 0;
x_reality = x_start;
x_start = x_reality + 1000; % 保证迭代能开始
%%
while 1
if(abs(x_reality - x_start) <= tolerance) % 如果满足精度要求,输出结果,跳出while循环
fprintf('在精度不超过%.14f的条件下,方程:%s = 0 的根为 %.14f\n迭代次数为:%d\n',...
tolerance,f_name,x_reality,n_reality);
break;
elseif(n_reality > n_limit) % 如果迭代次数超过限制,输