24小时热门版块排行榜    

查看: 1958  |  回复: 12
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

我无耻又无赖

木虫 (著名写手)

[求助] matlab全局优化参数 已有2人参与

小弟在用matlab优化参数的时候遇到了一个问题,我用的是fmincon函数,但是因为选不到合适的初值所以得到的结果不是很满意,所以想着用全局优化的算法来试一下,奈何不太会,希望论坛里的大佬们看一下能不能解决这个问题。我直接把程序复制到下面了
clear all
clc
data=[288.05 0.000257 0.3003
293.05 0.000274 0.3003
298.2 0.000281 0.3003
303.25 0.000294 0.3003
308.15 0.000305 0.3003
313.25 0.000326 0.3003
318.2 0.000345 0.3003
323.15 0.00039 0.3003
288.05 0.000493 0.3995
293.05 0.00051 0.3995
298.2 0.000532 0.3995
303.25 0.000562 0.3995
308.15 0.00061 0.3995
313.25 0.000641 0.3995
318.2 0.000698 0.3995
323.15 0.000845 0.3995
288.05 0.000877 0.501
293.05 0.00092 0.501
298.2 0.00099 0.501
303.25 0.00115 0.501
308.15 0.00127 0.501
313.25 0.00139 0.501
318.2 0.00157 0.501
323.15 0.00189 0.501
288.05 0.0016 0.5998
293.05 0.00172 0.5998
298.2 0.00196 0.5998
303.25 0.00232 0.5998
308.15 0.00252 0.5998
313.25 0.00281 0.5998
318.2 0.0032 0.5998
323.15 0.00358 0.5998
288.05 0.00293 0.7009
293.05 0.00309 0.7009
298.2 0.00357 0.7009
303.25 0.00424 0.7009
308.15 0.00474 0.7009
313.25 0.00535 0.7009
318.2 0.00611 0.7009
323.15 0.00711 0.7009
288.05 0.0048 0.8003
293.05 0.00548 0.8003
298.2 0.00638 0.8003
303.25 0.0078 0.8003
308.15 0.00863 0.8003
313.25 0.00988 0.8003
318.2 0.0112 0.8003
323.15 0.0128 0.8003
288.05 0.0103 0.8999
293.05 0.0112 0.8999
298.2 0.0121 0.8999
303.25 0.014 0.8999
308.15 0.0152 0.8999
313.25 0.0173 0.8999
318.2 0.0193 0.8999
323.15 0.022 0.8999];

T=data(:,1);        
xexp=data(:,2);
w=data(:,3);

deltaH=46266;%熔融焓
R=8.314;
Tm=532.34;%熔点
yexp=exp((deltaH./(R.*T)).*(T./Tm-1)-log(xexp));

n=size(T,1);
k0=[-3125.70317518255,-2378.98766584565,5092.47952427953,-718.563001024490,-1495.43799248924,-1965.61341412590,0.899991420305235,0.100010845691102,0.219058309329965];
lb=[-inf -inf -inf -inf -inf -inf 0.1 0.1 0.1];
ub=[inf inf inf inf inf inf 0.9 0.9 0.9];
[k,fval,flag] = fmincon(@myfun,k0,[],[],[],[],lb,ub,[],[],xexp,yexp,T,w,n,R);
display(fval);
display(k);

function f = myfun(k,xexp,yexp,T,w,n,R)
%a12=k(1)
%a21=k(2)
%b12=k(3)
%b21=k(4)
%c12=k(5)
%c21=k(6)
%o=k(7)
%p=k(8)
%q=k(9)
tao12=k(1)./(R*T);
tao21=k(2)./(R*T);
tao13=k(3)./(R*T);
tao31=k(4)./(R*T);
tao23=k(5)./(R*T);
tao32=k(6)./(R*T);
G12=exp(-k(7).*tao12);
G21=exp(-k(7).*tao21);
G23=exp(-k(8).*tao23);
G32=exp(-k(8).*tao32);
G13=exp(-k(9).*tao13);
G31=exp(-k(9).*tao31);
x2=(1-xexp).*w;
x3=(1-xexp).*(1-w);
temp1=x2.*G21+x3.*G32;
temp2=tao21.*G21.*x2+tao31.*G31.*x3;
temp3=(xexp+x2.*G21+x3.*G31).^2;
temp4=tao12.*G12.*(x2.^2);
temp5=G12.*G32.*x2.*x3.*(tao12-tao32);
temp6=(x2+xexp.*G12+x3.*G32).^2;
temp7=tao13.*G13.*(x3.^2);
temp8=G13.*G23.*x2.*x3.*(tao13-tao23);
temp9=(x3+x2.*G23+xexp.*G13).^2;
lngamma1=((temp1.*temp2)./temp3)+((temp4+temp5)./temp6)+((temp7+temp8)./temp9);
ycal=exp(lngamma1);
f=100*sum(abs((yexp-ycal)./(yexp)))./n;
end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我无耻又无赖

