24小时热门版块排行榜    

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

zyugiec

金虫 (正式写手)

[求助] matlab如何编写共享参数拟合程序 已有1人参与

各位好,由于盗版的1stopt无法调用sharemodel功能,请问如何用matlab编写此程序
因变量y1和y2和是共享参数k1,k2和k3的。
请赐教!

1stopt编写的语言如下:
Parameters a[0,],k1[0,],k3[0,];
Variable t,y1,y2;
SharedModel;
Function y1=(50/(a-k1))*(a*(1-exp(-k1*t))-k1*(1-exp(-a*t))); y2=50*k1*(k3-a)*50/(k3*(a-k1))*(exp(-k1*t)-exp(-a*t));
Data;
0                0                0
3                5.177        3.205
7                8.335        2.953
12                10.575        2.764
24                11.441        2.212
30                14.645        2.445
36                15.705        2.415
48                15.677        2.167
60                17.529        2.144
72                17.725        1.876
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyugiec

金虫 (正式写手)

引用回帖:
2楼: Originally posted by gooxin at 2016-08-18 23:18:23
1stopt7.0跑出来的结果,有问题站内我。请采纳。
==================
模型公式: y1 = (50/(a-k1))*(a*(1-exp(0-k1*t))-k1*(1-exp(0-a*t)))
          y1 = (50/(0.0084033309045955-322363191667758))*(0.008403 ...

k1值存在一定问题,每次拟合的结果都不一样,其他两个参数倒比较稳定。请问有什么办法吗?
3楼2016-08-22 09:39:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

gooxin

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zyugiec: 金币+20, ★★★很有帮助 2016-08-22 09:38:57
1stopt7.0跑出来的结果,有问题站内我。请采纳。
==================
模型公式: y1 = (50/(a-k1))*(a*(1-exp(0-k1*t))-k1*(1-exp(0-a*t)))
          y1 = (50/(0.0084033309045955-322363191667758))*(0.0084033309045955*(1-exp(0-322363191667758*t))-322363191667758*(1-exp(0-0.0084033309045955*t)))
模型公式: y2 = 50*k1*(k3-a)*50/(k3*(a-k1))*(exp(0-k1*t)-exp(0-a*t))
          y2 = 50*322363191667758*1.064782396E-5*50/(0.00841397872855583*(0.0084033309045955-322363191667758))*(exp(0-322363191667758*t)-exp(0-0.0084033309045955*t))

迭代数: 60
计算用时(时:分:秒:微秒): 00:00:06:411
优化算法: 通用全局优化算法(UGO1)
计算结束原因: 达到收敛判断标准
均方差(RMSE): 2.59320635116301
残差平方和(SSE): 134.494383594244
相关系数(R): 0.949540727213403
相关系数之平方(R^2): 0.901627592636958
修正R平方(Adj. R^2): 0.85408615799387
确定系数(DC): 0.76042613935766
F统计(F-Statistic): 15.4019567906444

参数                  最佳估算
--------------------        -------------
a        0.0084033309045955
k1        322363191667758
k3        0.00841397872855583

====== 结果输出 ======

文件: 数据文件-1
No        目标 y1        计算 y1        目标 y2        计算 y2
1        0        0        0        0
2        5.177        1.24474372221455        3.205        3.0849696839899
3        8.335        2.85633276190374        2.953        2.9829970207315
4        10.575        4.7961149954351        2.764        2.86025806208689
5        11.441        9.13217560988145        2.212        2.58589553043911
6        14.645        11.1416462946358        2.445        2.45874706242545
7        15.705        13.0523113176466        2.415        2.33785048383576
8        15.677        16.5964185923686        2.167        2.11359848858356
9        17.529        19.8005669461762        2.144        1.91085726047507
10        17.725        22.6973660206378        1.876        1.72756343725306
2楼2016-08-18 23:18:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gooxin

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by zyugiec at 2016-08-22 09:39:43
k1值存在一定问题,每次拟合的结果都不一样,其他两个参数倒比较稳定。请问有什么办法吗?...

你的方程不是最简,存在过拟合现象。
但,化为最简后,理论上r2不会变,实际会降低

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

4楼2016-08-23 17:15:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyugiec

金虫 (正式写手)

送红花一朵
引用回帖:
4楼: Originally posted by gooxin at 2016-08-23 17:15:13
你的方程不是最简,存在过拟合现象。
但,化为最简后,理论上r2不会变,实际会降低...

如何化为最简?请告知,谢谢!
5楼2016-08-24 11:14:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见