我知道我可以使用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,让我知道简化结果。
答案 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