首页 > 编程知识 正文

matlab多元非线性函数拟合,fmincon非线性约束例子

时间:2023-05-06 03:52:49 阅读:37427 作者:2787

%定义目标函数; functionf=myfun(x ) f=x(1) ^2x )2) ^2 8; 结束

%非线性约束; function [c,CEQ]=nonLia(x ) c=-x(1)1) ^2x ) 2; %不等式约束; CEQ=-x(1)-x (2) ^2; %等式约束; end%是命令窗口,A=[]; b=[]; Aeq=[]; beq=[]; lb=[0; 0 ); ub=[]; x0=[0; 0 ); [x,fval,exitflag,output,lambda,grad,Hessian]=fmincon ',x0,a,b,Aeq,beq,lb,ub,' nonlia (x=1.0000

%目标函数; 函数f=myfun (x ) f=-x(1)-2*x) 0.5*x(1)1) ^20.5*x) ^2; end%非线性约束function [c,CEQ]=nonLia(x ) c=2*x(1)1)3*x )2) ^2 - 6; %不等式约束; ceq=[]; %等式约束; end%在命令窗口中显示“clc; 清除全部; A=[2 3; 1 ); %线性不等式系数; b=[6; 5 ); Aeq=[]; beq=[]; lb=[0; 0 ); ub=[]; x0=[0; 0 ); [x,fval,exitflag,output,lambda,grad,Hessian]=fmincon ',x0,a,b,Aeq,beq,lb,ub,' non lia (x=0.770.

请注意这里求最大值。 目标函数需要相反;

%目标函数; functionf=myfun(x ) f=-(log ) x )1) log (x )2); end%非线性约束function [c,CEQ]=nonLia(x ) c=[]; %不等式约束; ceq=[]; %等式约束; end%在命令行中显示“clc; 清除全部; A=[1 -1]; b=0; Aeq=[1 2]; beq=5; lb=[0; 0 ); ub=[]; x0=[0; 0 ); [x,fval,exitflag,output,lambda,grad,Hessian]=fmincon ',x0,a,b,Aeq,beq,lb,ub,' non lia (x=1.66.

%定义目标函数; functionf=myfun(x ) f=sqrt )2); end%非线性约束function [c,CEQ]=nonLia(x ) c=[8*x(1)^3-x(2) 2; (1-x(1) )3-x ) ); %多个不等式约束情况ceq=[]; %等式约束; 在结束%窗口中,单击以下命令A=[]; b=[]; Aeq=[]; beq=[]; LB=[ 0,0 ]; ub=[]; x0=[1.234; 5.678]; [x,fval,exitflag,output,lambda,grad,Hessian]=fmincon('myfun ',x0,a,b,[],[],lb,],' non Lin

转载于:https://www.cn blogs.com/guanghui Liu/p/9931946.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。