newton-raphson please help
2 ビュー (過去 30 日間)
古いコメントを表示
i want to find roots of f(x)=x(x-1)e^x by using newton raphson but instead of finding df/dx by using code , i want to use central numerical differentiation which is that f_diff(x)=(f(x+h)-f(x-h))/2*h; and h is any variable but smaller is better such as 10^-6 . and i want write each of them as a function file then call just newton-raphson formule and find root.
please help me
0 件のコメント
回答 (3 件)
Amit
2014 年 1 月 18 日
function ra = myfunc(x)
% x the input
F = x*(x-1)*(e^x);
and seperately,
functin dif = mydiff(x,h)
dif = (myfunc(x+h)-myfunc(x-h))/(2*h)
2 件のコメント
Amit
2014 年 1 月 18 日
What error you got?
One thing I see is, while using mydiff, you have just used mydiff(x), however it should be mydiff(x,h)
Mischa Kim
2014 年 1 月 18 日
Try:
function [x, fx] = my_NR(my_tol, h, x0)
x = x0;
while (abs(f(x)) > my_tol)
dx = f(x)/df(x, h);
x = x - dx;
end
fx = f(x);
end
function f_val = f(x)
f_val = x*(x - 1)*exp(x);
end
function df_val = df(x, h)
df_val = (f(x + h) - f(x - h))/(2*h);
end
1 件のコメント
lola lola
2017 年 4 月 8 日
if to the question: diffresensial (f(x+h)-f(h))/h
if you can help to formula?
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!