Разложение функции в ряд Тейлора ⇐ ПредыдущаяСтр 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(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. Разбиваем отрезок 2. Для каждого узла i=1: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. К заданию 3.
Построить графики исходной функции, рядов Тейлора (на одних осях, как на рис. 1) и ошибки аппроксимации при n=1..4 на интервале Найти значения целевых функций Постройте графики целевых функций в логарифмическом масштабе. Для этого вместо функции plot используйте функцию semilogy. Сделайте вывод о влиянии числа членов разложения на точность аппроксимации.
Табл. 2. Зависимость ошибки аппроксимации от числа членов разложения в ряд Тейлора.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|