Hi, I'm solving a non-linear system of 3 equations in 3 unkowns:
I'm using lsqnonlin to solve it:
lambda = lsqnonlin(F,lambda0,lb,ub,options);
Moreover, I need to add some constraints to the variables:
How can pass this constraints to the solver?
Thanks in advance!

2 commentaires

Torsten
Torsten le 28 Sep 2022
Modifié(e) : Torsten le 28 Sep 2022
A system of 3 equations in 3 unknowns usually has a unique solution.
So how can you put constraints on the solution ?
Do you want the 3 nonlinear equations only approximately to be satisfied ?
Walter Roberson
Walter Roberson le 28 Sep 2022
A system of 3 equations in 3 unknowns usually as a unique solution.
That is not generally the case for nonlinear systems. For example 3 curved surfaces might intersect at multiple locations and the constraints could narrow the result down to one particular quandrant.

Connectez-vous pour commenter.

 Réponse acceptée

Walter Roberson
Walter Roberson le 28 Sep 2022

0 votes

lsqnonlin() does not support constraints other than upper bound and lower bound.
I suggest you minimize the norm() of F(x,y,z)-lambda0 using fmincon() as you can supply linear inequality constraints for that.

2 commentaires

Luca Vergani
Luca Vergani le 30 Sep 2022
Thanks a lot
Matt J
Matt J le 30 Sep 2022
Or rather minimize norm( F(x,y,z) )^2 to ensure differentiability of the objective.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by