Произведение биномов
Back Home Up Next

адача 31. Составить программу-функцию, возвращающую коэффициенты многочлена g(x), который получается в результате перемножения биномов (x - vk) (k = 0,1,...,n-1; n³1): g(x) = (x - v0)×(x - v1)×...×(x - vn-1).

Решение. Будем считать, что свободные члены биномов заданы в виде компонентов некоторого вектора v = (v0   v1   ...   vn-1)T, а результат вычислений должен возвращаться также в виде вектора. Поскольку

g(x) = [(x - v0)×(x - v1)×...×(x - vn-2)]×(x - vn-1),

то несложно организовать рекурсию по количеству перемножаемых биномов. Соответствующая программа-функция могла бы выглядеть так:

Контрольный пример:

t := (1   -5   2)T,       probin(t)T = [1   2   -13   10].

Замечание. Пусть по известным корням c1, c2, ... , cn унарного многочлена f(x) степени n требуется найти его коэффициенты a1, a2, ... , an:

Унарность f(x) означает, что коэффициент при старшей степени x равен единице. Этим обеспечивается единственность решения поставленной задачи и коэффициенты ak (k = 1,2,...,n) можно находить, например, с помощью формул Виета:

Однако конкретные вычисления по этим красивым формулам проводить затруднительно. Проще это делать с помощью рекурсивной функции probin(c), где с - вектор из корней f(x): c=(c1   c2   ...   cn)T. А возможность эта вытекает из представления f(x) = (x - c1)×(x - c2)×...×(x - cn).

Home Содержание Схемы ООД Доска объявлений Поиск