newton.m

来自「可用的用matlab求解非线性微分方程组的牛顿迭代」· M 代码 · 共 16 行

M
16
字号
function x=newton(f,df,x0,e,N)
% Newton法解方程f(x)=0根的通用程序
% 格式x=newton(f,df,x0,e,N) f表示f(x),df表示f(x)的导函数,x0表示迭代初值,e为容许误差,N为迭代次数的上限
x=0;
x=x0; %k=0;
k=0;
disp('迭代结果:')
for k=1:N
    x0=x;
    x=x0-feval(f,x0)/feval(df,x0);
    k=k+1;
    disp(x)
    if abs(x-x0)<e||abs(feval(f,x0))<e break;end
end
if k==N error('已超过迭代上限'); end
disp('迭代次数'),disp(k)

⌨️ 快捷键说明

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