leiqz 发表于 2006-4-26 17:47

求助,如何用matlab实现指数拟合?

有这样一组数据:
x=;
y=
打算用指数函数进行拟合。
拟合方程为:y=a1+a2*exp(-a3*x)不知程序应该怎样写?请指点一下,万分感谢了。

[ 本帖最后由 xinyuxf 于 2007-7-22 21:37 编辑 ]

suffer 发表于 2006-4-27 10:03

回复:(leiqz)求助,如何用matlab实现指数拟合?急!...

两边取对数,然后再作拟合
[此贴子已经被作者于2006-4-27 10:03:14编辑过]

sffei 发表于 2006-4-27 10:45

用cftool工具

leiqz 发表于 2006-4-27 12:45

我知道思路是两边取对数,但是不知道该如何写程序,能否请详细讲解一下。谢谢了。

ericlin 发表于 2006-4-27 15:00

最小二乘拟合

fun=inline('a(1)+a(2)*exp(-a(3)*x)','a','x');<BR>x=;<BR>y=;<BR>a=lsqcurvefit(fun,,x,y)<BR>

leiqz 发表于 2006-4-29 03:32

请问初始值(0,0,0)是如何取的?

dingd 发表于 2006-4-29 20:44

用1stOpt,连初值都不需要,拟合能力及效果却是No.1

happy 发表于 2006-4-29 20:56

回复:(leiqz)求助,如何用matlab实现指数拟合?急!...

这个函数用去对数的办法好像做不了<BR><BR>LSQCURVEFIT的初始值一般需要结合具体的物理意义给出<BR>一直没找到一个比较通用的方法,很容易陷入局部最优

leiqz 发表于 2006-4-30 01:25

对啊,我现在处理的一组数据就陷入了局部最优,该怎么解决呢?<BR>7楼的楼主提到的1stOpt这个也是个软件吗?我没听说过,有谁用过的能不能说的详细些。谢谢各位了。

happy 发表于 2006-4-30 16:55

回复:(leiqz)求助,如何用matlab实现指数拟合?急!...

1stOpt是七维高科有限公司(7D-Soft High Technology Inc.)独立开发,拥有完全自主知识产权的一套数学优化分析综合工具软件包。在非线性回归,曲线拟合,非线性复杂工程模型参数估算求解等领域傲视群雄,首屈一指,居世界领先地位。除去简单易用的界面,其计算核心是基于七维高科有限公司科研人员十数年的革命性研究成果【通用全局优化算法】(Universal Global Optimization - UGO),该算法之最大特点是克服了当今世界上在优化计算领域中使用迭代法必须给出合适初始值的难题,即用户勿需给出参数初始值,而由1stOpt随机给出,通过其独特的全局优化算法,最终找出最优解。以非线性回归为例,目前世界上在该领域最有名的软件工具包诸如OriginPro,Matlab,SAS,<BR>SPSS,DataFit,GraphPad,TableCurve2D,TableCurve3D等,均需用户提供适当<BR>的参数初始值以便计算能够收敛并找到最优解。如果设定的参数初始值不当则计算难以收敛,其结果是无法求得正确结果。而在实际应用当中,对大多数用户来说,给出(猜出)恰当的初始值是件相当困难的事,特别是在参数量较多的情况下,更无异于是场噩梦。而1stOpt凭借其超强的寻优,容错能力,在大多数情况下(大于90%),从任一随机初始值开始,都能求得正确结果。<BR><BR>这是他们自己的宣传

leiqz 发表于 2006-5-12 03:58

针对这个例子,用1stOpt 该如何编程呢?

dingd 发表于 2006-6-16 15:30

<P>1stOpt不用编程,也不用初值,代码很容易懂,如下:<BR>*********************<BR>Function y=a1+a2*exp(-a3*x);<BR>Data;<BR>x y<BR>0.01 0.167<BR>0.05 0.721<BR>0.1 1.330<BR>0.15 1.676<BR>0.2 1.854<BR>0.25 1.921<BR>0.28 1.932<BR>0.3 1.937<BR>0.35 1.934<BR>0.4 1.935<BR>0.45 1.935<BR>0.5 1.935<BR>*********************<BR><BR>结果:<BR>均方差(RMSE): 0.0472795944335609<BR>残差平方和(SSE): 0.0268243205976241<BR>相关系数(R): 0.996411149843505<BR>相关系数之平方(R^2): 0.992835179532457<BR><BR>参数 最佳估算<BR>---------- -------------<BR>a1          1.98162944954066<BR>a2          -2.10382646876237<BR>a3          11.9660230816888</P>

xuebx 发表于 2006-6-16 15:56

支持一下

huright 发表于 2008-4-9 22:13

_______-- --------matlanb拟合结果
General model:
       f_tiao(x) = a+b*exp(-c*x)
   Coefficients (with 95% confidence bounds):
       a =       1.982(1.923, 2.041)
       b =      -2.104(-2.25, -1.957)
       c =       11.97(10.07, 13.86)
————————————————不过好像没有1opt功能强大
页: [1]
查看完整版本: 求助,如何用matlab实现指数拟合?