请教【三元函数求最小值问题】,多谢了。
11 views (last 30 days)
Show older comments

求上式最小值和对应的x1、x2、x3,其中n是奇数,0<x1<x2<0.5,x3>0。
因为平时很少用MATLAB,现在完全不知道从何做起,希望高手能给予指点,多谢了。
0 Comments
Accepted Answer
basin
on 19 Nov 2022
这里给你编一个吧。仅供参考
function y=optfun(x)
%需要优化的目标函数
% by karl
n=[3:2:19];%奇数
for i=1:length(n)
y1=((cos(n(i)*x(1)*pi)+x(3)*cos(n(i)*x(2)*pi))/n(i))^2;
end
y2=sqrt(sum(y1));
y=y2/(cos(x(1)*pi)+x(3)*cos(x(2)*pi));
上面这个函数,你建立一个文件,单独保存下来。不要改名称
如果你看到的最优解为0,0,0.99,你用format long来查看。
clc;clear;
%约束条件设置
A=[1,-1,0];
b=-1e-15;%这个取决于你的精度。如果你想更精确,可以把-1e-15换成-realmin
lb=zeros(3,1);
ub=[0.5;0.5];
x0=[0.25;0.26;1];
%优化
[x,fval,exitflag,output,lambda]=fmincon(@optfun,x0,A,b,[],[],lb,ub);
这样,x就是你想找到的自变量,fval就是目标函数的最小值。最小值的精度为1e-6.你想更精确,修改优化参数。这个你查看fmincon函数的详细说明。
1 Comment
Cassandra Myers
on 2 Mar 2023
More Answers (0)
See Also
Categories
Find more on Database Toolbox 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!