24小时热门版块排行榜    

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

iceicy99

金虫 (小有名气)

[求助] 求大神用1stopt拟合数据 紧急

各位大神帮我用1stopt拟合下三组数据吧,各种头大中,都不知道往哪个方向解了所以直接给原方程组吧,麻烦各位了

1.A=a*b*C(t)^n
2.dB/dt=c*(b*d*C(t)^n-B)
3.A+B=1200*(e-C(t))-f
4.a+c=1-g
说明:大写的A B C 代表是时间t 的函数 小写的 b n e f g是已知的参数。
a c d是需要求参数
实验数据是与时间t对应的函数值C(t)
自变量是t 应变量是A B C(t),要求的是参数a c d
数据如下
第一组:
b=6476.73 n=0.413 e=14.23 f=11247.4 g=0.6042

t        C(t)
0        0
0.5         1.34
1        1.68
2        2.06
3        2.41
5        2.66
7        2.74
9        2.89
11        2.91


第二组
b=17499.19 n=0.294 e=21.93 f=25779.61 g=0.7938
t        C(t)
0        0
0.5        0.97
1        1.16
2        1.37
3        1.45
5        1.85
7        2.11
9         2.13
11        2.14

第三组

b=19555.81 n=0.261 e=24.23 f=26467.84 g=0.8573

t        C(t)
0        0
0.5         0.73
1        0.89
2        1.16
3        1.35
5        1.68
7        1.87
9         1.95
11        2.00
回复此楼

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

实验方法技巧

» 猜你喜欢

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

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

iceicy99

金虫 (小有名气)

非常感谢,但我先直接复制你的代码,跑一下,显示:没有参数parameters被定义
最后一个方程我对应错了,
第四个方程应该为a+d=1-g (a,d,g为三种组分的比例,和为1)
整理得
C'=(c*(b*d*C^n-(1200*(e-C)-f-a*b*C^n)))/(-1200-a*b*n*C^(n-1))
增加限制条件 a d g为比例因子,你第五点中C初始值设置为0.1太大,设成0.01
代码如下:


parameters a[0,0.3958],c1[0,],d[0,]
Constant b=6476.73, n=0.413, e=14.23, f=11247.4, g=0.6042;
ConstStr d=1-g-a;
Variable t,C;
ODEFunction
C'=(c1*(b*d*C^n-(1200*(e-C)-f-a*b*C^n)))/(-1200-a*b*n*C^(n-1));
Data;
0        0.01
0.5         1.34
1        1.68
2        2.06
3        2.41
5        2.66
7        2.74
9        2.89
11        2.91
跑不动,跑出结果为空白页,我用的是win7 ,专业破解版1.5,运行时是以管理员身份运行的,帮我看看怎么回事,麻烦了
3楼2013-10-14 10:41:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
iceicy99: 金币+30, ★★★★★最佳答案, 非常谢谢 2013-10-14 10:10:54
csgt0: 金币+2, 谢谢 2013-10-15 13:26:34
你的问题似乎不是那么简单地用软件可以直接算的,得先整理模型公式:

1:由公式“A=a*b*C(t)^n”和“A+B=1200*(e-C(t))-f”可得:
    B=1200*(e-C(t))-f-a*b*C(t)^n;       (1)
2:将上面B代入“dB/dt=c*(b*d*C(t)^n-B)”可得:
    dB/dt=c*(b*d*C(t)^n-(1200*(e-C(t))-f-a*b*C(t)^n))   (2)
3:由上面(1)式求dB/dt,得:
    dB/dt=-1200*C'-a*b*n*C^(n-1)*C'          (3)
    其中C'=dC/dt
4:(2)(3)式右边相等,得:
    -1200*C'-a*b*n*C^(n-1)*C' =c*(b*d*C(t)^n-(1200*(e-C(t))-f-a*b*C(t)^n))
    也可写成:
   C'=(c*(b*d*C^n-(1200*(e-C)-f-a*b*C^n)))/(-1200-a*b*n*C^(n-1))  (4)
