2 Операции над матрицами и их свойства
1)Здесь у первой матрицы три столбца, значит у второй должно быть три строчки. Алгоритм ровно тот же, что в предыдушем примере, только тут в каждой строчке три слагаемых, а не два.
2)Здесь у второй матрицы два столбца. Сначала проделываем алгоритм с первым столбцом, затем со вторым, и получаем матрицу «два на два».
3)Тут у второй матрицы столбец состоит из одного элемента, от транспонирования столбец не изменится. И складывать ничего не надо, так как в первой матрице всего один столбец. Проделываем алгоритм три раза и получаем матрицу «три на три».
Имеют место следующие свойства:
1.Если сумма B + C и произведение AB существуют, то A (B + C ) = AB + AC
2.Если произведение AB существует, то x (AB) = (xA) B = = A (xB).
3.Если произведения AB и BC существуют, то A (BC) = (AB) C .
Если произведение матриц AB существует, то произведение BA может не существовать. Если даже произведения AB и BA существуют, то они могут оказаться матрицами разных размеров.
Оба произведения AB и BA существуют и являются матрицами одинакового размера лишь в случае квадратных матриц A и B одного и того же порядка. Однако, даже в этом случае AB может не равняться BA.
Возведение в степень
Возведение матрицы в степень имеет смысл лишь для квадратных матриц (подумайте, почему?). Тогда целой положительной степенью m матрицы A является произведение m матриц, равных A. Так же, как и у чисел. Под нулевой степенью квадратной матрицы A понимается единичная матрица того же порядка что и A. Если позабыли, что такое единичная матрица, гляньте на рис. 3.
Так же, как и у чисел, имеют место следующие соотношения:
AmAk=Am+k(Am)k=Amk
Смотрите примеры у Белоусова на стр. 20.
Транспонирование матриц
Транспонирование -этопреобразование матрицы A в матрицу AT ,
при котором строки матрицы A записываются в столбцы AT с сохранением порядка. (рис. 8). Можно сказать по другому:
столбцы матрицы A записываются в строки матрицы AT с сохранением порядка. Обратите внимание, как при транспонировании меняется размер матрицы, то есть количество строк и столбцов. Также обратите внимание, что элементы на первой строке, первом столбце, и последней строке, последнем столбце остаются на месте.
Имеют место следующие свойства: (AT)T=A (транспонируй
studfiles.net
17. Умножение матриц. Возведение матрицы в степень
- Главная
- Видеотека
- Естествознание
- Физика
- Математика
- Химия
- Биология
- Экология
- Обществознание
- Обществознание — как наука
- Иностранные языки
- История
- Психология и педагогика
- Культурология
- Экономика
- Менеджмент
- Логистика
- Статистика
- Философия
- Бухгалтерский учет
- Технические науки
- Черчение
- Материаловедение
- Сварка
- Электротехника
- Технологии
- Теоретическая механика и сопромат
- САПР
- Метрология, стандартизация и сертификация
- Геодезия и маркшейдерия
- Информатика
- Языки программирования
- Алгоритмы и структуры данных
- СУБД
- Web разработки и технологии
- Архитектура ЭВМ и основы ОС
- Системное администрирование
- Создание программ и приложений
- Создание сайтов
- Тестирование ПО
- Теория информации и кодирования
- Функциональное и логическое программирование
- Программы
- Редакторы и компиляторы
- Офисные программы
- Работа с аудио видео
- Работа с компьютерной графикой и анимацией
- Автоматизация бизнеса
- Прочие
- Музыка
- Природное земледелие
- Рисование и живопись
- Естествознание
- Библиотека
- Естествознание
- Физика
- Математика
- Химия
- Биология
- Экология
- Астрономия
- Обществознание
- Иностранные языки
- Технические науки
- Естествознание
forkettle.ru
[C++] Возведение в степень n матрицы m x m
#include «stdafx.h»
#include <iostream>
#include <conio.h>
void create(int **a, int m)
{
for (int i(0); i < m; i++)
{
for (int j(0); j < m; j++)
{
std::cout << «a[» << i << «][«<<j<<«] = «;
std::cin >> a[i][j];
}
}
}
void show(int **a, int m)
{
for (int i(0); i < m; i++)
{
for (int j(0); j < m; j++)
{
std::cout << a[i][j] << » «;
}
std::cout << std::endl;
}
}
int **matrix(int **a, int m, int n)
{
int **c = new int *[m];
for (int i(0); i < m; i++)
{
c[i] = new int[m];
}
for (int i(0); i < m; i++)
{
for (int j(0); j < m; j++)
{
c[i][j] = 0;
}
}
for (int k(1); k < n + 1; k++)
{
for (int i(0); i < m; i++)
{
for (int j(0); j < m; j++)
{
pastebin.com