Создание символьных переменных

Лабораторная работа № 12

Пакет расширений Symbolic Math

Цель работы: Получить навыки работы с пакетом расширенияSymbolic Math.

Краткая теория

Система MATLAB является самой крупной системой компьютерной математики, ориентированной на матричные и численные вычисления. Однако MATLAB имеет также и средства аналитических вычислений. Пакет Symbolic Math Toolbox добавил системе MATLAB качественно новые возможности, связанные с выполнением символьных вычислений и преобразований, которые были доступны только в системе принципиально иного класса, относящихся к компьютерной алгебре. Теперь MATLAB, с учетом новых средств, становится в полной мере универсальной системой. Последняя реализация системы символьной математики Maple 6 в своем ядре и в расширениях имеет около 3000 функций. Система MATLAB с пакетом Symbolic, включающим в себя чуть больше сот­ни символьных команд и функций, намного уступает Maple по ко­личеству таких команд и функций. Однако в данный пакет включе­ны лишь наиболее важные и широко распространенные функции. Кроме того, есть специальная команда, которая дает доступ к ядру Maple, что заметно расширяет круг используемых функций.

Помимо типовых аналитических вычислений(таких как символьное дифференцирование и интегрирование, упрощение математических выражений, подстановка и т. д.) пакет Symbolic позволяет реализо­вать арифметические операции с произвольной точностью.

С помощью команды

» help symbolic

можно получить перечень входящих в пакет команд и функций. Для получения справки по любой команде или функции можно использовать ко­манду

» help sym / name.m,

где name — это имя соответствующей команды или функции, а name.m — имя m-файла, задающего данную команду или функцию.

С демонстрационными примерами пакета Symbolic можно ознакомиться с помощью директории Symbolic Toolbox.

Арифметика произвольной точности

Функция digits служит для установки числа цифр в числах арифметики произвольной точности. Она используется в следующем виде:

digits — возвращает число значащих цифр в числах арифметики произвольной точности (по умолчанию 32);

Примеры:

» digits

Digits = 32

» vpa pi

ans =

3.1415926535897932384626433832795

» digits(6)

» pi

ans =

3.1416

Для проведения вычислений в арифметике произвольной точности служит функция vpa:

▪ R = vpa(S) — возвращает результат вычислений каждого элемента символьного массива S, используя арифметику произвольной точ­ности с текущим числом цифр D, установленным функцией digits. Результат R имеет тип sym.

▪ vpa(S,D) — возвращает результат вычислений каждого элемента массива S, используя арифметику произвольной точности с коли­чеством знаков чисел D.

Примеры:

vpa(exp(1),50)

ans =

2.7182818284590450907955982984276488423347473144531

Лабораторная работа № 12

Пакет расширений Symbolic Math

Цель работы: Получить навыки работы с пакетом расширенияSymbolic Math.

Краткая теория

Система MATLAB является самой крупной системой компьютерной математики, ориентированной на матричные и численные вычисления. Однако MATLAB имеет также и средства аналитических вычислений. Пакет Symbolic Math Toolbox добавил системе MATLAB качественно новые возможности, связанные с выполнением символьных вычислений и преобразований, которые были доступны только в системе принципиально иного класса, относящихся к компьютерной алгебре. Теперь MATLAB, с учетом новых средств, становится в полной мере универсальной системой. Последняя реализация системы символьной математики Maple 6 в своем ядре и в расширениях имеет около 3000 функций. Система MATLAB с пакетом Symbolic, включающим в себя чуть больше сот­ни символьных команд и функций, намного уступает Maple по ко­личеству таких команд и функций. Однако в данный пакет включе­ны лишь наиболее важные и широко распространенные функции. Кроме того, есть специальная команда, которая дает доступ к ядру Maple, что заметно расширяет круг используемых функций.

Помимо типовых аналитических вычислений(таких как символьное дифференцирование и интегрирование, упрощение математических выражений, подстановка и т. д.) пакет Symbolic позволяет реализо­вать арифметические операции с произвольной точностью.

С помощью команды

» help symbolic

можно получить перечень входящих в пакет команд и функций. Для получения справки по любой команде или функции можно использовать ко­манду

» help sym / name.m,

где name — это имя соответствующей команды или функции, а name.m — имя m-файла, задающего данную команду или функцию.

С демонстрационными примерами пакета Symbolic можно ознакомиться с помощью директории Symbolic Toolbox.

Создание символьных переменных

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

» sin(x)^2 + соs(х)^2

??? Undefined function or variable 'x'.

» sin('x')^2 + cos('x')^2

ans =

В первом случае система MATLAB «возмутилась» нашей не­брежностью и сообщила, что функция или переменная х не опред­елена и ни о каких вычислениях синуса и косинуса речи быть не может. Вместе с тем она подсказала, как надо поступить — заключить имя переменной в апострофы, ибо таким образом система получает информацию о необходимости включить символь­ный режим вычислений. Поэтому во второй раз получен вполне осмысленный результат — сумма квадратов синуса и косинуса пе­ременной 'х' выдана равной 1.

Функция создания символьных переменных sym

Для работы с командами ядра Maple в MATLAB определён новый тип переменной sym –символьный объект. Фактически это строковые переменные. Для проведения аналитических (символьных) операций нужно, чтобы соответствующие переменные были предварительно объявлены.

• S = sym(A) — возвращает символьный объект S класса 'sym' для входного параметра А. Если А — строка, то будет получена символьная строка или символьная переменная, а если А — это число (скаляр) или матрица, то будут получены их символьные пред­ставления.

• х = sym ('x') — возвращает символьную переменную с именем 'х' и записы-

вает результат в х.

Функция создания группы символьных объектов syms

Для создания группы символьных объектов служит функция syms:

• syms argl arg2 ... — создает группу символьных объектов.

Функция создания списка символьных переменных findsym

В математических выражениях могут использоваться как обычные, так и символьные переменные. Функция findsym позволяет выделить символьные переменные в составе выражения S:

• findsym(S) — возвращает в алфавитном порядке список всех символьных переменных выражения S. При отсутствии таковых возвращается пустая строка.

Примеры:

» а =2; b = 4 ;

» findsym (a*x^2 + b*y + z)

ans =

х, у, z

» findsym(a + b + x + y + z, 2)

ans =

х, у, z

Функция вывода символьных выражений pretty

MATLAB в отличие от современных систем MathCAD, Maple или Mathematica, пока не способна выводить выражения и результаты их преобразований в естественной математической форме с использованием общеприня­тых спецзнаков для отображения интегралов, сумм, произведений и т. д. Тем не менее некоторые ограниченные текстовым форматом воз­можности близкого к математическому виду вывода обеспечивает функция pretty:

• pretty(S) — дает вывод выражения S в формате, приближенном к математическому;

« x = sym(‘x’);

« pretty ( x^2 )

x 2

Наши рекомендации