求三次多项式

Finding Cubic Polynomials

我有一个等式:y=ax^3 + bx^2 + cx + d 和当 y = 3, 4, 3, -6 时的值列表 x = 1, 2, 3, 4。在 Octave 中,我想:

(a) 建立一个包含a、b、c、d的四个方程组。例如,将 (x, y) = (1,3) 代入多项式得到等式 3 = a + b + c + d.

(b) 求解(a)中的系统。

三个小时以来,我一直在努力寻找如何做到这一点,但一无所获。任何帮助将不胜感激

谢谢。

pstscrpt - 我必须在 Octave 中完成所有操作,即使我可以手动找到它

在 Matlab 中:首先将您在表达式 a*x^3 + b*x^2 + c*x + d = y 中编写的 xy 的不同值替换为:

syms a b c d
eqn1 = a*1^3 + b*1^2 + c*1^1 +d ==  3 ;
eqn2 = a*2^3 + b*2^2 + c*2^1 +d ==  4 ;
eqn3 = a*3^3 + b*3^2 + c*3^1 +d ==  3 ;
eqn4 = a*4^3 + b*4^2 + c*4^1 +d == -6 ;

然后用equationsToMatrix将方程式转换成AX = B的形式。 equationsToMatrix 的第二个输入指定方程中的自变量。:

 [A,B] = equationsToMatrix([eqn1, eqn2, eqn3, eqn4], [a, b, c,d ])

a,b,c,d 的解是:

 X = linsolve(A,B)

你也可以用

sol = solve([eqn1, eqn2, eqn3, eqn4], [a, b, c,d ])

作业结束时没有任何 ; 编写,因此您可以看到发生了什么。
您的问题基本上是变量 [a,b,c,d]'=z 中的线性系统 所以需要建立一个系统A*z=y,其中A是一个4x4的矩阵,y和z是大小为4的列向量

x=[1,2,3,4]'
y=[3,4,3,-6]'
A=zeros(4,4)

for i=1:4
 A(i,:)= [ x(i)^3, x(i)^2, x(i), 1]
endfor 

z=A\y

结果会是

z =

  -1.00000
   5.00000
  -7.00000
   6.00000