为何LINEST函数适用于二阶多项式却对三阶多项式返回#VALUE!错误?
为什么LINEST二阶多项式可行,三阶却返回#VALUE!错误?
核心问题出在Excel数组运算的维度匹配规则上:
- 你用的二阶公式
=LINEST(C2:C19,A2:B19^{1,2},TRUE,TRUE)中,A2:B19是18行×2列的区域,{1,2}是1行×2列的数组,两者列数一致,Excel可以正常执行数组运算:A列所有元素取1次方(即保留原值),B列所有元素取2次方,生成一个18行×2列的特征矩阵供LINEST使用。 - 但三阶公式
=LINEST(C2:C19,A2:B19^{1,2,3},TRUE,TRUE)里,{1,2,3}是1行×3列的数组,而A2:B19只有2列,列数不匹配,Excel无法完成广播式的数组运算,直接返回#VALUE!错误。
如果你想构建包含X1、X1²、X1³、X2、X2²、X2³的三阶特征矩阵,不能用这种简写方式,得明确指定每个特征列,比如用CHOOSE函数组合:
=LINEST(C2:C19,CHOOSE({1,2,3,4,5,6},A2:A19,A2:A19^2,A2:A19^3,B2:B19,B2:B19^2,B2:B19^3),TRUE,TRUE)
数据集
| X1 | X2 | Y | |
|---|---|---|---|
| 2 | 0.60 | 2.10 | 0.248063764 |
| 3 | 0.60 | 2.25 | 0.276777320 |
| 4 | 0.60 | 2.40 | 0.304976369 |
| 5 | 0.60 | 2.55 | 0.332532372 |
| 6 | 0.60 | 2.70 | 0.357305826 |
| 7 | 0.60 | 2.85 | 0.382830340 |
| 8 | 0.60 | 3.00 | 0.404655593 |
| 9 | 0.75 | 2.10 | 0.139118457 |
| 10 | 0.75 | 2.25 | 0.164054336 |
| 11 | 0.75 | 2.40 | 0.189758548 |
| 12 | 0.75 | 2.55 | 0.215962993 |
| 13 | 0.75 | 2.70 | 0.243370030 |
| 14 | 0.75 | 2.85 | 0.267157671 |
| 15 | 0.75 | 3.00 | 0.290327159 |
| 16 | 0.90 | 2.10 | 0.069031327 |
| 17 | 0.90 | 2.25 | 0.083115573 |
| 18 | 0.90 | 2.40 | 0.106105301 |
| 19 | 0.90 | 2.55 | 0.127970351 |
内容的提问来源于stack exchange,提问作者jackhab
相关产品推荐
相关产品推荐

