You are now following this question
- You will see updates in your followed content feed.
- You may receive emails, depending on your communication preferences.
solve non-linear optimization problem
2 views (last 30 days)
Show older comments
how to maximize this nonlinear function z and find the value of x and y,
z= 0.031 {0.009[exp(x-z)-1]+x/1.14}-(-1+√(1+y^4/x))/y
10<=x<=20 and y>=0
Accepted Answer
Matt J
on 26 Apr 2021
With fmincon, if you have Optimization Toolbox.
19 Comments
Hayam Wahdan
on 26 Apr 2021
The main problem of this optimization problem, the objective function z is calculated in terms of the same value of z
Hayam Wahdan
on 26 Apr 2021
After this assumption, the problem contains three decision variables x,y and z?
Hayam Wahdan
on 26 Apr 2021
How fminco function solve this optimization problem
Min -Z
St
Z-....=0
d>=100
d<=300
v>=0
Hayam Wahdan
on 26 Apr 2021
I want to ask, can this function solve this optimization problem subject to non-linear constraints
Walter Roberson
on 26 Apr 2021
Yes, see the nonlcon parameter of fmincon.
Matt J
on 26 Apr 2021
Edited: Matt J
on 26 Apr 2021
I want to ask, can this function solve this optimization problem subject to non-linear constraints
Yes, see this example in the documentation:
Note that you don't really have to ensure that the initial guess satisfy the constraints, as they do in the example, but it can be beneficial to do so.
Hayam Wahdan
on 27 Apr 2021
Can you help me in writing this MATLAB function Min -Z St z= 0.031 {0.009[exp(x-z)-1]+x/1.14}-(-1+√(1+y^4/x))/y 10<=x<=20 and y>0
Walter Roberson
on 28 Apr 2021
Edited: Walter Roberson
on 28 Apr 2021
fmincon thinks you can get an arbitrarily large result if you make y arbitrarily large.
format long g
obj = @(xyz) -xyz(3);
A = []; b = []; Aeq = []; beq = [];
lb = [10, realmin, -inf];
ub = [20 1e9 1e9];
nl = @(x,y,z) 0.031*(0.009*(exp(x-z)-1)+x./1.14)-(-1+sqrt(1+y^4./x))./y - z
nl = function_handle with value:
@(x,y,z)0.031*(0.009*(exp(x-z)-1)+x./1.14)-(-1+sqrt(1+y^4./x))./y-z
nonlcon = @(xyz) deal(nl(xyz(1), xyz(2), xyz(3)), []);
xyz0 = [.1 .2 .3]
xyz0 = 1×3
0.1 0.2 0.3
[best, fval] = fmincon(obj, xyz0, A, b, Aeq, beq, lb, ub, nonlcon)
Local minimum found that satisfies the constraints.
Optimization completed because the objective function is non-decreasing in
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the value of the constraint tolerance.
best = 1×3
17.9264664551072 190469849.537475 999999999.999999
fval =
-999999999.999999
Walter Roberson
on 28 Apr 2021
Please re-check your equations. I suspect that the sqrt() is intended to extend over the /y as well, which is not what you have coded.
Hayam Wahdan
on 28 Apr 2021
Thank you very much for your quick reply,
when i tried this code, gave me error in this line
[best, fval] = fmincon(obj, v0, A, b, Aeq, beq, lb, ub, nonlcon)
Walter Roberson
on 28 Apr 2021
What was the error message?
Hayam Wahdan
on 28 Apr 2021
Error using barrier
Nonlinear constraint function is undefined at initial point. Fmincon cannot continue.
Error in fmincon (line 798)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = barrier(funfcn,X,A,B,Aeq,Beq,l,u,confcn,options.HessFcn, ...
Error in nonlinear (line 11)
[best, fval] = fmincon(obj, vdJ0, A, b, Aeq, beq, lb, ub, nonlcon)
Walter Roberson
on 28 Apr 2021
please post the complete code you used.
Hayam Wahdan
on 28 Apr 2021
Edited: Walter Roberson
on 28 Apr 2021
format long g
obj = @(xyz) -xyz(3);
A = []; b = []; Aeq = []; beq = [];
lb = [100, realmin, -inf];
ub = [300 1e9 1e9];
%nl = @(x,y,z) 0.031*(0.009*(exp(x-z)-1)+x./1.14)-(-1+sqrt(1+y^4./x))./y - z
w=10^-15*exp(-2.897*10^22*25^-1);
nl = @(x,y,z) 0.055*(w*(exp(5802*(x-19.5*z))-1)+x./1.14)-(-1+sqrt(1+0.5272*y^4./x^2.))/(2.6328 *10^9*y) - z;
nonlcon = @(xyz) deal(nl(xyz(1), xyz(2), xyz(3)), []);
xyz0 = [.1 .2 .3];
[best, fval] = fmincon(obj, xyz0, A, b, Aeq, beq, lb, ub, nonlcon)
Walter Roberson
on 28 Apr 2021
w=10^-15*exp(-2.897*10^22*25^-1);
You badly need to rescale !!
exp(-1158800000000000000000) is about
Effectively your w is 0.
Hayam Wahdan
on 28 Apr 2021
Thank you very much, I will rescale it
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)