怎么用matlab进行非线性的多元函数拟合?

怎么用matlab进行非线性的多元函数拟合?,第1张

方法一:

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两者区别并不扰燃哪太大,前者用回归的方法来求解,而后者用最小二乘法来求解,两者都可以用于非线性函数和线性函数。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12415678.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存