Разложение рациональной дроби на простейшие.
Реферат - Математика и статистика
Другие рефераты по предмету Математика и статистика
?ивания , а оставшиеся методом неопределённых коэффициентов.
Пример. В том же самом примере
находим
так что
,
приводя к общему знаменателю получим
.
Случай 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>