请教【三元函数求最小值问题】,多谢了。
조회 수: 12 (최근 30일)
이전 댓글 표시

求上式最小值和对应的x1、x2、x3,其中n是奇数,0<x1<x2<0.5,x3>0。
因为平时很少用MATLAB,现在完全不知道从何做起,希望高手能给予指点,多谢了。
댓글 수: 0
채택된 답변
basin
2022년 11월 19일
这里给你编一个吧。仅供参考
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
Cassandra Myers
2023년 3월 2일
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Database Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!