24小时热门版块排行榜    

查看: 2173  |  回复: 17

walk1997

金虫 (著名写手)

引用回帖:
8楼: Originally posted by loopool5358 at 2013-06-22 08:58:22
另外,需要说明的是,这几个待拟合参数的都有物理意义,就是都得大于零了。

加了这个约束进行拟合 效果也不是很理想
画出来的图看着还可以 但是参数实际的标准误差很大
而且拟合结果对第6,7个数据点比较敏感
感觉还是提供的数据有些问题
不知道是否如此?
11楼2013-06-22 10:35:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

loopool5358

银虫 (正式写手)

引用回帖:
10楼: Originally posted by walk1997 at 2013-06-22 10:07:00
另外 你看下 第六行的数据
这数据很突然变大 马上又下降...不觉得奇怪么
呵呵 拟合了下 总感觉有问题。。。。...

非常感谢您的热心
再者,模型和数据都是从文献中获得,只是想验证一下拟合过程。
我觉得第六个和第七个点的数据差别不算大啊。
想问您,1)用什么方法进行拟合的。
2)即使拟合结果不好,能否把结果告知哪。
坚持!
12楼2013-06-22 11:10:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walk1997

金虫 (著名写手)

用的mathematica 比较偷懒 建议看下拟合参数是不是还有其他限制(比如是不是只要某个局部最小的拟合)
Clear["Global`*"];
SetDirectory[NotebookDirectory[]];
test = Import["IV.txt", "Data"];
f = 38.92;
S = 1;
re = NonlinearModelFit[SetAccuracy[test, 17],
   Imax*( 1 - Exp[-f*\[Eta]]) /(K1*Exp[-(1 - \[Alpha]) f*\[Eta]] +
       K2*Exp[-f*\[Eta]] + KM/S + 1), {Imax, K1, K2,
    KM, \[Alpha]}, {\[Eta]}, Method -> NMinimize];
re[{"ParameterTable"}]
re = NonlinearModelFit[
   SetAccuracy[test,
    17], {Imax*(
       1 - Exp[-f*\[Eta]]) /(K1*Exp[-(1 - \[Alpha]) f*\[Eta]] +
        K2*Exp[-f*\[Eta]] + KM/S + 1), Imax > 0, K1 > 0, K2 > 0,
    KM > 0, \[Alpha] > 0}, {Imax, K1, K2, KM, \[Alpha]}, {\[Eta]},
   Method -> NMinimize];
re[{"ParameterTable"}]
Print[Show[ListPlot[SetAccuracy[test, 17]],
   Plot[Normal[re], {\[Eta], 0, 0.35}]]];
test = Delete[test, {{5}, {6}, {7}}];
re = NonlinearModelFit[
   SetAccuracy[test,
    17], {Imax*(
       1 - Exp[-f*\[Eta]]) /(K1*Exp[-(1 - \[Alpha]) f*\[Eta]] +
        K2*Exp[-f*\[Eta]] + KM/S + 1), Imax > 0, K1 > 0, K2 > 0,
    KM > 0, \[Alpha] > 0}, {Imax, K1, K2, KM, \[Alpha]}, {\[Eta]},
   Method -> NMinimize];
re[{"ParameterTable"}]
Print[Show[ListPlot[SetAccuracy[test, 17]],
   Plot[Normal[re], {\[Eta], 0, 0.35}]]];
-------------------------------------
结果,约束在所有参数都大于0的情况
        Estimate        Standard Error        t-Statistic        P-Value
Imax        2.99146        17.0319        0.175639        0.864466
K1        18.7077        3.02763        6.179        0.000162926
K2        0.        122.524        0.        1.
KM        1.1016*10^-6        5.6898        1.93611*10^-7        1.
\[Alpha]        0.153136        0.566881        0.270138        0.793146

--------------------------
去掉6,7点的拟合
        Estimate        Standard Error        t-Statistic        P-Value
Imax        3.34359        0.590046        5.66666        0.00129905
K1        1.71615        1.76284        0.973518        0.367893
K2        22.5157        0.229166        98.2506        7.49176*10^-11
KM        0.107593        0.204174        0.526967        0.617122
\[Alpha]        0.579124        0.159921        3.62132        0.0110797
13楼2013-06-22 12:06:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walk1997

金虫 (著名写手)

btw: 你的原始数据
0.0008421052631579        0.0098314606741573
0.0538947368421053        0.5997191011235961
0.0842105263157895        1.3960674157303401
0.1204210526315790        2.1039325842696601
0.15410526315789499        2.70365168539326017
0.20042105263157900        3.0379213483146099
0.2526315789473680        2.8609550561797801
0.2686315789473680        2.9789325842696601
0.2863157894736840        2.9789325842696601
0.2981052631578950        2.9887640449438200
0.3149473684210530        2.9985955056179798
0.3351578947368420        2.9985955056179798
0.3553684210526320        2.9985955056179798
0.3747368421052630        2.9887640449438200

--------------
第6行是3.03 第7行是2.86  和前后对比下 这结果不很奇怪么
不是实验误差的话 这区域附近应该有拐点 可以好好更密集点测量看看
14楼2013-06-22 12:09:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

loopool5358

银虫 (正式写手)

引用回帖:
14楼: Originally posted by walk1997 at 2013-06-22 12:09:21
btw: 你的原始数据
0.0008421052631579        0.0098314606741573
0.0538947368421053        0.5997191011235961
0.0842105263157895        1.3960674157303401
0.1204210526315790        2.1039325842696601
0.15410526315789499        2.70 ...

非常感谢您啊
原文献说的是:minimization was done using non-linear least squares estimation。minimization was performed using the quasi-Newton as implemented in Mathcad。
我的理解是,采用非线性最小二乘法获得参数拟合,在拟合过程中采用近似牛顿方法。
不过,您列出来的值,和文献中的值相差比较大。也可能是,我是从文献中取值的,所以有些误差在里面的。
我也下载您说的软件看看。
坚持!
15楼2013-06-22 14:05:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

icecream8508

金虫 (著名写手)

引用回帖:
14楼: Originally posted by walk1997 at 2013-06-22 12:09:21
btw: 你的原始数据
0.0008421052631579        0.0098314606741573
0.0538947368421053        0.5997191011235961
0.0842105263157895        1.3960674157303401
0.1204210526315790        2.1039325842696601
0.15410526315789499        2.70 ...

还有,我只是想做个带约束的,非线性最小二乘的拟合。您觉得我用哪个数学软件比较好?
16楼2013-06-22 14:25:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walk1997

金虫 (著名写手)

引用回帖:
16楼: Originally posted by icecream8508 at 2013-06-22 14:25:18
还有,我只是想做个带约束的,非线性最小二乘的拟合。您觉得我用哪个数学软件比较好?...

我个人是喜欢用mathematica 因为有时候有要解析计算的需要
不是特别追求速度或大型数值计算或应用特定包等的话
我觉得做一般的工作 mathematica足以胜任 内部提供的功能很有效率和强大  上手也比较快
上面的原始数据是直接下载你的附件的 可能最后几位有点小差异 但是整体性质肯定不变 会不会你上传的数据不对?
17楼2013-06-22 14:49:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walk1997

金虫 (著名写手)

引用回帖:
16楼: Originally posted by icecream8508 at 2013-06-22 14:25:18
还有,我只是想做个带约束的,非线性最小二乘的拟合。您觉得我用哪个数学软件比较好?...

原文献看来是用MathCAD 你也可以尝试下 应该是更简单的工具软件
18楼2013-06-22 14:50:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 loopool5358 的主题更新
信息提示
请填处理意见