24小时热门版块排行榜    

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

zyugiec

金虫 (正式写手)

[求助] matlab如何编写共享参数拟合程序

请问如何用matlab软件编写共享参数拟合(两个函数拟合的参数值要相同),同时还要求限定参数大于0
以下是用1stopt软件编写的,但由于要1.5以上版本才能运行共享参数模型,故只能放弃,想改用matlab软件运行。有没有哪位虫子知道?望能告之,非常感谢!悬赏20金币,聊表谢意!

Parameter k1[0,],k2[0,],k3[0,];
SharedModel;
Variable t,M,G;
Function M=50*k1/(k3-(k1+k2))*(exp(-(k1+k2)*t)-exp(-k3*t)); G=50-M-50*exp(-(k1+k2)*t);
Data;
0        0        0
3        2.288        4.035
7        2.236        6.097
12        2.283        7.961
24        2.26        10.426
30        2.273        11.295
36        2.315        12.35
48        2.25        13.201
60        2.276        14.576
72        2.317        15.043
回复此楼

» 收录本帖的淘帖专辑推荐

大杂烩 film

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
zyugiec: 金币+10, 有帮助 2012-04-16 13:25:19
初值可能不太合适,你根据经验调一下。
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
3楼2012-04-15 09:45:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
cenwanglai: 金币+3, 谢谢回复~ 2012-04-15 17:57:16
A=[3        2.288        4.035
7        2.236        6.097
12        2.283        7.961
24        2.26        10.426
30        2.273        11.295
36        2.315        12.35
48        2.25        13.201
60        2.276        14.576
72        2.317        15.043];
t=A(:,1);y1=A(:,2);y2=A(:,3);
F=@(k,t)[50*k(1)/(k(3)-(k(1)+k(2)))*(exp(-(k(1)+k(2))*t)-exp(-k(3)*t)); 50-...
    (50*k(1)/(k(3)-(k(1)+k(2)))*(exp(-(k(1)+k(2))*t)-exp(-k(3)*t)))-50*exp(-(k(1)+k(2))*t)];
[X,RESNORM,RESIDUAL,EXITFLAG,OUTPUT,LAMBDA] = lsqcurvefit(F, [1.22 0.08 3.05], t,[y1;y2],[0 0 0],[],[])

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

The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
2楼2012-04-15 09:44:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyugiec

金虫 (正式写手)

送鲜花一朵
引用回帖:
2楼: Originally posted by dbb627 at 2012-04-15 09:44:04:
A=;
t=A(:,1);y1=A(:,2);y2=A(:,3);
F=@(k,t);
= lsqcurvefit(F, , t,,,[],[])

初始值在哪改? 是改这3个吗?[1.22 0.08 3.05]??
还有如何看拟合值?谢谢!
4楼2012-04-16 13:24:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyugiec

金虫 (正式写手)

引用回帖:
3楼: Originally posted by dbb627 at 2012-04-15 09:45:34:
初值可能不太合适,你根据经验调一下。

如何限定初始值范围,我要求大于0
5楼2012-04-16 13:33:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见