作业帮 > 综合 > 作业

如何寻找最好的拟合曲线?以及matlab中Polyfit的用法?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/31 03:20:46
如何寻找最好的拟合曲线?以及matlab中Polyfit的用法?
主要有两个问题:
1 对于一组离散点,如何寻找最好的拟合函数(曲线)?比如这组离散点,究竟是该选择多项式拟合合理,还是选用指数函数拟合更合理?如何选择和比较?matlab里面如何实现选择和比较不同的拟合函数?
2 假设选用多项式拟合.二次多项式,matlab中可以采用[P,S]=POLYFIT(X,Y,2),P是表示二次多项式的系数向量,本人看了一下matlab的help没看懂,请高手作答.
急用,请高手指教,回答时请详细点,
请问如何使用cftool?是在matlab命令窗口中直接输入cftool吗?好象不行.
【1】用cftool
>>cftool
回车,出现一个对话框.【1】Data输入相应的x,y,然后create data set;【2】fitting,选择提供的各种模型,逐个试试,总能找到残差最小的,相关系数最大的一种模型.
【2】给个例子.
clc;clear
x=-1:0.1:1
for k=1:length(x)
y(k)=x(k)^2+0.1*rand
end
[p,s]=polyfit(x,y,2)
s.R
plot(x,y,'o',x,polyval(p,x))
结果:
p =
1.0072 0.0091 0.0439
s =
R:[3x3 double]
df:18
normr:0.1153
ans =
-2.2509 -0.0000 -3.4208
0 2.7749 0.0000
0 0 -3.0492
s是个结构数组.
S contains fields for the triangular factor (R) from a QR decomposition of the Vandermonde matrix 【范德蒙特矩阵】of X,the degrees of freedom (df)【自由度】,and the norm of the residuals (normr)【范数】.