Символические вычисления в MatLab: Методические указания к лабораторной работе № 6, страница 5

         -------- + ----------------- + ---- + -------

                2           A             2       2

         (N + x)                         B       C

>> q=subs(f,'x',0)

q =

1+A^2/B^2+1/C^2

>> f3=sym('sin(x)+exp(x)+tan(x)');

>> q1=subs(f3,'x',0)

q1 =

     1

2.3. Разложение в ряд Тейлора и определение символических

выражений для сумм

Разложение математических функций в ряд Тейлора позволяет производить функция  taylor, например:

>> f=sym('sin(x)');

>> tf=taylor(f);

>> pretty(tf)

                               3          5

                      x - 1/6 x  + 1/120 x

По умолчанию выводится шесть членов ряда разложения в окрестности точки ноль. Число членов разложения можно задать во втором дополнительном параметре функции taylor. Третий параметр указывает, по какой из переменных следует производить разложение, в том случае, когда символическая функция определена от нескольких переменных. Точка, в окрестности которой проводится разложение, указывается в четвертом входном аргументе функции  taylor, например:

>> syms x;

>> f=sym('sin(x)');

>> tf=taylor(f, 5, x, pi/4);

>> pretty(tf)

      1/2        1/2                     1/2             2

 1/2 2    + 1/2 2    (x - 1/4 pi) - 1/4 2    (x - 1/4 pi)

         1/2             3         1/2             4

 - 1/12 2    (x - 1/4 pi)  + 1/48 2    (x - 1/4 pi)

Нахождение символических выражений для сумм, в том числе и бесконечных, позволяет осуществить функция symsum. Обращение к symsum в общем случае предполагает задание четырех аргументов: слагаемого в символической форме, зависящего от индекса, самого индекса и верхнего и нижнего предела суммы. Если в слагаемые входит факториал, то следует применить к выражению для факториала функцию sym. Найдите значение бесконечной суммы, являющейся разложением в ряд функции sin(x)

>> syms k x

>> s=symsum((-1)^(k)*x^(2*k+1)/sym('(2*k+1)!'),k,0,inf)

s =

sin(x)

2.4. Определение пределов, дифференцирование и интегрирование

Функция  limit  находит предел функции в некоторой точке, включая плюс или минус бесконечность. Первым входным аргументом  limit  является символическое выражение, вторым - переменная, а третьим точка, в которой определяется предел. Пусть, например, требуется вычислить

>> syms a x

>> limit((1+1/x)^(x*a),x,Inf)

ans =

exp(a)

Функция  limit  позволяет находить односторонние пределы. Для нахождения предела справа следует указать четвертый дополнительный аргумент 'right', а слева  - 'left'. Найдите решение следующих двух задач

     

>> syms x

>> limit((10+x)^(1/x),x,0, 'left')

ans =

0

>> limit((10+x)^(1/x),x,0, 'right')

ans =

inf

>> 

Обратите внимание, что обычный предел в точке нуль не существует:

>> limit((10+x)^(1/x),x,0)

ans =

NaN

Определение производной через предел позволяет применять  limit  для дифференцирования функций. Например, найдем первую производную функции , используя равенство

>> syms h x

>> L=limit((atan(x+h)-atan(x))/h, h, 0);

>> pretty(L)

                            1

                          ------

                               2

                          1 + x

Вычисление производных любого порядка проще производить при помощи функции  diff.  Символическая запись функции указывается в первом входном аргументе, переменная, по которой производится дифференцирование - во втором, а порядок производной - в третьем. Применим  diff  для вычисления первой и второй производных функции :

>> P=diff('atan(x)',x,1);

>> pretty(P)

                             1

                           ------

                                2

                           1 + x

>> P=diff('atan(x)',x,2);

>> pretty(P)

                              x