How to find the order of the power of A matrix?

10 vues (au cours des 30 derniers jours)
Muhammad Usman
Muhammad Usman le 28 Fév 2023
Modifié(e) : Dyuman Joshi le 28 Fév 2023
Hi, I want to calculate the order of the power matrix A. Here order doesn't mean for rows into columns but the power n of the matrix in modulo 2.
For example:
I try to wrote the code, but not getting the desired reults i.e., 3. Here's the code:
A = [1 0 1;1 1 0;1 0 0];
B = A;
i = 0;
for n = 1:5
P = A*B;
if P == eye(3)
i = i+1;
break;
else
if mod(P(:,:),2)==0
B(mod(P(:,:),2)==0) = 0
else
B(mod(P(:,:),2)~=0) = 1
end
P = A*B;
end
i = i+1;
end
B = 3×3
1 0 1 1 1 1 1 0 1
B = 3×3
1 0 1 1 1 1 1 0 1
B = 3×3
1 0 1 1 1 1 1 0 1
B = 3×3
1 0 1 1 1 1 1 0 1
B = 3×3
1 0 1 1 1 1 1 0 1
disp(i)
5
Please help me out.
Thanks

Réponse acceptée

Dyuman Joshi
Dyuman Joshi le 28 Fév 2023
Modifié(e) : Dyuman Joshi le 28 Fév 2023
Use isequal to compare matrices and you can directly calculate modulo by mod, you don't need to assign the values specifically -
A = [1 0 1;1 1 0;1 0 0];
B = A;
i = 0;
for n = 1:5
if isequal(B, eye(3))
i = i+1;
break;
else
sprintf('multiplication')
B = A*B
sprintf('calculating modulo 2')
B = mod(B,2)
end
i = i+1;
end
ans = 'multiplication'
B = 3×3
2 0 1 2 1 1 1 0 1
ans = 'calculating mod'
B = 3×3
0 0 1 0 1 1 1 0 1
ans = 'multiplication'
B = 3×3
1 0 2 0 1 2 0 0 1
ans = 'calculating mod'
B = 3×3
1 0 0 0 1 0 0 0 1
disp(i)
3
  2 commentaires
Muhammad Usman
Muhammad Usman le 28 Fév 2023
I also need to this condition
B(mod(P(:,:),2)~=0) = 1
that when mod of 2 not equal to zero, replace the entry by 1
Dyuman Joshi
Dyuman Joshi le 28 Fév 2023
Modifié(e) : Dyuman Joshi le 28 Fév 2023
mod of 2 can only have 2 values, if mod of 2 is not equal to 0 then it is equal to 1.
I have edited my answer, so you can take a look at each step for every iteration.

Connectez-vous pour commenter.

Plus de réponses (1)

Stephen23
Stephen23 le 28 Fév 2023
Modifié(e) : Stephen23 le 28 Fév 2023
A = [1,0,1;1,1,0;1,0,0];
B = A;
for n = 2:5
B = mod(B*A,2);
if isequal(B,eye(3))
break
end
end
n
n = 3
B
B = 3×3
1 0 0 0 1 0 0 0 1

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by