how to get the gradient of fucntion from vectors to scalars by matlab?

1 visualización (últimos 30 días)
DARAN XU
DARAN XU el 23 de Sept. de 2018
Respondida: Arun Mathamkode el 26 de Sept. de 2018
here is the question: f:R^600 -> R f(x)=(Ax-b)^2 where A is a 400*600 matrix and b is 400*1 and both of them are given. how can I get the gradieint(f) at some given x0 by matlab ?
m=400
n=600
A=randn(m,n)
b=randn(m,1)
syms x
f= 0.5*norm(A*x-b)^2
gradient(f,x)
however it does not work because it seems it regard x as scalar, not a vector.

Respuestas (1)

Arun Mathamkode
Arun Mathamkode el 26 de Sept. de 2018
I assume you are referring to the gradient of L2 norm squared. You can directly apply the closed form expression of the gradient. The gradient of f at some given x0 will be A'*A*x0-A'*b.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by