Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
43
Добавлен:
24.02.2016
Размер:
148.99 Кб
Скачать

1. Массивы, матрицы и операции с ними Массивы являются основными объектами в системе MATLAB: в версиях 4.х допускаются только одномерные массивы - векторы - и двумерные массивы - матрицы; в версии 5.0 возможно использование многомерных массивов - тензоров. Ниже описаны функции формирования массивов и матриц, операции над матрицами, специальные матрицы в рамках системы MATLAB версий 4.х.

Формирование массивов специального вида

  • ZEROS - формирование массива нулей

  • ONES - формирование массива единиц

  • EYE - формирование единичной матрицы

  • RAND - формирование массива элементов, распределенных по равномерному закону

  • RANDN - формирование массива элементов, распределенных по нормальному закону

  • CROSS - векторное произведение

  • KRON - формирование тензорного произведения

  • LINSPACE - формирование линейного массива равноотстоящих узлов

  • LOGSPACE - формирование узлов логарифмичесокй сетки

  • MESHGRID - формирование узлов двумерной и трехмерной сеток

  • : - формирование векторов и подматриц

Операции над матрицами

  • DIAG - формирование или извлечение диагоналей матрицы

  • TRIL - формирование нижнетреугольной матрицы (массива)

  • TRIU - формирование верхнетреугольной матрицы (массива)

  • FLIPLR - поворот матрицы относительно вертикальной оси

  • FLIPUD - поворот матрицы относительно горизонтальной оси

  • ROT90 - поворот матрицы на 90 градусов

  • RESHAPE - преобразование размеров матрицы

Специальные матрицы

  • COMPAN - сопровождающая матрица характеристического многочлена

  • HADAMARD - матрица Адамара (Hadamard matrix)

  • HANKEL - матрица Ганкеля (Hankel matrix)

  • HILB, INVHILB - матрица Гильберта (Hilbert matrix)

  • MAGIC - магический квадрат

  • PASCAL - матрица Паскаля (Pascal matrix)

  • ROSSER - матрица Рессера (Rosser matrix)

  • TOEPLITZ - матрица Теплица (Toeplitz matrix)

  • VANDER - матрица Вандермонда (Vandermonde matrix)

  • WILKINSON - матрица Уилкинсона (Wilkinson matrix)

Пакет программ Test Matrix Toolbox

2. Математические функции В системе MATLAB имеется обширная библиотека математических функций. Каждой функции соответствует определенное имя. Функция ставит в соответствие значениям своих аргументов значение результата.

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

Элементарная математическая функция - это, как правило, функция от одной переменной, и в этом случае устанавливается соответствие между массивами значений аргумента и результата.

Аргумент указывается в круглых скобках после имени функции. Имя переменной, которой присваивается значение функции, располагается слева от знака равенства. Если имя присваиваемой переменной не указано, значение функции присваивается служебной переменной ans.

Тип результата вычисления математической функции всегда совпадает с типом ее аргумента. Например, если аргументом функции является вектор-столбец, то значением этой функции также будет вектор-столбец.

Рассмотрим встроенные математические функции системы MATLAB, которые применяются к числам, скалярным переменным и к массивам (поэлементно).

Базовые функции

  • ABS - абсолютное значение

  • ANGLE - аргумент комплексного числа

  • REAL, IMAG - действительная и мнимая части комплексного числа

  • CONJ - операция комплексного сопряжения

  • SIGN - вычисление знака числа

  • CEIL, FIX, FLOOR, ROUND - функции округления

  • REM - функция остатка

  • GCD - наибольший общий делитель

  • LCM - наименьшее общее кратное

  • RAT, RATS - представление результата в виде рационального числа или цепной дроби

Трансцендентные функции

  • SQRT - квадратный корень

  • EXP - экспоненциальная функция

  • LOG - функция натурального логарифма

  • POW2 - экспонента по основанию 2

  • NEXTPOW2 - ближайшая степень по основанию 2

  • LOG2 - фунции логарифма

  • LOG10 - функции логарифма

