## Solving a Bilinear Optimization Problem

on 9 Aug 2012

### Alan Weiss (view profile)

Hello, I would like to optimize to following expression:

Note: All are matrices.

I'd like to find:

How would you do that in MATLAB?

How would you use 'lsnonlin'?

What would be the analytical Jacobian?

Thank You.

Royi Avital

on 9 Aug 2012

Anyone?!?!

## Products

No products are associated with this question.

### Alan Weiss (view profile)

on 10 Aug 2012

I am not sure that I understand your notation, such as \|| . \||_F. But if you can write your objective function as a sum of squares, then you can use lsqnonlin. Otherwise, use fminunc.

You need to formulate your problem so there is a single vector or matrix of unknowns, x, that is what you want to vary. For example, if C^2 is M-by-N, and E^2 is N-by-K, then you could write

``` C2 = reshape(x(1:M*N),M,N);
E2 = reshape(x(M*N+1:end),N,K);```

and minimize over a vector x that has MN + NK components.

Because I do not understand your notation, I cannot tell you what the Jacobian might be. You can look here or here for some help on calculating Jacobians.

Good luck,

Alan Weiss

MATLAB mathematical toolbox documentation

Royi Avital

### Royi Avital (view profile)

on 11 Aug 2012

Hi, The A _F stands for the Frobenius norm. I could write it as a sum of squares yet 'lsnonlin' takes so much time to solve it and usually terminated prematurely.

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