IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Возведение матрицы в степень
Wizardius
сообщение 16.04.2009 19:44
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Дали задачку получить матрицу B из матрицы A размерностью m таким вот спосбом:

B=A^1 + A^2 + A^3 + ... + A^n

Очень надеюсь на вашу помощь, да и самому хочется разобраться...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
volvo
сообщение 16.04.2009 19:53
Сообщение #2


Гость






Ну, раз хочется разобраться - то добро пожаловать в FAQ, там есть процедура перемножения матриц, сложение матриц - поэлементно, это просто. И цикл, в котором собственно и находится Ai. Что из этого вызывает сложность?
 К началу страницы 
+ Ответить 
Wizardius
сообщение 17.04.2009 11:25
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Сложность вызывает именно возведение в степень. Никак не пойму, как это проще реализовать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.04.2009 12:43
Сообщение #4


Гость






Не надо проще, реализуй как положено:

(* Возведение матрицы в степень *)
procedure matrixPower(var m: TMatrix; a: TMatrix; pow: integer);
var
i, j: Integer;
T: TMatrix;
begin
if pow = 0 then begin
for i := 1 to size do
for j := 1 to size do m[i, j] := Byte(i = j);
exit
end;

move(a, T, sizeof(T));
for i := 1 To Pred(pow) do matrixMult(T, T, a);
move(T, m, sizeof(T))
end;
Где искать процедуру перемножения матриц, я сказал выше...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.07.2025 13:20
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"