Система математических расчетов 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