Compute first partial derivatives for a recursive function.

6 views (last 30 days)
I would like to ask if there is a way to compute the first derivatives of a recursive function.
For example, let say that we have a function f_{i} = w + a * f_{i-1} and we want to compute the first partial derivatives of a function f_{i} with respect to the variables w and a.
It is a simple example and it is cumputed easily. But I would like to know if there is a method when I have a more complicated example.
Thank you in advance.

Answers (1)

Roger Stafford
Roger Stafford on 1 Jan 2014
I don't see any particular difficulty here. By taking the derivatives of each f_(i) with respect to a or w you obtain another recursive formula. In your particular example you get
df_(i)/da = f_(i-1)+a*df_(i-1)/da
and
df_(i)/dw = 1 + a*df_(i-1)/dw
Each of these can be evaluated by a recursive procedure, (preferably using ordinary for-loops.) Presumably the initial values of df_(1)/da and df_(1)/dw are regarded as zero. If not, you will need to know what they are.
  2 Comments
Fio
Fio on 1 Jan 2014
Thanks for your quick response. As I have said this is a simple example and it is computed easily. Let say than f_i = W + A x_i + B f_i-1, where f is a vector kx1, A matrix kxk and B matrix kxk. And you want the first partial derivatives of each parameter. I have found the form of partial derivatives analytically and I have also write a program. What I want to know is if there is a way to do it with a mfile of matlab. I have found that using this http://www.mathworks.com/help/symbolic/jacobian.html you can compute the Jacobian matrix of a vector f when f has not a recursive form. I wondered if there is something similar to this.

Sign in to comment.

Categories

Find more on Creating and Concatenating Matrices 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!