matlab中如何拟合光滑曲线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中如何拟合光滑曲线相关的知识,希望对你有一定的参考价值。
一连串由实验得到的点 画出图后如何拟合成光滑曲线?
要是你的数据是线性的话,可以用多项式拟合:polyfit(x,y,n) n为所需要拟合多项式的次数,返回值为多项式系数;
若是非线性的话,你得有一个和你绘图曲线吻合的函数模型,然后在这个函数模型基础上求这个函数模型的参数,非线性拟合可以用:
lsqcurefit(fun,x0,xdata,ydata) fun是函数模型,x0是初值;
多元的非线性拟合可以用:nlinfit(x,y,fun,beta0) beta0是初值。
若是知道曲线是几种基础函数的合成的话,可以利用原始的最小二乘法拟合函数,在网上随便找一下最小二乘法的程序m文件,添加进去就能用。追问
请问用polyfit时 如果是二次函数关系 n就等于2吗?
还有 如果我不知道是什么关系 只知道是曲线 用lsqcurefit时 x0初值是什么? 谢谢!
嗯 对的 二次函数就是 n=2;返回的值第一个是最高次的,一次类推;
初值是按经验选的,先是随便填个数就行,然后慢慢调试,看看能否得出好的结果,不行就换个数试试。一般的话随便填个数就能行。
若是不知道函数模型,就只能拟合多项式了,你试试多项式就行了。
1输入数据做数据曲线拟合,当然该有数据。
2添加数据到curve fitting程序这一步就是将你要拟合的数据添加到curve fitting程序中,同时给你拟合的曲线命名。
3选择曲线拟合的方法类型常见的拟合曲线有多项式的、指数的、对数的等等。curve fitting程序提供了很多的方法。你可以根据自己的数据具体选择。
4选择好方法后,按照提供的公式选择具体的选项本文的数据近似为线性的,我们选择多项式拟合的一阶方法。
5拟合结果查看拟合后,curve fitting会给你具体的函数表达式,你可以将他给出的参数的值带入你选择的方法中。
6
结果说明在结果中,不仅可以看到函数的表达式,同时他还给出了95%置信区间的参数值,以及拟合好坏的一些指标,如:
SSE:
R-square:
Adjusted R-square:
RMSE:
7
画出图像虽然在curve fitting程序有自带的图像显示,但是一般最好将拟合结果显示到单独的图像窗口。
8保存结果曲线拟合结束后,你可以保存你的拟合结果。选择你保存的路径即可。
http://jingyan.baidu.com/article/495ba8410b8d5138b30edefd.html 参考技术B 多项式函数拟合:a=polyfit(xdata,ydata,n)
其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入.输出参数a为拟合多项式 的系数
多项式在x处的值y可用下面程序计算.y=polyval(a,x) 参考技术C 实验点呢?
如何用matlab做正弦曲线拟合
我只知道能用polyfit做二项式拟合
比如有一组数据,数据大概是正弦曲线,但每个周期都不一样,应该怎么样做
请不要发这种象一楼一样的不相干的垃圾信息,谢谢
<br>>>cftool
<br>【2】出现对话框,点击data选x和y
<br>【3】creat data set,然后close
<br>【4】点击fitting,在type of type,选Fourier
<br>选择一个合适的即可。
例如:
>> x=0:0.1:pi
>> y=sin(x+x.^2)
>> plot(x,y,'o-')
用非线性回归,得到
得到
General model Sin8:
f(x) =
a1*sin(b1*x+c1) + a2*sin(b2*x+c2) + a3*sin(b3*x+c3) +
a4*sin(b4*x+c4) + a5*sin(b5*x+c5) + a6*sin(b6*x+c6) +
a7*sin(b7*x+c7) + a8*sin(b8*x+c8)
Coefficients (with 95% confidence bounds):
a1 = 4.36 (-2.007e+010, 2.007e+010)
b1 = 1.643 (-1.371e+009, 1.371e+009)
c1 = 0.4803 (-2.517e+009, 2.517e+009)
a2 = 4.282 (-3.806e+006, 3.806e+006)
b2 = 5.715 (-8.181e+004, 8.182e+004)
c2 = -4.306 (-7.305e+004, 7.305e+004)
a3 = 3.823 (-3.826e+006, 3.826e+006)
b3 = 5.867 (-6.623e+004, 6.624e+004)
c3 = -7.586 (-6.24e+004, 6.238e+004)
a4 = 2.67 (-1.363e+014, 1.363e+014)
b4 = 7.29e-006 (-5.336e+011, 5.336e+011)
c4 = -0.8273 (-5.575e+013, 5.575e+013)
a5 = 2.006 (-2.405e+014, 2.405e+014)
b5 = 0.5948 (-1.429e+013, 1.429e+013)
c5 = -0.5683 (-8.375e+013, 8.375e+013)
a6 = 1.729 (-2.606e+014, 2.606e+014)
b6 = 0.5869 (-1.455e+013, 1.455e+013)
c6 = -0.5213 (-8.638e+013, 8.638e+013)
a7 = -2.189 (-1.781e+009, 1.781e+009)
b7 = 2.225 (-1.048e+008, 1.048e+008)
c7 = -0.8675 (-2.948e+008, 2.948e+008)
a8 = 1.225 (-1.956e+014, 1.956e+014)
b8 = 0.616 (-4.375e+012, 4.375e+012)
c8 = -0.03419 (-1.33e+014, 1.33e+014)
Goodness of fit:
SSE: 0.01188
R-square: 0.9992
Adjusted R-square: 0.9968
RMSE: 0.03854本回答被提问者采纳
以上是关于matlab中如何拟合光滑曲线的主要内容,如果未能解决你的问题,请参考以下文章