
方法一:
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、通过数据计算,可以获得曲线参数(曲线函数中的各项系数),从而实现曲线拟合。
如何用matlab进行数据的多元函数拟合?
1、拟合前,我们应准备x1,x2,x3,。。。,y的一系列数据
2、将x1,x2,x3,。。。数据赋值给X变量
3、自定义多元函数拟合函数,如func=@(a,x)a(1)*x1+a(2)*x2+a(3)*x3+a(4),a为拟合扰液缺系数
4、初定a的初始值,如a0=[0,0,0,0] %其个数必须与拟合显示对应
5、利用nlinfit或lsqcurvefit函数,埋穗求其拟合系数。如
[a,r,J]=nlinfit(X,y,func,a0)
这里,a为拟合系数;r为缓辩残差; J为Jacobian 矩阵
6、利用nlparci函数,求得拟合系数的置信区间,即
ci = nlparci(p,r,J)
7、计算拟合值,即 yi=func(a,x)
8、计算原数据与拟合数据的相关性,如R²≈1,则认为拟合是合理的。
题主的(缓码4自变量1因变量)多元函数的拟合matlab程序。可以用nlinfit非线性回归函数来做段察(也可以用lsqcurvefit函数)。实现代码:
x1=[0.55 0.65 0.65 0.65 0.65 0.55 0.55 0.55 0.65]'
x2=[1.6 1.6 1.4 1.6 1.4 1.4 1.6 1.4 1.4]'
x3=[20 20 20 10 10 20 20 20 20]'
x4=[10 10 10 10 10 10 12 12 12]'
Y=[1.848 3.145 3.337 3.022 3.188 1.97 1.63 1.621 2.534]'
X=[x1 x2 x3 x4]
n=length(x1)
a0=rand(1,5)
func=@(a,X)(a(1)+a(2)*X(:,1)+a(3)*X(:,2)+a(4)*X(:,3)+a(5)*X(:,4))
[a,r,J] = nlinfit(X,Y,func,a0)a
Y1=func(a,X)
[Y Y1]
运行上述代码,可以得到
a1= -1.52778571412534;a2= 11.4823809522886;a3= -0.359047619087202 ;a4= 0.00441190476147387;a5=-0.23363095238449
多元函数表达式,y=a1+a2*x1+a3*x2+a4*x3+a5*x4
nlinfit与lsqcurvefit两者区别并不扰燃哪太大,前者用回归的方法来求解,而后者用最小二乘法来求解,两者都可以用于非线性函数和线性函数。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)