• Регистрация
Редактор-сообщества-Экспонента
Редактор-сообщества-Экспонента+26.70
н/д
  • Написать
  • Подписаться

Примеры по курсу линейной алгебры

Математика и статистика 
24.12.2019

Примеры по курсу линейной алгебры. Решение рассмотрено в среде MATLAB.

Матрицы. Действия с матрицами

  • Пример 1. Действия с матрицами

  • Пример 2. Проверка перестановочности матриц 

  • Пример 3. Умножение матрицы на матрицы специального вида

  • Пример 4. Возведение матрицы в степень

  • Пример 5. Обращение матрицы

  • Пример 6. Ортогональная матрица

Определители. Вычисление определителей

  • Пример 1. Вычисление определителя разложением по 1-ой строке

  • Пример 2. Вычисление определителей матриц 2 и 3 порядков

Методы решения систем линейных алгебраических уравнений

  • Пример 1. Решение матричного уравнения

  • Пример 2. Вычисление решения системы линейных уравнений по формулам Крамера

  • Пример 3. Решение системы линейных уравнений методом Гаусса

Общая теория систем линейных уравнений. Однородные системы

  • Пример 1. Нетривиальная совместность однородной системы линейных уравнений с квадратной матрицей 

  • Пример 2. Нетривиальная совместность однородной системы трех линейных уравнений с четырьмя неизестными

  • Пример 3. Исследование однородной системы на совместность методом Гаусса

Общая теория систем линейных уравнений. Неоднородные системы

  • Пример 1. Проверка условия совместности неоднородной системы

  • Пример 2. Исследование неоднородной системы для двух различных правых частей методом Гаусса

 

Примеры по теме "Матрицы. Действия с матрицами" курса ЛА

 

Наверх

Пример 1. Действия с матрицами

Вычислим матрицу 2A-BA, где Image1.gif (1244 bytes) и Image2.gif (1310 bytes).

Решение в среде MATLAB

% Введём матрицы A и B

A = [2 3; 1 0; -1 3];

B = [2 0 1; 1 -2 2; 5 0 7];

% Вычислим 2A - BA

C = 2*A - B*A;

% Выведем результат

disp(C);

>>  1 -3
  4 -9
  -5 -30

 

 

Наверх

Пример 2. Проверка перестановочности матриц

Проверим, что матрицы Image3.gif (1333 bytes) и  Image4.gif (1318 bytes) перестановочны, а матрицы А и Image5.gif (1314 bytes)  неперестановочны. 

Решение в среде MATLAB

% Введём матрицы A и B

A = [-1 1 0; 0 -1 1; 0 0 -1];

B = [2 0 -1; 0 2 0; 0 0 2];

% Проверим AB == BA

same(A*B,B*A)      % Выведет 2 - да, 0 - нет. Проверка на идентичность.

% Введём матрицу С

C = [2 8 3; 3 0 -2; 7 2 1];

% Проверим AC == CA

same(A*C,C*A)    % Выведет 2 - да, 0 - нет.

>> 

ans = 2

ans = 0

 

 

Наверх

Пример 3. Умножение матрицы на матрицы специального вида

Умножим матрицу Image6.gif (1291 bytes) на единичную, скалярную и матрицы Image7.gif (1342 bytes) и Image8.gif (1343 bytes).

Решение в среде MATLAB

% Введём матрицу A

A = [1 2 3; 4 5 6; 7 8 9];

% Введём перестановочные матрицы

C12 = [0 1 0; 1 0 0; 0 0 1];

C23 = [1 0 0; 0 0 1; 0 1 0];

 % Проверим результат

C12 * A   % Перестановка строк

C23 * A   % Перестановка строк

A * C12   % Перестановка столбцов

A * C23   % Перестановка столбцов

% Как это сделать средствами MATLAB

A([2 1 3], :)    % Перестановка строк

A([1 3 2], :)    % Перестановка строк

A(:, [2 1 3])    % Перестановка столбцов

A(:, [1 3 2])    % Перестановка столбцов

>> 

ans = 4 5 6
  1 2 3
  7 8 9

 

ans = 1 2 3
  7 8 9
  4 5 6

 

ans = 2 1 3
  5 4 6
  8 7 9

 

ans = 1 3 2
  4 6 5
  7 9 8

 

ans = 4 5 6
  1 2 3
  7 8 9

 

ans = 1 2 3
  7 8 9
  4 5 6

 

ans = 2 1 3
  5 4 6
  8 7 9

 

ans = 1 3 2
  4 6 5
  7 9 8

 

 

Наверх

Пример 4. Возведение матрицы в степень

Для матрицы Image9.gif (1110 bytes) найдем A0, A1, A2.

Решение в среде MATLAB

% Введём матрицу A

A = [2 -1; 3 1];

% Вычислим A^0, A^1, A^2 и выведем результат

A^0, A^1, A^2

>> 

ans = 1 0
  0 1

 

ans = 2 -1
  3 1

 

