| Shaihan 2008-01-13, 8:26 am |
| Thank you both for your replies. Firstly,
> Is lsqnonlin the right algorithm for your problem?
> Its a tough problem. Expect the solution to be
> non-simple. You might consider some form of
> stochastic optimizer, for example, simulated
> annealing, genetic algorithms, or particle swarms.
> These algorithms can handle (overcome) large
> numbers of unknowns as well as singularities.
I have looked into some of these briefly but found them quite
confusing to implement. Do you have any feeling as to which would be
most suitable. Perhaps simulated annealing? Another possibility is to
relax from a solution to the linear problem to this one. I'm not sure
of an optimal method for that.]
> I may be missing something. Why don't you just solve
>
> A*x = abs(b).
>
Thanks for that suggestion; unfortunately it doesn't help because
doing this constrains the solution achieved (i.e. Ax) to be real,
which is not necessary and leads to solutions that are undesirable
from a physical point of view. The product Ax can have any phase
variation, the goal is only to match its magnitude to that of b.
Shaihan
|