# Bilinear Optimization Problem

How could I solve the following optimization problem using MATLAB or an other way?

Given ${E}^{1}, {A}^{21}, {A}^{22}, {C}^{1}, {A}^{12}$

$\underset{{C}^{2}, {E}^{2}}{min} {\left \| {C}^{2}{E}^{1} - {A}^{21} \right \|}_{F}^{2} + {\left \| {C}^{2}{E}^{2} - {A}^{22} \right \|}_{F}^{2} + {\left \| {C}^{1}{E}^{2} - {A}^{12} \right \|}_{F}^{2}$

I know the approximated linear solution, assuming ${A}^{22}$ is negligible is given by:

${C}^{2} = {A}^{21} {{E}^{1}}^{T} {\left( {E}^{1} {{E}^{1}}^{T} \right)}^{-1}, {E}^{2} = {\left( {\begin{bmatrix} {C}^{1}\\ {C}^{2} \end{bmatrix}}^{T} \begin{bmatrix} {C}^{1}\\ {C}^{2} \end{bmatrix} \right)}^{-1} {\begin{bmatrix} {C}^{1}\\ {C}^{2} \end{bmatrix}}^{T} \begin{bmatrix} {A}^{12}\\ {A}^{22} \end{bmatrix}$

Yet it would be nice to know how to solve it accurately. Thanks.

-
Note that , if you fix $E^2$(or $C^2$), you can exactly solve for $C^2$(or $E^2$). You can take an iterative approach to solving this. 1. Initialize $E^2$ arbitrarily 2. Solve for $C^2$, say $C^{'}_2$ 3. Set $C^2$ to $C^{'}_2$ 4. Solve for $E^2$, say $E^{'}_2$ 5. Set $E^2$ to $E^{'}_2$ 6. Goto Step 2 –  TenaliRaman Aug 9 '12 at 6:57
Hi, I found a way to solve it as an Non Linear LS. The problem is computing the Jacobian of the Cost Function. See math.stackexchange.com/questions/180544/… Thank You! –  Drazick Aug 9 '12 at 7:06
for the jacobian, note that $||A||_F = trace(A^{T}A)$. Now, use the matrix cookbook [1], to help get the derivatives. [1] lingpipe-blog.com/2011/02/03/the-matrix-cookbook –  TenaliRaman Aug 9 '12 at 7:18
The problem is when I use 'lsnonlin' in MATLAB it asks for the Jacobian where the input is a vector. Meaning the expression should be derived by every single item in C2 and E2. For instance, how do you derive the expression by ${C}^{2}_{1, 1}$? –  Drazick Aug 9 '12 at 7:46
Derivative of a function always lies in the domain of the function. This means that the derivative of your objective has to be a matrix. If you want to translate this into a vector, then rewrite your objective function in terms of the individual matrix components. Then take derivative w.r.t each component. –  TenaliRaman Aug 9 '12 at 8:14

Since your problem is unconstrained you can us fminunc to solve it in MATLAB (given an initial starting point $x_0$). Perhaps, you can use your approximate solution as $x_0$.

-
Yet it is a function of 2 variables - C2 and E2. –  Drazick Aug 5 '12 at 5:57

OK, it turns out the best way to solve it is using MATLAB's 'lsnonlin' function. Now, I just need to compute the Jacobain of the function relative to C2, E2 and the Frobenius Norm.

-