1

我知道我可以使用 Mathematica,但遗憾的是我没有。我只想找到 A,B,C,D 形式的矩阵

| X1^3 x1^2 X1 1 |   |A|   |y0|
| X2^3 x2^2 X2 1 |   |B|   |y1|
| X3^3 x3^2 X3 1 | X |C| = |y2|
| X4^3 x4^2 X4 1 |   |D|   |y3|

我只想找到 A、B、C 和 D 的简化方程。

实际上,我正在尝试在arduino中执行一个程序,该程序需要使用 4 个点进行曲线拟合,以便我可以预测未来的点。我看过这篇文章,但抛物线对我的需要不够准确。

我已经尝试过http://www.wolframalpha.com/

linearSolve [{{(x1)^3, (x1)^2, x1, 1},
              {(x2)^3, (x2)^2, x2, 1},
              {(x3)^3, (x3)^2, x3, 1},
              {(x4)^3, (x4)^2, x4, 1}}, {{y1},{y2},{y3},{y4}}]

它返回一个长的结果,可以简化。但是,我无法在搜索栏中输入完整结果以进行简化(它给了我错误:输入太长!)。

有任何想法吗?好吧,我想这在桌面版本中是可能的。

即使在此之后,如果结果很长,请替换 x1 = 0 并让我知道简化结果。

4

2 回答 2

1
// Input data: arrays x[] and y[]
// x[1],x[2],x[3],x[4] - X values
// y[1],y[2],y[3],y[4] - Y values

// Calculations
A = 0
B = 0
C = 0
D = 0
S1 = x[1] + x[2] + x[3] + x[4]
S2 = x[1]*x[2] + x[1]*x[3] + x[1]*x[4] + x[2]*x[3] + x[2]*x[4] + x[3]*x[4]
S3 = x[1]*x[2]*x[3] + x[1]*x[2]*x[4] + x[1]*x[3]*x[4] + x[2]*x[3]*x[4]
for i = 1 to 4 loop
   C0 = y[i]/(((4*x[i]-3*S1)*x[i]+2*S2)*x[i]-S3)
   C1 = C0*(S1 - x[i])
   C2 = S2*C0 - C1*x[i]
   C3 = S3*C0 - C2*x[i]
   A = A + C0
   B = B - C1
   C = C + C2
   D = D - C3
end-loop

// Result: A, B, C, D
于 2013-06-02T15:08:02.173 回答
0

如果您没有 Mathematica,您可以使用wolframalpha

你的方程式

于 2013-06-02T13:10:34.903 回答