MATLAB如何才能在3个自变量1个因变量的情况下预测这个因变量之后的数值变化?那3个自变量已经预测出未来数MATLAB中有矩阵Y=[y1 y2 ... yn],X1=[x11 x12 ... x1n],X2=[x21 x22 ... x2n],X3=[x31 x32...x3n],设yi=A0+A1x
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 17:23:04
MATLAB如何才能在3个自变量1个因变量的情况下预测这个因变量之后的数值变化?那3个自变量已经预测出未来数MATLAB中有矩阵Y=[y1 y2 ... yn],X1=[x11 x12 ... x1n],X2=[x21 x22 ... x2n],X3=[x31 x32...x3n],设yi=A0+A1x
MATLAB如何才能在3个自变量1个因变量的情况下预测这个因变量之后的数值变化?那3个自变量已经预测出未来数
MATLAB中有矩阵Y=[y1 y2 ... yn],X1=[x11 x12 ... x1n],X2=[x21 x22 ... x2n],X3=[x31 x32...x3n],设yi=A0+A1x1i+A2x2i+A3x3,要怎么求?是用偏最小二乘法吗?我不会……求指导!谢谢!
MATLAB如何才能在3个自变量1个因变量的情况下预测这个因变量之后的数值变化?那3个自变量已经预测出未来数MATLAB中有矩阵Y=[y1 y2 ... yn],X1=[x11 x12 ... x1n],X2=[x21 x22 ... x2n],X3=[x31 x32...x3n],设yi=A0+A1x
已知X123求Y的话,直接使用你的公式即可
代码:
X1=[x11 x12 ...x1n];%行向量里都是n个数字,下同
X2=[x21 x22 ...x2n];
X3=[x31 x32 ...x3n];
Y=A0+A1*X1+A2*X2+A3*X3;%A0123为四个已知数字
这样就求出了1行n列的行向量Y
至于你说的“预测”,我猜是A0123是待定系数吧.
也就是已知X123及Y的n组量,希望用三元一次函数进行拟合吧.
这样的话,若用最小二乘法,思路是:
{下面我用sum(f(i),1,10)表示f(i)表达式从1加到10的值}
第一、设A0123为待定系数,并使用X123计算Y的估计值YY
YY=sum(A0+A1*X1i+A2*X2i+A3*X3i,1,n)
第二、计算真实的Y和估计的YY每个对应项之差的平方,再求总和S
S=sum((A0+A1*X1i+A2*X2i+A3*X3i-Yi)^2,1,n)
第三、目的是求使S最小的A0123,即为最小二乘解
这实际上是可微多维函数求极值的问题,用对各自变量求偏导并同时取零解决
此时针对上面的S等式分别对A0123求偏导
dS/dA0=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi),1,n)
dS/dA1=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi)*X1i,1,n)
dS/dA2=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi)*X2i,1,n)
dS/dA3=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi)*X3i,1,n)
上面4等式右边提取A0123,再两边同除2得
(dS/dA0)/2=A0*n+A1*sum(X1i,1,n)+A2*sum(X2i,1,n)+A3*sum(X3i,1,n)-sum(Y,1,n)
(dS/dA1)/2=A0*sum(X1i,1,n)+A1*sum(X1i*X1i,1,n)+A2*sum(X2i*X1i,1,n)+A3*sum(X3i*X1i,1,n)-sum(Y*X1i,1,n)
(dS/dA2)/2=A0*sum(X2i,1,n)+A1*sum(X1i*X2i,1,n)+A2*sum(X2i*X2i,1,n)+A3*sum(X3i*X2i,1,n)-sum(Y*X2i,1,n)
(dS/dA3)/2=A0*sum(X3i,1,n)+A1*sum(X1i*X3i,1,n)+A2*sum(X2i*X3i,1,n)+A3*sum(X3i*X3i,1,n)-sum(Y*X3i,1,n)
令上4等式左边为0,注意到右边都是“A0*已知常数+A1*已知常数+A2*已知常数+A3*已知常数-已知常数”的形式
因此得到一个四元一次非齐次方程组,用高等数学中线性方程组的求解方法求解(或者甚至用初中的代入法求解方程组)即可
这样就得到了最佳的A0123四个数字,这四个参数使得拟合的Y=A0+A1*X1+A2*X2+A3*X3函数,与给定的X123和Y数据在最小二乘意义下差值最小,即最佳拟合