Деление на полиноми
За информацията в тази статия или раздел не са посочени източници. Въпросната информация може да е непълна, неточна или изцяло невярна. Имайте предвид, че това може да стане причина за изтриването на цялата статия или раздел. |
Делението на полиноми е математически алгоритъм за решаване на уравнение от вида:
за дадени полиноми p и q, т.е. търсят се s и r. To e аналогично на делението с остатък при целите числа.
Приложение
[редактиране | редактиране на кода]Делението на полиноми се използва и за:
- намаляване на степента и съответно приблизително изчисляване на уравнения от висока степен
- изчисляване асимптоти на рационални функции
- изчисляване на контролна сума при кодиране на информация
- интегриране на рационални функции
Изчисление
[редактиране | редактиране на кода]На ръка
[редактиране | редактиране на кода]Процедира се точно както при писменото деление на цели числа и се изчислява по същата схема. Ето и етапите един по един:
- Нека решим следната задача
- Първо трябва да се погрижим за елиминирането на най-голямата степен на полинома. За тази цел трябва да умножим q с 4x3, тогава най-високата степен на q е и е в сила .
- Продължава се по същия начин с елиминирането на съответната най-висока степен, докато получим остатък, който не може да бъде елиминиран, понеже степента му става по-малка от тази на q.
Алгоритъм
[редактиране | редактиране на кода]Следния код на BASIC показва същността на изчислението:
For i = GradZ - GradN To 0 Step -1 Quotient(i) = Zähler(i + GradN) / Nenner(GradN) For j = GradN To 0 Step -1 Zähler(i + j) = Zähler(i + j) - Nenner(j) * Quotient(i) Next j Next i For j = GradN - 1 To 0 Step -1 Rest(j) = Zähler(j) Next j
Променливата Zähler() е масив, който съдържа коефициентите на полинома в числителя, тоест Zähler(i) съдържа коефициента на степента xi. Съответно Nenner() е друг масив, който съдържа коефициентите на знаменателя. Резултата е полином, който се записва в Quotient() и Rest(). Променливите GradN и GradZ съдържат съответните степени на полиномите в числителя и знаменателя.
Алгоритъмът може да се оптимизира, като вътрешният цикъл се върти от 0 до (GradN-1) и резултатът се записва обратно в Zähler() и така променливите Quotient() и Rest() могат да отпаднат.