| 查看: 1801 | 回复: 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 |
» 猜你喜欢
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
新西兰Robinson研究所招收全奖PhD
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有88人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
笼目材料中量子自旋液体基态的证据
已经有0人回复
数学教学论硕士可以读数学物理博士吗?
已经有0人回复
德国亥姆霍兹Hereon中心汉堡分部招镁合金腐蚀裂变SCC课题方向2026公派博士生
已经有4人回复
澳门大学 应用物理及材料工程研究院 潘晖教授课题组诚招博士后
已经有11人回复
求助NH4V4O10晶体的CIF文件
已经有0人回复
英国全奖博士招聘-深度学习与量子物理
已经有0人回复
间接带隙半导体有效质量求助
已经有0人回复
曾经落伍了
铁杆木虫 (职业作家)
- 应助: 0 (幼儿园)
- 金币: 16286.8
- 散金: 2541
- 红花: 6
- 帖子: 3320
- 在线: 575.9小时
- 虫号: 4078713
- 注册: 2015-09-17
- 性别: GG
- 专业: 机械动力学
2楼2021-09-15 00:45:41
hzlhm
至尊木虫 (著名写手)
- 应助: 387 (硕士)
- 金币: 17800.5
- 红花: 53
- 帖子: 2879
- 在线: 605.9小时
- 虫号: 1517335
- 注册: 2011-11-30
- 性别: GG
- 专业: 常微分方程与动力系统

3楼2021-09-15 22:37:40
我无耻又无赖
木虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 1184.9
- 散金: 500
- 帖子: 1402
- 在线: 224小时
- 虫号: 5857479
- 注册: 2017-03-06
- 专业: 化工热力学和基础数据
4楼2021-09-15 23:19:45
我无耻又无赖
木虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 1184.9
- 散金: 500
- 帖子: 1402
- 在线: 224小时
- 虫号: 5857479
- 注册: 2017-03-06
- 专业: 化工热力学和基础数据
5楼2021-09-15 23:26:36
hzlhm
至尊木虫 (著名写手)
- 应助: 387 (硕士)
- 金币: 17800.5
- 红花: 53
- 帖子: 2879
- 在线: 605.9小时
- 虫号: 1517335
- 注册: 2011-11-30
- 性别: GG
- 专业: 常微分方程与动力系统
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
独孤神宇: 金币+2, 鼓励交流 2021-09-17 07:49:14
我无耻又无赖: 金币+100, ★★★很有帮助 2021-09-17 12:49:15
独孤神宇: 金币+2, 鼓励交流 2021-09-17 07:49:14
我无耻又无赖: 金币+100, ★★★很有帮助 2021-09-17 12:49:15
|
将 f=100*sum(abs((yexp-ycal)./(yexp)))./n 改为 f=100*sum(abs((yexp-ycal).^2./(yexp)))./n; 使用全局变量 global xexp yexp T w n R 增加一个约束条件函数 mycon(k) 123.jpg |
» 本帖已获得的红花(最新10朵)

6楼2021-09-16 21:07:22
dingd
铁杆木虫 (职业作家)
- 计算强帖: 4
- 应助: 1641 (讲师)
- 金币: 15037.3
- 散金: 101
- 红花: 234
- 帖子: 3410
- 在线: 1223.7小时
- 虫号: 291104
- 注册: 2006-10-28
【答案】应助回帖
★ ★
感谢参与,应助指数 +1
独孤神宇: 金币+2, 鼓励交流 2021-09-17 07:48:58
感谢参与,应助指数 +1
独孤神宇: 金币+2, 鼓励交流 2021-09-17 07:48:58
|
如果目标函数是:f=100*sum(abs((yexp-ycal)./(yexp)))./n Objective Function (Min.): 1.69202022605523 k1: -3939.42871188215 k2: 10917.2246492583 k3: 25148.0927593124 k4: 70773.8809002039 k5: 128449.97394725 k6: 3.44491723177077E19 k7: 0.899999999164183 k8: 0.10000000000003 k9: 0.242672683467615 如果目标函数是: f=100*sum(sqr((yexp-ycal)./(yexp)))./n; Objective Function (Min.): 0.0437976590375771 k1: -3953.62624489904 k2: 10934.6496916492 k3: 23392.8184616025 k4: 69011.9494278635 k5: 132986.496346197 k6: 8.50638781047333E15 k7: 0.899999999999986 k8: 0.100000000001972 k9: 0.247180632282027 |
» 本帖已获得的红花(最新10朵)
7楼2021-09-16 22:13:07
我无耻又无赖
木虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 1184.9
- 散金: 500
- 帖子: 1402
- 在线: 224小时
- 虫号: 5857479
- 注册: 2017-03-06
- 专业: 化工热力学和基础数据
8楼2021-09-17 12:47:54
我无耻又无赖
木虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 1184.9
- 散金: 500
- 帖子: 1402
- 在线: 224小时
- 虫号: 5857479
- 注册: 2017-03-06
- 专业: 化工热力学和基础数据
9楼2021-09-17 13:11:22
dingd
铁杆木虫 (职业作家)
- 计算强帖: 4
- 应助: 1641 (讲师)
- 金币: 15037.3
- 散金: 101
- 红花: 234
- 帖子: 3410
- 在线: 1223.7小时
- 虫号: 291104
- 注册: 2006-10-28
10楼2021-09-17 17:37:45












回复此楼
我无耻又无赖