Recursive method to get the differential not working.
1 view (last 30 days)
Show older comments
Im trying to make a recursive method to get the n:th-order differential equation.
what i have currently is 2 methods im my .m file first one being the simple 1st order differential.
function func = differential(f) % callculates the n:th-order differential
arguments
f function_handle
end
h = 10^(-5);
func = @(x)((f(x+h)-f(x))./h);
end
then im trying to use this in my recursive method
function output = differentialPower(f,n)
arguments
f function_handle
n
end
if(n==0)
output = f;
return;
else
f = differentialPower(differential(f),n-1);
output = f;
return;
end
end
to get the n:th differential
Problem i have is that my output will allways be either the original function (f)
or the first order differential of:
f = @(x)((f(x+h)-f(x))./h)
gooten from the differential method.
what i want to happen is that each time it gose deeper it will replace f(x) with ((f(x+h)-f(x))./h) and there for going deeper.
is this possible without using syms? or do i have to use the syms methods?
0 Comments
Accepted Answer
Uday Pradhan
on 17 Mar 2021
Hi Hampus,
You will need to use the output function handle to evaluate the nth derivative approximation:
f = @(x) x^5;
df3 = differentialPower(f,3);
%Find approximation of f'''(1)
>> df3(1)
ans =
60.174087934683492
This approximation will get highly inaccurate as you increase the order of the derivative. Instead, a neat way to calculate higher order derivatives is using the diff function.
More Answers (0)
See Also
Categories
Find more on Polynomials in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!