Данные могут быть аппроксимированы при помощи убывающей экспоненциальной функ-ции.
y(t) = c1 + c2 e-t
Это уравнение показывает, что вектор y может быть представлен в виде линейной комбина-ции двух векторов, один из которых является постоянным вектором, содержащим все едини-цы, а второй вектор имеет компоненты e-t. Неизвестные коэффициенты c1 и c2 могут быть найдены подгонкой кривых по методу наименьших квадратов, которая основана на миними-зации суммы квадратов отклонений экспериментальных данных от модели. Мы имеем шесть уравнений с двумя неизвестными, представленными 6х2 матрицей
E = [ones(size(t)) exp(-t)]
E =
1.0000 1.0000
1.0000 0.7408
1.0000 0.4493
1.0000 0.3329
1.0000 0.2019
1.0000 0.1003
Решение методом наименьших квадратов находится при помощи оператора \ :
c = E\y
c =
0.4760
0.3413
Иными словами, подгонка методом наименьших квадратов дает
y(t) = 0.476 + 0.3413 e-t
Следующие выражения оценивают модель при равномерно распределенных моментах време-ни (с шагом 0.1), а затем строят график вместе с результатами экспериментальных данных.
T = (0 : 0.1 : 2.5)';
Y = [ones(size(T)) exp(-T)]*c;
plot(T, Y, '-', t, y, 'o')
Можно видеть, что значения E*c не совсем точно совпадают со значениями эксперименталь-ных данных y, но эти отклонения могут быть сравнимы с ошибками измерений.
Прямоугольная матрица A называется матрицей неполного ранга, если ее столбцы линейно-независимы. Если матрица A имеет неполный ранг, то решение AX = B не является единст-венным. Оператор \ при этом выдает предупреждающее сообщение и определяет основное решение, которое дает минимально возможное число ненулевых решений.
Недоопределенные системы линейных уравнений содержат больше неизвестных чем урав-нений. Когда они сопровождаются дополнительными ограничениями, то становятся сферой изучения линейного программирования. Сам по себе, оператор \ работает только с системой без ограничений. При этом решение никогда не бывает единственным. MATLAB находит ос-новное решение, которое содержит по меньшей мере m ненулевых компонент (где m - число уравнений), но даже это решение может быть не единственным. Ниже приводится пример, где исходные данные генерируются случайным образом.
R = fix (10*rand(2,4))
R =
6 8 7 3
3 5 4 1
b = fix (10*rand(2,1))
b =
1
2
Система уравнений Rx = b содержит два уравнения с четырьмя неизвестными. Поскольку матрица коэффициентов R содержит небольшие по величине целые числа, целесообразно представить решение в формате rational (в виде отношения двух целых чисел). Частное ре-шение представленное в указанном формате есть:
p = R\b
p =
0
5/7
0
-11/7
Одно из ненулевых решений есть p(2), потому что второй столбец матрицы R имеет наи-большую норму. Вторая ненулевая компонента есть p(4) поскольку четвертый столбец матрицы R становится доминирующим после исключение второго столбца (решение нахо-дится методом QR-факторизации с выбором опорного столбца).
Если матрица А является квадратной и невырожденной, уравнения AX = I и XA = I имеют одинаковое решение X. Это решение называется матрицей обратной к A, обозначается через A-1 и вычисляется при помощи функции inv. Понятие детерминанта (определителя) матрицы полезно при теоретических выкладках и некоторых типах символьных вычислений, но его масштабирование и неизбежные ошибки округления делают его не столь привлекательным при числовых вычислениях. Тем не менее, если это требуется, функция det вычисляет определитель квадратной матрицы. Например,
A = pascal (3)
A =
1 1 1
1 2 3
1 3 6
d = det (A)
X = inv (A)
d =
1
X =
3 -3 1
-3 5 -2
1 -2 1
Опять таки, поскольку A является симметричной матрицей целых чисел и имеет единичный определитель, то же самое справедливо и для обратной матрицы. С другой стороны, для
B = magic(3)
B =
8 1 6
3 5 7
4 9 2
d = det(B)
X = inv(B)
d =
-360
X =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028
Внимательное изучение элементов матрицы X, или использование формата rational , показы-вает, что они являются целыми числами, разделенными на 360.
Если матрица A является квадратной и несингулярной, то, пренебрегая ошибками округле-ния, выражение X = inv(A)*B теоретически означает то же, что и X = A\B , а Y = B*inv(A) теоретически есть то же, что и Y = B/A. Однако вычисления включающие операторы \ и / более предпочтительны, поскольку требуют меньше рабочего времени, меньшей памяти и имеют лучшие свойства с точки зрения определения ошибок.
Прямоугольные матрицы не имеют детерминантов и обратных матриц. Для таких матриц по крайней мере одно из уравнений AX = I или XA = I не имеет решения. Частично данный про-бел восполняется так называемой псевдообратной матрицей Мура-Пенроуза, или просто псевдообратной матрицей, которая вычисляется при помощи функции pinv. На практике необходимость в этой операции встречается довольно редко. Желающие могут всегда обра-титься к соответствующим справочным пособиям.
Если А есть некоторая квадратная матрица, а р – положительное целое число, то A^p эквива-лентно умножению A на себя р раз.
X =
3 6 10
6 14 25
10 25 46
Отрицательные и дробные степени
Если А является квадратной и невырожденной, то A^(-p) эквивалентно умножению inv(A) на себя p раз.
Y = B^(-3)
Y =
0.0053 -0.0068 0.0018
-0.0034 0.0001 0.0036
-0.0016 0.0070 -0.0051
Дробные степени, например A^(2/3), также допускаются; результаты при этом зависят от ра-спределения собственных значений матрицы А.
Оператор .^ (с точкой !) осуществляет поэлементное возведение в степень. Например,
A =
1 1 1
1 4 9
1 9 36
Для невырожденных квадратных матриц А функция sqrtm вычисляет главное значение квад-ратного корня , т.е. если X = sqrtm(A) , то X*X = A . Буква m в sqrtm означает, что выпол-няется матричная операция. Это отличает данную функцию от sqrt(A), которая, подобно A.^(1/2) (обратите внимание на точку !), выполняет операцию извленчения корня поэлемен-тно.
Система обыкновенных линейных дифференциальных уравнений первого порядка может быть записана в виде
dx/dt = Ax
где x = x(t) есть векторная функция от t, а A есть постоянная матрица не зависящая от t.
Решение данной системы может быть выражено в виде матричной экспоненты.
x(t) = ℮Atx(0)
Функция expm(A) вычисляет матричную экспоненту. Рассмотрим пример системы диффере-нциальных уравнений со следующей 3х3 матрицей коэффициентов
A =
0 -6 -1
6 2 -16
-5 20 -10
и начальными условиями x(0)
x0 = [ 1 1 1]’.
Использование матричной экспоненты для вычисления решения дифференциального уравне-ния в 101 точке с шагом 0.01 на интервале 0 ≤ t ≤ 1 записывается в виде
X = [ ];
for t = 0 : 0.01 : 1
X = [X expm(t*A)*x0];
end
Трехмерный график решения в фазовом пространстве может быть получен при помощи спе-циальной функции
plot3(X(1,:), X(2,:), X(3,:), '-o')
Решение имеет вид спиральной функции сходящейся к началу координат (см. рис. ниже). Та-кое решение обусловлено комплексными собственными значениями матрицы коэффициен-тов А.
Собственным значением и собственным вектором квадратной матрицы А называются ска-ляр λ и вектор v, удовлетворяющие условию
Av = λv
Имея диагональную матрицу Λ, составленную из собственных значений λ матрицы А и мат-рицу V , составленную из соответствующих собственных векторов v, можно записать
Если матрица V несингулярная, на основании данного выражения получаем спектральное разложение матрицы А
А = VΛV-1