Borrar filtros
Borrar filtros

Calculate the gradient of a function

60 visualizaciones (últimos 30 días)
amine&&
amine&& el 13 de Sept. de 2016
Respondida: garrett batt el 26 de Ag. de 2021
Hello. I want to calculate the gradient of the function :
g={@(x)-x;@(x)x-1;@(y)-y;@(y)y-1};
with the following command :
gradient(g, [x, y]);
but I get the following error :
Undefined function or variable 'x'.
How I should proceed? Thanks.
  2 comentarios
John BG
John BG el 13 de Sept. de 2016
Editada: John BG el 13 de Sept. de 2016
perhaps you would like to consider proceeding by defining x?
amine&&
amine&& el 14 de Sept. de 2016
Thanks john, Even if i define the variable that gives me an error. Thanks.

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 13 de Sept. de 2016
You are confusing the numeric gradient function http://www.mathworks.com/help/matlab/ref/gradient.html with the symbolic gradient function, http://www.mathworks.com/help/symbolic/gradient.html
On the other hand, neither gradient() accepts a vector or cell array of function handles. Numeric gradient() accepts a numeric vector or array, and spacing distances for each of the dimensions. Symbolic gradient() accepts a scalar symbolic expression or symbolic function together with the variables to take the gradient over.
When you have a vector of functions to work with, you almost certainly want a jacobian rather than a gradient. Symbolic jacobian http://www.mathworks.com/help/symbolic/jacobian.html accepts a symbolic expression, symbolic function, or symbolic vector (but not a cell array of function handles.)
  3 comentarios
Walter Roberson
Walter Roberson el 14 de Sept. de 2016
You would have to have
syms x y
first.
amine&&
amine&& el 14 de Sept. de 2016
Editada: amine&& el 14 de Sept. de 2016
Ok Roberson. Thanks!

Iniciar sesión para comentar.

Más respuestas (1)

garrett batt
garrett batt el 26 de Ag. de 2021

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by