MATLAB Answers

How do I make my variables save from my function?

3 views (last 30 days)
I have written a function function [f, grad, gradTwo] = Rosen(x), which returns the Rosenbrock function value f(x) to f, its gradient vector ∇f(x) to grad, and its Hessian matrix ∇f(x) to gradTwo, at the given input point x and verify the function returns correct values.
I have written a function that does so, using x = [1, 1], but my values don't store.
function [f, grad, gradTwo] = Rosen(x)
g = @(x)100*(x(2) - x(1)^2)^2 + (1 - x(1))^2;
f = g(x);
grad = [-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1)); 200*(x(2)-x(1)^2)];
gradTwo = [800*x(1)+2, -400*x(1); -400*x(2), 200];
end
Then my output when I run this is:
ans =
0
I believe my professor wants it to look like this:
f =
0
grad =
0
0
gradTwo =
802 -400
-400 200
Is there a way to accomplish this? Any advice would be great, I'm not that great at MATLAB

  0 Comments

Sign in to comment.

Accepted Answer

Hiro Yoshino
Hiro Yoshino on 19 Feb 2020
You're doing well!
Try this:
x = [1 1];
[f, grad, gradTwo] = Rosen(x)
You should prepare the three variables that recieve the calculus!

  1 Comment

Sign in to comment.

More Answers (0)

Sign in to answer this question.


Translated by