Compute first partial derivatives for a recursive function.

5 次查看(过去 30 天)
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.

回答(1 个)

Roger Stafford
Roger Stafford 2014-1-1
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 个评论
Fio
Fio 2014-1-1
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Entering Commands 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by