木虫 (著名写手)

送红花一朵
引用回帖:
3楼: Originally posted by hzlhm at 2021-09-15 22:37:40
控制误差的表达式,
f=100*sum(abs((yexp-ycal)./(yexp)))./n;
可能有问题
因为控制误差的表达式不同,得到的结果也不同。

主要的目的是让yexp和ycal更接近,所以用了个相对误差的衡量方法,之前拟合过挺多数据,总的相对误差达到5以下差不多就能用了,现在的主要问题就是用fmincon函数,初值选取的不合适的话,相对误差10以下都很难达到。
4楼2021-09-15 23:19:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

曾经落伍了

铁杆木虫 (职业作家)

★ ★
独孤神宇: 金币+2, 鼓励交流 2021-09-15 08:37:52
用遗传算法试试

发自小木虫Android客户端
2楼2021-09-15 00:45:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hzlhm

至尊木虫 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
独孤神宇: 金币+2, 鼓励交流 2021-09-16 20:51:23
控制误差的表达式,
f=100*sum(abs((yexp-ycal)./(yexp)))./n;
可能有问题
因为控制误差的表达式不同,得到的结果也不同。

» 本帖已获得的红花(最新10朵)

QQ:2120156492
3楼2021-09-15 22:37:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我无耻又无赖

木虫 (著名写手)

引用回帖:
2楼: Originally posted by 曾经落伍了 at 2021-09-15 00:45:41
用遗传算法试试

谢谢,我试一试
5楼2021-09-15 23:26:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿上海交大生物与医药专硕324分,求调剂 +6 jiajunX 2026-03-22 6/300 2026-03-25 23:05 by licg0208
[考研] 303求调剂 +6 蓝山月 2026-03-25 6/300 2026-03-25 22:47 by 418490947
[考研] 312求调剂 +5 上岸吧ZJY 2026-03-22 7/350 2026-03-25 22:20 by 544594351
[考研] 化学调剂一志愿上海交通大学336分-本科上海211 +3 小鱼爱有机 2026-03-25 3/150 2026-03-25 20:13 by qingfeng258
[考研] 材料学硕333求调剂 +4 北道巷 2026-03-24 4/200 2026-03-25 14:16 by mapenggao
[考研] 0854电子信息求调剂 +7 α____ 2026-03-22 9/450 2026-03-25 13:37 by α____
[考研] 282求调剂 +3 wcq131415 2026-03-24 3/150 2026-03-25 12:16 by userper
[考研] 311求调剂 +3 冬十三 2026-03-24 3/150 2026-03-24 21:31 by peike
[考研] 300分,材料,求调剂,英一数二 +5 超赞的 2026-03-24 5/250 2026-03-24 21:07 by 星空星月
[考研] 调剂 +4 13853210211 2026-03-24 4/200 2026-03-24 19:44 by ms629
[考研] 306求0703调剂一志愿华中师范 +10 纸鱼ly 2026-03-21 11/550 2026-03-24 17:22 by qingfeng258
[考研] 080500求调剂 +3 zzzzfan 2026-03-24 3/150 2026-03-24 16:38 by barlinike
[考研] 291求调剂 +3 HanBeiNingZC 2026-03-24 3/150 2026-03-24 16:34 by barlinike
[考研] 一志愿北京化工大学材料与化工 264分各科过A区国家线 +3 哈哈157349 2026-03-21 3/150 2026-03-24 14:11 by zhyzzh
[考研] 317求调剂 +12 申子申申 2026-03-19 18/900 2026-03-22 22:23 by luoyongfeng
[基金申请] 山东省面上项目限额评审 +4 石瑞0426 2026-03-19 4/200 2026-03-22 08:50 by Wei_ren
[考研] 求调剂 +3 .m.. 2026-03-21 4/200 2026-03-21 16:25 by barlinike
[考研] 一志愿苏州大学材料求调剂,总分315(英一) +5 sbdksD 2026-03-19 5/250 2026-03-20 22:10 by luoyongfeng
[考研] 329求调剂 +9 想上学吖吖 2026-03-19 9/450 2026-03-20 22:01 by luoyongfeng
[考研] 261求B区调剂,科研经历丰富 +3 牛奶很忙 2026-03-20 4/200 2026-03-20 19:34 by JourneyLucky
信息提示
请填处理意见