发信人: hjl(hjl), 信区: MathTools
标 题: cftool拟合预测实例
发信站: 饮水思源 (2012年01月31日00:03:36 星期二)

今天上微博,看见有个数学题,1、5、8、11找规律,填出后三个数。然后还说这是小
学生一两年级的寒假作业,其本意是说明现在的作业偏离教育本质,已经妖魔化。但撇开
题目的出处,这其实是数学上的重要问题:拟合、预测。
拟合和预测的方法很多,matlab的拟合工具箱cftool就非常强大,用cftool求解这个
数学题,大致就能体会着工具箱的用法了。步骤如下:
1.打开matlab,输入x=[1 2 3 4];y=[1 5 8 11];这其实就是输入题目中给出的样本数据。
此时如果输入plot(x,y),则可以看见x和y的关系,直观上感觉是个近似线性,所以可以给
出答案为1、5、8、11、14、17、20。当然,这是直观感受,答案是猜的,猜得对不对不清
楚。
2.输入cftool,弹出curve fitting tool的gui界面。
3.如图所示做些设置。这些设置归结为两条:其一,告诉matlab,自变量和应变量分布是
多少,也就是此问题中,x和y的样本是多少。由于左边看见了xyz三个data框,因此推测c
ftool可以支持一维和二维的拟合。其二是告诉matlab需要使用的拟合方法,比如我选择的
三阶多项式拟合,打开框框,可以有其他选择。


4.如果最右边的auto fit的复选框被选择了,那么就会直接出现拟合的结果,如图所示。


5.如果结果满意,打开菜单栏上的fit->save to workspace 选择自己喜欢的名字,保存结
果,然后就可以关掉cftool的gui对话框了。导出的时候,我只导出函数关系,保存为f,
如图所示。


6.在workspace里看见一个函数关系f,就是拟合结果了。输入f(5)就能看见预测结果。
>> f(5)
ans =
15.0000
>> f(6)
ans =
21.0000
>> f(7)
ans =
30.0000
于是乎,这道小学生数学题在matlab的cftool帮助下顺利完成,数字规律为:1、5、
8、11、15、21、30。全部过程中完全没有手编代码,都是图形化界面,很是亲切方便。至
于科研上,cftool也很有用,一开始就说了,拟合和预测是很常见的问题。比如实验数据
的存储,以excel形式存储原始的实验数据太占地方,而用拟合工具箱处理后,用几个函数
关系就能表示整个表格,虽然精度下降,但对科研往往更有价值。当然,matlab也提供了
其他的拟合和预测工具~
--
ztc呢?
※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 180.168.119.76]