牛顿法
目标
求解方程的根
方程为
x
3
−
1
x^3-1
x3−1
代码
function [P,err,k,y,A] = newton(f,df,p0,delta,epsilon,max1)
%Input : f is the object function input as a string'f'
% df is the derivative of f input as a string 'df'
% p0 is the initial approximation to a zero of f
% delta is the tolerance for p0
% epsilon is the tolerance for the function values y
% max1 is the maximum number of iterations
%Output p0 is the Newton-Raphson approximation to the zero
% err is the error estimate for p0
% k is the number of iterations
% y is the function value f(p0)
P(1) = p0;
for k = 2:max1+1
P(k) = P(k-1)-feval(f,P(k-1))/feval(df,P(k-1));
err = abs(P(k)-P(k-1));
relerr = 2*err/(abs(P(k))+delta);
y = feval(f,P(k));
if (err<delta) || (relerr<delta) || (abs(y)<epsilon)
break
end
A = [err,k,y];
disp(A);disp(P)
end
过程
1.设置参数
原函数:f = x^3-1
导数:df = 3*x^2
初始点:x0 = 1.2
最终点允许误差:eps
函数值允许误差:eps
最大迭代次数:max1 = 1/eps
2.结果
以上分别为:迭代表
误差
迭代次数
函数值