Разложение функции в ряд Тейлора ⇐ ПредыдущаяСтр 2 из 2
Разложение математических функций в ряд Тейлора позволяет определить функция taylor, например:
>> syms x >> taylor(sin(x)) ans = x^5/120 - x^3/6 + x
По умолчанию выводятся шесть членов ряда разложения в окрестностях точки ноль. Число членов разложения можно задать во втором дополнительном параметре. Точка, в окрестности которой проводится разложение, указывается в третьем входном аргументе. Например, получим 8 членов разложения функции в окрестности точки . >> g=taylor(sin(x),8,1) ans = sin(1) - (sin(1)*(x - 1)^2)/2 + (sin(1)*(x - 1)^4)/24 - (sin(1)*(x - 1)^6)/720 + cos(1)*(x - 1) - (cos(1)*(x - 1)^3)/6 + (cos(1)*(x - 1)^5)/120 - (cos(1)*(x - 1)^7)/5040
Это соответствует выражению Убедимся в то, что в точке значения функции и ряда Тейлора совпадают:
>> subs(g,x,1) ans = 0.8415
>> sin(1) ans = 0.8415
Для более наглядного представления функции можно использовать функцию pretty:
>> pretty(g)
Так как ряд Тейлора представляет собой полином, то всегда можно перейти от символьного представления к векторному
>> v=sym2poly(g) ans = -0.0001 -0.0004 0.0093 -0.0012 -0.1656 -0.0005 1.0002 -0.0000
и построить график функции на заданном отрезке
>> x=0:0.001:2; >> f=polyval(v,x); >> plot(x,f)
С увеличением числа членов ряда растет точность приближения исходной функции в окрестности точки, относительно которой проводится разложение. На рис. 1-2 представлены графики функции и рядов Тейлора для данной функции с заданным числом членов разложения. Рис. 1. Графики функции и ее аппроксимации Рис. 2. Графики функции и ее аппроксимации вблизи точки, относительно которой происходит разложение в ряд Тейлора
Для оценки точности аппроксимации функции рядом Тейлора на заданном отрезке может служить следующий подход. Задаем число членов ряда n. 1. Разбиваем отрезок на узлов . i=1..N, число узлов выбирается достаточно большим. 2. Для каждого узла i=1:N находим значения исходной функции и ряда Тейлора степени n и находим ошибку аппроксимации для данной точки . 3. Критериями точности аппроксимации могут быть следующие целевые функции: средний модуль ошибки , или средний квадрат ошибки . И в том, и в другом случае, чем ближе значение критерия к нулю, тем точнее аппроксимация.
В состав Symbolic Math Toolbox входит приложение taylortool с графическим интерфейсом, предназначенное для наглядной демонстрации разложения в ряд различных функций, в том числе и определенных пользователем. Команда taylortool приводит к появлению окна приложения, изображенного на рис. 3.
Рис. 3. Пример работы приложения taylortool. Синим показана исходная функция, а красным – частичная сумма ряда Тейлора
Пользователь может вводить формулы различных функций в строке f(x)= в соответствии с правилами MATLAB и исследовать приближение функции на произвольном интервале отрезком ряда Тейлора, содержащим различное число членов разложения. Интерфейс приложения taylortool достаточно простой и не требует дополнительных пояснений.
Пример 2. Построим график ошибки и модуля ошибки для функции f=sin(x) при использовании аппроксимации полиномом третьей степени на отрезке [-2; 2].
% интервал разбиения с небольшим шагом t=-2:0.01:2; N=numel(t); % число узлов разбиения % исходная функция f=sin(t);
syms x % частичная сумма ряда Тейлора при n=3 g(x,3) g3=taylor(sin(x),3,0); g=subs(g3,x,t); % график функции и ее разложения в ряд Тейлора % figure % plot(t,f,t,g) % grid on % ошибка аппроксимации e=f-g; % абсолютное значение ошибки аппроксимации e1=abs(e); % графики ошибки и модуля ошибки figure plot(t,e,t,e1) grid on legend('e','e_1')
% целевая функция eps1(i)=sum(e1)/N;
Задание 1. Найти разложения Тейлора заданной функции (табл. 1) в точке при числе слагаемых от 1 до 4 с помощью приложения taylortool и функции taylor.
Табл. 1. К заданию 3.
Построить графики исходной функции, рядов Тейлора (на одних осях, как на рис. 1) и ошибки аппроксимации при n=1..4 на интервале . При этом все графики должны иметь разный стиль оформления (цвет и тип линий, тип маркера и т.д.). Найти значения целевых функций , на заданном интервале для n=1..8. Полученные результаты занести в табл. 2. Постройте графики целевых функций в логарифмическом масштабе. Для этого вместо функции plot используйте функцию semilogy. Сделайте вывод о влиянии числа членов разложения на точность аппроксимации.
Табл. 2. Зависимость ошибки аппроксимации от числа членов разложения в ряд Тейлора.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|