MATLAB中曲线拟合方法总结(包括对数正态分布函数)

本文详细介绍了MATLAB中使用cftool进行曲线拟合的方法,包括从命令行启动cftool、设置数据、选择拟合类型以及使用定制方程。此外,还探讨了线性回归和非线性拟合的各种方法,如lsqcurvefit、nlinfit等,并通过实例展示了如何进行对数正态分布函数的拟合。
摘要由CSDN通过智能技术生成

鉴于最近遇到非线性函数拟合问题,本人对网上有关matlab多种类型的线性、非线性曲线拟合的方法进行了总结,希望对各位朋友有所帮助。

1. Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。下面简单介绍如何使用这个工具箱。

1.1 从matlab命令窗口到cftool

可以直接在matlab命令行输入cftool命令即可进入cftool窗口。

》cftool

输入命令回车后就得到一下界面

进行曲线拟合的时候,最基本的操作包括点击“data...”按钮和“fitting...”按钮。

1.2 data….按钮

首先,到命令窗口中为点击"data..."做好准备:

》x=[8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20]; 

》y=[0.6,0.62,0.64, 0.65, 0.66, 0.67, 0.68, 0.68, 0.69, 0.66, 0.65, 0.65,0.64];

然后,点击“data...”按钮,选x横坐标和选y纵坐标变量:

1)在弹出的Data窗口中,在X Data选项中选择x,在Y Data中选择y。其中X, Y都是刚刚在命令行所准备的数据变量名。

2)经过此步骤后点击“Createdata set”按钮。这个时候Data对话框背后的对话框中已经有散点图了。然后点击Data中的close按钮.

1.3 fiting ….按钮

在正确设置Data对话框之后,在关闭Data对话框之后,就可以点击fitting...按钮了。会弹出这么一个对话框:

1)在Fitting对话框中点击Newfit后在Fitname为此次曲线取名字:“cftool 曲线拟合”,当有多条曲线需要同时绘制时,每次都需要点击Newfit,然后选择对应的Data set值即对应相应的数据变量就可以绘制多条曲线了。即同时拟合多条曲线。选择data set。

2)选择相应类型的曲线拟合(到其它地方粘贴过来的),点击Type of fit 下拉菜单:

CustomEquations:用户自定义的函数类型

·Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) + c*exp(d*x)

·Fourier:傅立叶逼近,有7种类型,基础型是 a0 +a1*cos(x*w) + b1*sin(x*w)

·Gaussian:高斯逼近,有8种类型,基础型是a1*exp(c1-((x-b1)/c1)^2)

·Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-preserving

·Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9thdegree ~

·Power:幂逼近,有2种类型,a*x^b 、a*x^b +c

·Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5thdegree ~;此外,分子还包括constant型

·Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思)

· Sumof Sin Functions:正弦曲线逼近,有8种类型,基础型是a1*sin(b1*x + c1)

·Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)

3)最后再选择一种曲线拟合下的具体类型,点击Apply按钮就可以看见所拟合的曲线了。

如果发现曲线和数据点不是很“磨合”就需要重新选择曲线类型了。

上图是点击了应用按钮之后的状态,在Results中得来的就是拟合数据的曲线函数关系式。

点击Appy后的运行结果为:

1.4  CFTOOL菜单使用

在上面显示的曲线拟合结果中,可以明显的看见横坐标和纵坐标都不是从原点(0,0)开始设置的坐标。那么我们可以使用
Curve Fitting Tool 对话框中Tools菜单中的

Tools中的各个选项的功能:

1)New Cunstom Equation:表示使用自定义的函数来模拟图中显示的散点数据的函数式子。

2)Legend:就是图中显示着“y vs.x   cftool 曲线拟合”的那个框。

3)Grid:跟指令grid一样的功能,是曲线背景充满虚线框。

4)Axis Limit Control:设置横轴、纵轴坐标的范围。

2. matlab中直接使用曲线拟合工具:cftool.(不使用cftool的GUI界面)

最基本的使用方法如下,假设我们需要拟合的点集存放在两个向量X和Y中,分别储存着各离散点的横坐标和纵坐标,则在MATLAB中直接键入命令 cftool(X,Y) 就会弹出Curve Fitting Tool的GUI界面,点击界面上的fitting即可开始曲线拟合。

MATLAB提供了各种曲线拟合方法,例如:Exponential, Fourier, Gaussing, Interpolant, Polynomial, Power,Rational, Smoothing Spline, Sum of Functions, Weibull等,当然,也可以使用 Custom Equations.

cftool不仅可以绘制拟合后的曲线、给出拟合参数,还能给出拟合好坏的评价参数(Goodness of fit)如SSE, R-square, RMSE等数据,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值