Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 05.doc
Скачиваний:
8
Добавлен:
19.09.2019
Размер:
258.05 Кб
Скачать

Глава 7 символьные вычисления

В предыдущих главах рассматривались численные процедуры MATLAB, выполняемые с аргументами, заданными в виде чисел или числовых массивов. В состав MATLAB входит пакет Symbolic Math ToolBox, который добавил к системе возможность символьных вычислений. Помимо типовых аналитических вычислений (таких, как упрощение математических выражений, подстановка, нахождение пределов, дифференцирование, интегрирование, интегральные преобразования, получение решений уравнений и систем уравнений, включая дифференциальные и т.д.) пакет Symbolic позволяет реализовывать арифметические операции с любой точностью. Функции пакета Symbolic реализуют интерфейс между средой MATLAB и ядром Maple IV системы аналитических вычислений, или системы компьютерной алгебры, канадского университета Waterlooo, причем работа в MATLAB не требует установки Maple. Версия системы Maple IV в своем ядре и в расширениях имеет около 3000 функций. Система MATLAB с пакетом Symbolic, включающим в себя около сотни символьных команд и функций, намного уступает Maple по их количеству. Однако, пользователь, имеющий опыт работы в Maple, может напрямую обращаться ко всем функциям и процедурам этой системы (кроме графических), написанным на встроенном языке Maple (см. раздел 7.17). Способы получения справочной информации по пакету Symbolic рассмотрены в Приложении 1.

7.1 Символьные переменные, константы и выражения

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

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

Например, команда

>>x=sym('x')

x =

x

возвращает символьную переменную с именем 'x' и записывает результат в х.

Команда x=sym('x','real') дополнительно определяет x как вещественную переменную. Аналогично, x=sym('x','positive') определяет x как положительную (вещественную) переменную, а x=sym('x','unreal') определяет x как чисто формальную переменную (то есть не обладающую никакими дополнительными свойствами).

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

Команда

>> syms a b c

создает символьные переменные с именами a, b, c.

Команда

>> Pi=sym('pi');

создает символьное число Pi=π, не обладающее погрешностью представления числа π в формате с плавающей запятой. Результаты операций с символьным Pi выражаются не в числовой, а в символьной форме. Следовательно, пакет Symbolic позволяет получить точные значения тригонометрических функций (и их рациональных комбинаций) от аргумента π в виде выражений, включающих квадратные корни из рациональных чисел, если такие выражения существуют и могут быть найдены системой. Например, точное значение sin имеет вид:

>> S=sin(Pi/5)

S =

1/4*2^(1/2)*(5-5^(1/2))^(1/2)

Символьное выражение S выведено в командное окно в одну строку.

Функция pretty(S) выводит в командное окно символьное выражение S в формате, приближенном математическому.

>> pretty(S)

1/2 1/2 1/2

1/4 2 (5 - 5 )

Теперь очевидно, что sin = .

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

>> F=sym('x+y')

F =

x+y

Команда syms без аргументов выводит список символьных объектов, имеющихся в рабочем пространстве.

При запросе о наличии символьных переменных в памяти после выполнения предыдущего примера

>> syms

'F'

получен ответ 'F', то есть входящие в выражение переменные x и y не являются символьными. Их нельзя использовать в качестве аргументов в дальнейших символьных вычислениях.

Изменим рассмотренный выше ввод символьного выражения F следующим образом:

>> syms x y

>> F=x+y

F =

x+y

>> syms

'F' 'x' 'y'

Теперь переменные x и y вначале получили статус символьных, а сконструированное из них выражение F приобрело статус символьного автоматически.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]