Тригонометрические функции

  • SIN, SINH - функции синуса

  • ASIN, ASINH - функции обратного синуса

  • CSC, CSCH - функции косеканса

  • ACSC, ACSCH - функции обратного косеканса

  • COS, COSH - функции косинуса

  • ACOS, ACOSH - функции обратного косинуса

  • SEC, SECH - функции секанса

  • ASEC, ASECH - функции обратного секанса

  • TAN, TANH - функции тангенса

  • ATAN, ATAN2, ATANH - функции обратного тангенса

  • COT, COTH - функции котангенса

  • ACOT, ACOTH - функции обратного котангенса

Преобразования системы координат

  • CART2POL - преобразование декартовой системы координат в полярную и цилиндрическую

  • CART2SPH - преобразование декартовой системы координат в сферическую

  • POL2CART - преобразование полярной и цилиндрической систем координат в декартову

  • SPH2CART - преобразование сферической системы координат в декартову

Специальные функции

  • BESSEL - функции Бесселя

  • BETA, BETACORE, BETAINC, BETALN - бета-функции

  • ELLIPJ - эллиптические функции Якоби

  • ELLIPKE - полные эллиптические интегралы

  • ERF, ERFCORE, ERFC, ERFCX, ERFINV - функции ошибок

  • GAMMA, GAMMAINC, GAMMALN - гамма-функции

3. Линейная алгебра Матрица как математический объект возникает при решении конкретных вычислительных задач, и в первую очередь при решении систем линейных алгебраических уравнений и задач на собственные значения. Матрица в виде прямоугольной таблицы чисел очень схожа с массивом, однако прикладные задачи, которые порождают матрицы, определяют для них специальную совокупность допустимых операций, среди которых особое место занимает операция умножения. Для простейшего случая, когда умножается вектор-строка на вектор-столбец, такой операцией является операция скалярного произведения.

Матрицы широко используются при решении обыкновенных дифференциальных уравнений (ОДУ) и уравнений в частных производных, решении оптимальных задач и т. п.

Алгебраические задачи, связанные с матрицами, объединяются в раздел математики, получивший название линейной алгебры, который включает такие базисные задачи, как обращение и псевдообращение матриц, спектральное и сингулярное разложение матриц.

В вычислительном плане раздел линейной алгебры поддержан пакетами прикладных программ LINPACK, EISPACK, разработанными в 60-70-е годы ведущими специалистами, к числу которых принадлежит и основатель фирмы The MathWorks, Inc. Моулер (C. Moler). Изначальное назначение системы MATLAB состояло именно в том, чтобы создать диалоговую среду для работы с пакетами программ линейной алгебры.

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

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

Характеристики матриц

  • COND - число обусловленности матрицы

  • NORM - нормы векторов и матриц

  • RCOND - оценка числа обусловленности матрицы

  • RANK - ранг матрицы

  • DET - определитель матрицы

  • TRACE - след матрицы

  • NULL - нуль-пространство (ядро) матрицы

  • ORTH - ортонормальный базис матрицы

  • SUBSPACE - угол между двумя подпространствами

  • RREF - треугольная форма матрицы

Решение линейных уравнений

  • \, / - решатели систем линейных уравнений

  • CHOL - разложение Холецкого

  • LU - LU-разложение

  • INV - обращение матрицы

  • PINV - псевдообращение матрицы по Муру-Пенроузу

  • QR, QRDELETE, QRINSERT - QR-разложение

  • PLANEROT - преобразование Гивенса

  • NNLS - метод наименьших квадратов с ограничениями

  • LSCOV - метод наименьших квадратов в присутствии шумов

Вычисление собственных значений и сингулярных чисел

  • EIG, CDF2RDF - собственные значения и собственные векторы матрицы

  • BALANCE - масштабирование матрицы

  • HESS - приведение к форме Хессенберга

  • SCHUR, RSF2CSF - приведение к форме Шура

  • CPLXPAIR - сортировка комплексносопряженных пар

  • QZ - прведение пары матриц к обобщенной форме Шура

  • POLYEIG - вычисление собственных значений матричного полинома

  • SVD - сингулярное разложение матрицы

Вычисление функций от матриц

  • EXPM, EXPM1, EXPM2, EXPM3 - вычисление матричной экспоненты

  • LOGM - вычисление логарифма матрицы

  • SQRTM - вычисление функции A 1/2

  • FUNM - вычисление произвольных функций от матрицы

