例7.2.1试用最小二乘法求拟合曲线,并估计其误差,做出拟合曲线。
(1)做散点图
x=[-2.5,-1.7,-1.1,-0.8,0,0.1,1.5,2.7,3.6];
y=[-192.9,-85.50,-36.15,-26.52,-9.10,-8.43,-13.12,6.50,68.04];
plot(x,y,'r*')
legend('实验数据(xi,yi)')
xlabel('x'),ylabel('y')
title('例7.2.1的数据点(xi,yi)的散点图')
2.CFTOOL工具箱使用
Shift+enter:换行输入
Gaussian:高斯曲线
Interpolant:最小二乘法差值
Polynomial:多项式
3.y1=polyfit(x,y,3) 拟合多项式的阶数为3
4.matlab绘制三维曲面图已知曲线关系方程
以二元函数图z = xexp(-x^2-y^2) 为例讲解基本操作,
(1)首先需要利用meshgrid函数生成X-Y平面的网格数据,如下所示:
% 生成二维网格数据
xa = [-2,0.2,2];
ya =[-1,0.15,1.5];
[x,y] = meshgrid(xa,ya);
(2)此外,需要计算纵轴数据(z轴),如下所示:
% calculate z data
z = x.*exp(-x.^2 - y.^2);
(3)在计算出(x,y,z)数据后,就可以使用三维绘图函数mesh绘制三维曲面图,如下所示:mesh(x,y,z);
4(2)、另一种方法:
[x,y] = meshgrid(-2:0.2:2,-1:0.15:1.5);
z = x.*exp(-x.^2 - y.^2);
mesh(x,y,z);
5.由三组散点图绘制曲面(网格划分)
xyz=[40 2 1.4
40 5 2.5
40 7 1.4
40 9 0.9
70 8 5.6 ];
tri = delaunay(xyz(:,1), xyz(:,2));
trimesh(tri, xyz(:,1), xyz(:,2),xyz(:,3)); shading interp
如何使用matlab 2014a 做数据曲线拟合(cftool)
1. 输入数据
做数据曲线拟合,当然该有数据,本经验从以如下数据作为案例。
>> x=[1,2,3,4]; (输入数据)
y=[2,4,6,8];
cftool (打开曲线拟合工具箱)
2. 添加数据到curve fitting程序
这一步就是将你要拟合的数据添加到curve fitting程序中,同时给你拟合的曲线命名。
3. 选择曲线拟合的方法类型
常见的拟合曲线有多项式的、指数的、对数的等等。
curve fitting程序提供了很多的方法。
你可以根据自己的数据具体选择。
Custom Equations:用户自定义的函数类型
Exponential:指数逼近,有2种类型,a*exp(b*x) 、a*exp(b*x) + c*exp(d*x) ;
X=[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6];
Y=exp(x);y=exp(-x);plot(x,y)
Fourier:傅立叶逼近,有7种类型,基础型是a0 + a1*cos(x*w) + b1*sin(x*w) ; Gaussian:高斯逼近,有8种类型,基础型是a1*exp(-((x-b1)/c1)^2) ;
Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-preserving ; Polynomial:多项式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree ~ ; Power:幂逼近,有2种类型,a*x^b 、a*x^b + c ;
Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子还包括constant型;
Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思)
Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是a1*sin(b1*x + c1) Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)
选择好所需的拟合曲线类型及其子类型,并进行相关设置:——如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改待估计参数的上下限等参数;——如果选Custom Equations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear Equations线性等式”和“General Equations构造等式”两种标签。
在本例中选Custom Equations,点击“New”按钮,选择“General Equations”标签,输入函数类型y=a*x*x + b*x,设置参数a、b的上下限,然后点击OK。
4. 选择好方法后,按照提供的公式选择具体的选项
本文的数据近似为线性的,我们选择多项式拟合的一阶方法。
5. 拟合结果查看
拟合后,curve fitting会给你具体的函数表达式,你可以将他给出的参数的值带入你选择的方法中。
6. 结果说明
在结果中,不仅可以看到函数的表达式,同时他还给出了95%置信区间的参数值,以及拟合好坏的一些指标,如:
SSE:
R-square:
Adjusted R-square:
RMSE:
7. 画出图像
虽然在curve fitting程序有自带的图像显示,但是一般最好将拟合结果显示到单独的图像窗
口。
8. 保存结果
曲线拟合结束后,你可以保存你的拟合结果。
选择你保存的路径即可。