2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Правило возведения матрицы в степень, кто расскажет?
Сообщение30.05.2007, 07:19 
Всем привет!
Изучаю теорию графов. Столкнулся с необходимостью возвести матрицу в степень r=2, 3, . . . (i=10, j=10)-строки и столбцы. Поискал в инете - нашел только пример для решения в среде Mathcad. Кто подскажет, где можно найти правило возведения матрицы в степень? Или кто расскажет!?
Заранее спасибо!

 
 
 
 
Сообщение30.05.2007, 07:23 
Аватара пользователя
Обычно матрицу сначала приводят подобным преобразованием к более простому виду ( если это возможно, то к диагональной матрице, иначе - к ЖНФ) потом возводят в степень, а уж потом возвращаются обратным преобразованием назад.

 
 
 
 
Сообщение30.05.2007, 08:47 
Brukvalub
"Обычно"?
С ваших слов ничего не ясно.
Вопрос был о правиле возведения матрицы в степень, а не о том как вы лично возводите в степень!

 
 
 
 
Сообщение30.05.2007, 09:02 
Аватара пользователя
brainbug писал(а):
С ваших слов ничего не ясно.
Вопрос был о правиле возведения матрицы в степень, а не о том как вы лично возводите в степень!
Лично я матрицы в степень не возвожу, а Вам я рассказал об общепринятой в линейной алгебре методике возведения матриц в степень. Если она Вам непонятна, то подучите линейную алгебру.

 
 
 
 
Сообщение30.05.2007, 09:11 
Аватара пользователя
А почему бы просто не перемножать матрицы? Насколько много степеней нужно получить?

 
 
 
 
Сообщение30.05.2007, 09:17 
PAV
Вы абсолютно правы!
Просто надо было перемножить матрицу саму на себя.
Теперь загвоздка в том, что матрица - квадратная 10-го порядка. Без средств ЭВМ не обойтись.
Brukvalub
Все гениальное просто!

 
 
 
 
Сообщение30.05.2007, 09:25 
Аватара пользователя
brainbug писал(а):
Теперь загвоздка в том, что матрица - квадратная 10-го порядка. Без средств ЭВМ не обойтись.


Все математические пакеты умеют умножать матрицы. Можно и самому написать программу, всего 3 вложенных цикла.

 
 
 
 
Сообщение30.05.2007, 09:29 
Аватара пользователя
brainbug писал(а):
Brukvalub
Все гениальное просто!
Про гениальность предложенного PAV решения я промолчу, но, видимо, действительно, нужно было обратиться в Форум, чтобы узнать, что возведение матрицы в степень является результатом ее умножения на себя столько раз, какова степень. Сие тайна великая есть, открытая только Посвященным :shock:

 
 
 
 
Сообщение30.05.2007, 10:05 
Аминь :) .

 
 
 
 
Сообщение30.05.2007, 12:40 
Аватара пользователя
brainbug писал(а):
Поискал в инете - нашел только пример для решения в среде Mathcad


Могу абсолютно безвозмездно дать пример возведения в степень в MATLAB:

Код:
a=rand(10,10);
b=a^5;

 
 
 
 
Сообщение31.05.2007, 06:04 
Аватара пользователя
:evil:
Brukvalub писал(а):
Про гениальность предложенного PAV решения я промолчу, но, видимо, действительно, нужно было обратиться в Форум, чтобы узнать, что возведение матрицы в степень является результатом ее умножения на себя столько раз, какова степень.

Сие есть только определение. Два момента могут Вас заинтересовать:

1) В теории графов очень часто используются специальные алгоритмы для вычисления $A^n$, где $n$ совпадает с размером матрицы (там используется or/and вместо сложения/умножения).

2) Для вычисления больших/относительно больших степеней всюду используют алгоритм возведения в степень удвоением:
$A^n  =( A^{n/2})^2$, при $A$ четном;
$A^n  =( A^{(n-1)/2})^2 A$, при $A$ нечетном.

 
 
 
 
Сообщение05.06.2007, 11:50 
PAV писал(а):
Все математические пакеты умеют умножать матрицы. Можно и самому написать программу, всего 3 вложенных цикла.

Пытаюсь вспомнить Турбо Паскаль, но думаю слишком трудная задача. Проще взять математический пакет.
photon писал(а):
Могу абсолютно безвозмездно дать пример возведения в степень в MATLAB:

Давай, если не трудно!!!

 
 
 
 
Сообщение05.06.2007, 11:52 
Аватара пользователя
Он Вам его уже дал, in case you didn't notice. :lol:

 
 
 
 
Сообщение05.06.2007, 11:57 
PAV писал(а):
Все математические пакеты умеют умножать матрицы. Можно и самому написать программу, всего 3 вложенных цикла.

Пытаюсь вспомнить Турбо Паскаль, но думаю слишком трудная задача. Проще взять математический пакет.
photon писал(а):
Могу абсолютно безвозмездно дать пример возведения в степень в MATLAB:

Давай, если не трудно!!!

 
 
 
 
Сообщение05.06.2007, 12:37 
Аватара пользователя
brainbug писал(а):
Давай, если не трудно!!!

ИСН писал(а):
Он Вам его уже дал, in case you didn't notice. :D

photon писал(а):
Код:
a=rand(10,10);
b=a^5;

 
 
 [ Сообщений: 15 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group