
- •Введение
- •Командное окно
- •Редактирование командной строки.
- •Длинные командные строки.
- •Вывод на печать командного окна.
- •Запуск внешних программ.
- •!Notepad
- •Команда format.
- •Выражения
- •Переменные.
- •Inf бесконечность
- •Операторы.
- •Функции.
- •Текстовые комментарии и символьные константы.
- •Операции с рабочей областью
- •Операции с файлами
- •Дневник командного окна
- •Операции с векторами и матрицами
- •Оператор «двоеточие».
- •Векторные индексы.
- •Удаление строк и столбцов.
- •Объединение матриц.
- •Транспонирование матриц.
- •Создание матриц с заданными свойствами.
- •Создание вектора равноотстоящих точек.
- •Создание вектора равноотстоящих точек в логарифмическом масштабе.
- •Разреженные матрицы.
- •Графика
- •Команда plot.
- •Графические объекты.
- •Окна изображений.
- •Добавление кривых на существующий график.
- •Управление осями.
- •Разбиение графического окна.
- •Подписи к осям и заголовки.
- •Графики в полярной системе координат.
- •Контурные графики и графики полей градиентов.
- •Создание массивов данных для трехмерной графики.
- •Построение графиков трехмерных поверхностей.
- •Программирование в системе matlab.
- •Основные типы данных.
- •Арифметические операторы и массивы.
- •Операторы отношения.
- •Логические операторы и функции.
- •Приоритет выполнения операторов.
- •Структура файлов сценариев.
- •Структура m-файлов функций.
- •Использование подфункций.
- •Операторная функция.
- •Передача данных через глобальные переменные.
- •Параметры функционального типа.
- •Функции с переменным числом аргументов.
- •Управление потоками.
- •If expression1
- •Диалоговый ввод.
- •Численные методы и обработка данных
- •Решение систем линейных алгебраических уравнений.
- •Решение систем линейных уравнений итерационными методами.
- •Обратная матрица и определитель.
- •Факторизация Холецкого.
- •Lu факторизация.
- •Qr факторизация.
- •Матричная экспонента.
- •Собственные значения и собственные вектора.
- •Нормальная форма Жордана.
- •Разложение Шура.
- •Сингулярное разложение.
- •Численное интегрирование.
- •Представление полиномов в среде matlab.
- •Умножение и деление многочленов.
- •Вычисление производной от многочлена.
- •Решение систем нелинейных уравнений.
- •Преобразование Фурье.
- •Xlabel('time (seconds)')
- •Решение обыкновенных дифференциальных уравнений.
- •Численное решение дифференциальных уравнений в частных производных.
- •Литература
Нормальная форма Жордана.
Жорданова нормальная форма возникла из попыток получить с помощью преобразования подобия диагональную матрицу. В жордановой нормальной форме собственные значения располагаются на диагонали, но некоторые наддиагональные элементы равны единице, а не нулю. Функция jordan строит нормальную жорданову форму и имеет два формата:
J=jordan(A) возвращает жорданову нормальную форму J;
[V,J] = jordan(A) вычисляет как жорданову форму J, так и матрицу трансформации V, столбцами которой являются обобщенные собственные векторы. Более точно, V\A*V=J.
Рассмотрим пример:
A = [12, 32, 66, 116; -25, -76, -164, -294;...
21, 66, 143, 256; -6, -19, -41, -73]
A =
12 32 66 116
-25 -76 -164 -294
21 66 143 256
-6 -19 -41 -73
[V, J] = jordan(A)
V =
4 -2 4 3
-6 8 -11 -8
4 -7 10 7
-1 2 -3 -2
J =
1 1 0 0
0 1 0 0
0 0 2 1
0 0 0 2
Очевидно, что матрица A имеет собственные значения 1 и 2, каждое из которых имеет кратность два. Матрица имеет только два собственных вектора: V(:, 1) и V(:, 3), которые удовлетворяют соотношениям:
A*V(:, 1) = 1*V(:, 1)
A*V(:, 3) = 2*V(:, 3)
Два других столбца матрицы V являются обобщенными собственными векторами, удовлетворяющими соотношениям:
A*V(:, 2) = 1*V(:, 2) + V(:, 1)
A*V(:, 4) = 2*V(:, 4) + V(:, 3)
Или в математической нотации:
(A-2I)v4=v3
(A-1I)v2=v1
Разложение Шура.
С помощью функции schur можно представить матрицу A в виде произведения: A=USU’, где U – унитарная матрица, а S – матрица Шура. Действительная форма Шура имеет действительные собственные значения на диагонали, а комплексные собственные значения представлены 2x2 блоками, занимающими нижнюю поддиагональ. Для матрицы A из предыдущего примера имеем:
[U, S] = schur(A)
U =
0.4815 -0.8033 -0.3476 0.0440
-0.7223 -0.1404 -0.6539 0.1759
0.4815 0.5421 -0.5300 0.4398
-0.1204 -0.2028 0.4131 0.8796
S =
1.0000 -2.2351 -33.6613 470.5067
0.0000 1.0000 -5.9193 118.5827
0 0 2.0000 -16.7473
0 0 0 2.0000
Сингулярное разложение.
Скаляр и векторы u, v называются сингулярным значением и сингулярными векторами прямоугольной матрицы A, если выполняются соотношения:
Av = u и A’u = v.
Эти соотношения можно переписать в виде:
AV = U и A’U = V,
Где – диагональная матрица, элементами которой являются сингулярные значения , U и V – ортогональные матрицы, столбцы которых образуют соответствующие сингулярные векторы u и v. В силу ортогональности матриц U и V справедливо разложение:
A = UV’
Сингулярное разложение проводится с помощью функции svd. Рассмотрим пример:
A =[9 4; 6 8; 2 7]
A =
9 4
6 8
2 7
[U, S, V] = svd(A)
U =
-0.6105 0.7174 0.3355
-0.6646 -0.2336 -0.7098
-0.4308 -0.6563 0.6194
S =
14.9359 0
0 5.1883
0 0
V =
-0.6925 0.7214
-0.7214 -0.6925