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。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-13
拟合用polyfit和polyval.
b=polyfit(x,y,2);%进行2次拟合,b是多项式前面的值。就如2次拟合中y=ax+b,a,b的值。
yy=polyval(b,x);%得到拟合后y的新值
plot(x,yy)%画拟合图
第2个回答  2020-01-12
先把点所对应的坐标表示出来,再用MATLAB函数进行多项式拟合
举例:
程序如下:
x=[1,
2,
3,
4,
5,
6,
7,
8,
9,
10]
y=[1.2,
3,
4,
4,
5,
4.7,
5,
5.2,
6,
7.2]
注:
一次多项式拟合:
p1
=
polyfit(x,y,1)
三次多项式拟合:
p3
=
polyfit(x,y,3)
plot
原始数据、一次拟合曲线和三次拟合曲线
x2=1:0.1:10;
y1=polyval(p1,x2)
y3=polyval(p3,x2)
plot(
x,
y,
’*’,
x2,
y1,
‘:’,
x2,
y3)
如果满意请采纳!
第3个回答  2019-04-29
可以先以行向量的形式输入所得的x,y,即x=[
];y=[
];再用polyfit(x,y,n)命令便可将所测x,y拟和为函数,n为函数的阶数。得出结果的是按从x的n次方降幂排列的系数,由此便可得出y与x的关系函数。
以函数y=(x+1)的平方为例
(未知)。假设测得5组数据,x=[-2,-1,0,1,2];y=[1,0,1,4,9];
polyfit(x,y,2);便可得到
ans=1.000
2.000
1.000
由此可知y=1*x平方
+
2*x
+
1

再根据这个函数关系,定义y=x平方+2*x+1;x=(-2:0.1:2);plot(x,y);便可得到所测数据拟和为函数后的图象。
该回答在2006-03-16
10:42:08由回答者修改过

matlab如何进行曲线拟合?
后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数 据集的曲线图;(3)点击“Fitting”按钮,弹出“Fitting”窗口;(4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Data set”下拉菜单 选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线...

matlab曲线拟合
在MATLAB中进行曲线拟合,可以通过多种方法实现,其中常用的是使用MATLAB内置函数进行拟合。具体步骤如下:1. 数据准备:首先,需要准备要进行拟合的数据,包括自变量和因变量。2. 选择拟合函数:根据数据的特点和需要,选择合适的拟合函数,如多项式拟合、指数拟合、正弦拟合等。3. 使用MATLAB内置函数进行拟合...

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

matlab实现曲线拟合
执行“p = polyfit(x, y, 1)”命令,此处1表示拟合一个1次多项式。运行结果为系数向量p,包含两个元素。接着,定义一组新的点xx,范围从0到150,以0.1为步长。根据系数向量p计算在xx点处的函数值yy。通过“plot(xx, yy, '-r', x, y, 'markersize', 20)”命令绘制图像。红色曲线表示根...

matlab中curve fitting tool(曲线拟合工具)
启动曲线拟合工具 方式1:在 MATLAB 命令行中输入`cftool`命令即可直接进入工具窗口。 方式2:在主菜单中选择“应用程序”->“CurveFitting”。 准备数据 在 MATLAB 命令行中输入要拟合的数据。选择曲线拟合 在曲线拟合工具左侧,给拟合曲线命名。 从下拉菜单中选择数据。 选择拟合类型 从“C...

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

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

MATLAB曲线拟合
在MATLAB中,通过拟合工具cftool,我们可以方便地进行曲线拟合操作。以多项式拟合为例,所得的拟合函数为:f(x) = p1*x^6 + p2*x^5 + p3*x^4 + p4*x^3 + p5*x^2 + p6*x + p7 其中,各参数的95%置信区间分别为:p1: -5.1e-023 (-3.743e-022, 2.723e-022)p2: 4.334e-...

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

matlab如何做线性拟合
首先,最常用的线性拟合可以通过内置的多项式拟合功能实现。在命令窗口中,输入自变量x和因变量y,使用polyfit函数进行操作。例如,若要进行二次多项式拟合,只需键入p = polyfit(x,y,2)。若需拟合更高阶的多项式,只需调整括号中的数字即可。另一种方法是利用MATLAB自带的曲线拟合工具。在APPS选项中,...

相似回答