Создание символьных переменных
Лабораторная работа № 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