Compute Jacobian of a function using Automatic Differentiation
Afficher commentaires plus anciens
I have a vector valued function,
, and would like to compute the jacobian of f using automatic differentiation. To accomplish this, my original idea was to use the deep learning toolbox and the built in 'dlgradient' function. However 'dlgradient' seems to only work with scalar valued functions. Is there a way to use automatic differentiation in Matlab to compute the Jacobian of a vector valued function?
, and would like to compute the jacobian of f using automatic differentiation. To accomplish this, my original idea was to use the deep learning toolbox and the built in 'dlgradient' function. However 'dlgradient' seems to only work with scalar valued functions. Is there a way to use automatic differentiation in Matlab to compute the Jacobian of a vector valued function?Réponses (2)
Hi,
Your observation is correct. You cannot use autodiff from Deep Learning Toolbox to compute Jacobian of a Vector valued function. However, You can use the jacobian from the Symbolic Math Toolbox to calculate the jacobian matrix of a vector valued function.
syms x y z
jacobian([x*y*z,y^2,x + z],[x,y,z])
The above example computes the Jacobian Matrix of [x*y*z,y^2,x + z] with respect to [x,y,z].
1 commentaire
Nick
le 5 Mai 2023
I've found that jacobian from the Symblic Math Toolbox does not scale well to larger more complex functions in terms of copmutation time, espeically if I want to generate a function file for the function. I've started using CasADi instead because of this. Do you think there will be any functionality added that will make this possible in MATLAB any time soon?
Matt J
le 5 Mai 2023
0 votes
You can do so numerically using, for example, this:
Catégories
En savoir plus sur Symbolic Math Toolbox dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