Полиномы и операции над ними

  • POLYVAL - вычисление полинома

  • POLYVALM - вычисление матричного полинома

  • CONV - умножение полиномов

  • DECONV - деление полиномов

  • POLYDER - вычисление производных

  • ROOTS - вычисление корней полиномов

  • POLY - вычисление характеристического полинома

  • RESIDUE, RESI2 - разложение на простые дроби

4. Анализ и обработка данных В этой главе описаны функции системы MATLAB, которые предназначены для анализа и обработки данных, заданных в виде числовых массивов. Наряду с простейшими функциями вычисления среднего, медианы, коэффициентов корреляции элементов массива рассмотрены функции вычисления конечных разностей, градиента и аппроксимации Лапласиана. В отдельный раздел выделены функции аппроксимации и интерполяции. Представлены функции численного интегрирования, решения задачи Коши для систем ОДУ, а также минимизации функций одной и нескольких переменных. В состав функций обработки сигналов включены дискретное преобразование Фурье, функции свертки и фильтрации. В полном объеме функции обработки сигналов оформлены в виде специализированного пакета программ Signal Processing Toolbox.

Основные операции

  • SUM, CUMSUM - суммирование элементов массива

  • PROD, CUMPROD - произведение элементов массива

  • SORT - сортировка элементов массива по возрастанию

  • MAX - определение максимальных элементов массива

  • MIN - определение минимальных элементов массива

  • MEDIAN - определение срединных значений (медиан) элементов массива

  • MEAN - определение средних значений элементов массива

  • STD - определение стандартных отклонений элементов массива

  • COV - определение ковариационной матрицы элементов массива

  • CORRCOEF - определение коэффициентов корреляции элементов массива

  • DIFF - вычисление конечных разностей и приближенное дифференцирование

  • GRADIENT - конечные разности и приближенное вычислениеградиента функции от двух переменных

  • DEL2 - пятиточечная аппроксимация Лапласиана

Аппроксимация и интерполяция данных

  • POLYFIT - аппроксимация данных полиномом

  • INTERPFT - аппроксимация периодической функции на основе быстрого преобразования Фурье

  • ICUBIC - кубическая интерполяция функции одной переменной

  • SPLINE, PPVAL, MKPP, UNMKPP - интерполяция функции одной переменной кубическим сплайном

  • INTERP1 - одномерная табличная интерполяция

  • INTERP2 - двумерная табличная интерполяция

  • GRIDDATA - двумерная табличная интерполяция на неравномерной сетке

Численное интегрирование

  • TRAPZ - интегрирование методом трапеций

  • QUAD, QUAD8 - вычисление интегралов методом квадратур

Интегрирование обыкновенных дифференциальных уравнений (ОДУ)

  • ODE23, ODE45 - решение задачи Коши для систем ОДУ

Вычисление минимумов и нулей функции

  • FMIN, FORTIONS - минимизация функции одной переменной

  • FMINS - минимизация функции нескольких переменных

  • FZERO - нахождение нулей функции одной переменной

  • FPLOT - построение графиков функции одной переменной

Преобразование Фурье

  • FFT, IFFT - одномерное дискретное прямое и обратное преобразования Фурье

  • FFT2, IFFT2 - двумерное дискретное прямое и обратное преобразования Фурье

  • FFTSHIFT - перегруппировка выходных массивов преобразований Фурье

Свертка и фильтрация

  • CONV, DECONV - свертка одномерных массивов

  • CONV2 - свертка двумерных массивов

  • FILTER - дискретная одномерная фильтрация

  • FILTER2 - дискретная двумерная фильтрация

  • UNWRAP - корректировка фазовых углов

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

Известно, что матрица порядка n требует для своего хранения n2 байт оперативной памяти, а время вычислений пропорционально n3. Поэтому, когда количество неизвестных переменных достигает нескольких сотен, вычисления с полными матрицами становятся неэффективными и необходимо принимать во внимание степень разреженности матрицы, то есть отношение количества ненулевых элементов к общему количеству элементов матрицы.

