怎么解决约束条件为自由变量和约束变量的fmincon函数优化问题

查看: 2814|回复: 4
在线时间65 小时最后登录注册时间听众数收听数能力0 分体力1317 点威望0 点阅读权限40积分466相册日志记录帖子主题精华0分享好友
, 积分 466, 距离下一级还需 134 积分
升级&&55.33%当前用户组为 高中生当前积分为 466, 升到下一级还需要 134 点。TA的每日心情郁闷 10:35签到天数: 96 天[LV.6]常住居民II2013国际赛参赛者自我介绍汽车专业,研究方向为系统建模与仿真。
填写您的邮件地址
此次课程,是大象老师多年建模经验的积累,定会让大家满载而归,为地区赛、国赛乃至明年的美赛,打下坚实的建模基础。帮学堂是由好未来出品的app考研应用,依托教育资源和名师力量,通过标准化课程体系和精准辅导政策,为考研学子提供公共课和专业课的辅导视频。为使数学建模人才能够更好发挥自身优势,达成自己的学业梦想,数学中国与帮学堂达成合作,努力为想要考研的同学提供更优秀的考研课程和更优惠的培训价格,帮助每一位建模人实现自己的梦想。在利用梯度求解约束优化问题时,我用的是fmincon函数,定义完目标函数及梯度函数和约束条件及约束条件的梯度函数后,求解时matalb给出如下提示,如图1所示,
我有两个问题要问:(1)如何转换其他算法,例如将 “trust-region-reflective algorithm”转换成“interior-point&或其他算法?
(2)求解只得到了局部最优解,”Local minimum found that satisfies the constraints.“,请问如何得全局最优解?谢谢!
本帖子中包含更多资源
才可以下载或查看,没有帐号?
踩过的脚印
啦啦啦~~~我是默认签名(*^__^*)
在线时间32 小时最后登录注册时间听众数收听数能力0 分体力210 点威望0 点阅读权限30积分123相册日志记录帖子主题精华0分享好友
, 积分 123, 距离下一级还需 177 积分
升级&&11.5%当前用户组为 初中生当前积分为 123, 升到下一级还需要 177 点。TA的每日心情开心 13:32签到天数: 27 天[LV.4]偶尔看看III
群组:&群组:&群组:&
我也想知道。。。
啦啦啦~~~我是默认签名(*^__^*)
在线时间32 小时最后登录注册时间听众数收听数能力0 分体力210 点威望0 点阅读权限30积分123相册日志记录帖子主题精华0分享好友
, 积分 123, 距离下一级还需 177 积分
升级&&11.5%当前用户组为 初中生当前积分为 123, 升到下一级还需要 177 点。TA的每日心情开心 13:32签到天数: 27 天[LV.4]偶尔看看III
群组:&群组:&群组:&
大神大神在哪里
啦啦啦~~~我是默认签名(*^__^*)
在线时间32 小时最后登录注册时间听众数收听数能力0 分体力210 点威望0 点阅读权限30积分123相册日志记录帖子主题精华0分享好友
, 积分 123, 距离下一级还需 177 积分
升级&&11.5%当前用户组为 初中生当前积分为 123, 升到下一级还需要 177 点。TA的每日心情开心 13:32签到天数: 27 天[LV.4]偶尔看看III
群组:&群组:&群组:&
大神大神在哪里
啦啦啦~~~我是默认签名(*^__^*)
在线时间32 小时最后登录注册时间听众数收听数能力0 分体力210 点威望0 点阅读权限30积分123相册日志记录帖子主题精华0分享好友
, 积分 123, 距离下一级还需 177 积分
升级&&11.5%当前用户组为 初中生当前积分为 123, 升到下一级还需要 177 点。TA的每日心情开心 13:32签到天数: 27 天[LV.4]偶尔看看III
群组:&群组:&群组:&
此次课程,是大象老师多年建模经验的积累,定会让大家满载而归,为地区赛、国赛乃至明年的美赛,打下坚实的建模基础。帮学堂是由好未来出品的app考研应用,依托教育资源和名师力量,通过标准化课程体系和精准辅导政策,为考研学子提供公共课和专业课的辅导视频。为使数学建模人才能够更好发挥自身优势,达成自己的学业梦想,数学中国与帮学堂达成合作,努力为想要考研的同学提供更优秀的考研课程和更优惠的培训价格,帮助每一位建模人实现自己的梦想。大神大神在哪里大神大神在哪里
啦啦啦~~~我是默认签名(*^__^*)
社区QQ达人
使用QQ帐号登录论坛的用户
【课程简介】
以历届优秀论文作为学习的参考资料,从成功者的经验中提升自己。每一年的赛题都有它的独到之处,如何去读题解题,揣摩出题人的意图,做题时不跑题,不偏题?如何去发现国奖论文的闪光点和绝妙之处,解析论文,取其精华去其糟?对于新手同学来说,或许这很难,很难,不知如何下手,不知如何准备,更有甚者,可能连赛题或论文都看不懂。怎么办???你需要一个老师,需要一个老司机带你走过这段迷茫期,进入快车道。
Powered by
& &论坛法律顾问:王兆丰查看: 8063|回复: 11|关注: 0
求助: fmincon非线性等式约束条件不起作用
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
我在用fmincon求函数最小值的时候,为什么非线性约束条件不起作用?期待高手回复,不甚感激!
函数其实不复杂,代码如下。
function [p,s,b,c,v,ce,co,w,u,o,pL,pU,ba]=para&&% 该函数给出一些参数值
function [c,ceq,gradceq]=mycon(x)& &% 非线性等式约束条件
[p,s,b,c,v,ce,co,w,u,o,pL,pU,ba]=
Fz=(ce-pL)/(pU-pL);
p1=quadgk(@(t)t./(pU-pL),pL,ce); p2=quadgk(@(t)t./(pU-pL),ce,pU);
ceq=-(ce-v)*quadgk(@(y)y.*normcdf(x(1)+(y*x(3)-x(1))/ba,u,o),x(1)/x(3),1)+...
-(ce*Fz-p1)*quadgk(@(y)y.*(1-normcdf(x(1)+(y*x(3)-x(1))/ba,u,o)),(x(1)+x(2))/x(3),1)+(ce*1/2-c);
function f=myfun(x) % 优化函数
[p,s,b,c,v,ce,co,w,u,o,pL,pU,ba]=
Fz=(ce-pL)/(pU-pL);
p2=quadgk(@(t)t./(pU-pL),ce,pU);
p1=quadgk(@(t)t./(pU-pL),pL,ce);
f=-(quadgk(@(t)(v.*(x(1)-t)+p*t-w.*x(1)).*exp(-(t-u).^2/(2*o^2))./(sqrt(2*pi)*o),0,x(1))+...
& & quadgk(@(t)((p+s-w).*x(1)+ba*(p+s-b-w).*(t-x(1))-s*t).*exp(-(t-u).^2./(2*o^2))./(sqrt(2*pi)*o),x(1),x(1)+x(2)/ba)+...
& & quadgk(@(t)((p+s-w).*(x(1)+x(2))-b.*x(2)-s*t).*exp(-(t-u).^2/(2*o^2))./(sqrt(2*pi)*o),x(1)+x(2)/ba,inf)+...
& &quadgk(@(t)(((p+s-b).*(1-Fz)-p2).*(ba.*(t-x(1))-x(2))).*exp(-(t-u).^2/(2*o^2))./(sqrt(2*pi)*o),x(1)+x(2)/ba,inf)+...
&&((p+s-b)*Fz-p1).*quadgk(@(y)(normcdf(x(1)+(y.*x(3)-x(1))/ba,u,o)-normcdf(x(1)+x(2)/ba,u,o)),(x(1)+x(2))/x(3),1)+...
& &((p+s-b)*Fz-p1).*(quadgk(@(y)y.*x(3).*(1-normcdf(x(1)+(y*x(3)-x(1))/ba,u,o)),(x(1)+x(2))/x(3),1))+...
& &-x(2)*((p+s-b)*Fz-p1).*quadgk(@(y)(1-normcdf(x(1)+(y.*x(3)-x(1))/ba,u,o)),(x(1)+x(2))/x(3),1)-co*x(2));
A=[-1,0,0;0,-1,0;1,1,-1];
b=[0;0;0];
[x,fval]=fmincon(@myfun,x0,A,b,[],[],[],[],@mycon);
显示结果如下:
& &1.0e+03*
& &1.0148& && &0.0315& &&&1.0462
& &-1.3584e+04
注:如果去掉约束函数mycon, 直接用
[x,fval]=fmincon(@myfun,x0,A,b);
显示结果是一样的,也就是说等式约束条件没有起作用。
我是第一次在论坛发帖,期待版主或其他的matlab高手的指点,谢谢!
<h1 style="color:# 麦片财富积分
大家没有碰到类似的问题吗?在线等,希望matlab高手们给个意见,不甚感激!
<h1 style="color:# 麦片财富积分
求助matlab高手们给点求最优的意见,帮帮忙呀,谢谢!
<h1 style="color:# 麦片财富积分
期待matlab 高手回复,着急等结果。帮忙给点建议呀,谢谢。
<h1 style="color:# 麦片财富积分
你的程序主要有两个问题:
1.mycon函数中ceq计算过程中涉及c,而c=[];因此ceq=[];也就是说mycon函数没有起作用;建议把ceq中的c换为0;并且你ceq的第一行末尾多了一个+号;
ceq=-(ce-v)*quadgk(@(y)y.*normcdf(x(1)+(y*x(3)-x(1))/ba,u,o),x(1)/x(3),1)...
-(ce*Fz-p1)*quadgk(@(y)y.*(1-normcdf(x(1)+(y*x(3)-x(1))/ba,u,o)),(x(1)+x(2))/x(3),1)+(ce*1/2-0);
2.初始值不满足非线性约束,把x0=[0];带入mycon计算得到的ceq并不为0,这样的话matlab计算结果为找不到可行域的解;
function [x,fval,exitflag,output]=Optfun %我随便取得函数名
A=[-1,0,0;0,-1,0;1,1,-1];
b=[0;0;0];
[x,fval,exitflag,output]=fmincon(@myfun,x0,A,b,[],[],[],[],@mycon)
得到的结果:
&&1.0e+008 *
& & 0.0000& & 0.0091& & 1.0848
exitflag =
& && && &iterations: 12
& && && & funcCount: 173
& && & lssteplength: 1
& && && &&&stepsize: 0
& && && & algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
& && &firstorderopt: 3.8988
& & constrviolation: 1.0000
& && && && &message: [1x749 char]
&&1.0e+008
&&0.0000& & 0.0091& & 1.0848
exitflag =2表示matlab并未找到可行域内的解;
非线性优化初始值的选择对结果有很大的影响,因此建议你修改一下初值;
<h1 style="color:# 麦片财富积分
非常感谢!
<h1 style="color:# 麦片财富积分
关注者: 9
建议试下1stOpt,不需要猜初值,优化能力比Matlab强,使用也更简单。
<h1 style="color:# 麦片财富积分
liuxm 发表于
你的程序主要有两个问题:
1.mycon函数中ceq计算过程中涉及c,而c=[];因此ceq=[];也就是说mycon函数没有起 ...
高手,有时间帮我看下这个,也是非线性约束条件不起作用
这个帖子问题:fmincon非线性不等式约束条件不起作用是什么原因??
<h1 style="color:# 麦片财富积分
你的程序主要有两个问题:
1.mycon函数中ceq计算过程中涉及c,而c=[];因此ceq=[];也就是说mycon函数没有起 ...
您好 有时间也要麻烦您帮我看下这个 也是非线性约束条件不起作用的问题
<h1 style="color:# 麦片财富积分
你的程序主要有两个问题:
1.mycon函数中ceq计算过程中涉及c,而c=[];因此ceq=[];也就是说mycon函数没有起 ...
你好,请问选初值有什么方法吗,我的决策变量也有九个呢,选初值总是没有一种有效的选法,听说有人用拟牛顿法选初值,不知阁下有什么高招吗,小弟不胜感激
站长推荐 /2
利用MATLAB/Simulink开发智能机器人系统
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区查看: 4256|回复: 7|关注: 0
MATLAB (fmincon) 如何求解含微分方程组约束的非线性优化问题?
<h1 style="color:# 麦片财富积分
新手, 积分 6, 距离下一级还需 44 积分
关注者: 1
& && & 现在要求解如下优化问题:
& && & 给定动态系统 x'=f(x,u),其中x表示n维系统状态,x'表示其微分,u表示系统输入,f为n维非线性函数关系。现在要求解一个fmin g(x,u)的问题。当然系统中还存在其他代数形式的等式或不等式约束,在此略过。
& && & 请问在MATLAB中如何实现以上优化?能够查到的一种方法是使用MATLAB的fmincon优化函数,但fmincon的帮助文档显示似乎只对代数形式的等式(不等式)约束起作用,而这个问题中相当于引入了动态约束(微分方程组),请问如果用fmincon做,如何表示这个微分方程组?MATLAB是否还有别的处理办法?
<h1 style="color:# 麦片财富积分
同求...:):):)
<h1 style="color:# 麦片财富积分
有谁可以解答一下吗?同求...
MATLAB 数学、统计与优化版块优秀回答者
<h1 style="color:#9 麦片财富积分
关注者: 20
gaoyuezhao 发表于
有谁可以解答一下吗?同求...
将微分方程采用差分形式计算。
<h1 style="color:# 麦片财富积分
这类问题在微分方程参数辨识以及灵敏度分析中经常遇到。实际上x不能算是独立的变量,而是取决于u,因此待优化的只有u。目标函数的程序应该这样写:
function g=difffun(u)
& &根据 x'=f(x,u)计算得到x
& &根据x与u的值计算g
约束函数也是同样的处理方式。
至于梯度函数的计算,matlab会默认采用有限差分的方法计算。实际上如果你再深入研究的话,可以求解
目标函数以及约束函数对u导数的解析解。
<h1 style="color:# 麦片财富积分
zhanglu 发表于
将微分方程采用差分形式计算。
嗯,我已经差分化了,但是写成非线性约束时不知怎么写了,形如x1(k+1)=x1(k)+T*x(2)这形式在非线性约束方程怎么表示。比如x1=x2;我可以写成c=x1-x2;但是出现差分方程该怎么表示呢?
<h1 style="color:# 麦片财富积分
请问您的问题解决了吗?
<h1 style="color:# 麦片财富积分
解决不了啊
站长推荐 /2
利用MATLAB/Simulink开发智能机器人系统
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区小木虫 --- 600万学术达人喜爱的学术科研平台
热门搜索:
&&查看话题
matlab最优化问题求解中,复杂的目标函数和约束条件无法直接表示的问题
请问,如果matlab 优化当中, 目标函数 和 约束条件都很复杂,没有办法直接用x 表示出来,该怎么处理?& &&&而且,对于要求出的x, 我有多个目标函数,这又该如何处理?
图像1, 图像2 ,图像3, 图像4,图像5 。。图像10 , 根据这10个图像,求最优解x ,目标是 :5个图像使用x(向量)作为权重叠加之后的图像中的叠加图像中的某个部分的值为优化目标。
主函数:imageVectorChild里面存了 10个图像的向量形式。
----------
x0=2*rand(1,size(imageVectorChild,2))-1;&&% 10个随机数作为参数x的初始值
options = optimoptions(@fmincon,'display','iter');
Aeq=ones(1,endPic-startPic+1);&&% 想说让x的和是1,作为约束,不过也可以不要这个约束
beq=1;& && && && && && && && && && && && && & %约束可以任意,不是重点
= fmincon(@objfun2,x0,,,Aeq,beq,,,,options,imageVectorChild)
优化(目标)函数:objfun2.m
--------------
function Objval = objfun2(x,imageVectorChild)
finalImage = x * imageVectorC& &%& &就是利用x系数,把10个图像简单的叠加在一起。相当于:x(1).*图像1+x(2).*图像2+x(3).*图像3+。。。
theta = direction(finalImage )&&%&&根据叠加结果,求得方向场角度theta, 这里面对finalImag进行了复杂的转化。所以x已经无法直接表示成为theta。同时,theta也是一个向量。
theta(1) = 0.24&&% 优化目标
theta(2) = 0.38&&% 优化目标
theta (m) = 0.42&&% 优化目标
也就是说优化目标有多个,数量根据theta向量的维度决定。 同时,优化目标也不应该用等式表示,也不清楚该怎么表示。
例如: 如果优化目标就只有一个,可以用 Objval&&= theta(1) - 0.24&&。
麻烦了解的同学 给些指导&&真谢谢。
您好,版主。&&这个不是10个小图合成一个大图,是把10个图以不同的权重叠加在一起,这个权重就是要求的x。也就是x向量有10个标量对应10个图。
然后,优化函数中,我把图形以 60*60大小进行划分, 也就是说整张图分成N个 60*60的 block。 优化的目标就是,图像中的某些block内的像素进行计算,求出该block块儿的梯度。优化目标是让该梯度 = 0.24 。 所以,会有多个block 的梯度 都有要求, 相当于多个优化目标。
若干次采样覆盖全部小图,我没有明白,能详细解释一下么
图像梯度是固定的,不是优化出来的。
学术必备与600万学术达人在线互动!
扫描下载送金币查看: 1302|回复: 4|关注: 0
优化问题请教——fmincon函数的使用条件
<h1 style="color:# 麦片财富积分
新手, 积分 12, 距离下一级还需 38 积分
我在做一个优化设计的问题,优化函数采用的是fmincon,但是在优化的过程当中约束条件是采用BP神经网络拟合出来的(含有复杂的e指数表达式),之后采用的是符号运算来进行不等式约束的限制。但是最终还是优化不出来,请问是不是fmincon函数在进行优化的过程当中的约束条件函数不能够复杂?是不是fmincon函数对约束条件函数的使用还是存在着一定限制条件?
如果不等式约束条件复杂应该采用什么约束条件比较好??
论坛优秀回答者
<h1 style="color:#6 麦片财富积分
关注者: 17
1. 非凸优化的话基本是靠碰运气,多试试不同的初始点。
2. 如果问题约束很复杂那怎么写也都很复杂啊。。数学变形都是等效的。
<h1 style="color:# 麦片财富积分
1. 非凸优化的话基本是靠碰运气,多试试不同的初始点。
2. 如果问题约束很复杂那怎么写也都很复杂啊。。数 ...
怎么够判断是非凸优化还是凸优化??
论坛优秀回答者
<h1 style="color:#6 麦片财富积分
关注者: 17
怎么够判断是非凸优化还是凸优化??
1. 可行域是凸的
2. 目标函数是凸的
这样的优化叫凸优化。
lz可以把目标函数和约束贴放上来看看。
<h1 style="color:# 麦片财富积分
1. 可行域是凸的
2. 目标函数是凸的
这样的优化叫凸优化。
站长推荐 /2
利用MATLAB/Simulink开发智能机器人系统
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区

我要回帖

更多关于 fmincon多变量 的文章

 

随机推荐