ans = 1 -3
  9 -2

 

 

Наверх

Пример 5. Обращение матрицы

Проверим, что матрица Image10.gif (1314 bytes) невырождена и найдем матрицу A-1.

Решение в среде MATLAB

% Введём исходную матрицу

A=[1 2 3; 4 -1 6; -1 8 9];

% Вычислим к ней обратную. Выведем результат.

inv(A)

ans =

1.1875 -0.1250 -0.3125
0.8750 -0.2500 -0.1250
0.6458 - 0.2083   0.1875

 

 

Наверх

Пример 6. Ортогональная матрица

Проверим, что матрица image12.gif (1276 bytes) ортогональна.

Решение в среде MATLAB

% Вычислим матрицу поворота на угол alpha. Будем использовать символьную математику

syms alpha;

U = [cos(alpha) sin(alpha); -sin(alpha) cos(alpha)];

% Условие ортогональности U * U' = E

simplify(U*U.')

% Знак .' означает транспонирование, тогда как ' - сопряжение

% conj(U.') = U', где conj - комплексное сопряжение.

>> 

ans = [ 1, 0]
  [ 0, 1]

 

Примеры по теме "Определители. Вычисление определителей" курса ЛА

 

 

Наверх

Пример 1. Вычисление определителя  матрицы разложением по 1-ой строке

Вычислим определитель матрицы четвертого порядка разложением по 1-ой строке 

 

Решение в среде MATLAB

% Введём матрицу A

A = [1 -2 3 0; 2 3 0 1; -7 5 6 7; 3 10 12 13];

% Вычислим определитель разложением по первой строке

detA1 = 1 * acomp(A,1,1) - 2 * acomp(A,1,2) + 3 * acomp(A,1,3)

% Вычислим определитель с помощью встроенной функции

detA2 = det(A)

>> 

detA1 =  477

detA2 = 477

 

 

Наверх

Пример 2. Вычисление определителей матриц 2 и 3 порядков

Вычислим определители матриц image17.gif (1048 bytes) и image18.gif (1237 bytes).

Решение в среде MATLAB

% Получим аналитическое представление для определителей порядка 2 и 3.

% Все переменные - символьные

syms a11 a12 a13 a21 a22 a23 a31 a32 a33;

% Введём матрицы

A2 = [a11 a12; a21 a22];

A3 = [a11 a12 a13; a21 a22 a23; a31 a32 a33];

% Формулы для определителей

det(A2)

det(A3)

>> 

ans  =  a11*a22-a12*a21

ans  =  a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22

 

Примеры по теме "Методы решения систем линейных алгебраических уравнений" курса ЛА

 

 

Наверх

Пример 1. Решение матричного уравнения

Запишем систему в матричном виде и решим матричное уравнение.

Решение в среде MATLAB

% Перепишем систему в векторном виде и введём её матрицы

A = [1 2 3; 1 -3 2; 1 1 1];

b = [7;5;3];

% Решаем систему Ax=b

% Проверим систему на невырожденность

rank(A)

>>  ans = 3

% Ранг системы полный, система невырождена

% Решим систему с помощью обратной матрицы. x=A^(-1)*b

x = inv(A) * b

>> x = 1.0000
    0
    2.0000

% Решим систему с помощью средств MATLAB для решения линейных систем

x = A \ b

>> x = 1
    0
    2

 

 

Наверх

Пример 2. Вычисление решения системы линейных уравнений по формулам Крамера

Найти по формулам Крамера решение системы линейных уравнений image20.gif (1777 bytes)

Решение в среде MATLAB

% Решим систему методом Крамера

A = [1 2 3 4; -1 2 -3 4; 0 1 -1 1; 1 1 1 1];

b = [30;10;3;10];

% Проверим невырожденность системы

rank(A)

>>  ans = 4

% По правилу Крамера

A1 = A;

A2 = A;

A3 = A;

A4 = A;

A1(:,1) = b;

A2(:,2) = b;

A3(:,3) = b;

A4(:,4) = b; 

x1 = det(A1) / det(A);

x2 = det(A2) / det(A);

x3 = det(A3) / det(A);

x4 = det(A4) / det(A);

x=[x1;x2;x3;x4];

% Проверим решение

A*x - b

>> ans = 0
    0
    0
    0

 

 

Наверх

Пример 3. Решение системы линейных уравнений методом Гаусса

Решение в среде MATLAB

% Решим систему Ax=b методом Гаусса.

% Для этого, сформируем расширенную систему

A = [1 2 3; 1 -3 2; 1 1 1];

b = [7;5;3];

C = [A b]; 

% Приведём её к ступенчатому виду, выполнив прямой и обратный ход метода Гаусса

D = rref(C)

>> D = 1 0 0 1
    0 1 0 0
    0 0 1 2

% Последний столбец матрицы есть решение

x = D(:,4);

% Проверим его

A*x - b

>> ans = 0
    0
    0

 

Примеры по теме "Общая теория систем линейных алгебраических уравнений. Однородные системы" курса ЛА

 

 

Наверх

Пример 1. Нетривиальная совместность системы линейных уравнений с квадратной матрицей 

Проверим условие нетривиальной совместности однородной системы image23.gif (1249 bytes) с квадратной матрицей image24.gif (1310 bytes).

 

Решение в среде MATLAB

 

% Введём матрицу A

A = [1 -1 0; 0 1 -1; 1 0 -1];

% Условие нетривиальности системы Ax=0 - вырожденность A.

% Проверим определитель A == 0, тогда система имеет нетривиальные решения

det(A)

>>  ans  =  0

 

 

Наверх

Пример 2. Нетривиальная совместность однородной системы трех линейных уравнений с четырьмя неизвестными

Проверим условие нетривиальной совместности однородной системы image22.gif (1566 bytes)

 

Решение в среде MATLAB

% Проверим на нетривиальну разрешимость систему с неквадратной матрицей A

A = [1 0 -2 6; 2 2 1 -3; 3 -1 -2 2];

% Для этого достаточно rank(A) < 4

rank(A)

>>  ans  =  3

 

Наверх

Пример 3. Исследование однородной системы на совместность методом Гаусса

Исследуем однородную систему image21.gif (2273 bytes)

Решение в среде MATLAB

% Определим систему на нетривиальность методом Гаусса.

A = [1 4 2 0 -3; 2 9 5 2 1; 1 3 1 -2 -9; 3 12 6 0 -8; 2 10 6 4 7];

% Приведём матрицу к ступенчатому виду

C = rref(A)

>> C = 1 0 -2 -8 0
    0 1 1 2 0
    0 0 0 0 1
    0 0 0 0 0
    0 0 0 0 0

% Видим, что размерность линейного пространства Ax=0 равна 2.

% В качестве свободных переменных выберем x1, x2.

% Тогда, решая неоднородную систему

C = C(1:3,3:end);

syms x1 x2;

D = [C [x1;x2;0]];

E = rref(D)

>> E = [ 1, 0, 0, 1/2*x1+2*x2]
    [ 0, 1,  0, -1/2*x2-1/4*x1]
    [ 0, 0, 1, 0]

% Тогда, решением будет

E(:,end)

% где x1,x2 - свободные переменные

>> ans = [ 1/2*x1+2*x2]
    [ -1/2*x2-1/4*x1]
    [ 0]

 % Найдём базис ядра оператора A - фундаментальную систему решений Ax=0

null(A)

>> ans = -0.4439 -0.8581
    0.4828 -0.0167
    -0.7436 0.4624
    0.1304 -0.2229
    -0.0000 -0.0000

 

Примеры по теме "Общая теория систем линейных алгебраических уравнений. Неоднородные системы" курса ЛА

 

 

Наверх

Пример 1. Проверка условия совместности неоднородной системы

Проверим условие совместности неоднородной системы image28.gif (1455 bytes)

Решение в среде MATLAB

% Рассмотрим систему Ax=b

A = [4 -2 2; 1 -3 -2; 1 2 3];

b = [1;-1;3];

% Сравним ранги исходной и расширенной матриц

rank(A)

rank([A b])

>>  ans =  2
     
  ans  = 3

% Ранг расширенной матрицы больше, значит система несовместна.

 

 

Наверх

Пример 2. Исследование неоднородной системы для двух различных правых частей методом Гаусса

Исследуем неоднородную систему линейных уравнений Ax=b для двух различных правых частей b=b1 и b=b2.

image30.gif (2883 bytes).

Решение в среде MATLAB

% Исследуем систему Ax=b1 и Ax=b2 методом Гаусса

A = [1 1 0 0 0; 1 1 1 0 0; 0 1 1 1 1; 2 3 2 1 1;3 3 2 0 0];

b1 = [1;4;2;7;10];

b2 = [1;4;2;7;9];

% Приведём матрицы к ступенчатому виду

A1 = rref([A b1])

% Эта система оказывается несовместна

>> A1 = 1 0 0 -1 -1 0
    0 1 0 1 1 0
    0 0 1 0 0 0
    0 0 0 0 0 1
    0 0 0 0 0 0

% Видно, что система Ax=b2 совместна

A2 = rref([A b2])

>> A2 = 1 0 0 -1 -1 2
    0 1 0 1 1 -1
    0 0 1 0 0 3
    0 0 0 0 0 0
    0 0 0 0 0 0

% Найдя базис ядра оператора A 

null(sym(A))

 

>> ans = [ -1, 0]
    [ 1, 0]
    [ 0, 0]
    [ 0, 1]
    [ -1, -1]

% и зная частное решение

sym(A)\sym(b2)

% мы легко получаем общее решение

>> ans = [ 2]
    [ -1]
    [ 3]
    [ 0]
    [ 0]

Теги

  • MATLAB
  • линейная алгебра
    24.12.2019

    Комментарии