1.5. Вычисление корней полиномов с целыми коэффициентами в форме простых дробей
Число xj называется
корнем (нулем)
целой рациональной
функции f(x)
с действительными коэффициентами,
если
. (1.14)
Вычисление корней полиномов, таким
образом, сводится к решению
алгебраических уравнений (1.14).
Для нахождения рациональных корней
полиномов с целыми
коэффициентами обычно
используется хорошо
известная схема Горнера [Корн,
Корн, 1978; Бронштейн, Семендяев, 1981]. В
алгоритме применено предложенное
в работе [Pek, 1961] расширение этой
схемы, суть которого
состоит в следующем.
Полином (1.13) с целыми
коэффициентами при a0×
an
0 имеет в качестве корня
несократимую дробь p/q
тогда и только тогда, когда
.
Кроме того, q должно быть множителем
an,
а p - множителем a0.
Ненулевые рациональные корни
p/q могут
быть выведены на внешний носитель
информации в файл, имя
которого передается при
вызове процедуры.
Формальные параметры процедуры.
Входные: a (тип integer)
- одномерный массив размером от 0 до n,
в котором размещают коэффициенты
полинома (1.13); n (тип
integer) - степень полинома;
k (тип string) - имя файла
на внешнем носителе (магнитном
диске), в который будут
записываться результаты
счета. Выходные: p, q (тип
integer) - числители и
знаменатели найденных
рациональных
корней, выводятся на
внешний носитель.
procedure
ratf (a : mas1; var n : integer;
k:
string);
var i, p,
q, r, t, f, g, a0, an : integer; f : text;
begin
a0:=abs(a[0]);
an:=abs(a[n]);
Assign
(f,k);
Rewrite
(f);
for p:=1
to a0 do
begin
15