Kreizhn
- 714
- 1
I'm trying to minimize a function over a rather complicated surface. I'm using an algorithm that takes an initial guess, finds the tangent plane at that point, minimizes using a linear programming algorithm, then (tries to) project back onto the complicated surface.
More specifically, if [itex]\xi[/itex] is a vector and [itex]H(\xi)[/itex] is the surface, I want to solve the linear programming problem
[tex]\min c^T \xi, \quad \text{subject to } \nabla H(\xi) (\xi - \bar \xi) = 0[/tex]
Now my problem is that I'm having trouble setting up the constraints. This wouldn't normally be difficult, except that my surface is parameterized as
[tex]H(\xi) = X_f(\xi) - X_d[/tex]
where [itex]X_f, X_d[/itex] are matrices.
Normally in these cases [itex]H(\xi)[/itex] is at worst vector-valued and so [itex]\frac{\partial H}{\partial \xi_j}[/itex] is a vector so that [itex]\nabla H(\xi)[/itex] is a matrix. However in this case [itex]\frac{\partial H}{\partial \xi_j}[/itex] is itself a matrix.
How do I handle this? Do I ``vectorize'' [itex]\frac{\partial H}{\partial \xi_j}[/itex]? Do I break it into real and imaginary parts then vectorize? I'm not sure how to handle this.
More specifically, if [itex]\xi[/itex] is a vector and [itex]H(\xi)[/itex] is the surface, I want to solve the linear programming problem
[tex]\min c^T \xi, \quad \text{subject to } \nabla H(\xi) (\xi - \bar \xi) = 0[/tex]
Now my problem is that I'm having trouble setting up the constraints. This wouldn't normally be difficult, except that my surface is parameterized as
[tex]H(\xi) = X_f(\xi) - X_d[/tex]
where [itex]X_f, X_d[/itex] are matrices.
Normally in these cases [itex]H(\xi)[/itex] is at worst vector-valued and so [itex]\frac{\partial H}{\partial \xi_j}[/itex] is a vector so that [itex]\nabla H(\xi)[/itex] is a matrix. However in this case [itex]\frac{\partial H}{\partial \xi_j}[/itex] is itself a matrix.
How do I handle this? Do I ``vectorize'' [itex]\frac{\partial H}{\partial \xi_j}[/itex]? Do I break it into real and imaginary parts then vectorize? I'm not sure how to handle this.