| И в библиотеке бывают рекламные паузы. |
Функция вычисляет значение полинома 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.