8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 95 96 97 98 99 100 101 ... 365

% вывод результатов

subplot(2, 2, 2)

surf(Xi, Yi, ZiNear)

title(по соседним значениям (near))

subplot(2, 2, 3)

surf(Xi, Yi, ZiBiLin)

title("билинейная (bilinear)1)

subplot(2, 2, 4)

surf(Xi, Yi, ZiBiCub)

title(бикубическая (bicubic))

На рис. 6.6 приведены графики, полученные при помощи interp2dem. Графики отражают поведение интерполирующих функций, полученных различными способами.

табличная функциипо соседним значениям (neai)

Со0 0

Рис. 6.6. Различные способы приближения двумерных данных (interpz)

Для аппроксимации трехмерных данных служит функция interp3, для многомерных— interpn. Создание многомерных сеток осуществляется функцией ndgrid. Многомерное приближение производится аналогично двумерному, подробнее о нем можно узнать из справочной системы по MATLAB, набрав в разделе Index имя функции interpn.


В этом разделе разобраны самые простые способы приближения табличных функций сплайнами различных порядков. Применению сплайнов посвящен Spline Toolbox (см. главу 18).

Задачи линейной алгебры

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

Данный раздел описывает простейшие возможности, которые предоставляет MATLAB для решения систем линейных уравнений, вычисления определителей, нахождения собственных чисел и векторов.

Системы уравнений, определители, обращение матриц

Знак обратной косой черты \ предназначен для решения систем линейных алгебраических уравнений, слева от него записывается матрица системы, а справа — вектор правой части. Причем, как матрица, так и вектор правой части могут быть комплексными. MATLAB сама подбирает наиболее эффективный метод и решает систему.

Решение системы уравнений рассмотрено в качестве примера в разд. "Решение систем линейных уравнений" главы 2.

Использование знака \ является самым простым способом решения, однако даже при таком простом подходе возможны существенные затруднения. В справочной системе приведен алгоритм решения систем линейных урав-


нений, который учитывает вид матрицы системы уравнений. Кратко этот алгоритм описывается следующим образом.

1.Если матрица квадратная и ленточная с ограниченной шириной ленты, то применяется специальный алгоритм решения для ленточных матриц.

2.Если матрица треугольная, то используется метод подстановки.

3.Если матрица перестановками строк и столбцов сводится к треугольной, то применяется модификация метода подстановки.

4.Если матрица симметричная (эрмитова в комплексном числовом пространстве) с положительными элементами на диагонали, то вызывается функция chol, которая пытается выполнить разложение Холецкого. При этом в процессе разложения выясняется положительная определенность матрицы. В случае положительно определенной матрицы находится множитель разложения Холецкого, с которым решаются две системы методом подстановки для получения решения исходной системы уравнений. Если матрица системы разрежена, то перед разложением Холецкого производится симметричная перестановка строк и столбцов по алгоритму минимальной степени с целью уменьшения заполнения множителей Холецкого. Для выполнения этой операции вызывается функция symmmd.

5.Если матрица хессенбергова, но не разреженная, то применяется метод сведения к системе с треугольной матрицей.

6.Если матрица квадратная и не удовлетворяет условиям пп. 1—5, то используется метод Гаусса в форме LU-факторизации. Для разреженных матриц предварительно переставляются строки и столбцы с целью уменьшения заполнения матричных множителей LU-разложения.

7.Если матрица прямоугольная, то происходит обращение к функции qr для QR-факторизации матрицы, которая позволяет найти наилучшее решение системы в смысле наименьших квадратов. Алгоритм qr учитывает, разреженная матрица, или нет.

Функции MATLAB, используемые в вышеописанном алгоритме, основаны на процедурах популярных библиотек LAPACK и UMFPACK для решения задач линейной алгебры. Соответствующая информация содержится в справочной системе MATLAB. Для ее получения достаточно обратиться к разделу MATLAB: Functions — Categorical List: Mathematics: Linear Algebra и перейти в нем по гиперссылке \ and /. При этом открывается страница справочной системы, пункт Algorithm которой посвящен обсуждаемому здесь алгоритму. В нем упомянуты те функции библиотеки LAPACK, к которым обращается MATLAB при решении систем линейных уравнений. В ряде случаев, например, для разреженных матриц, MATLAB вызывает про-



0 ... 95 96 97 98 99 100 101 ... 365