加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

使用MATLAB拟合曲线

(2017-06-26 18:22:52)
    在网上学到这么一件事情,就是直接使用MATLAB对数据进行曲线拟合。原因是这样的,在工程实践中,很多的数据需要实时计算的话可能需要解高次方程,但是解高次方程就特别的麻烦,所以都是做好数据表进行查表运算。但是在做好表后发现占用空间又大,又需要进行试试运算,这样求一条简单的曲线代替复杂的曲线就很重要。
首先在MATLAB的command里输入需要拟合的数据。
http://s11/mw690/00688zkAzy7caXAi6Jcda&690
这些数据基本拟合的曲线应该是y=x.^2
在command中输入cftool出现的界面
http://s14/mw690/00688zkAzy7caXHSKOp0d&690
然后在X data的下拉框中选择x在Y data的下拉框中选择y,然后将Degree(维数)选择1,即是一维的。然后就会自动拟合,并且得到的结果是
http://s10/mw690/00688zkAzy7caXPAS7fc9&690
可以看的出效果不是很好,然后将维数选择为2
得到的结果
http://s2/mw690/00688zkAzy7caXUyu5j51&690
可以看出效果好多了,然后选择3维的
http://s5/mw690/00688zkAzy7caXYkwFmc4&690
效果更好,当然也可以选择4维或者更多。但是,维数越多并不一定是需要的,因为维数越多,对于运算器的要求就越高。就以2维和3维为例作图对比,先做出原始图
http://s4/mw690/00688zkAzy7caY9cv87a3&690
然后选择2维,可以看到Curve fitting Tool窗口的左中部分的results给出了方程的表达式
http://s12/mw690/00688zkAzy7caYhI4XN3b&690
把y=1.189*x.^2-1.348*x+1.78在plot中画出来
http://s2/mw690/00688zkAzy7caYE16Hn11&690
用同样的方法画出三维的
http://s9/mw690/00688zkAzy7caYO6Mxqc8&690
可见拟合程度更高。
其实,拟合程度的高低在results中有显示,在Adjusted R-square中有显示,1维的时候是0.9251;
2维的时候是0.9972;3维的时候是0.9999,4维的时候也是0.9999.所以这是一种很方便的解决工程实际问题的方法。









0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有