Показать полную графическую версию : *Теория* | Нахождение коэффициентов полного уравнения 4 степени
Как найти коэффициенты A,B,C,D полного уравнения 4 степени x^4 + A * x^3 + B * x^2 + C* x^1 + D = 0 если известны корни x1,x2,x3,x4 ?
Искал в инете, нашел статью www.n-t.ru/tp/ns/oam.htm как найти коэффициенты для _неполного_ уравнения 4 степени, однако в этой статье по поводу полного уравнения написана всего 1 строка, и я не понимаю, как найти коэффициент A и как получить для полного уравнения формулы подобные (3) (4) (5), которые мне нужны для реализации алгоритма. Подскажите, пожалуйста.
XPEHOMETP
19-09-2006, 16:30
Там же в статье в самом низу написано:
Полное уравнение четвертой степени X4 + KX3 + TX2 + PX + Q = 0 сводится уравнению (1) путем замены переменной X на переменную Y = X + K/4
C другой стороны, если УЖЕ ИЗВЕСТНЫ все корни кубического уравнения x1,x2,x3,x4, то это означает, что справедливо равенство:
(Х-x1)(Х-x2)(Х-x3)(Х-x4)=0
Тупо перемножаем, раскрывая скобки, сравниваем с записью x^4 + A * x^3 + B * x^2 + C* x^1 + D = 0, находим коэффициенты.
XPEHOMETP
Спасибо. Ты натолкнул меня на хорошие мысли. Тупо перемножать (Х-x1)(Х-x2)(Х-x3)(Х-x4) программе слишком сложно, нужны были формулы.
Тема закрыта (можно удалить).
mrcnn
Может я чего-то не понимаю, но что мешает подставить в исходное уравнение четыре корня? Получить систему из линейных 4-ёх уравнений с 4-мя неизвестными. Которая элементарно решается методом гаусса, либо ещё как-нибудь.
для ленивых:
1. есть учебники за 11 класс школы, в которых все формулы есть
2. есть мат.пакеты, которые перемножат всё, что нужно
In[1] = CForm[Simplify@CoefficientList[ExpandAll[(x - x1)(x - x2)(x - x3)(x - x4)], x]]
Out[1] = List(x1*x2*x3*x4,-(x2*x3*x4) - x1*(x3*x4 + x2*(x3 + x4)),
x3*x4 + x2*(x3 + x4) + x1*(x2 + x3 + x4),
-x1 - x2 - x3 - x4,1)
Спасибо за ответы. ivank, идея с матрицами интересная, но мне пока что будет трудно ее реализовать.
Я решил пойти по наиболее легкому пути, рассмотрев только частный случай
Dim x1,x2,x3,x4,a,b,c,d
x1=CDbl(inputbox("x1=?"))
x2=CDbl(inputbox("x2=?"))
x3=CDbl(inputbox("x3=?"))
x4=CDbl(inputbox("x4=?"))
d=x1*x2*x3*x4
MsgBox(d)
c=(x1*x2*x3+x1*x2*x4+x1*x3*x4+x2*x3*x4)*(-1)
MsgBox(c)
b=x1*x2+x1*x3+x1*x4+x2*x3+x2*x4+x3*x4
MsgBox(b)
a=(x1+x2+x3+x4)*(-1)
MsgBox(a)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.