有人可以为我简化这个等式吗?

时间:2013-06-02 13:02:00

标签: math matrix arduino equation

我知道我可以使用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个点进行曲线拟合的程序,以便我可以预测未来的点数。我见过this post,但抛物线不够准确,不能满足我的需要。

我已经尝试过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,让我知道简化结果。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

Your equation