matlab求解有约束规划函数

matlab求解有约束规划函数

ID:21799771

大小:612.50 KB

页数:28页

时间:2018-10-18

matlab求解有约束规划函数_第1页
matlab求解有约束规划函数_第2页
matlab求解有约束规划函数_第3页
matlab求解有约束规划函数_第4页
matlab求解有约束规划函数_第5页
资源描述:

《matlab求解有约束规划函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、6.3软件求解Matlab求解有约束规划函数1.fmincon函数求解形如下面的有约束非线性规划模型一般形式:Matlab求解有约束非线性最小化求解非线性规划问题的Matlab函数fmincon1.约束中可以有等式约束2.可以含线性、非线性约束均可输入参数语法:x=fmincon(fun,x0,A,b)x=fmincon(fun,x0,A,b,Aeq,beq)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x=fmincon(fun,x0,A,b

2、,Aeq,beq,lb,ub,nonlcon,options)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2,...)输入参数的几点说明模型中如果没有A,b,Aeq,beq,lb,ub的限制,则以空矩阵[]作为参数传入;nonlcon:如果包含非线性等式或不等式约束,则将这些函数编写为一个Matlab函数,nonlcon就是定义这些函数的程序文件名;不等式约束c(x)<=0等式约束ceq(x)=0.如果nonlcon=‘mycon’;则myfun.m定义如下function[c,ceq]

3、=mycon(x)c=...%计算非线性不等式约束在点x处的函数值ceq=...%计算机非线性等式约束在点x处的函数值对参数nonlcon的进一步示例2个不等式约束,2个等式约束3个决策变量x1,x2,x3如果nonlcon以‘mycon1’作为参数值,则程序mycon1.m如下对照约束条件编写myfun1.mfunction[c,ceq]=mycon1(x)c(1)=x(1)*x(1)+x(2)*x(2)+x(3)*x(3)-100c(2)=60-x(1)*x(1)+10*x(3)*x(3)ceq(1)=x(1)+x(2)*x(2)+x(3)-80c

4、eq(2)=x(1)^3+x(2)*x(2)+x(3)-80nonlcon的高级用法允许提供非线性约束条件中函数的梯度设置方法:options=optimset('GradConstr','on')如果提供非线性约束条件中函数梯度,nonlcon的函数必须如下格式:参数nonlcon的函数一般格式如下function[c,ceq,GC,GCeq]=mycon(x)c=...%计算非线性不等式约束在点x处的函数值ceq=...%计算机非线性等式约束在点x处的函数值ifnargout>2%nonlcon如果四个输出参数GC=...%不等式约束的梯度GCeq

5、=...%等式约束的梯度end输出参数语法:[x,fval]=fmincon(...)[x,fval,exitflag]=fmincon(...)[x,fval,exitflag,output]=fmincon(...)[x,fval,exitflag,output,lambda]=fmincon(...)[x,fval,exitflag,output,lambda,grad]=fmincon(...)[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(...)运用步骤:将自己的模型转化为上面的形式

6、写出对应的参数调用函数fmincon应用求解示例:请问:1、结合fmincon函数,需要提供哪些参数第一步:编写一个M文件返回目标函数f在点x处的值函数程序functionf=myfun(x)f=-x(1)*x(2)*x(3);函数myfun.m第二步:为了调用MATLAB函数,必须将模型中的约束转化为如下形式(<=)。这里:A=[-1-2-2;122];b=[072]’;这是2个线性约束,形如第三步:提供一个搜索起点,然后调用相应函数,程序如下:%给一个初始搜索点x0=[10;10;10];[x,fval]=fmincon('myfun',x0,A,

7、b)主程序(整体):A=[-1-2-2;122];b=[072]’;%给一个初始搜索点x0=[10;10;10];[x,fval]=fmincon('myfun',x0,A,b)最后得到如下结果:x=24.000012.000012.0000fval=-3.4560e+032.非负条件下线性最小二乘lsqnonneg适合如下模型:注意:约束只有非负约束语法:x=lsqnonneg(c,d)x=lsqnonneg(c,d,x0)x=lsqnonneg(c,d,x0,options)3.有约束线性最小二乘lsqlin适合如下模型:注意:约束有线性等式、不等

8、式约束语法:x=lsqlin(C,d,A,b)x=lsqlin(C,d,A,b,Aeq,beq

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。