Resolution of equation under constraints with 'fminbnd'
Show older comments
hi, i must resolve the system of equations with two variable x and y, and i use 'solve' to do it, but i must limit the solution between an interval, can fminbnd function replace 'solve' in this case
3 Comments
Matt J
on 23 Jun 2015
Torsten commented:
You have two equations in two unknowns ?
And the system of equations has multiple solutions ?
Best wishes
Torsten.
Torsten
on 23 Jun 2015
The reason why I ask is that it is usually not possible to restrict the solution to a certain interval.
The best you can expect is to get values for x and y such that
f1(x,y)^2+f2(x,y)^2
is minimized if you want to solve
f1(x,y)=0 and f2(x,y)=0.
If this is what you want you can proceed as Matt suggested.
Best wishes
Torsten.
Answers (1)
Matt J
on 23 Jun 2015
0 votes
No, fminbnd only handles problems in a single unknown. You can use lsqnonlin, if you have the Optimization Toolbox, or you can try things on the File Exchange, like fminsearchbnd
7 Comments
studentU
on 23 Jun 2015
Matt J
on 23 Jun 2015
Use as your objective function
f(x) = [G*cos(x(2))+F*sin(x(2))-1 ; cos(x(2))*sin(el)-sin(x(2))*X2*cos(x(1))-sin(x(2))*X3*sin(x(1))-1];
and set lb=[0;-90] and ub=[90,90]
Torsten
on 23 Jun 2015
lb=[0;-pi/2] and ub=[pi/2;pi/2]
Best wishes
Torsten.
studentU
on 25 Jun 2015
Walter Roberson
on 25 Jun 2015
x = lsqnonlin(@(x) [G*cos(x(2))+F*sin(x(2))-1 ; cos(x(2))*sin(el)-sin(x(2))*X2*cos(x(1))-sin(x(2))*X3*sin(x(1))-1],-pi/2,[0;-pi/2], [pi/2;pi/2]);
studentU
on 26 Jun 2015
Walter Roberson
on 26 Jun 2015
Your x0, your initial points, is -pi/2 which is a scalar. But your objective function expects a vector of length two (or more). You need to supply a vector of length 2 instead of -pi/2
Categories
Find more on Surrogate Optimization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!