Help with Newton's method function?

This is the function I've been making to run Newton's method, but I can't get it to work. Any help with what I might be missing? Thanks!
function xn = newtonmethod(f,fd,x0,tol)
xn=x0;
err=abs(f(xn)-0);
i=0;
while err>tol
i=i+1;
xnew=xn-(f(xn)/fd(xn));
err=abs(f(xnew)-0);
end

回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 11 月 20 日

0 投票

I suspect your
err=abs(f(xnew)-0);
should be
err=abs(f(xnew)-f(xn));
unless you know that your f() has a "right" value of 0.

2 件のコメント

Lauren Hux
Lauren Hux 2016 年 11 月 20 日
It does. Do you see anything else wrong with the code?
Walter Roberson
Walter Roberson 2016 年 11 月 20 日
You do not update xn = xnew

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2016 年 11 月 20 日

コメント済み:

2016 年 11 月 20 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by