Система математических расчетов MATLAB
Методическое пособие - Компьютеры, программирование
Другие методички по предмету Компьютеры, программирование
тся подходящим инструментом анализа матрицы, когда пос-ледняя осуществляет преобразование векторного пространства в себя, как это было в рас-смотренном выше примере дифференциальных уравнений. С другой стороны, сингулярное разложение матриц удобно при отображении одного векторного пространства в другое, возможно с иной размерностью. Большинство систем совместных линейных уравнений отно-сятся ко второй категории. Если матрица А является квадратной, симметричной и поло-жительно-определенной, то ее спектральное и сингулярное разложения совпадают. Но при отклонении A от симметричной и положительно-определенной матрицы, разница между двумя разложениями возрастает. В частности, сингулярное разложение действительной мат-рицы всегда действительно, но спектральное разложение действительной несимметричной матрицы может быть и комплексным.
Для матрицы
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
Вы можете убедиться, что матрица U*S*V равна А с точностью до ошибок округления. Для этого примера экономичная декомпозиция дает незначительный эффект.
[U,S,V] = svd(A,0)
U =
-0.6105 0.7174
-0.6646 -0.2336
-0.4308 -0.6563
S =
14.9359 0
0 5.1883
V =
-0.6925 0.7214
-0.7214 -0.6925
Как и в первом случае, матрица U*S*V равна A с точностью до ошибок округления.
Полиномы и интерполяция
В этом разделе мы ознакомимся с основными функциями MATLAB-а, которые дают возмож-ность осуществлять математические действия с полиномами и производить интерполяцию одно-, двух-, и многомерных данных.
Полиномы и действия над ними
Обзор полиномиальных функцийФункцияОписание convУмножение полиномов. deconvДеление полиномов. polyВычисление характеристического полинома матрицы или определение полинома с заданными корнями. polyderВычисление производных от полиномов. polyfitАппроксимация данных полиномом. polyvalВычисление значений полиномов в заданных точках. polyvalmВычисление значений матричного полинома. residueРазложение на простые дроби (вычисление вычетов). rootsВычисление корней полинома.
Представление полиномов
MATLAB представляет полиномы как векторы-строки, содержащие коэффициенты полино-мов по убывающим степеням. Например, рассмотрим следующее уравнение
p(x) = x3 2x 5
Это известный пример Валлиса (Wallis), использованный при первом представлении метода Ньютона во Французкой Академии. Мы будем использовать его в дальнейшем при рассмот-рении примеров использования различных функций. Для ввода данного полинома в MATLAB, следует записать
p = [1 0 -2 -5].
Корни полинома
Корни полинома вычисляются при помощи функци roots :
r = roots(p)
r =
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
MATLAB запоминает вычисленные корни как вектор-столбец. Функция poly выполняет об-ратную роль, то есть по заданным корням полинома вычисляет значения его коэффициентов (обратите внимание на значение второго коэффициента, который в идеале равен нулю).
p2 = poly(r)
p2 =
1 8.8818e-16 -2 -5
Функции poly и roots являются взаимно-обратными функциями, с точностью до упорядоче- ния коэффициентов, масштабирования и ошибок округления.
Характеристические полиномы
Функция poly вычисляет также коэффициенты характеристического полинома матрицы:
A = [1.2 3 -0.9; 5 1.75 6; 9 0 1];
poly(A)
ans =
1.0000 -3.9500 -1.8500 -163.2750
Корни данного полинома, вычисленные при помощи функции roots, являются собственными значениями (характеристическими числами) матрицы А. (При практических расчетах, для вычисления собственных значений матриц целесообразно вычислять их посредством функ-ции eig.)
Вычисление значений полинома
Функция polyval вычисляет значение полинома в заданных точках. Для вычисления p в точ-ке s = 5, следует записать
polyval(p,5)
ans =
110
Можно также вычислить значение матричного полинома. Так, вместо полинома Валлиса мо-жно записать:
p(X) = X3 - 2X 5I
где X является квадратной матрицей, а I - единичной матрицей. Например, сформируем сле-дующую квадратную матрицу X
X = [2 4 5; -1 0 3; 7 1 5];
и вычислим значение заданного выше полинома p(X) на данной матрице.
Y = polyvalm(p, X)
Y =
377 17