5:(4)式可作为最终的微分方程拟合公式,用1stOpt求解,代码如下,只是数据第一列t=0时C也为0,会导致公式(4)计算出错(“C^(n-1)”项),故起始C改为0.1
CODE:
Constant b=6476.73, n=0.413, e=14.23, f=11247.4, g=0.6042;
ConstStr c1=1-g-a;
Variable t,C;
ODEFunction
C'=(c1*(b*d*C^n-(1200*(e-C)-f-a*b*C^n)))/(-1200-a*b*n*C^(n-1));
Data;
0        0.1
0.5         1.34
1        1.68
2        2.06
3        2.41
5        2.66
7        2.74
9        2.89
11        2.91

均方差(RMSE):0.125389408179871
残差平方和(SSE):0.125780029469586
相关系数(R): 0.976606061220058
相关系数之平方(R^2): 0.953759398811755
确定系数(DC): 0.947778509408695
F统计(F-Statistic): 114.895226698086

参数                  最佳估算
--------------------        -------------
a        -0.086158084535358
d        0.338137688474233

传递参数(PassParameter):
((1-0.6042-a)): 0.481958084535358
求大神用1stopt拟合数据  紧急
c5.jpg

[ Last edited by dingd on 2013-10-13 at 22:41 ]
2楼2013-10-13 22:40:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

iceicy99

金虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2013-10-13 22:40:20
你的问题似乎不是那么简单地用软件可以直接算的,得先整理模型公式:

1:由公式“A=a*b*C(t)^n”和“A+B=1200*(e-C(t))-f”可得:
    B=1200*(e-C(t))-f-a*b*C(t)^n;       (1)
2:将上面B代入“dB/dt=c*(b*d ...

非常感谢,但我先直接复制你的代码,跑一下,显示:没有参数parameters被定义
最后一个方程我对应错了,
第四个方程应该为a+d=1-g (a,d,g为三种组分的比例,和为1)
整理得
C'=(c*(b*d*C^n-(1200*(e-C)-f-a*b*C^n)))/(-1200-a*b*n*C^(n-1))
增加限制条件 a d g为比例因子,你第五点中C初始值设置为0.1太大,设成0.01
代码如下:


parameters a[0,0.3958],c1[0,],d[0,]
Constant b=6476.73, n=0.413, e=14.23, f=11247.4, g=0.6042;
ConstStr d=1-g-a;
Variable t,C;
ODEFunction
C'=(c1*(b*d*C^n-(1200*(e-C)-f-a*b*C^n)))/(-1200-a*b*n*C^(n-1));
Data;
0        0.01
0.5         1.34
1        1.68
2        2.06
3        2.41
5        2.66
7        2.74
9        2.89
11        2.91
跑不动,跑出结果为空白页,我用的是win7 ,专业破解版1.5,运行时是以管理员身份运行的,帮我看看怎么回事,麻烦了
4楼2013-10-14 10:43:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

老版本或破解版无法进行微分方程运算的。
CODE:
Constant b=6476.73, n=0.413, e=14.23, f=11247.4, g=0.6042;
ConstStr d=1-g-a;
PassParameter d;
//PassParameter d1=d+3+6;
Variable t,C;
ODEFunction
C'=(c1*(b*d*C^n-(1200*(e-C)-f-a*b*C^n)))/(-1200-a*b*n*C^(n-1));
Data;
0        0.01
0.5         1.34
1        1.68
2        2.06
3        2.41
5        2.66
7        2.74
9        2.89
11        2.91

均方差(RMSE):0.584281116229558
残差平方和(SSE):2.73107538225967
相关系数(R): 0.854504288964097
相关系数之平方(R^2): 0.730177579858037
确定系数(DC): -0.133890872662782
F统计(F-Statistic): 5.29151450519206

参数                  最佳估算
--------------------        -------------
c1        1.32523654455355
a        0.0329638406282273

传递参数(PassParameter):
d: 0.362836159371773
求大神用1stopt拟合数据  紧急-1
c3.jpg

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

5楼2013-10-14 11:41:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见