大哥,帮帮忙matlab高斯曲线拟合

问题描述:

大哥,帮帮忙matlab高斯曲线拟合
现有两组数据x=1:18
y=[-145,-132,-121,-109,-93,-79,-52,-35,-19,-1,20,45,68,95,115,129,145,150],采用高斯拟合,函数为a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2 求程序代码,只要代码,不用cftool工具
1个回答 分类:综合 2014-12-15

问题解答:

我来补答
你的这组数呈现出直线关系,你怎么能用高斯拟合呢,高斯拟合需要的是基本符合高斯分布的函数.你的数据不能高斯拟合.还有一点就是这样的复杂的拟合,不用cftool,自己编程是很复杂的.
再问: 数据没关系,这只是一部分,全部的数据确实是成高斯分布的,因为我要改变X轴的标注,所以只能用代码,cftool工具不能修改
再答: 你使用cftool工具箱,得到里面的系数后按照系数重新绘制你想要的图就行了。代码实现太复杂了。明白我的意思吗,就是你把a1、b1都求出来以后,再到代码中去,写出这个函数,画图什么的都行的。
再问: 大哥,我是个菜鸟,才开始使用matlab,这是我求取的系数 a1 = 76.79 (-5.219e+015, 5.219e+015) b1 = 22 (-4.914e+022, 4.914e+022) c1 = 0.1337 (-6.571e+021, 6.571e+021) a2 = -5258 (-5539, -4977) b2 = 54.14 (53.8, 54.48) c2 = 12.92 (12.49, 13.34)
再答: 这就行了,前面的那是系数,后面括号里的不用管
再问: 大哥问题是,后面如何做我不会了
再答: 你想干什么你应该清楚啊,你是要求拟合的误差啊,还是好画图比较拟合的效果啊,等等的都行啊
再问: 我想画图比较拟合效果,现在就是代码不会写
再答: x=1:18; y=[-145,-132,-121,-109,-93,-79,-52,-35,-19,-1,20,45,68,95,115,129,145,150]; a1 = 76.79 ; b1 = 22 ; c1 = 0.1337 ; a2 = -5258 ; b2 = 54.14; c2 = 12.92 ; y1=a1*exp(-((x-b1)/c1).^2) + a2*exp(-((x-b2)/c2).^2 ); figure plot(x,y,'-*',x,y1) 看来你是没有一点matlab基础啊
再问: 呵呵,让大哥见笑了,已经画出来了,谢谢大哥了,大哥能不能加你QQ啊
 
 
展开全文阅读
剩余:2000