Для разреженной матрицы S порядка m х n с количеством ненулевых элементов nnz(S) требования к объему оперативной памяти пропорциональны nnz. Вычислительная сложность операций над элементами массива также пропорциональна nnz, линейно зависит от m и n и не зависит от произведения m х n. Сложность такой операции как решение системы линейных уравнений с разреженной матрицей зависит от упорядочения элементов и заполненности матрицы, что обсуждается позднее в этой главе.

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

В этой главе описан новый класс операций, реализованных в системе MATLAB, для работы с разреженными матрицами. Это операции хранения, преобразования, упорядочения, графического представления и решения систем линейных уравнений.

Элементарные разреженные матрицы

  • SPARSE - формирование разреженной матрицы

  • SPDIAGS - формирование диагоналей разреженной матрицы

  • SPEYE - единичная разреженная матрица

  • SPRANDN - случайная разреженная матрица

  • SPRANDSYM - случайная разреженная симметрическая матрица

Преобразование разреженных матриц

  • FIND - определение индексов ненулевых элементов

  • FULL - преобразование разреженной матрицы в полную

  • SPCONVERT - преобразование данных в ASCII-формате в массив разреженной структуры

Работа с ненулевыми элементами

  • ISSPARSE - проверка на принадлежность к классу разреженных матриц

  • NNZ - количество ненулевых элементов

  • NONZEROS - формирование вектора ненулевых элементов

  • NZMAX - количество ячеек памяти для размещения ненулевых элементов

  • SPALLOC - выделить пространство памяти для разреженной матрицы

  • SPFUN - вычисление функции только для ненулевых элементов

  • SPONES - формирование матрицы связности

Характеристики разреженной системы

  • NORMEST - оценка 2-нормы разреженной матрицы

  • CONDEST - оценка числа обусловленности матрицы по 1-норме

  • SPRANK - структурный ранг разреженной матрицы

Визуализация разреженных матриц

  • GPLOT - построение графа

  • SPY - визуализировать структуру разреженной матрицы

Алгоритмы упорядочения

  • RANDPERM - формирование случайных перестановок

  • COLPERM - упорядочение столбцов с учетом их разреженности

  • DMPERM - DM-декомпозиция разреженной матрицы

  • SYMRCM - RCM-упорядоченность

  • COLMMD - упорядочение по разреженности столбцов

  • SYMMMD - симметрическая упорядоченность

Операции над деревьями

  • ETREE - дерево матрицы

  • ETREEPLOT - построение дерева матрицы

  • TREELAYOUT - разметить дерево

  • TREEPLOT - пострение дерева матрицы

Вспомогательные операции

  • SPPARMS - установка параметров для алгоритмов упорядочения и прямого решения линейных уравнений для разреженных матриц

  • SYMBFACT - характеристики разложения Холецкого

  • SPAUGMENT - формирование расширенной матрицы для метода наименьших квадратов

6. Графические команды и функции Начиная с версии 4.0 в состав системы MATLAB входит мощная графическая подсистема, которая поддерживает как средства визуализации двумерной и трехмерной графики на экран терминала, так и средства презентационной графики. Следует выделить несколько уровней работы с графическими объектами. В первую очередь это команды и функции, ориентированные на конечного пользователя и предназначенные для построения графиков в прямоугольных и полярных координатах, гистограмм и столбцовых диаграмм, трехмерных поверхностей и линий уровня, анимации. Графические команды высокого уровня автоматически контролируют масштаб, выбор цветов, не требуя манипуляций со свойствами графических объектов. Соответствующий низкоуровневый интерфейс обеспечивается дескрипторной графикой, когда каждому графическому объекту ставится в соответствие графическая поддержка (дескриптор), на который можно ссылаться при обращении к этому объекту. Используя дескрипторную графику, можно создавать меню, кнопки вызова, текстовые панели и другие объекты графического интерфейса.

Из-за ограниченного объема данного справочного пособия в него включены только графические команды и функции с минимальными элементами дескрипторной графики. Заинтересованному читателю следует обратиться к документации по системе MATLAB, и в первую очередь к только что вышедшей из печати книге “Using MATLAB Graphics” (Natick, 1996).

