matlab中如何进行曲线拟合

2024-05-10

1. 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。

matlab中如何进行曲线拟合

2. 用matlab拟合曲线

根据提供的数据,用plot()函数命令绘制其草图,可以基本判断服从多项式线性关系。用matlab的lsqcurvefit()函数或 nlinfit()函数,得到如下数学模型
y(t)=2403-838.95t+1565.6472t^2 -944.1667t^3+250.4722t^4-30.3833t^5+1.3806t^6


3. 在matlab中怎么将几条拟合好的曲线放在同一个图中

在matlab中将几条拟合好的曲线放在同一个图中的方法是:
老版本的cftool可以直接点击“newfit” 导入数据并在同一幅图里拟合,如果你的matlab比较新,就用 cftool-v1 打开老版本的cftool。
MATLAB的介绍是:
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

在matlab中怎么将几条拟合好的曲线放在同一个图中

4. matlab曲线拟合

你这个如果拟合成正比例函数会误差很大,所以给你加上了个常数,仿真效果图如下:
y=8725.6495*ln(x)-66204.5041

程序如下~~~~~~
clear;clc;close all;
x=[1975 1977 1979 1981];
y=[10.7, 12.38, 29.75, 34.32];
lx=log(x);
p=polyfit(lx,y,1);
disp(['y=',num2str(p(1)),'*ln(x)+',num2str(p(2))]);
figure;
plot(x,y,'o-');hold on;
plot(x,p(1)*log(x)+p(2),'ro-');

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

拟合步骤:
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画出的曲线怎么拟合函数

6. 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。

7. 为什么matlab做线性拟合出来曲线图?

为什么matlab做线性拟合出来曲线图?
分析了题主的代码,用regress函数来拟合线性函数是对的,按在出图时,出现了概念性的错误,即 plot(X,Y,'k+',X,z,'r')。
题主这里表示的X和Y实际上是线性拟合中计算时的线性方程组系数,而不是原试验数据。
所以,正确的表述格式是
plot(x1,y,'k+',x,z,'r')
同理,下列语句也有问题
t=1:38
y_fitting=X(t,:)*b;
y_fitting=b(1)+b(2)*x;
plot(t,y_fitting,'r-',t,Y(t,:),'b-');
正确的写法为:
Y=y';
X=[ones(length(y),1),x'];
[b,bint,r,rint,stats]=regress(Y,X);
z=b(1)+b(2)*x;
str = ['y=b1+b2*x'];   %显示拟合方程
fprintf('%s\n',str);
str = ['b1=',num2str(b(1)),',b2=',num2str(b(2))];
fprintf('%s\n',str);  %显示拟合系数
stats  % 检验统计量
plot(x,y,'k+',x,z,'r') %绘制原数据与拟合数据的对比图
legend('Rot-Schätzung','Blau-Ist-wert');
运行结果如下所示。


为什么matlab做线性拟合出来曲线图?

8. matlab如何实现曲线拟合

用matlab如何实现曲线拟合呢?可以按照下列步骤进行:
1、数据。数据必须有因变量y和自变量x1,x2,x3,...,且数据是等长的。
2、模型。根据经验自定义模型函数和已知模型函数。
3、如函数是线性的,可以使用regress()函数,如函数是非线性的,可以使用nlinfit()函数或lsqcurvefit()函数等,求出模型的拟合系数。
4、根据y数据(已知值)和yn数据(拟合值),计算其相关性(决定系数)及其置信度。
关于这方面的内容,在百度知道里有很多例子。