如何用matlab数据拟合函数? 用matlab求解多元线性方程
时间: 2020-12-08
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)
>> y=[4,8,7,12,7,18,6]';
x1=[1,1,2,2,0,4,2]';
x2=[1,2,1,3,3,4,0]';
x3=[1,2,2,3,0,4,3]';
X=[x1 x2 x3 ones(size(y))];
B=regress(y,X)
B =
1.1212
2.1970
1.1364
0.1061
>> a=B(1)
a =
1.1212
>> b=B(2)
b =
2.1970
>>
cftool是曲线拟合工具箱,里面有各种方法拟合曲线,使用也很方便的。
方法一:
1、最常用的是多项式拟合,采用polyfit函数,在命令窗口输入自变量x和因变量y。
2、以二次多项式拟合为例,输入p=polyfit(x,y,2),如果想拟合更高次的多项式,更换括号内数字即可。
通过计算获得的p,是一个数组,对应了多项式的各项系数,以图中为例,拟合出的多项式为:y=0.9962x2+0.0053x-0.2833。
方法二:
1、首先,在上方工具栏选取APPS,点击curvefitting。输入自变量x和因变量y。
2、选择拟合方式,有多项式拟合polynomial,高斯拟合gaussian,幂指数拟合power等等,本次以多项式拟合为例。
3、通过数据计算,可以获得曲线参数(曲线函数中的各项系数),从而实现曲线拟合。
该问题可以用regress()函数来拟合。实现过程:
y=[。。。];
x1=[。。。];
x2=[。。。];
x3=[。。。];
X=[ones(length(y),1) x1 x2 x3];
a = regress(y,X);
k=a(1),a=a(2),b=a(3),c=a(4)
即其拟合函数为
y=k+ax1+bx2+cx3
如何用matlab数据拟合函数_
: Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合.下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱.假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0.1、在命令...
不知道函数形式时如何用Matlab对数据拟合_
: 1、根据x,y值,用plot()函数画出图形,x=[...] y=[...] plot(x,y,'r-')2、根据图形的趋势,确定拟合函数方程(一般可与已知的图形作对比),如 y=a1*x^3+a2*x^2+a3*x+a43、用inline()函数定义拟合函数 func=inline('a(1)*x^3+a(2)*x^2+a(3)*x+a(4)','a','x')4、用nlinfit()函数或lsqcurvefit()函数,求拟合系数a,a = nlinfit(x,y,func,x0)
matlab数据拟合函数_
: 这,,2113,,,这是二值函数5261啊,手动给出一个解吧4102:y = -2*sgn(x-31); 其中sgn是符1653号函数 如果要用连续函数拟合专的话,可以用sigmod函数:属 y = -2/(exp(-x+31.5)+1) + 1;
怎样用matlab进行数据拟合求出函数关系式_
: x = [2,4,6.5,8,9,9.5,10,11,12.5,15]; y = [125.18,195.8,265.21,332.56,322.93,372.63,363.29,374.56,430.18,459.29]; p = polyfit(x,y,3); xx = min(x):.1:max(x); yy = polyval(p,xx); plot(x,y,'*'); hold on; plot(xx,yy,'r'); legend('原始数据','3阶拟合曲线',2); hold off; r = vpa(poly2sym(p),2); title(char(r));
matlab拟合函数_作业帮
: 曲线拟合的例题1、 关于y=f(x)有一些观测数据x=-2*pi:0.1*pi:2*pi,时相应的函数值为y =[ 0.0000 0.8726 1.3803 1.3876 1.0490 0.6667 0.46120.4365 0.4293 0.2848 -0.0000 ...
在matlab中如何根据拟合图得到函数?_作业帮
: 告诉你最简单的办法吧在命令框中输入cftool打开拟合工具箱,用这个进行拟合当然,还有专门的指令来进行这个工作多项式拟合polyfit、曲线拟合lsqcurvefit要知道这些函数的使用方法可以在命令框中输入help polyfit或者help lsqcurvefit你就可以看到关于这些函数的详细介绍和使用语法了可以进行追问,我会耐心解答
用matlab拟合数据_
: 解:x=[18 19 20 21 25 29 34 36 39 39 42 42 44 45 45 46 47 47 48 50 53 56 56 59 63 64 65 67 67 69]; y=[114 124 116 120 125 130 110 136 144 120 124 128 160 138 135 142 215 145 130 142 158 154 150 140 144 162 162 170 158 175 ]; polyfit(...
如何用matlab进行数据拟合,在进行数据的估计?_
: clear clf x=1810:10:1900; y=[74.875 92.552 107.231 120.153 130.879 152.427 180.383 202.352 227.485 250.597]; plot(x,y,'s','markersize',3) grid on%画图并观察离散数据的特性 p=polyfit(x,y,1);%用1次多项式进行拟合 f = polyval(p,x); hold on plot...
在MATLAB中如何实现数据拟合
: matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合.下面结合我使用的 matlab r2007b 来简单介绍如何使用这个工具箱.假设我们要拟合的函数形式是 y=a*x*x + b*x, 且a>0,b>0.1、在命令行...
matlab数据拟合
: 一组数据可以拟合出许多函数的公式,一般都是根据数据的特征,然后用 Matlab cftool,挨个试,找出拟合效果最好的那个~根据我遇到的问题,这个比根据公式求具体的参数,要容易,尤其是碰到一个非线性模型拟合的时候,想求出公式的参数,要做大量分析与尝试...