| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1171 人关注过本帖
标题:[求助]请教一个约束全局最优化的问题
只看楼主 加入收藏
tahaomei
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-15
收藏
 问题点数:0 回复次数:2 
[求助]请教一个约束全局最优化的问题
问题:

有一组实验数据yexp(n),数据点n=27,数据在exp.xls文件中;
还有一组计算数据ycal(n,m),m为优化参数的个数,m=39,数据在cal.xls文件中;

目标函数为:func=sum[(yexp(i)-ycal(i,j)*x(i))**2] (i=1~m,j=1~n)

其中,sum表示加和,x(i)为需要优化的参数值,且必须满足如下限制条件:

1、等式限制: sum[x(i)]=1.0 (i=1~m)
2、不等式限制: 0.0 <= x(i) <= 1.0 (i=1~m)

问题就是:优化出 x(i),共有m个参数,使得func的值最小。

我尝试用matlab的fmincon解了下,但是达不到满意的收敛精度,我matlab也是刚学,不熟练,还得数值计算高手解答一下,在此先谢过了。

[此贴子已经被作者于2007-8-15 14:37:29编辑过]

搜索更多相关主题的帖子: 全局 最优化 
2007-08-15 14:29
tahaomei
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-15
收藏
得分:0 
需要的数据为:

XgHboAWI.rar (10.14 KB) [求助]请教一个约束全局最优化的问题


2007-08-15 14:36
tahaomei
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-15
收藏
得分:0 
我写的M-file文件如下:

function psd_optimize() % 主程序段
x0=ones(27,1)/27; % 选定的初始点
A=[]; % 线性不等式约束系数矩阵
b=[]; % 线性不等式约束右端向量
Aeq=ones(1,27); % 线性等式约束系数矩阵
beq=[1]; % 线性等式约束右端向量
lb=zeros(27,1); % 向量x的下界
ub=ones(27,1); % 向量x的上界
[x,y]=fmincon(@fobj,x0,A,b,Aeq,beq,lb,ub)

function y=fobj(x) % 子程序段,用以描述目标函数
adsexp=xlsread('exp.xls'); % 读入77K下液氮吸附的实验数据,mg/g
adscal=xlsread('cal.xls'); % 读入77K下液氮在不同孔宽下的计算数据,mg/g
res=adsexp-adscal*x; % 计算残差residue
y=res'*res; % 目标函数=(实验值-计算值*孔宽权重)的平方和

但是,算出来的结果有问题

>> psd_optimize
Warning: Large-scale (trust region) method does not currently solve this type of problem,
using medium-scale (line search) instead.
> In fmincon at 317
In psd_optimize at 9
Optimization terminated: first-order optimality measure less than options.TolFun
and maximum constraint violation is less than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
1 3
2
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

x =

0.0000
-0.0000
1.0000
0.0000
-0.0000
-0.0000
0.0000
0
-0.0000
-0.0000
-0.0000
-0.0000
0.0000
-0.0000
-0.0000
0.0000
0.0000
-0.0000
-0.0000
0.0000
0.0000
-0.0000
-0.0000
-0.0000
0.0000
-0.0000
-0.0000


y =

8.8890e+006


显然,结果没有达到合理的范围,能否帮我看看我的m-file哪里出错了?
2007-08-16 16:01
快速回复:[求助]请教一个约束全局最优化的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036797 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved