Символические вычисления
В состав MatLab входит ToolBox Symbolic Math, предназначенный для вычислений в символическом виде. Преобразование выражений, разыскание аналитического решения задач линейной алгебры, дифференциального и интегрального исчисления, получение численного результата с любой точностью — вот далеко не полный перечень возможностей, предоставляемых данным ToolBox. Функции ToolBox Symbolic Math реализуют интерфейс между средой MatLab и библиотекой функций, являющихся вычислительным ядром Maple, причем работа в MatLab не требует установки Maple. Расширение ToolBox позволяет пользователям, имеющим опыт работы в Maple, использовать ресурсы ядра Maple практически в полном объеме, включая и программирование в Maple.
Символические переменные и функции
Объектно-ориентированный подход, реализованный в MatLab, позволил сделать работу с символическими выражениями простой и удобной. Если вы освоили работу с арифметическими выражениями, то символические преобразования не должны вызвать затруднений.
Определение переменных и функций и работа с ними
Символические переменные и функции являются объектами класса sym object, в отличие от числовых переменных, которые содержатся в массивах double array. Символический объект создается при помощи функции syms. Команда
syms x a b
создает три символические переменные х, а и b. Размер памяти, отводимый под символические переменные, достаточно большой, посмотрите информацию об определенных только что переменных:
whos
Name Size Bytes Class Attributes
a 1x1 126 sym
b 1x1 126 sym
x 1x1 126 sym
Конструирование символических функций от переменных класса sym object производится с использованием обычных арифметических операций и обозначений для встроенных математических функций, например:
f = (sin(x)+a)^2*(cos(x)+b)^2/sqrt(abs(a+b))
f =
(sin(x)+a)^2*(cos(x)+b)^2/abs(a+b)^(1/2)
pretty(f)
2 2
(sin(x) + a) (cos(x) + b)
---------------------------
1/2
| a + b |
whos f
Name Size Bytes Class Attributes
f 1x1 204 sym
Имеющиеся символические переменные и функции позволяют образовывать новые символические выражения:
syms y
g = (exp(-y)+1)/exp(y)
g =
(exp(-y)+1)/exp(y)
h=f*g
h =
(sin(x)+a)^2*(cos(x)+b)^2/abs(a+b)^(1/2)*(exp(-y)+1)/exp(y)
pretty(h)
2 2
(sin(x) + a) (cos(x) + b) (exp(-y) + 1)
-----------------------------------------
1/2
| a + b | exp(y)
Символическую функцию можно создать без предварительного объявления переменных при помощи sym, входным аргументом которой является строка выражением, заключенная в апострофы:
z=sym('c^2/(d+1)')
z =
c^2/(d+1)
pretty(z)
2
c
-----
d + 1