首页 > 解决方案 > 如何在 MATLAB/OCTAVE 上实现和修改牛顿法?

问题描述

我正在尝试实现牛顿的方法。2 阶迭代方法。并对其进行调整以计算具有 4 个精确小数的 ecuation (x=1-e^(-2x) 的非空解。

我无法弄清楚输出的外观。我试图实现用初始近似值找到更好的零近似值的方法

function [x , res , xvec , resvec] = newton( f, df, x0, maxiter, tol )

function x(k) = newton( f, df, x0, maxiter, tol )
k(1:maxiter)
f = @x(k)
df = @(x(k))'
x(k)= x0-(f(x0)/df(x0))
x(k+1) = x(k) - (f(x(k))/df(x(k)))
end
while (iter < maxiter)
  while (abs(f(n)-(f(n-1)) > tol)
    x(1)= x0-(f(x0)/df(x0))
  elseif (iter > maxiter) 
    error('maximum amount of iterations exceeded')
  end
end
fprintf('step(k)      x(k)       |f(xk)|     |x(k+1)-x(k)|')
fprintf('------    -----------  ---------    -------------\n')
fprintf('%d %d %.4f %.4f\n', k, x(k), mod(f(xk)), mod(x(k+1)−x(k)) )

我希望用 qpproximation 向我展示 4 个十进制的结果

标签: matlab

解决方案


推荐阅读