# How can I solve an Optimization problem?

10 views (last 30 days)

Show older comments

Hello. I have not used the optimization toolbox and I need your help. I have 3 functions that depends on λ, and an function μ that depends on the 3 previous functions (so μ also depends on λ). I need to find the minimum value of μ changing λ: how can I make it? what function should I consider? Thanks in advance.

syms lambda;

c= sqrt((-(d^2)*(cosd(psi)-1))/(1+cosd(fi-psi)+(lambda^2)*(1-cosd(fi-psi))));

a= lambda*c;

b= sqrt(((d^2)*(lambda^2)*(cosd(fi)-1)-1-cosd(fi))/((lambda^2)*(cosd(fi-psi)-1)-1-cosd(fi-psi)));

Mu_1= acosd(abs(((c^2)+(b^2)-((d-a)^2))/(2*b*c)));

### Answers (2)

Abolfazl Chaman Motlagh
on 13 Dec 2021

you can use fmincon, this function minimize function in a constraint problem. but only constraint here is bounds of lambda. so other fields of function are empty ([]).

i use some sample number for needed variables.

d = 1;

psi = rand * 360;

fi = rand * 360;

c=@(lambda) (sqrt((-(d^2)*(cosd(psi)-1))/(1+cosd(fi-psi)+(lambda^2)*(1-cosd(fi-psi)))));

a=@(lambda) (lambda*c(lambda));

b=@(lambda) (sqrt(((d^2)*(lambda^2)*(cosd(fi)-1)-1-cosd(fi))/((lambda^2)*(cosd(fi-psi)-1)-1-cosd(fi-psi))));

Mu_1=@(lambda) (acosd(abs(((c(lambda)^2)+(b(lambda)^2)-((d-a(lambda))^2))/(2*b(lambda)*c(lambda)))));

[Lambda_star,fval,exitflag,output]=fmincon(@(x) Mu_1(x),1,[],[],[],[],0,1);

disp(Lambda_star)

use fmincon documentation if you need more options for better convergence.it seems it reach best answer in my case : (in my code the answer changes everytime because psi and fi are random)

x = 0:1e-3:1;

for i=1:numel(x)

y(i) = Mu_1(x(i));

end

plot(x,y)

Juan Barrientos
on 13 Dec 2021

##### 3 Comments

Torsten
on 14 Dec 2021

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!