Доступ к ресурсам ядра системы Maple
В этом разделе описаны функции, дающие доступ к ресурсам ядра системы символьной математики Maple, включенным в систему MATLAB. В студенческой версии MATLAB эти возможности отсутствуют. Применение возможностей системы Maple совместно с возможностями системы MATLAB придает последней особую гибкость и резко расширяет возможности в решении сложных математических задач, где целесообразно объединять аналитические (символьные) методы с численными вычислениями.
Доступ к ядру системы Maple
Хотя в пакет Symbolic включено множество (около сотни) функций символьной математики, есть возможность получить доступ к многим другим функциям системы Maple, ядро которой включено в MATLAB. Для этого используется функция maple в той или иной форме:
• maple (Statement) — устанавливает выражение statement для ядра Maple, statement является строкой, записанной в формате команд Maple. Возвращает результат в форме строки с нотацией системы Maple V;
- • maple (' function', ARG1,ARG2,...) — дает доступ к Maple-функциям с заданными аргументами;
- • [result, status] =maple (...) — возвращает результат и статус сообще-ний/ошибок, если они возникают в ходе вычисления заданной функции.
Примеры:
>> maple ( 'sin (1) ' )
ans =
sin (1)
» maple('evalf (sin (1)) ' )
ans =
.84147098480789650665250232163030
>> maple('sqrt',2)
ans =
2Л (1/2)
» maple(1evalf(sin)',1)
ans =
sin (1)
Численное вычисление Maple-функций
Для вычисления числовых значений функций ядра системы Maple используется функция mfun:
• mfun (' fun',pl,p2,..., pk) — возвращает в численном виде значение Maple-функции с именем 'fun' и списком параметров функции pl, р2, ..., pk. Если вычисление функции невозможно (например из-за сингулярных точек), то возвращается константа NaN.
>> mfun('sin',1)
ans =
0.8415
» mfun('sqrt',2+3i)
ans =
1.6741 + 0.8960i
» mfun('In',0)
ans =
NaN
>> mfun ( 'In',2)
ans =
0.6931
Вызов списка функций Maple
Команда mfunlist выводит лист с перечнем функций ядра Maple. Ниже показан первый десяток этих функций:
» mfunlist
bernoulli bernoulli Bessell BesselJ BesselK
n Bernoulli Numbers
n, z Bernoulli Polynomials
xl,x Bessel Function of the First Kind
xl,x Bessel Function of the First Kind
xl,x Bessel Function of the Second Kind
BesselY |
xl,x Bessel Function of the Second Kind |
Beta |
zl,z2 Beta Function |
binomial |
xl,x2 Binomial Coefficients |
LegendreKc LegendreEc |
x Complete Elliptic Integral of First Kind x Complete Elliptic Integral of Second Kind |
Получение справки по ядру Maple
Для получения справки по Maple-функциям непосредственно из среды MATLAB служат команда и функция mhelp:
mhelp topic или mhelp('topic')
Пример:
» help LCM
LCM Least common multiple.
LCM(A,B) is the least common multiple of corresponding elements of
A and B. The arrays A and В must contain positive integers and must be the same size (or either can be scalar). See also GCD.
Инсталляция Maple-процедур
С помощью команды procread (FILENAME) можно готовить процедуры с синтаксисом языка системы Maple. Например, подготовим процедуру с предполагаемым именем файла check.src и следующим текстом:
check := proc(А)
# check(A) computes A*inverse(A) local X;
X := inverse(A): evalm(A &* X) ;
end;
Создав процедуру, можно проинсталлировать ее с помощью команды
procread('check.src')
После этого возможно использование этой процедуры в виде
maple(’check',magic (3))
или
maple('check',vpa(magic (3)))
Применение процедур с синтаксисом Maple расширяет возможности программирования системы MATLAB и свидетельствует об углублении процесса интеграции систем MATLAB и Maple.