niudunfa.m

来自「牛顿迭代法」· M 代码 · 共 23 行

M
23
字号
function [x,k]=niudunfa(f1,f2,x0,ep)
% 求解非线性方程的牛顿法,其中
%   f1(x) --- 需要求根的函数。
%   f2(x) --- f1(x)的导数。
%   x0 --- 初始点。
%   ep --- 精度,当|(x(k)-x(k-1)|<ep时,终止计算。省缺为1e-5
%   k --- 迭代次数。
format long
if nargin <4  ep=1e-5;    end
k=1;
y0=feval(f1,x0);
yd0=feval(f2,x0);
x(k)=x0-y0/yd0;
y(k)=feval(f1,x(k));
yd(k)=feval(f2,x(k));
k=k+1;
x(k)=x(k-1)-y(k-1)/yd(k-1);
while abs(x(k)-x(k-1))>ep
    y(k)=feval(f1,x(k));
    yd(k)=feval(f2,x(k));
    x(k+1)=x(k)-y(k)/yd(k);
    k=k+1;
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?