Книги-online
Операции над полиномами.
|
И в библиотеке бывают рекламные паузы. |
Операции над полиномами.
Вычисление значения полинома от заданного аргумента.
Функция вычисляет значение полинома P(x)=p0+p1x+. . . +pnxn в точке x0 по схеме Горнера. Т.е. используя формулу:
P(x)=(..(pnx0+pn-1)x0+. . . +p1)x0+p0
Наверх
Умножение полиномов.
Процедура находит коэффициенты полинома полученного в результате перемножения двух полиномов:
Q(x)=q0+q1x+. . . +qmxm,
P(x)=p0+p1x+. . . +pnxn,
H(x)=P(x)Q(x)=h0+h1x+. . . +hn+mxn+m
Процедура по известным значениям pi и qi вычисляет значения hi. Надо заметить, что алгоритм усложняется, т.к. не известно можно ли использовать переменные массивов p,q с номерами большими n,m, если же положить их равными 0, то можно использовать алгоритм перемножения рядов положив в нем n=n+m.
Наверх
Деление с остатком.
Пусть заданы два полинома:
Q(x)=q0+q1x+. . . +qmxm,Q(x)0,
P(x)=p0+p1x+. . . +pnxn.
Алгоритм осуществляет поиск коэфициентов полиномов
H(x)=h0+h1x+. . . +hn-mxn-m,
R(x)=r0+r1x+. . . +rkxk, k < m
удовлетворяющих соотношению:
P(x)=Q(x)H(x)+R(x)
При этом предполагаем, что pn,qm не равны 0. Переменная k на выходе из процедуры содержит значение степени полинома R(x), если k=-1 значит полином Q(x) делитель полинома P(x).
Наверх
Коэффициенты полинома при линейном преобразовании аргумента.
Если в полиноме n -й степени
P(x)=c0+c1x+ . . .+cnxn
аргумент x заменить на x=at+b, то получим полином
P(at+b)=c0+c1(at+b)+. . .+cn(at+b)n=d0+d1t+. . .+dntn
где

Процедура вычисляет коэффициенты di
Наверх
Коэффициенты полинома по заданным вещественным корням.
Алгоритм вычисляет коэффициенты полинома по заданным вещественным корням. Работа алгоритма сводиться к последовательному умножению текущего полинома на (x-xk), где xk - k-й корень.
На вход подается массив P[1..n] - корней полинома, на выходе получаем массив A[0..n] - коэффициентов полинома A(x)=a0+a1x+...+anxn
Наверх
Вычисление коэффициентов полинома обратного заданному.
Алгоритм для полинома A(x)=a0+a1x+...+anxn находит m- первых коэффициентов обратного полинома:
B(x)=1/A(x)=x-k (b0+b1x+...+bmxm+...)
здесь k - количество первых нулевых коэффициентов полинома A(x).
Коэффициенты bj ищутся по формулам:
b0=1/a0;
bj=-b0(a1bj-1+...+ajb0), j=1..n
bj=-b0(a1bj-1+...+anbj-n), j=n+1,n+2,...
На вход алгоритма подаются переменные n,m соответственно степень полинома A и количество коэффициентов полинома B, которые необходимо вычислить, а так же массив a[0..n] - содержащий коэффициенты исходного полинома. На выходе получаем переменную k, и массив b[0..m] - коэффициенты полинома b.
Наверх