matlab画出的曲线怎么拟合函数

如题所述

一、 单一变量的曲线逼近
Matlab有一个功能强大的曲线拟合工具箱
cftool ,使用方便,能实现多种类型的线性、非线
性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。
假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。
1、在命令行输入数据:

》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908
280.0447
296.204 311.5475]

》y=[5 10 15 20 25 30 35 40 45 50]

2、启动曲线拟合工具箱
》cftool

3、进入曲线拟合工具箱界面“Curve Fitting
tool”
(1)点击“Data”按钮,弹出“Data”窗口;
(2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data set
name”,然
后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数
据集的曲线图;
(3)点击“Fitting”按钮,弹出“Fitting”窗口;
(4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Data
set”下拉菜单
选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类
型有:
Custom
Equations:用户自定义的函数类型
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(-((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。
(5)类型设置完成后,点击“Apply”按钮,就可以在Results框中得到拟合结果,如下例:
general model:
f(x) = a*x*x+b*x
Coefficients (with 95% confidence bounds):
a = 0.009194 (0.009019, 0.00937)
b = 1.78e-011 (fixed at bound)
Goodness of fit:
SSE: 6.146
R-square: 0.997
Adjusted R-square: 0.997
RMSE: 0.8263
同时,也会在工具箱窗口中显示拟合曲线。
这样,就完成一次曲线拟合啦,十分方便快捷。当然,如果你觉得拟合效果不好,还可以在“
Fitting”窗口点击“New fit”按钮,按照步骤(4)~(5)进行一次新的拟合。
不过,需要注意的是,cftool 工具箱只能进行单个变量的曲线拟合,即待拟合的公式中,变
量只能有一个。对于混合型的曲线,例如 y = a*x + b/x ,工具箱的拟合效果并不好。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-04-16
拟合步骤:
1、求(获)得一系列x,y对应值
x=[...]
y=[...]
2、根据画出的曲线,,设定拟合函数
fun=inline('a(1)+a(2)*exp(a(3)*x','a','x')
3、初定x0的初值
x0=[0 0 0]
4、用拟合函数求出拟合系数
a=lsqcurvefit(fun,x0,x,y) 或 a= nlinfit(x,y,fun,x0)
用cftool的结果与实际是有较大的误差。你不仿用二种获得的拟合函数,将已知值x代人,得到的yi,那个更接近已知值y。
一般用cftool工具箱,来判断拟合函数可能的形式。

matlab中如何进行曲线拟合
(1)点击“Data”按钮,弹出“Data”窗口;(2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data set name”,然 后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数 据集的曲线图;(3)点击“Fitting”按钮,弹出“Fitting”窗口;(4)点击“...

MATLAB怎么拟合函数曲线?
在MATLAB中拟合函数曲线,可以使用MATLAB软件提供的曲线拟合函数命令,例如线性拟合函数regress()。下面是使用MATLAB进行函数曲线拟合的一般步骤:准备数据。需要注意的是,具体的拟合函数和命令可能会因为不同的MATLAB版本而有所不同。此外,还可以使用其他的MATLAB函数和工具进行函数曲线拟合,例如多项式拟合、非...

matlab曲线拟合
2. 选择拟合函数:根据数据的特点和需要,选择合适的拟合函数,如多项式拟合、指数拟合、正弦拟合等。3. 使用MATLAB内置函数进行拟合:MATLAB提供了许多内置函数,如`polyfit`、`fit`等,可以根据选择的拟合函数选择合适的函数进行拟合。4. 绘制拟合曲线:使用MATLAB的绘图功能,将原始数据点和拟合曲线一起绘...

利用Matlab进行曲线拟合
进行一阶多项式拟合:`P=polyfit(x,log(y),1);`,对`x`和`ln(y)`进行拟合。计算拟合曲线值:`yi=exp(polyval(P,x));`绘制结果包括原始数据点、拟合曲线和理论曲线,通过比较`yi`和`y`的值,可以评估拟合误差。误差通过计算`yi-y`得到,并绘制在X轴对齐的图上。

matlab中curve fitting tool(曲线拟合工具)
在 MATLAB 命令行中输入要拟合的数据。选择曲线拟合 在曲线拟合工具左侧,给拟合曲线命名。 从下拉菜单中选择数据。 选择拟合类型 从“Custom Equations”、“Exponential”、“Fourier”、“Gaussian”、“Interpolant”等预设类别中选择合适的函数类型。 点击中间的下拉菜单,查看具体类型选项。 ...

怎么在matlab中对离散点进行曲线拟合,求参数!
拟合出f(x)分布的系数 然后,根据xy分别是离散点的横纵坐标(数值至少10组以上)首先,进行参数估计 p(Xn;P)*p(X2。然后求一个P。不妨假设有高斯噪声干扰ML估计是这个意思,现在只需要写出上面的概率密度函数就可以了。按你的模型,数据X的分布是与参数有关的.,理想情况下数据y是由完全由参数...

matlab拟合曲线的方法有几种
在MATLAB中,我们有多种方法来拟合曲线以满足不同类型的函数需求。首先,对于线性函数的拟合,你可以选择使用regress()和polyfit()函数,它们是基础且实用的工具。如果你面对的是更复杂的非线性函数,lsqcurvefit()和nlinfit()函数则是你的得力助手,它们能够处理这类更为复杂的拟合问题。对于更广泛的函数...

如何在Matlab中实现曲线拟合?
MATLAB中用多项式拟合函数可以完成此功能:如下图所示:生成曲线图:参考代码:(可复制粘贴)PX=[-3 5 11]; %给出三个点的坐标 PY=[6 2 8]; %给出三个点的坐标 k = polyfit(PX,PY,2) %用多项式曲线拟合函数的系数k,2表示多项式次数(即二次函数)x=[-5:0.1:13]; %作函...

用MATLAB怎么实现曲线拟合?
MATLAB软件提供了基本的曲线拟合函数的命令.1 多项式函数拟合:a=polyfit(xdata,ydata,n)其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入.输出参数a为拟合多项式 的系数多项式在x处的值y可用下面程序计算.y=polyval(a,x)2 一般的曲线拟合:p=curvefit(‘Fun...

怎样用MATLAB拟合函数曲线
1、在使用cftool拟合好理想的曲线后,点击File下的Generate Code,MATLAB会自动生成一个未命名的function,自行保存到工作文件夹。此处注意,默认的函数名叫createFit(XX,YY,、、、),可根据个人需要修改。2、回到、m文件,在需要拟合函数的那一步,键入"fitresult,gof=createFit(XX,YY,、、、);"...

相似回答