Команда
save
Команда save сохраняет
содержание рабочего пространства в
МАТ. файле, который может быть прочитан
командой load в последующих сеансах
работы MATLAB.
Справка
и текущая документация
Есть несколько
способов получить текущую документацию
по функциям MATLAB.
- Команда help;
- Окно справки;
- MATLAB Help Desk;
- Текущие справочные страницы;
- Связь с The MathWorks, Inc;
- Команда help [1].
Таким образом,
система MATLAB позволяет: выполнять математические
вычисления, создавать алгоритмы, моделировать,
осуществлять анализ данных, проводить
исследования и визуализацию процессов,
использовать возможности научной и инженерной
графики, разрабатывать приложения, включая
создание графического интерфейса
1.3 Возможности систем
MatLab
Уже первые ориентированные
на Microsoft Windows версии системы (MATLAB 4.x) обладали мощными средствами
[2].
В области математических
вычислений:
- матричные, векторные, логические операторы;
- элементарные и специальные функции;
- полиномиальная арифметика;
- многомерные массивы;
- массивы записей;
- массивы ячеек.
В области реализации
численных методов:
- дифференциальные уравнения;
- вычисление одномерных и двумерных квадратур;
- поиск корней нелинейных алгебраических уравнений;
- оптимизация функций нескольких переменных;
- одномерная и многомерная интерполяция.
В области программирования:
- свыше 500 встроенных математических функций;
- ввод/вывод двоичных и текстовых файлов;
- применение программ, написанных на Си и ФОРТРАН;
- автоматическая перекодировка процедур MATLAB в тексты программ на языках Си и C++;
- типовые управляющие структуры.
В области визуализации
и графики:
- возможность создания двумерных и трехмерных графиков;
- осуществление визуального анализа данных.
Эти средства сочетались
с открытой архитектурой систем, позволяющей изменять уже существующие
функции и добавлять свои собственные.
Входящая в состав MATLAB программа Simulink
дает возможность имитировать реальные
системы и устройства, задавая их моделями,
составленными из функциональных блоков.
Simulink имеет обширную и расширяемую пользователями
библиотеку блоков и простые средства
задания и изменения их параметров.
В версиях системы
MATLAB 5.x введены новые мощные средства.
Улучшенная
среда программирования:
- профилировщик m-файлов для оценки времени исполнения фрагментов программ;
- редактор/отладчик m-файлов с удобным графическим интерфейсом;
- объектно-ориентированное программирование, включая переназначение функций и операторов;
- средства просмотра содержимого рабочей области и путей доступа;
- конвертирование m-файлов функций в промежуточный р-код.
Новые типы данных:
- многомерные массивы;
- массивы структур (записей);
- массивы ячеек данных разного типа;
- массивы символов с 16-разрядной кодировкой;
- массивы с 8-разрядной кодировкой элементов.
Средства программирования:
- списки аргументов переменной длины;
- переназначение функций и операторов;
- применение локальных функций в m-файлах;
- оператор-переключатель switch...case...end;
- оператор wait for;
- функции обработки битов.
Математические
вычисления и анализ данных:
- пять новых численных методов решения (solver) обыкновенных дифференциальных уравнений (ОДУ); ускоренное вычисление функций Бесселя;
- вычисление собственных значений и сингулярных чисел для матриц разреженной структуры;
- двумерные квадратурные формулы;
- многомерная интерполяция;
- триангуляция и вывод на терминал данных, определенных на неравномерной сетке;
- анализ и обработка многомерных массивов;
- функции обработки времени и даты.
Новые возможности
обычной графики:
- Z-буферизация для быстрой и точной трехмерной визуализации;
- 24-битовая поддержка RGB;
- множественная подсветка поверхностей и полигонов;
- перспективные изображения из произвольной точки;
- новые модели подсветки;
- векторизованные полигоны для больших трехмерных моделей;
- поддержка данных, определенных на неравномерной сетке, включая триангуляционные и сеточные двух- и трехмерные поверхности;
- дескрипторная графика для множественных объектов;
- вывод на терминал, хранение и импорт 8-разрядных изображений;
- дополнительные форматы графических объектов.
Презентационная
графика и звук:
- двойные х - и y-оси;
- легенда - пояснение в виде отрезков линий со справочными надписями, размещаемое внутри графика или около него;
- управление шрифтом текстовых объектов;
- надстрочные, подстрочные и греческие символы;
- трехмерные диаграммы, поля направлений, ленточные и стержневые графики;
- увеличенное количество стилей для маркировки линий;
- 16-битный стереозвук.
Новейшая версия
системы MATLAB 6 не только имеет перечисленные
выше возможности предшествующих версий,
но и характеризуется целым рядом
новых и важных возможностей:
- доведенное до более чем 600 число встроенных функций и команд;
- новый интерфейс с набором инструментов для управления средой, включающий в себя окно команд (Command Window), окно истории команд (Command History), браузер рабочей области (Workspace Browser) и редактор массивов (Array Editor);
- новые инструменты, позволяющие при помощи мыши интерактивно редактировать и форматировать графики, оптимизировать их коды и затраты памяти на графические команды и атрибуты;
- улучшенные алгоритмы на основе оптимизированной библиотеки LAPACK;
- новая библиотека FFTW (быстрых преобразований Фурье) Массачусетского технологического института Кембриджского университета (США);
- ускоренные методы интегральных преобразований;
- новые, более мощные и точные, алгоритмы интегрирования дифференциальных уравнений и квадратур;
- новые современные функции визуализации: вывод на экран двумерных изображений, поверхностей и объемных фигур в виде прозрачных объектов;
- новая инструментальная панель Camera для управления перспективой и ускорение вывода графики с помощью OpenGL;
- новый интерфейс для вызова Java-процедур и использования Java-объектов непосредственно из MATLAB;
- новые, современные инструменты проектирования графического пользовательского интерфейса;
- обработка (регрессия, интерполяция, аппроксимация и вычисление основных статистических параметров) графических данных прямо из окна графики;
- новое приложение MATLAB для системы разработки Visual Studio, позволяющее автоматически, непосредственно из Microsoft Visual Studio, преобразовывать Си и Си++ коды в выполняемые MATLAB файлы (МЕХ - файлы);
- интеграция с системами контроля версий кода, такими как Visual Source Safe;
- новый интерфейс (последовательный порт) для обмена данными с внешним оборудованием из MATLAB;
- существенно обновленные пакеты расширения, в частности новые версии пакета моделирования динамических систем Simulink 4 и Real Time Workshop 4;
- интеграция с системами управления потребностями, например DOORS.
Сравнив первоначальную версию
системы MATLAB 4.x и MATLAB 6, мы видим насколько
последняя усовершенствовалась.
2. Системы линейных
алгебраических уравнений в системе MatLab
Системой m линейных
уравнений с n неизвестными называется система вида
где aij и bi (i=1,…,m; b=1,…,n)
– некоторые известные числа, а x1,…,xn
– неизвестные.
Способы решения
систем линейных уравнений делятся
на две группы:
- точные методы, представляющие собой конечные алгоритмы для вычисления корней системы (решение систем с помощью обратной матрицы, правило Крамера, метод Гаусса и др.).
- итерационные методы, позволяющие получить решение системы с заданной точностью путем сходящихся итерационных процессов (метод итерации, метод Зейделя и др.) [7].
2.1 Алгоритм решения
систем линейных уравнений
Синтаксис:
X = B \ A
X = B / A
Описание:
Функция X = B \ A находит
решение системы уравнений вида
AX = B, где A - прямоугольная матрица
размера m х n и B - матрица размера n х
k.
Функция X = B / A находит
решение системы уравнений вида
XA = B, где A - прямоугольная матрица размера
n х m и B - матрица размера m х k.
Алгоритм:
Решение систем
линейных уравнений вида X = A \ B и X = B
/ A реализовано в MATLAB с помощью
специального монитора, который использует
разные алгоритмы решения в зависимости
от структуры матрицы A.
- Если A - треугольная матрица с точностью до перестановки ее строк или столбцов, то решение таких систем уравнений может быть эффективно вычислено методом обратной подстановки. Проверка матрицы, является ли она верхней треугольной, осуществляется для полных матриц проверкой на нуль всех элементов, лежащих ниже диагонали; для разреженных матриц - определением структуры ее элементов. Большинство матриц нетреугольной структуры выявляются почти мгновенно, так что такая проверка требует очень малого времени.
- Если матрица A - симметрическая или эрмитова с положительными диагональными элементами, то применяется разложение Холецкого (функция chol). Если A - разреженная матрица, применяется алгоритм упорядочения по разреженности (функции symmmd и spparms). Если при этом матрица A положительно определенна, то алгоритм Холецкого позволяет эффективно найти решение. Матрицы, не являющиеся положительно определенными, выявляются почти мгновенно. Разложение Холецкого имеет вид: A = L * LT, где LT - верхняя треугольная матрица. После этого решение Х можно получить решая последовательно две треугольные системы X = LT \ (L \ B).
- Если A - произвольная квадратная матрица, то треугольное разложение вычисляется методом исключения Гаусса с частичным выбором главного элемента (функция lu). Если A - разреженная матрица, применяется алгоритм упорядочения по разреженности столбцов (функции colmmd и spparms). В результате имеем следующее разложение: A = L * U, где L - нижняя, а U - верхняя треугольные матрицы. После этого решение Х можно получить решая последовательно две треугольные системы X = U \ (L \ B).
- Если A - прямоугольная полная матрица, то применяется QR-разложение на основе преобразований Хаусхолдера следующего вида A * P = Q * R, где P - матрица преобразований, Q - ортогональная и R - верхняя треугольная (функция qr) матрицы. Решение, соответствующее минимуму квадрата ошибки, находится согласно следующему соотношению X = P * (R \ (QT * B)).
- Если A - прямоугольная разреженная матрица, то формируется вспомогательная расширенная матрица следующего вида: S = [c*I A; AT 0]. Это реализуется с помощью функции spaugment. По умолчанию значение коэффициента масштабирования невязки c равно max(max(abs(A)))/1000 (функция spparms). Решение X в соответствии с методом наименьших квадратов и матрица невязок R = B - A * X вычисляются путем решения следующей системы: S * [R / c; X] = [B; 0] с использованием алгоритмов упорядочения по разреженности и исключения Гаусса с выбором главного элемента. Различные алгоритмы разложения матриц реализованы в системе MATLAB на основе ZGECO, ZGEFA и ZGESL для квадратных и процедур ZQRDC и ZQRSL для прямоугольных матриц из пакета LINPACK [1] [3].
2.2 Функции и операции
системы MatLab для реализации
задач
линейной алгебры
Система MatLab имеет
библиотеку для реализации задач
линейной алгебры. В ее составе можно
выделить, в частности, следующие функции
и операции [8].
D=det(A) - определитель (для квадратной
матрицы);
R=rank(A) - ранг матрицы(число линейно
независимых строк / cтолбцов);
T=norm(A) - норма матрицы ||A||2;
О=inv(A) - обращение матрицы (при близости
матрицы к вырожденной выдаются предупреждения
о ненадежности результатов); часто используется
для решения системы АХ=В в форме:
Х= inv(A) *В;
X=B/A , X=A\B - решение системы АХ=В (B –матрица
правой части):
» A=[1 2; 3 1]
» B=[5;5] |
|
|
» X=A\B |
|
|
» X=B'/A' |
X = 1 2 |
|
» B=[5 13;5 17] |
|
|
» X=A\B |
|
|
R=chol(A) – разложение RTR положительно
определенной симметрической действительной
или комплексной эрмитовой (если Aij=a+bi,
то Aji=a-bi) матрицы; R – верхняя треугольная
матрица:
» A=pascal (4) |
» R=chol(A) |
|
A= |
1 |
1 |
1 |
1 |
|
1 |
2 |
3 |
4 |
|
1 |
4 |
6 |
10 |
|
1 |
4 |
10 |
20 |
|
R= |
1 |
1 |
1 |
1 |
|
0 |
1 |
2 |
3 |
|
0 |
0 |
1 |
3 |
|
0 |
0 |
0 |
1 |
|