Разложение рациональной дроби на простейшие.

Реферат - Математика и статистика

Другие рефераты по предмету Математика и статистика

?ивания , а оставшиеся методом неопределённых коэффициентов.

Пример. В том же самом примере

находим

так что

,

приводя к общему знаменателю получим

.

Случай 3. Подынтегральная функция имеет вид

Разложение этой функции на простейшие имеет вид.

т.е. от сомножителя идёт слагаемое вида . Оно при интегрировании даст интеграл третьего типа.

Коэффициенты при старших степенях , т.е. при находятся методом вычёркивания , остальные методом неопределённых коэффициентов.

Пример. Вычислить

Так как , то

находим методом вычёркивания

N и M находим методом неопределённых коэффициентов

Так как это должно быть равно то имеем

при и при )

Отсюда

(В последнем интеграле N=2 , M=1, p=1, q=1).

Общий случай правильной рациональной дроби мы рассматривать не будем .

В заключение отметим , что есть рациональная дробь неправильная , т. е. Степень полинома , стоящего в числителе , выше степени полинома, стоящего в знаменателе , то следует поделить эти полиномы друг на друга, выделить целую часть и затем интегрировать отдельно полученную целую часть и оставшуюся правильную рациональную дробь.

Пример. Вычислить

Решение . Делим полиномы друг на друга

1

Таким образом

и поэтому

Последний интеграл уже вычислен выше.

 

Часть 2.

“Практическая часть к курсовой работе”.

 

“Реализация метода простых коэффициентов в Maple”.

Для определения конкретных значений сих коэффициентов следует привести равенство к общему знаменателю и сравнить коэффициенты при одинаковых степенях x в числителе. Т.е. по сути дела решить систему линейных уравнений. Используется эта конструкция по большей части при вычислении интегралов, т.к. таким образом интеграл произвольной рациональной функции сводится, по сути дела, к сумме табличных интегралов. Этакая лекция по мат. анализу получилась.

Сразу скажу тем, кому вообще лень что-то делать по этому поводу. Maple делает все, что мы сейчас напишем, одной операцией:

 

> сonvert(rfun, parfrac, x);

 

И все. Спросите: зачем этот велосипед? Цель не конечный результат, а идея и методы ее реализации на Maple. Гораздо интереснее получается посмотреть на целую программу, реально работающий универсальный алгоритм, делающий конкретно нечто, чем просто читать обрывки help-ов под каждую команду языка на английском, не понимая в принципе, как это все связать воедино. Ясное дело, профессионалу, прочувствовавшему Maple, будет неинтересно читать подробные объяснения по поводу использованных функций языка, однако для изучающего систему “не совсем новичка”-математика это будет крайне полезно. Постараюсь в процессе показать читателю свое разумение философии пакета.

Как всегда первый вопрос: с чем работаем? Действительно, для отладки алгоритма необходимо создать хоть несколько рациональных дробей. Руками писать неудобно, поэтому даже этот этап “сгрузим” на машину.

> restart:

> readlib(randomize):

(а) > randomize():

(б) > d1:= rand(1..3):

> d2:= rand(2..7):

(в) > px:= randpoly(x, degree=21, coeffs=rand(-7..7), terms = 9):

(г) > for i from 1 to 3 do

> q[i]:= randpoly(x, degree=1, coeffs=rand(-7..7))^d1():

> q[i+3]:= (x^2 + x + d2())^d1():

> od:

(д) > rfun:= px/product(q[k], k=1..6);

 

Разберемся, что тут мы с вами наворотили. Итак, сначала подробно остановимся на генерации случайных целых чисел в системе Maple. (а) здесь мы заставляем генератор случайных чисел привязаться к системному времени. Если этого не сделать, то генерируемая последовательность будет каждый раз одинаковой. Вызов просто функции rand() без аргументов возвратит двенадцатизначное случайное натуральное число. В большинстве случаев это ну совсем неудобно. Можно это дело исправить, передавая функции один аргумент: rand(n) , что приведет к генерации числа из полуинтервала [0, n) . Зачастую и этого недостаточно для решения поставленной задачи. Можно еще более сузить “область значений” (б). Только в этом случае в d1 вернется отнюдь не число, а ссылка на процедуру, вызов которой приведет к генерации случайного числа из заданного отрезка. Произвольный полином максимальной степени 21 степени с коэффициентами из отрезка [-7,7] и девятью членами получим в (в) . Дальше интереснее нужно изготовить знаменатель. “Сделаем” его в виде произведения трех многочленов первой, и трех второй степени. Причем по определению многочлены второй степени не должны иметь действительных корней. Реализующая эту задачу конструкция (г) очевидна и в пояснениях не нуждается. И наконец, собрав числитель и знаменатель в одно целое, в (д) получим нашу рациональную дробь. Выражение product(q[k], k=1..6); является формальным переводом на язык Maple записи:

 

 

Знаменатель полученной функции таким образом уже будет разложен на множители. Для того чтобы задача приняла более правдоподобный характер, вместо (д) можно реализовать следующее:

 

 

> rfun:= px/expand(product(q[k], k=1..6), x);

 

 

Expand раскроет скобки и приведет подобные слагаемые относительно переменной x в знаменателе. В итоге получится настоящая рациональная дробь. То, что коэффициенты целые, общности задачи не ограничивает с таким же успехом мы могли сгенерировать их и иррациональными.

Если запустить все написанное, исключив строку (а) (генератор случайных чисел будет стандартно инициализирован), получится в точности:

Заметили? В знаменателе появилась “не заказанная” шестая степень. ?/p>