找回密码
 欢迎注册
查看: 42794|回复: 13

[悬赏] 曲线拟合难题挑战!

[复制链接]
发表于 2010-4-30 15:12:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
大家来试试这道拟合题,看似简单,要获得最优解,得费点功夫: 拟合公式:y=(p1/(ln(p2/x)))^(x/p3)*p4; 数据: x=[0.25,0.5,0.6,0.8,0.9]; y=[4.28,6.63,7.61,14.55,22.77]; 只有四个参数:p1,p2,p3,p4;
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-5-1 23:31:30 | 显示全部楼层
1:版主的结果还不是最优 2:看结果格式,版主是用1stOpt算的吧?这道题试了很多算法和软件,好像也只有1stOpt能得到最优解,调整参数再试试!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-6 09:00:01 | 显示全部楼层
这道题试了很多算法和软件,好像也只有1stOpt能得到最优解,调整参数再试试! youyouyou 发表于 2010-5-1 23:31
如果用其他的软件拟合,如Mathematica,得到的最优解跟1stOp的t完全一样! 代码如下:
  1. data = Transpose[{{0.25, 0.5, 0.6, 0.8, 0.9}, Log /@ {4.28, 6.63, 7.61, 14.55, 22.77}}]
复制代码
  1. sol = FindFit[data, Log[p4] + x (Log[p1] - Log[Log[p2] - Log[x]])/p3, {p1, p2, p3,p4}, x]
复制代码
返回:{p1 -> 6.64699, p2 -> 1.04731, p3 -> 1.80947, p4 -> 3.48285}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-5-6 11:13:34 | 显示全部楼层
试下如下1stOpt代码:
  1. Algorithm = UGO[150];
  2. Function y=(p1/(ln(p2/x)))^(x/p3)*p4;
  3. Data;
  4. 0.25 4.28
  5. 0.5 6.63
  6. 0.6 7.61
  7. 0.8 14.55
  8. 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 这个结果用其它软件估计是很难得到的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-6 15:00:43 | 显示全部楼层
这个结果用其它软件估计是很难得到的。
By The Way: 楼主会用哪些软件,在这道题里实际上又用了哪些软件?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-5-6 16:11:53 | 显示全部楼层
Origin, Matlab, Mathematica, Maple, Nlreg, DataFit, SigmaPlot, CurveFit... 我所知道的都试过。版主可否再推荐一些?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-6 16:22:09 | 显示全部楼层
我在4楼,5楼给的答案莫非不是最优的吗
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-5-6 17:16:40 | 显示全部楼层
比较一下6楼的结果,4楼,5楼的答案只能算局部最优而非全局最优。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2025-1-23 23:32 , Processed in 0.025224 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表