Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Solution 61286

Submitted on 15 Mar 2012 by @bmtran

Correct

74Size
Leading solution size is 74.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
%%
assert(isempty(regexp(fileread('Rosenbrock_banana.m'),'assert.m')))

                    
2
Pass
 
%%
x = [0; 0];
assert(isequal(Rosenbrock_banana(x),1))

                    
3
Pass
 
%%
x = [1; 1];
assert(isequal(Rosenbrock_banana(x),0))

                    
4
Pass
 
%%
x = [1; -1];
assert(isequal(Rosenbrock_banana(x),400))

                    
5
Pass
 
%%
x = [-1; 0.5];
assert(isequal(Rosenbrock_banana(x),29))

                    
6
Pass
 
%%
x = [0; 0];
[~,grad]=Rosenbrock_banana(x);
assert(isequal(grad,[-2; 0]))

                    
7
Pass
 
%%
x = [0; 0];
[~,~,Hess]=Rosenbrock_banana(x);
assert(isequal(Hess,diag([2, 200])))

                    
8
Pass
 
%%
x = [1; 1];
[~,grad]=Rosenbrock_banana(x);
assert(isequal(grad,[0; 0]))

                    
9
Pass
 
%%
x = [1; 1];
[~,~,Hess]=Rosenbrock_banana(x);
assert(isequal(Hess,[802, -400; -400, 200]))

                    
10
Pass
 
%%
x = [-1.9; 2];
correct_value = 267.6200;
correct_grad = -1e3*[1.2294; 0.3220];
correct_Hess = [3534, 760; 760, 200];
[val,grad,Hess]=Rosenbrock_banana(x);
assert(isequal(str2num(num2str(val)),correct_value))
assert(isequal(str2num(num2str(grad)),correct_grad))
assert(all(max(abs(Hess-correct_Hess)<1e-8)))