Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matlab_лек.8_Символьные вычисл_Текст.docx
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
183.22 Кб
Скачать

2.9.6. Другие возможности символьных преобразований в matlab.

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

» f = sym( '1/ (1 + х) ') ;

» tf = taylor (f ) ;

» pretty(tf)

2 3 4 5

1 - X + X - X + X - X

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

Нахождение символьных выражений для сумм, в том числе и бесконечных, позволяет осуществить функция symsum. Обращение к symsum в общем виде предполагает задание четырех аргументов: слагаемого в символьной форме, зависящего от индекса, самого индекса и верхнего и нижнего предела суммы [1, с. 768].

Ряд функций Symbolic Math Toolbox предназначен для решения задач дифференциального и интегрального исчисления. Функция limit находит предел функции в некоторой точке, включая и плюс или минус бесконечность. Первым входным аргументом limit является символьное выражение, вторым— переменная, а третьим— точка, в которой разыскивается предел [1, с. 769].

Возможность определения производной через предел позволяет применять limit для дифференцирования функций. Например, если для определения первой производной функции arctg(x) применить выражение

; то в MATLAB можно записать:

» syms h x

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

» pretty(L)

.

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

» Р = diff('atan(x)', х, 1);

» pretty(P)

.

Для исследования скорости роста функций можно использовать файл-функцию tangent. Входными аргументами tangent являются строка с символьным представлением функции одной переменной х и числовое значение абсциссы точки, в которой следует провести касательную. Файл-функция tangent выводит в одно графическое окно графики функции и касательной к ней в заданной точке [1, с. 771].

Символьное интегрирование является значительно более сложной задачей, чем дифференцирование. Symbolic Math Toolbox позволяет работать как с неопределенными интегралами, так и с определенными. Неопределенные интегралы от символьных функций вычисляются при помощи int, в качестве входных аргументов указываются символьная функция и переменная, по которой происходит интегрирование, например:

» syms х

» f = sym('х^3*ехр(х)');

» I = int(f, x)

I =

x^3*ехр(х) - 3*x^2*exp(x) + 6*x*exp(x) - 6*exp(x)

» pretty(I) % степени выводятся в отдельной строке и могут быть не на месте

x3 exp(x) - 3 x2 exp(x) + 6х exp(x) — 6 exp(x) .

Проверка дифференцированием полученной первообразной:

» diff (I, х, 1)

ans =

х^3*ехр(х) .

Функция int не всегда может выполнить интегрирование. В некоторых случаях int возвращает выражение для первообразной через специальные функции. Например, если необходимо получить значение интеграла

, то результат будет иметь следующий вид:

» syms x

» f = sym( 'exp(sin(x)^2)*cos(x) ' ) ;

» I = int(f, x);

» pretty(I)

-1/2 i pi1/2 erf(i sin(x)) .

Ответ содержит так называемую функцию ошибки, которая определяется интегралом с переменным верхним пределом:

.

Кроме того, в полученное выражение входит комплексная единица, хотя подынтегральная функция вещественна. Требуются дополнительные преобразования для достижения окончательного результата. Функции simple и simplify не смогут упростить данное выражение.

Для нахождения определенного интеграла в символьном виде следует задать нижний и верхний пределы интегрирования, соответственно, в третьем и четвертом аргументах int:

» syms x a b

» f = sym('(x^3 + 1)/(х - 1)');

» I = int (f, x, a, b) ;

» pretty(I)

1/3 b3 + 1/2 b2 + b + 2 log(b – 1) - 1/3 a3 - 1/2 a2 - a - 2 log (a - 1)

Двойные интегралы вычисляются повторным применением функции int.

Аналогичным образом в символьном виде вычисляются любые кратные интегралы [1, с. 775].