Задачи высшей математики с Maxima
3.6 Методы теории приближения в численном анализе
Курс высшей математики для студентов технических вузов содержит первичные основы численных методов как свою составную часть. Для специалистов инженерного профиля крайне важным представляется одновременное нахождение решения в замкнутой аналитической форме и получение численных значений результата. Представление функции в виде степенного ряда позволяет свести изучение свойств приближаемой функции к более простой задаче изучения этих свойств у соответствующего аппроксимирующего полиномиального разложения.
Этим объясняется важность всевозможных аналитических и численных приложений полиномиальных приближений для аппроксимации и вычисления функции. Замена функций на их степенные разложения и полиномиальные приближения помогает изучению пределов, анализу сходимости и расходимости рядов и интегралов, приближённому вычислению интегралов и решению дифференциальных уравнений. Степенные ряды и разложения по многочленам Чебышёва широко используются при вычислении значений функции с заданной степенью точности. Они являются эффективным вычислительным средством при решении широкого круга научно-технических задач.
3.6.1 Приближённое вычисление математических функций
Пусть функция задана на интервале и нам требуется вычислить значение функции при с заданной точностью .
Предположив, что функция в интервале раскладывается в степенной ряд
мы получим, что точное значение равно сумме этого ряда при а приближённое — частичной суммеДля погрешности приближения мы имеем выражение в виде остатка ряда
гдеДля знакопеременных рядов с последовательно убывающими членами
Точность аппроксимации, как правило, возрастает с ростом степени приближающего степенного разложения и тем выше, чем точка ближе к точке . Для равномерной аппроксимации на интервале наиболее удобными оказываются разложения по многочленам Чебышёва.
Для приближённого нахождения значений функции посредством степенных рядов, как правило, используются её разложения в виде рядов Тейлора.
Ряд Тейлора для функции — это степенной ряд вида
где числовая функция предполагается определённой в некоторой окрестности точки и имеющей в этой точке производные всех порядков.Многочленами Тейлора для функции , порядка соответственно, называются частные суммы ряда Тейлора
Если мы распишем эту формулу, то получим следующее выражение
Формула Тейлора для функции — это представление функции в виде суммы её многочлена Тейлора степени и остаточного члена. Другими словами это называют разложением функции по формуле Тейлора в окрестности точки . Если действительная функция одного переменного имеет производных в точке , то её формула Тейлора имеет вид
где — многочлен Тейлора степени , а остаточный член может быть записан в форме ПеаноПолучаем, что
Если функция дифференцируема раз в некоторой окрестности точки , то остаточный член в этой окрестности может быть записан в форме Лагранжа
Заметим, что при выражение для совпадает с формулой Лагранжа конечных приращений для функции .
Формула Тейлора для многочленов. Пусть имеется произвольный многочлен .. Тогда при любых и имеет место следующая формула:
Рядом Маклорена для функции называется её ряд Тейлора в точке 0 начала координат, то есть таким образом это степенной ряд вида
Таким образом формула Маклорена является частным случаем формулы Тейлора. Предположим, что функция имеет n производных в точке . Тогда в некоторой окрестности этой точки , функцию можно представить в виде
где — остаточный член -ого порядка в форме Пеано.Приведём разложения по формуле Маклорена для основных элементарных математических функций:
В Maxima существует специальная команда, позволяющая вычислять ряды и многочлены Тейлора: . Здесь — разлагаемое в ряд выражение, — значение , в окрестности которого выполняется разложение (по степеням ), — параметр, указывающий на порядок разложения и представленный целым положительным числом. Если указывается просто в виде имени переменной, то производится вычисление ряда и многочлена Маклорена.
Пример: Найти многочлен Тейлора 9-ой степени экспоненциальной функции в начале координат.
(%i29) taylor(exp(x),x,0,9);
Многочлены Тейлора дают наиболее точную аппроксимацию приближаемой функции вблизи точки . По мере удаления от точки погрешность возрастает. Для приближения приходится использовать многочлены Тейлора более высокой степени, но иногда и они не помогают в связи с накоплением вычислительной погрешности.
Интересно проследить этот процесс графически. Пакет Maxima предоставляет такую возможность с помощью команды .
Пример: Найти число с точностью до 0.001. Положим . Тогда чтобы вычислить значение , необходимо выполнить серию команд:
Строим разложение функции в ряд Тейлора (до 8 порядка включительно)
(%i1) t:taylor(exp(x),x,0,8);
Вычисляем частичную сумму ряда при :
(%i2) ev(t,x=1);
Значение в форме с плавающей точкой находим, используя функцию :
(%i3) float(%);
Интересно провести вычисления и сравнить результаты, получающиеся для числа при различных степенях используемого многочлена Тейлора. Получаются следующие результаты:
Отсюда видно, что значение e с точностью 0.001 вычисляется при использовании многочлена Тейлора степени не ниже 7-ой. Также следует, что число e c точностью 0.000001 или что то же самое вычисляется помощи с многочлена Тейлора 9-ой или более высокой степени.
Оценку остатка ряда произведём по формуле остаточного члена ряда Маклорена
где находится между 0 и . Следует .. Так как , то .. При имеем .Наряду с командой для разложения функций и выражений в ряды используется команда (выражение,) (строится разложение для заданного выражения по переменной в окрестности ). Результатом выполнения команды может быть построение её ряда Тейлора в общей форме, например:
(%i1) powerseries(sin(x),x,0);
(%i2) powerseries(sin(x^2),x,0);
Для разложения в ряд Тейлора функции нескольких переменных используется функция с указанием списка переменных в форме:
Пример: Найти многочлен Тейлора 6-ой степени от функции .
(%i1) f(x):=x/(1+x);
(%i2) powerseries(f(x),x,0);
(%i3) taylor(f(x),x,0,6);
Пример: Найти разложение функции в ряд Маклорена.
(%i6) taylor(acos(x),x,0,12);
Пример: Найти разложение функции по формуле Тейлора 5-ой степени в окрестности точки .
(%i7) taylor(exp(x)+1,x,2,5);
Пример: Найти разложение гиперболического косинуса в ряд Маклорена 8-ой степени.
taylor(cosh(x),x,10);
Получаем
Заметим, что у аналитических функций их разложения в ряд Тейлора существуют всегда. Приведём пример функции, не имеющей разложения в ряд Тейлора и для которой команда не даёт результата: .
(%i8) taylor(1/x^{2}+x,x,0,7);
В результате выполнения команды или получаем исходное выражение . В то же время в окрестности других точек, например точки , формула Тейлора вычисляется
(%i13) taylor(1/x^{2}+x,x,2,2);
(%i14) ratsimp(%);
Пакет Maxima даёт возможность как нахождения разложений математических функций в ряды Тейлора, так и графической интерпретации точности этих разложений. Подобная графическая визуализация помогает пониманию сходимости многочленов Тейлора к самой приближаемой функции.
Рассмотрим примеры такой графической визуализации для функции . Сравним графики самой функции с графиками её разложений Тейлора различных степеней.
Пример: Сравним функцию c её разложением Маклорена 4-ой степени на интервале [-5, 5].
Построим разложение
(%i15) appr:taylor(cos(x),x,0,5);
Построим график (экранная форма, в формате wxMaxima)
(%i16) wxplot2d([appr,cos(x)], [x,-5,5], [y,-1.1,1.1], [nticks,100]);
Выведем график в файл:
(%i17) plot2d([appr,cos(x)], [x,-5,5], [y,-1.1,1.1], [gnuplot_preamble, "set grid;"], [gnuplot_term, ps], [gnuplot_out_file, "appr.eps"])$
Легко заметить, что при небольших значениях графики самой функции и приближающего её разложения практически совпадают, однако при возрастании начинают отличаться.
Пример: Сравним функцию с её разложением Маклорена 8-ой степени на интервале [-5, 5]. Сопоставим результат с предыдущим примером.
Построим разложение более высокой степени:
(%i18) appr1:taylor(cos(x),x,0, 9);
Пример показывает, что при использовании разложения Тейлора более высокой степени точность приближения возрастает и удаётся достичь удовлетворительного приближения на более широком интервале. Однако заметим, что степень разложения Тейлора нельзя повышать неограниченно в связи с накапливанием вычислительной погрешности.
Разложение в ряд Тейлора может использоваться и для вычисления пределов (функция , по синтаксису аналогичная ).