youyouyou 发表于 2010-4-30 15:12:15

曲线拟合难题挑战!

大家来试试这道拟合题,看似简单,要获得最优解,得费点功夫:

拟合公式:y=(p1/(ln(p2/x)))^(x/p3)*p4;
数据:
x=;
y=;

只有四个参数:p1,p2,p3,p4;

wayne 发表于 2010-4-30 23:42:02

不妨先拟合lny与x,然后转换一下参数即可:
==================================
均方差(RMSE): 0.182288776147028
残差平方和(SSE): 0.166145989545907
相关系数(R): 0.999633564182627
相关系数之平方(R^2): 0.999267262640463
决定系数(DC): 0.999267245485938
卡方系数(Chi-Square): 0.0119276948064644
F统计(F-Statistic): 4091.23644223047

参数        最佳估算
----------        -------------
p1                 3.42397340718601
p2                 1.12161772978067
p3                 1.36605251034723
p4                 3.73518630346909

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

No        实测值y        计算值y
1        4.28        4.3436357
2        6.63        6.3367285
3        7.61        7.8806360
4        14.55        14.4974743
5        22.77        22.7792487

youyouyou 发表于 2010-5-1 23:31:30

1:版主的结果还不是最优
2:看结果格式,版主是用1stOpt算的吧?这道题试了很多算法和软件,好像也只有1stOpt能得到最优解,调整参数再试试!

wayne 发表于 2010-5-2 09:53:12

3# youyouyou
上面的只是没有经过转化而已,看来楼主不是问问题的,而是来考人的!!!

我再说一遍,希望能引起你的注意:
不妨先拟合lny与x,然后转换一下参数即可:

==========================
迭代数: 18
计算用时(时:分:秒:微秒): 00:00:02:188
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE): 0.0252922393144814
残差平方和(SSE): 0.00319848684770498
相关系数(R): 0.999992955038696
相关系数之平方(R^2): 0.999985910127023
决定系数(DC): 0.99998589369697
卡方系数(Chi-Square): 0.000220017962007911
F统计(F-Statistic): 212915.881870735

参数        最佳估算
----------        -------------
p4                 3.48285411529893
p3                 1.80947336415573
p1                 6.64698514864872
p2                 1.04731410013328

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

No        实测值y        计算值y
1        4.28        4.2740605
2        6.63        6.6669154
3        7.61        7.5695192
4        14.55        14.5623878
5        22.77        22.7671171

wayne 发表于 2010-5-6 09:00:01

这道题试了很多算法和软件,好像也只有1stOpt能得到最优解,调整参数再试试!
youyouyou 发表于 2010-5-1 23:31 http://bbs.emath.ac.cn/images/common/back.gif
如果用其他的软件拟合,如Mathematica,得到的最优解跟1stOp的t完全一样!

代码如下:data = Transpose[{{0.25, 0.5, 0.6, 0.8, 0.9}, Log /@ {4.28, 6.63, 7.61, 14.55, 22.77}}]sol = FindFit + x (Log - Log - Log])/p3, {p1, p2, p3,p4}, x]返回:{p1 -> 6.64699, p2 -> 1.04731, p3 -> 1.80947, p4 -> 3.48285}

youyouyou 发表于 2010-5-6 11:13:34

试下如下1stOpt代码:
Algorithm = UGO;
Function y=(p1/(ln(p2/x)))^(x/p3)*p4;
Data;
0.25        4.28
0.5        6.63
0.6        7.61
0.8        14.55
0.9        22.77
大概可以20%的概率得到如下最优解(或许还有更好的?):

均方差(RMSE): 0.0691031971654709
残差平方和(RSS): 0.0238762592924497
相关系数(R): 0.99994740186828
相关系数之平方(R^2): 0.999894806503124
决定系数(DC): 0.999894698410577
卡方系数(Chi-Square): 0.00146936589060412
F统计(F-Statistic): 3165.51094014549

参数        最佳估算
----------        -------------
p1        -2.66506487024785
p2        0.146942517410841
p3        -0.0335368642302497
p4        710999.167391225

这个结果用其它软件估计是很难得到的。

wayne 发表于 2010-5-6 15:00:43

这个结果用其它软件估计是很难得到的。

By The Way:
楼主会用哪些软件,在这道题里实际上又用了哪些软件?

youyouyou 发表于 2010-5-6 16:11:53

Origin, Matlab, Mathematica, Maple, Nlreg, DataFit, SigmaPlot, CurveFit...

我所知道的都试过。版主可否再推荐一些?

wayne 发表于 2010-5-6 16:22:09

我在4楼,5楼给的答案莫非不是最优的吗

youyouyou 发表于 2010-5-6 17:16:40

比较一下6楼的结果,4楼,5楼的答案只能算局部最优而非全局最优。
页: [1] 2
查看完整版本: 曲线拟合难题挑战!