Задачи высшей математики с 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);

Для разложения в ряд Тейлора функции нескольких переменных используется функция
с указанием списка переменных в форме: ![taylor(expr, [x_1,x_2,... ], [a_1,a_2,... ], [n_1,n_2,... ])](/sites/default/files/tex_cache/8f8ca46cd226ec09814552650e18f76b.png)
Пример: Найти многочлен Тейлора 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);

Пример показывает, что при использовании разложения Тейлора более высокой степени точность приближения возрастает и удаётся достичь удовлетворительного приближения на более широком интервале. Однако заметим, что степень разложения Тейлора нельзя повышать неограниченно в связи с накапливанием вычислительной погрешности.
Разложение в ряд Тейлора может использоваться и для вычисления пределов (функция
, по синтаксису аналогичная
).

