求三次多项式
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
中编写的 x
和 y
的不同值替换为:
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
我有一个等式: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
中编写的 x
和 y
的不同值替换为:
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