Чтение онлайн

на главную - закладки

Жанры

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

Ha этом мы завершаем обзор пакета LinearAlgebra. Читатель, познающий или знающий методы линейной алгебры, может опробовать в работе любые функции этого пакета самостоятельно или познакомиться с множеством примеров, размещенных в справочной системе Maple и в файле демонстрационных примеров LE_Linear_Solve.mws. Возможности пакетов linalg и LinearAlgebra удовлетворят самых требовательных специалистов в этой области математики.

6.4.

Интеграция Maple с MATLAB

6.4.1. Краткие сведения о MATLAB

Несмотря на обширные средства линейной алгебры (да и многие другие), имеющиеся у системы Maple, есть системы компьютерной математики, решающие некоторые классы задач более эффективно, и прежде всего быстрее. В области линейной алгебры к таким системам, безусловно, относится система MATLAB [10, 28–34), созданная компанией MathWorks, Inc. Ее название происходит именно от слов MATrix LABoratory — матричная лаборатория.

MATLAB содержит в своем ядре многие сотни матричных функций и является одной из лучших матричных систем для персональных компьютеров. Она реализует самые современные алгоритмы матричных операций, включая, кстати, и алгоритмы NAG. Однако главное достоинство MATLAB — наличие множества дополнительных пакетов как по классическим разделам математики, так и по самым новейшим, таким как нечеткая логика, нейронные сети, идентификация систем, обработка сигналов и др. Знаменитым стал пакет моделирования систем и устройств Simulink, включаемый в пакет поставки системы MATLAB. Последней версией системы является MATLAB 7 SP2.

В то же время нельзя не отметить, что MATLAB — одна из самых громоздких математических систем. Инсталляция ее полной версии занимает около 2 Гбайт дискового пространства. Несмотря на это, интеграция различных математических систем с данной системой, похоже, становится своеобразной модой. Такая возможность предусмотрена и в системе Maple с помощью пакета Matlab.

6.4.2. Загрузка пакета расширения Matlab

Для загрузки пакета Matlab используется команда

> with(Matlab);

[chol, closelink, defined, det, dimensions, eig, evalM, fft, getvar, inv, lu, ode45, openlink, qr, setvar, size, square, transpose ]

Использование этой команды ведет к автоматическому запуску системы MATLAB и установлению необходимой объектной связи между системами Maple и MATLAB — рис. 6.2. Обратите внимание на то, что такая связь установлена для последней реализации MATLAB 7.04.365 SP2.

Рис. 6.2. Установление связи между системами Maple и MATLAB

Как нетрудно заметить, данный пакет дает доступ всего к 18 функциям системы MATLAB (из многих сотен, имеющихся только в ядре последней системы). Таким образом, есть все основания полагать, что возможности MATLAB в интеграции с системой Maple используются пока очень слабо и носят рудиментарный характер. Стоит ли ради этих функций иметь на компьютере огромную систему MATLAB, пользователи должны решать сами. Если ответ положительный, то, скорее всего, пользователь решает тот класс задач, для которых лучше подходит MATLAB и надо задуматься уже над тем, нужна ли в этом случае СКМ Maple.

6.4.3. Типовые матричные операции пакета расширения Matlab

Большинство функций пакета Matlab (не путайте с системой MATLAB, имя которой надо записывать прописными буквами) реализуют самые обычные матричные операции, что и иллюстрируют приведенные ниже примеры (файл matlabi).

Зададим матрицу М в формате Maple:

> maplematrix_a:=array(1..3,1.-3, [[6,4,2], [7,8,1], [3,7,3]]);

Ниже даны

примеры транспонирования матрицы, ее инвертирования, вычисления детерминанта и собственных значений матрицы:

> Matlab[transpose](maplematrix_а);

> Matlab[inv](maplematrix_a);

> Matlab[det](maplematrix_a);

80.

> Matlab[eig](maplematrix_a);

Можно проверить, является ли матрица квадратной:

> Matlab[square](maplematrix_a);

true

а также вычислить размер матрицы:

> Matlab[dimensions](maplematrix_a);

[3,3]

Можно также проверить, является ли данная матрица матрицей системы MATLAB:

> Matlab[defined]("maplematrix_a");

false

Здесь надо иметь в виду, что форматы матриц в системах Maple и MATLAB различны. Выполним LU-преобразование матрицы:

> Matlab[lu](maplematrix_a,output='L');

Таким образом, видно, что Maple в данном случае реализует типовые матричные операции, но средствами системы MATLAB. Загрузка последней происходит автоматически при загрузке пакета MATLAB. Если система MATLAB не установлена на вашем компьютере, то доступ к функциям пакета Matlab будет отсутствовать, a Maple при попытке использования данных функций будет выдавать сообщения об ошибках.

6.5. Линейная оптимизация и линейное программирование

6.5.1. Постановка задачи линейного программирования

В общем случае задача линейного программирования может быть сформулирована следующим образом: найти максимум или минимум целевой функции

при ограничениях

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

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

Реализовывать симплекс-метод вручную — громоздко и сложно. Системы компьютерной математики имеют средства решения задач оптимизации, в том числе и симплекс-методом. Рассмотрим примеры решения несколько типичных задач линейного программирования с помощью таких средств системы Maple 9.5.

Поделиться:
Популярные книги

Лолита

Набоков Владимир Владимирович
Проза:
классическая проза
современная проза
8.05
рейтинг книги
Лолита

Я подарю тебе ребёнка

Малиновская Маша
Любовные романы:
современные любовные романы
6.25
рейтинг книги
Я подарю тебе ребёнка

Убивать чтобы жить 3

Бор Жорж
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 3

Небо для Беса

Рам Янка
3. Самбисты
Любовные романы:
современные любовные романы
5.25
рейтинг книги
Небо для Беса

Сердце Дракона. Том 11

Клеванский Кирилл Сергеевич
11. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.50
рейтинг книги
Сердце Дракона. Том 11

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

Идеальный мир для Лекаря 19

Сапфир Олег
19. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 19

Калибр Личности 1

Голд Джон
1. Калибр Личности
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Калибр Личности 1

Идеальный мир для Лекаря 2

Сапфир Олег
2. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 2

Волчья воля, или Выбор наследника короны

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Волчья воля, или Выбор наследника короны

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Спасение 6-го

Уолш Хлоя
3. Парни из школы Томмен
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Спасение 6-го

Ротмистр Гордеев

Дашко Дмитрий Николаевич
1. Ротмистр Гордеев
Фантастика:
фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное