Home > Article > Computer Tutorials > How to realize the extreme point of piecewise function in matlab
function m=fenduanhanshu(t)
m=t.*(t>=0 & t1 & t2)
【explain】
In Matlab, the operation rule of the expression m=t.*(t>=0 & t1 & t2) in the above function is that when the Boolean expression is true, the Boolean expression The value of the formula takes 1 to participate in the operation, otherwise it takes 0 to participate in the operation.
For example, when (t>=0 & t=0 & t1 & t2) in the expression are not true, 0 is taken to participate in the operation, so at this time m=t.* 1 (-t 2)*0 0.1.*0=t.
This design in Matlab facilitates users to perform scientific calculations, reduces the amount of code, and improves development efficiency. Personally highly recommend using it.
Maximum value can be converted into a minimum value problem. For example: % Calculate the minimum value f(x) = -x1*x2*x3, the starting point is x = [10;10;10], and the constraint is:
% 0 ≤ x1 2*x2 2*x3 ≤ 72.
% –x1–2*x2–2*x3 ≤ 0
% 1. Write the objective function % function f = myfun(x)
% f = -x(1) * x(2) * x(3);% 2. Constraints
% –x1–2*x2–2*x3 ≤ 0
% x1 2*x2 2*x3≤ 72
% 3. Construct a constraint matrix
% A = [-1 -2 -2; ...
% 1 2 2];
% b = [0;72];% 4. Optimization calculation% x0 = [10;10;10];
% [x,fval] = fmincon(@myfun,x0,A,b);% 5. Result
% x
% x =
% 24.0000
% 12.0000
% 12.0000
%
%
% fval
% fval =
% -3.4560e 03
%
%
% A*x-b
% ans =
-72
The optimization problem of multivariate functions cannot be written simply.
MATLAB itself is not suitable for optimization. It is recommended to use tools such as lingo and 1stopt.
The following is the result of using the 1stopt tool:
1. Code:
Parameters x=[1.8,2,2],y=[.46,.90];
Minimum;
Function (-256.926x 572.13)*(y*(0.867 0.037*y 0.05*x)*252-17.784*y);
2. Result:
Number of iterations: 25
Calculation time (hour: minute: second: millisecond): 00:00:00:141
Cause for calculation abort: The convergence criterion is reached
Optimization algorithm: Conjugate gradient method General global optimization method
Function expression: (-256.926*x 572.13)*(y*(0.867 0.037*y 0.05*x)*252-17.784*y)
Objective function value (minimum): 6170.8801616352
x: 2
y: 0.46
The above is the detailed content of How to realize the extreme point of piecewise function in matlab. For more information, please follow other related articles on the PHP Chinese website!