关于MMA洛仑兹非线性拟合的问题
mathematica吧
全部回复
仅看楼主
吧务
level 11
situxuming 楼主
处理一些荧光光谱的数据,得到的光谱图如下:
现在我需要对曲线图里两个峰值进行洛仑兹非线性拟合。因为数据较多,Origin里面貌似也没有批量进行多峰拟合的功能,就想到用Mathematica编程来实现。首先尝试了一个峰值的拟合的情况,下图是Origin里面的单峰洛仑兹非线性拟合的结果:
下面我在MMA中对宽峰进行拟合,
NonlinearModelFit[data8, y0 + 2 A/Pi w/(4 (x - xc)^2 + w^2), {{y0, 1154.}, {A, 1573.}, {w, .02}, {xc, 1.50}}, x]
其中的拟合洛仑兹函数直接就是从Origin里面得到的,但是出现这么一个错误,说在给出的初始值处计算得到的函数值不是长度为1024的实数列表,但是从错误信息里给出的这个列表,点了下确实就是1024个数据。
对于NonlinearModelFit这个函数的具体运行过程也不是太明白。可有对MMA拟合比较在行的指点一二?还在对这个函数研究中。。。
2012年11月29日 04点11分 1
level 7
你能把data分享到百度网盘给大家看看么?我以前做过一段时间的拟合,可以试试能不能做出来。
2012年11月29日 04点11分 2
[无效] http://pan.baidu.com/share/link?shareid=131143&uk=1661347987[$1] 数据在上面的链接,这是对应上面那幅图的数据。你有时间帮忙看看,先谢过了![Love]
2012年11月29日 05点11分
回复 situxuming :电脑昨日悲剧,目前尚未恢复,没法试验,不过直觉上会不会是某种低级错误?仔细核对过相关语法了吗?
2012年11月29日 06点11分
level 7
我已经知道问题所在了,做出来的结果跟origin一样。
2012年11月29日 06点11分 3
level 7
你的数据的第255个数据有问题
这个读进mathematica时是字符而不是数值。这样就出现了你那样的问题
2012年11月29日 06点11分 4
一个非常隐蔽的错误!
2012年11月29日 06点11分
回复 xiaoruilin0507 :嗯,果然是出在这类地方了……
2012年11月29日 07点11分
额。。。原来这样,嗯,果然还是你细心,我也去查看过数据,但粗粗的浏览下,没发现,因为原始数据横坐标是波长,我是在MMA里将其转化为电子伏特再导出的,没想到这个导出数据的过程出错了。。。多谢了!
2012年11月29日 08点11分
再查看了下原始数据,原始数据第255个是865,我MMA里是进行1240/865的转换,这才出现这个问题~没想到原始光谱数据还正好能凑到一个整数。。。[大惊]
2012年11月29日 08点11分
1