newton-raphson please help
2 views (last 30 days)
Show older comments
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 Comments
Answers (3)
Amit
on 18 Jan 2014
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 Comments
Amit
on 18 Jan 2014
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
on 18 Jan 2014
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 Comment
lola lola
on 8 Apr 2017
if to the question: diffresensial (f(x+h)-f(h))/h
if you can help to formula?
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!