Оглавление книги
Первое знакомство с Maple и MATLAB

Сколь значителен спектр задач, которые решаются при помощи пакетов Maple и MATLAB, видно из следующего перечисления:

Оба пакета предоставляют удобные среды для компьютерных экспериментов, когда пробуются различные подходы к задаче, анализируются частные решения, при необходимости программирования отбираются требующие особой скорости фрагменты. Эти пакеты позволяют создавать интегрированные среды с участием систем программирования. Когда расчеты проведены и требуется оформить результаты, опять-таки можно использовать эти пакеты для визуализации данных и подготовки иллюстраций. Для завершения работы остается подготовить печатный материал (отчет, статью, книгу) и можно приступать к очередному исследованию. Работа с обеими системами проходит интерактивно — пользователь вводит команды, и видит на экране результат их выполнения. Квалификация пакетов обеспечивает выбор подходящих типов переменных и выполнение операций, так что в общем случае не требуется описания переменных.

Основа MATLAB — это работа с матрицами, так что даже вычисления со скалярами реализуются как операции с матрицами размера 1X1. Матричные команды написаны особенно тщательно, и, всюду, где это возможно, целесообразно пользоваться матричными (векторными) операциями, что ускоряет вычисления и предупреждает возможные ошибки. Матрицам, их свойствам и операциям с ними посвящено огромное количество литературы, например книга [46]. MATLAB в первую очередь предназначен для численного исследования, а потому оперирует в основном с числовой информацией. Приведем пример построения графика функции средствами MATLAB:

 x=[0:0.01:5];

 y=sin(x.^2);

 plot(x,y)

Для построения графика потребовалось определить значения аргумента в наборе точек (в переменной x содержатся точки 0, 0.01, 0.02,…, 5), и вычислить значения функции в них. Для возведения в квадрат каждого числа из набора x использована так называемая поточечная операция (перед знаком операции стоит точка), так как обычное возведение в степень в MATLAB означает умножение матрицы на себя. Функция синуса была вычислена сразу для всех элементов переменной x.

Система Maple создавалась как пакет компьютерной алгебры, то есть основным объектом здесь является формулы и операции с ними. Без дополнительных указаний символ, например x, считается фактически математической переменной, как x в формуле f(x). Такая специфика систем компьютерной алгебры позволяет проводить точные вычисления (см., например [41]). Построим с помощью Maple поверхность, определяемую функцией двух переменных x и y. Для построения требуется указание интервала изменения x и y.

> plot3d(1.5^x*sin(2*y-x),x=-1..3,y=-Pi..Pi);

Проиллюстрируем работу двух систем на примере вычисления интеграла функции одной переменной. Сначала обратимся к команде интегрирования Maple:

> int((x-1)^2*sin(x),x);

Получена формула — результат вычисления неопределенного интеграла. Если указать пределы интегрирования, то будет выведено значение определенного интеграла, причем в точном виде: > res:=int((x-1)^2*sin(x),x=0..Pi);

Чтобы получить ответ в виде числа требуется обратиться к следующей команде: > evalf(res);

В стандарте MATLAB можно получить только числовое значение, причем для этого нужно определить узлы для аппроксимации функции и значения функции в них, а затем обратиться к процедуре вычисления интеграла одним из методов (в примере — метод трапеций): ” x=[0:0.01:pi];

” y=(x-1).^2.*sin(x);

” res=trapz(x,y)

res =

1.5864e+000

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

Обе системы имеют развитые средства программирования аналогичные распространенным алгоритмическим языкам, но при этом и здесь сохраняется специфика, обусловленная направленностью пакетов. В таблице 0.1 приведем примеры реализации одной конструкции средствами MATLAB, Maple, и на алгоритмических языках Фортран и Паскаль.

Таблица 0.1. Сравнение четырех вычислительных сред
 
Язык
Конструкция
MATLAB X=1:4;

Y=sin(X)

Maple x:=seq(k,k=1..4): y:=evalf(map(sin,[x]));
Фортран REAL X(4), Y(4)

DO 100 I=1,4

X(I)=I

Y(I)=sin(Y(I))

100 CONTINUE

WRITE((6,’(4F10.4)’),Y)

Паскаль var i:integer; X,Y : array [1..4] of real;

Begin

for i=1 to 4 do

begin

X[i]:=i; Y[i]:=sin(X(i)); write(‘ ‘,Y[i])

end; end

Из табл. 0.1 видна удивительная лаконичность языков MATLAB и Maple. Предварительного описания переменных не требуется, вектор формируется указанием диапазона чисел, а вычисление синуса для всех векторных элементов потребовало одной строки.

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


Оглавление книги
  Rambler's Top100