声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1788|回复: 12

[原创]哪位高手帮一下!关于优化工具中的fmincon函数

[复制链接]
发表于 2006-5-20 16:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我在解一个带约束的非线性最小化问题时,总是出现很多行如下警告,<BR>Warning: One or more output arguments not assigned during call to 'feval'.<BR>&gt; In D:\MATLAB6p1\toolbox\optim\private\nlconst.m at line 269<BR>  In D:\MATLAB6p1\toolbox\optim\fmincon.m at line 458<BR>  In D:\MATLAB6p1\work\double_canshu_zheng.m at line 16<BR>Warning: Reference to uninitialized variable nceqtmp in D:\MATLAB6p1\toolbox\optim\private\nlconst at line 271.<BR>&gt; In D:\MATLAB6p1\toolbox\optim\private\nlconst.m at line 271<BR>  In D:\MATLAB6p1\toolbox\optim\fmincon.m at line 458<BR>  In D:\MATLAB6p1\work\double_canshu_zheng.m at line 16<BR>有人建议我用大型课题优化,如果用大型课题要编写目标函数的梯度函数和hess矩阵。<BR>我看了很多书都没提具体怎么求梯度函数和hess矩阵,那位高手帮忙解决一下。<BR>越详细越好,先谢了!!!!
回复
分享到:

使用道具 举报

发表于 2006-5-20 16:33 | 显示全部楼层

回复:(haode123)[原创]哪位高手帮一下!关于优化工...

<P>把代码贴一下</P>
 楼主| 发表于 2006-5-20 16:49 | 显示全部楼层

回复:(happy)回复:(haode123)[原创]哪位高手帮一...

<P>原函数程序如下:<BR>function [f,g]=fun_zheng(x)<BR>a=x(1);<BR>b=x(2);<BR>c=x(3);<BR>d=x(4);<BR>e=x(5);<BR>[qz,qf]=weibull_plot_double('E:\data\pd\hunhe\fengzhi.txt',0);<BR>qz=qz(find(qz&gt;0));<BR>f=-sum(log(x(5)*(x(1)/x(2))*(qz./x(2)).^(x(1)-1).*exp(-(qz./x(2)).^x(1))))-sum(log((1-x(5))*(x(3)/x(4))*(qz./x(4)).^(x(3)-1).*exp(-(qz./x(4)).^x(3))));<BR><BR>主程序如下:<BR>function [b1,a1,b2,a2,p]=double_canshu_zheng(file,b10,b20,p0)<BR>[qz,fz,qf,ff]=weibull_plot_double(file,0);<BR>a10=qz(find(fz&gt;=0.632*p0));<BR>a20=qz(find(fz&gt;=0.632*(p0-1)+p0));<BR>a10=a10(1);<BR>a20=a20(1);<BR>x0=[b10,a10,b20,a20,p0];<BR>A=[];<BR>b=[];<BR>Aeq=[];<BR>beq=[];<BR>lb=[0.01,0.01,0.01,0.01,0.01];<BR>ub=[inf,inf,inf,inf,0.99];<BR>%options=optimset('GradObj','on');<BR>%options=optimset('largescale','off','display','iter');<BR>[x,fval]=fmincon(@fun_zheng,x0,A,b,Aeq,beq,lb,ub,@mycon_zheng,options);<BR>b1=x(1)<BR>a1=x(2)<BR>b2=x(3)<BR>a2=x(4)<BR>p=x(5)</P>
发表于 2006-5-20 16:51 | 显示全部楼层

回复:(haode123)[原创]哪位高手帮一下!关于优化工...

E:\data\pd\hunhe\fengzhi.txt<BR>file,b10,b20,p0<BR><BR>没有给出来
 楼主| 发表于 2006-5-20 16:52 | 显示全部楼层
麻烦happy教授给解决一下,不胜感激!
发表于 2006-5-20 16:53 | 显示全部楼层

回复:(haode123)[原创]哪位高手帮一下!关于优化工...

先把参数给一下
 楼主| 发表于 2006-5-20 16:55 | 显示全部楼层

传错了,原函数应该见如下:

<P>function [f]=fun_zheng(x)<BR>[qz,qf]=weibull_plot_double('E:\data\pd\hunhe\fengzhi.txt',0);<BR>qz=qz(find(qz&gt;0));<BR>f=-sum(log(x(5)*(x(1)/x(2))*(qz./x(2)).^(x(1)-1).*exp(-(qz./x(2)).^x(1))))-sum(log((1-x(5))*(x(3)/x(4))*(qz./x(4)).^(x(3)-1).*exp(-(qz./x(4)).^x(3))));<BR></P>
 楼主| 发表于 2006-5-20 17:01 | 显示全部楼层

回复:(haode123)传错了,原函数应该见如下:

目标函数中的qz参数是一列试验数据.<BR>
 楼主| 发表于 2006-5-20 17:07 | 显示全部楼层

回复:(happy)回复:(haode123)[原创]哪位高手帮一...

E:\data\pd\hunhe\fengzhi.txt<br>见文件<br><br>file为文件路径file=‘E:\data\pd\hunhe\fengzhi.txt’<br>b10,b20要求正数就可以<br>p0为在0到1范围内的值,在上述中可取0.1<br>
[此贴子已经被作者于2006-5-20 17:09:44编辑过]

发表于 2006-5-20 19:19 | 显示全部楼层
你FMINCON函数不对,非线形约束的M文件写错了.
 楼主| 发表于 2006-5-20 20:06 | 显示全部楼层

回复:(YooYo)你FMINCON函数不对,非线形约束的M文件...

哪里错了请指点
 楼主| 发表于 2006-5-20 20:46 | 显示全部楼层
<P>哪里错了能指点一下吗?</P>
发表于 2006-5-25 19:23 | 显示全部楼层
<P>fmincon函数,对目标函数与约束条件有什么具体要求???比如说连续,可微等</P>
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-25 15:29 , Processed in 0.056600 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表