用matlab拟合一组数据 已知拟合函数形式

X=[1 2 3 4 5 6] Y=[0.07049 0.14229 0.287221 0.287221 0.14229 0.07049]
已知拟合的函数为高斯形式:Y=a*exp(-[(X-L/2)/b]^2) 其中L是一个人为给定量,利用matlab程序我想拟合出系数a和b关于L的方程。
请问怎么实现。急急急!谢谢大家了!

第1个回答  2014-12-01

1 使用m文件,程序见附件

调用方式及结果:

X=[1 2 3 4 5 6]; Y=[0.07049 0.14229 0.287221 0.287221 0.14229 0.07049];

>> [fitresult, gof] = createFit_v1(X, Y)


fitresult = 


     General model:

     fitresult(x) = a*exp(-((x-L/2)/b)^2)

     Coefficients (with 95% confidence bounds):

       L =           7  (6.436, 7.564)

       a =      0.3008  (0.2456, 0.3559)

       b =       -1.89  (-2.302, -1.478)


gof = 


           sse: 0.0014

       rsquare: 0.9713

           dfe: 3

    adjrsquare: 0.9522

          rmse: 0.0216



2,直接使用cftool工具箱

追问

谢谢您的回答,我想得到系数a和b关于L的形式,就是把L当做一个未知数,出现在a和b的表达式中,请问怎么实现?

追答

这个你有了表达式:Y=a*exp(-[(X-L/2)/b]^2),然后根据表达式求就可以啦

相似回答