如何在matlab中用最小二乘法拟合的方式求解方程系数?
y=c1z1+c2z2+c3z3c1c2c3都是未知常系数,yz1z2z3都是已知数组。求问应该怎么求这个c1c2c3?...
y=c1z1+c2z2+c3z3
c1c2c3都是未知常系数,
y z1 z2 z3都是已知数组。
求问应该怎么求这个c1c2c3? 展开
c1c2c3都是未知常系数,
y z1 z2 z3都是已知数组。
求问应该怎么求这个c1c2c3? 展开
2个回答
展开全部
如何在matlab中用最小二乘法拟合的方式求解 y=c1*z1+c2*z2+c3*z3 方程系数(c1,c2,c3)?我们可以按下列方法来求解:
第一步,读取数据,z1、z2、z3和y,然后组成z数组向量,即z=[z1 z2 z3]
第二步,自定义拟合函数,即
func=@(c,z)c(1)*z(:,1)+c(2)*z(:,2)+c(3)*z(:,3)
第三步,确定c的初值,该值应根据函数来确定。
第四步,使用lsqcurvefit函数,求解拟合系数,即
c=lsqcurvefit(func,c0,z,y)
第五步,计算拟合值,y1=func(c,z);
第六步,利用相关系数公式,计算R^2,如R^2≈1,说明拟合正确。
第一步,读取数据,z1、z2、z3和y,然后组成z数组向量,即z=[z1 z2 z3]
第二步,自定义拟合函数,即
func=@(c,z)c(1)*z(:,1)+c(2)*z(:,2)+c(3)*z(:,3)
第三步,确定c的初值,该值应根据函数来确定。
第四步,使用lsqcurvefit函数,求解拟合系数,即
c=lsqcurvefit(func,c0,z,y)
第五步,计算拟合值,y1=func(c,z);
第六步,利用相关系数公式,计算R^2,如R^2≈1,说明拟合正确。
更多追问追答
追问
还有点问题,这个第四步的c0是什么?
追答
c0是初值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询