24小时热门版块排行榜    

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

loopool5358

银虫 (正式写手)

[求助] 想利用最小二乘法对参数进行非线性拟合。哪种方式快捷哪?

如题。是利用Fortran自己编程,还是Matlab,还是别的手段哪?
做这个,也只是验证文献中的方法。
计算公式如下图所示。
其中,I是因变量,eta是自变量。参数,Imax,K1,a,K2,Km是待拟合参数。
公式中,f是常数为,38.92。S也是常量。2.
测试数据见IV.txt。其中第一列为I值,第二列为V值。想利用最小二乘法对参数进行非线性拟合。哪种方式快捷哪?
未命名2.JPG
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : IV.txt
  • 2013-06-21 19:02:21, 684 bytes
  • 附件 2 : 未命名2.JPG
  • 2013-06-21 19:03:23, 11.35 K

» 猜你喜欢

坚持!
已阅   回复此楼   关注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的回帖
查看全部 18 个回答

loopool5358

银虫 (正式写手)

写错了,第二列是eta。
坚持!
2楼2013-06-21 19:05:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walk1997

金虫 (著名写手)

给的数据是不是有问题
你看倒数2,3,4 , eta都是完全相等的, I 却是相差很大
同样 倒数1 和倒数5 也是如此
是一一对应的函数么? 相同的x对不同的y ?  是这样么
4楼2013-06-21 22:31:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

loopool5358

银虫 (正式写手)

是一一对应的哪。
坚持!
5楼2013-06-21 23:13:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见