- •Глава 7 символьные вычисления
- •7.1 Символьные переменные, константы и выражения
- •7.2 Вычисления с использованием арифметики произвольной точности
- •7.3 Функции упрощения выражений – simplify, simple
- •7.4 Функция расширения выражений – expand
- •7.5 Разложение выражений на простые множители – функция factor
- •7.6 Приведение подобных членов – функция collect
- •7.7 Обеспечение подстановок – функция subs
- •7.8 Функция вычисления пределов – limit
- •7.9 Функция вычисления производных – diff
- •7.10 Функция вычисления интегралов – int
- •7.11 Функция разложения выражения в ряд Тейлора – taylor
- •7.12 Функция вычисления сумм рядов – symsum
- •7.13 Решение алгебраических уравнений и систем– функция solve
- •7.14 Решение дифференциальных уравнений – функция dsolve
- •7.15 Прямое и обратное преобразования Лапласа – функции laplace, ilaplace
- •7.16 Графики символьных функций – команды ezplot, ezpolar
- •7.17 Доступ к ресурсам ядра системы Maple
- •1) Разложение рациональной дроби на сумму простейших дробей
- •2) Нахождение интерполяционного полинома Лагранжа
- •3) Решение неравенств и систем неравенств
- •4) Разложение в ряд Тейлора функции нескольких переменных
- •5) Решение дифференциальных уравнений с помощью степенных рядов
- •6) Решение тригонометрических уравнений
7.11 Функция разложения выражения в ряд Тейлора – taylor
В задачах аппроксимации и приближения функций f(x) важное место занимает их разложение в ряд Тейлора в окрестности точки a:
f(x) = .
Частным случаем этого ряда при a=0 является ряд Маклорена:
f(x) = .
Для получения разложения аналитической функции f в ряд Тейлора (и Маклорена) служит функция taylor:
taylor(f) – возвращает шесть членов ряда Маклорена (ряд Тейлора в точке х=0). В общем случае, когда небходимо задать число членов разложения n, и точку a, относительно которой ищется разложение, используется функция taylor(f,n,x,a).
Примеры:
>> syms x
>> taylor(cos(x))
ans =
1-1/2*x^2+1/24*x^4
>> taylor(cos(x),5,x,2)
ans =
cos(2)-sin(2)*(x-2)-1/2*cos(2)*(x-2)^2+1/6*sin(2)*(x-2)^3+1/24*cos(2)*(x-2)^4
Получим разложение в степенной ряд по степеням x «функции ошибок», определяемой равенством
Erf(x)= dt
и не выражающейся в конечном виде через элементарные функции.
Решение:
>> syms x t
>> Pi=sym('pi');
>> taylor(2/sqrt(Pi)*int(exp(-t^2),t,0,x))
ans =
2/pi^(1/2)*x-2/3/pi^(1/2)*x^3+1/5/pi^(1/2)*x^5
>> [m n]=simple(ans)
m =
1/15*x*(30-10*x^2+3*x^4)/pi^(1/2)
>> pretty(m)
2 4
x (30 - 10 x + 3 x )
1/15 -------------------------
1/2
pi
Команда taylortool приводит к появлению окна приложения, изображенного на рис.7.1.
Рис.7.1.
Пользователь может вводить формулы различных функций в строке f(x)= и
исследовать приближение функции на произвольном интервале отрезком ряда Тейлора требуемой длины.
7.12 Функция вычисления сумм рядов – symsum
В математическом анализе часто приходится вычислять сумму значений функции f(i) при условии, что аргумент i этой функции принимает целочисленные значения, изменяющееся в замкнутом интервале [a;b], т.е.
Sum = .
Такие суммы принято называть конечными. При b = ∞ можно говорить о бесконечной сумме (в смысле бесконечного числа членов ряда).
Для аналитического вычисления суммы ряда служит функция
symsum(f, i, a, b), возвращающая сумму ряда . Справка по функции – doc symsum.
Рассмотрим применение этой функции на примерах.
Найти сумму числового ряда:
..
Решение:
>> syms n
>> symsum(1/n^2,n,1,inf)
ans =
1/6*pi^2
Таким образом,
= .
Найти сумму числового ряда:
.
Решение:
>> syms n
>> symsum((-1)^n/n,n,1,inf)
ans =
-log(2)
В результате получили
= -ln2.
Найти сумму числового ряда:
..
Решение:
>> syms n
>> symsum(1/n^3,n,1,inf)
ans =
zeta(3)
>> vpa(ans,8)
ans =
1.2020569
Результат выражается через дзета – функцию Римана (справка по этой функции – doc zeta) и равен
= zeta(3) ≈ 1,2020569.
Найти сумму числового ряда:
.
Решение:
>> syms s n
>> symsum(cos(n*pi)/n^2,n,1,inf)
ans =
-hypergeom([1, 1, 1],[2, 2],-1)
>> vpa(ans,8)
ans =
-.82246703
Результат выражается через гипергеометрическую функцию (справка по этой функции – doc hypergeom) и равен
= –hypergeom([1, 1, 1], [2, 2], –1) ≈ –0,82246703.
Если в слагаемые входит знак факториала, то в этом случае следует использовать функцию sym.
Найдем сумму функционального ряда:
.
Решение:
>> syms x k
>> symsum(x^k/sym('k!'), k, 0,inf)
ans =
exp(x)
Таким образом,
=ex.
Найдем сумму числового ряда:
.
Решение:
>> syms n
>> symsum(cos(n)/n^2,n,1,inf)
ans =
sum(cos(n)/n^2,n = 1 .. inf)
>> vpa(ans,8)
ans =
sum(cos(n)/n^2,n = 1 .. inf)
Результат свидетельствует о том, что среда MATLAB не нашла сумму ряда.
Найдем конечную сумму:
.
Решение:
>> syms k
>> symsum(k^2,k,0,10)
ans =
385
Сумма равна 385.
Найдем конечную сумму с переменным верхним пределом n:
.
Решение:
>> syms k n
>> symsum(k^2,k,0,n)
ans =
1/3*(n+1)^3-1/2*(n+1)^2+1/6*n+1/6
>> pretty(ans)
3 2
1/3 (n + 1) - 1/2 (n + 1) + 1/6 n + 1/6
Найдем конечную сумму с переменным верхним пределом n:
.
Решение:
>> syms k n
>> symsum(cos(k*pi/2),k,1,n)
ans =
1/2*sin(1/2*(n+1)*pi)-1/2*cos(1/2*(n+1)*pi)-1/2
simple(ans)
ans =
1/2*cos(1/2*n*pi)+1/2*sin(1/2*n*pi)-1/2
Для аналитического вычисления произведения ряда служит функция product. Справка по функции – mhelp product.