Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная
  2. Практическая информатика
  3. Глава 8 Системы компьютерной алгебры
  4. Maxima

Матричные вычисления

Maxima позволяет легко манипулировать матрицами. В следующем примере задаются две матрицы, которые затем складываются (+) и перемножаются (.):

(C1) A:matrix([1,2],[3,4]);
				 [ 1	 2 ]
(D1) 				 [ 	 ]
				 [ 3	 4 ]
(C2) B:matrix([1,1],[1,1]);
				 [ 1	 1 ]
(D2) 				 [ 	 ]
				 [ 1	 1 ]
(C3) A + B;
				 [ 2	 3 ]
(D3) 				 [ 	 ]
				 [ 4	 5 ]
(C4) A . B;
				 [ 3	 3 ]
(D4) 				 [ 	 ]
				 [ 7	 7 ]

Функция determinant вычисляет определитель матрицы.

(C5) determinant(A);
(D5) 				 - 2

(C6) determinant(matrix([a,b],[c,d]));
(D6) 				 a d - b c

Транспонирование матрицы осуществляется функцией transpose.

(C7) transpose(A);
			 [ 1 3 ]
(D7) 			 [ ]
			 [ 2 4 ]

Для получению обратной матрицы используется операция ^^-1 или функция invert.

(C8) A^^-1;
			[ - 2 1 ]
	 [ ]
(D8) 			[ 3 1 ]
			[ - - - ]
			[ 2	 2 ]
(C9) invert(A);
 [ - 2 1 ]
 [ ]
(D9) [ 3 1 ]
 [ - - - ]
 [ 2 2 ]

Как известно, каждый элемент bij обратной матрицы B = A -1 получается делением алгебраического дополнения Aij соответствующего элемента исходной матрицы на ее определитель |A|. Для того чтобы вынести 1/|A| в качестве сомножителя применяется функция detout.

(C10) invert(A), detout;
			 [	 4 - 2 ]
			 [ 	 ]
			 [ - 3 1	 ]
(D10) 			 - ------------
				 2

Убедимся в правильности полученного результата, умножив A на обратную к ней матрицу:

(C11) A . d9;
			 [ 1 0 ]
(D11) 			 [ ]
			 [ 0 1 ]

Будьте внимательны: в результате выполнения операции ^-1 получится матрица, каждый элемент которой обратен элементу исходной, а не обратная матрица.

(C12) A^-1;
				 [	 1 ]
				 [ 1	 - ]
				 [	 2 ]
(D12) 				 [ 	 ]
				 [ 1	 1 ]
				 [ -	 - ]
				 [ 3	 4 ]

Использование матриц позволяет легко решать системы линейных уравнений с несколькими переменными. Пусть A - матрица коэффициентов системы, X - матрица неизвестных, B - матрица свободных членов системы. Тогда матрица X находится по формуле X = A -1 . B, где операция . означает матричное умножение.


Пример
Решим следующую систему уравнений матричным способом.

Сначала заполним соответствующие матрицы, а затем получим матрицу результатов:

(C14) A:matrix([1, 2, 1], [2, 1, 1], [1, 3, 1]);

			 [ 1 2 1 ]
			 [	 ]
(D14) 			 [ 2 1 1 ]
			 [	 ]
			 [ 1 3 1 ]

(C15) B:matrix([0, 1, 0]);
(D15) 			 [ 0 1 0 ]

(C16) (A^^-1).B;
			 [ 1 ]
			 [	 ]
(D16) 			 [ 0 ]
			 [	 ]
			 [ - 1 ]


Задания

  1. Вычислите произведение матриц A.B и B.A, где

  2. Найдите определители матриц C и D.

  3. Для матрицы D найдите обратную, после чего проверьте, что в результате их произведения получается единичная матрица.
  4. Решите следующую систему уравнений матричным способом

Перекрёстные ссылки книги для Матричные вычисления

  • Операции математического анализа
  • Вверх
  • Программирование в системе Maxima

Book navigation

  • Содержание
  • Глава 1 Основы информатики
  • Глава 2 Операционные системы и сети
  • Глава 3 Графика на компьютере
  • Глава 4 Обработка текста
  • Глава 5 Основы языка HTML
  • Глава 6 Динамический HTML
  • Глава 7 Простейшие вычисления
  • Глава 8 Системы компьютерной алгебры
    • Mathematica
    • Maxima
      • Работа с выражениями
      • Алгебраические преобразования
      • Решение уравнений
      • Определение функций
      • Построение графиков
      • Операции математического анализа
      • Матричные вычисления
      • Программирование в системе Maxima
  • Глава 9 Модели и программирование
  • Глава 10 Логическое программирование
  • Глава 11 Введение в ООП
  • Глава 12 Программирование и интернет

Последние материалы

  • Эмулятор терминала Terminator
    4 hours ago
  • Приложение scanimage
    6 days 1 hour ago
  • Утилита sensors
    1 week 2 days ago
  • Сканер Rkhunter
    2 weeks 3 days ago
  • Программа resize2fs
    3 weeks 2 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru