How to calculate derivative of function inside of another function
10 views (last 30 days)
Show older comments
I have been searching for how to calculate the symbolic derivative of a function to use with my Newton's Method function. Currently I have to hand calculate the derivatives and pass it into my Newton's Method Function, I save both the original function and derivative as separate functions.
My function code is:
% M- file :f5.m
% define function to evaluate real zero using Newton's method
function y = f5(x)
y = x^3-2*x+2;
(derivative is hand calculated and entered the same way)
My Newton's method code starts with:
function q = newton(f, fprime, x0, maxim, epsi, delta)
f,fprime are my defined functions
x0 is starting point
maxim,epsi,delta are my tolerances
from here my function works great but I want the code to work like this:
function q = newton(f, x0, maxim, epsi, delta)
fprime = diff(f,x) <-calculate derivative of f and save as fprime
so that fprime = 3x^2-2 and I can calculate fprime at a point xo by feval(f,x0)
Any help on how to do this would be appreciated greatly. Thanks!
0 Comments
Accepted Answer
Walter Roberson
on 3 Mar 2012
function q = newton(f, x0, maxim, epsi, delta)
syms x
fprime = diff(f(x),x) % calculate derivative of f and save as fprime
This is not going to work unless f(x) is a simple formula -- for example, f(x) must not have any "if" or "for" statements that depend upon x.
4 Comments
Walter Roberson
on 5 Mar 2012
Assign to a variable the potential values (which must not contain any variables for this solution to work out). double() the variable, and use logical indexing to select from that list the double precision value whose imag() is 0. The remaining entry indices can be used to index back to the symbolic forms of you want the analytical values as outputs.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!