Другие языки программирования и технологии

Как написать функцию возведения квадратной матрицы в степень? Язык Паскаль

Алексей К
Алексей К
320
Моя телепатия подсказывает что ytj,[jlbvj просто возвести в степень элементы матрицы))) )
var
a:array[100,100] of integer;
n,i,j:integer;
procedure Vozvedi_etu_chertovu_matricu_v_stepen;
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
a:=exp(degree*ln(a));
end;
begin
readln(n);readln(degree); //n- размерность квад матрици, degree -степень возведения
for i:=1 to n do
for j:=1 to n do
read(a);
Vozvedi_etu_chertovu_matricu_v_stepen;
end.
Владимир Габриелян
Владимир Габриелян
1 597
Лучший ответ
А как перемножать матрицы (на бумажке, с карандашиком в руках) Вы уже знаете?
Го Блин
Го Блин
94 548
Доброго времени суток.

nusik, телепатия вас подвела, а Александр прав и я позволю себе дополнть его ответ.

Простой поиск в гугле по ключу "степень матрицы" (без кавычек) дает первой ссылку

h t t p ://www.exponenta.ru/educat/class/test/showitem/?item=167

"Для любой квадратной матрицы А определено произведение А*А. Назовем произведение А*А квадратом матрицы А: A^2 = A*A. Произведение A*A^(r-1) для любого целого положительного числа r называется r-й степенью матрицы А. Т. е. A^r=A*A^(r-1)."

А это, что было чуть легче

const
M = 4;{число строк}
N = 4;{число столбцов}

type
Data = Integer; {для примера целые}
Arr2 = array[1..M, 1..N] of Data; {двухмерный массив целых чисел}

procedure MatrMul(A,B: Arr2; var C: Arr2);
var
i, j, s : Integer;
Item : Data;
begin
FillChar(C, SizeOf(C), 0); {обнуляем результирующую матрицу C}
for i:=1 to M do {цикл по строкам матрицы А}
for j:=1 to K do {цикл по столбцам матрицы В}
for s:=1 to N do {цикл по столбцам А и строкам В}
C[ i,j ] := C[ i,j ] + A[ i,s ] * B[ s,j ];
end;

Дальше сами. Имейте в виду, что произведение матриц зависит от порядка сомножетелей. Можете так же ознакомиться с h t t p ://mathot.ru/content/view/471/16/

Удачи.
Сергей Шевчук
Сергей Шевчук
59 612
напиши мне как их на бумажке возводить, а я напишу программу на паскале )))))))))))))))))))))))))))))))))))000
BM
Bauyrzhan Muhtarov
3 802
А что понимать под возведением в квадрат? Умножить матрицу на такую же или возвести каждый элемент в квадрат?