Элементарные графические функции системы MATLAB позволяют построить на экране и вывести на печатающее устройство следующие типы графиков: линейный, логарифмический, полулогарифмический, полярный.

Для каждого графика можно задать заголовок, нанести обозначение осей и масштабную сетку.

Двумерные графики

  • PLOT - график в линейном масштабе

  • LOGLOG - график в логарифмическом масштабе

  • SEMILOGX, SEMILOGY - график в полулогарифмическом масштабе

  • POLAR - график в полярных координатах

Трехмерные графики

В системе MATLAB предусмотрено несколько команд и функций для построения трехмерных графиков. Значения элементов числового массива рассматриваются как z-координаты точек над плоскостью, определяемой координатами x и y. Возможно несколько способов соединения этих точек. Первый из них - это соединение точек в сечении (функция plot3), второй - построение сетчатых поверхностей (функции mesh и surf). Поверхность, построенная с помощью функции mesh, - это сетчатая поверхность, ячейки которой имеют цвет фона, а их границы могут иметь цвет, который определяется свойством EdgeColor графического объекта surface. Поверхность, построенная с помощью функции surf, - это сетчатая поверхность, у которой может быть задан цвет не только границы, но и ячейки; последнее управляется свойством FaceColor графического объекта surface. Уровень изложения данной книги не требует от читателя знания объектно-ориентированного программирования. Ее объем не позволяет в полной мере описать графическую подсистему, которая построена на таком подходе. Заинтересованному читателю рекомендуем обратиться к документации по системе MATLAB, и в первую очередь к только что вышедшей из печати книге Using MATLAB Graphics (Natick, 1996).

  • PLOT3 - построение линий и точек в трехмерном пространстве

  • MESHGRID - формирование двумерных массивов X и Y

  • MESH, MESHC, MESHZ - трехмерная сетчатая поверхность

  • SURF, SURFC - затененная сетчатая поверхность

  • SURFL - затененная поверхность с подсветкой

  • AXIS - масштабирование осей и вывод на экран

  • GRID - нанесение сетки

  • HOLD - управление режимом сохранения текущего графического окна

  • SUBPLOT - разбиение графического окна

  • ZOOM - управление масштабом графика

  • COLORMAP - палитра цветов

  • CAXIS - установление соответствия между палитрой цветов и масштабированием осей

  • SHADING - затенение поверхностей

  • CONTOURC - формирование массива описания линий уровня

  • CONTOUR - изображение линий уровня для трехмерной поверхности

  • CONTOUR3 - изображение трехмерных линий уровня

Надписи и пояснения к графикам

  • TITLE - заголовки для двух- и трехмерных графиков

  • XLABEL, YLABEL, ZLABEL - обозначение осей

  • CLABEL - маркировка линий уровня

  • TEXT - добавление к текущему графику текста

  • GTEXT - размещает заданный текст на графике с использованием мыши

  • LEGEND - пояснение к графику

  • COLORBAR - шкала палитры

Специальная графика

Раздел специальной графики включает графические команды и функции для построения столбцовых диаграмм, гистограмм, средств отображения векторов и комплексных элементов, вывода дискретных последовательностей данных, а также движущихся траекторий как для двумерной, так и для трехмерной графики. Этот раздел получил свое дальнейшее развитие в версии системы MATLAB 5.0, где специальные графические средства улучшены и существенно расширены.

  • BAR - столбцовые диаграммы

  • ERRORBAR - график с указанием интервала погрешности

  • HIST - построение гистограммы

  • STEM - дискретные графики

  • STAIRS - ступенчатый график

  • ROSE - гистограмма в полярных координатах

  • COMPASS, FEATHER - графики векторов

  • QUIVER - поле градиентов функции

  • COMET - движение точки по траектории

  • FILL - закраска многоугольника

  • COMET3 - движение точки по пространственной траектории

  • SLICE - сечения функции от трех переменных

  • WATERFALL - трехмерная поверхность

  • FILL3 - закраска многоугольника в трехмерном пространстве

  • VIEWMTX - вычисление матрицы управления углом просмотра

  • VIEW - управление положением точки просмотра

Соседние файлы в папке METOD