Вычислите ранг матрицы по Полю Галуа
rk = gfrank(A,p)
Эта функция выполняет вычисления в GF (p), где p является главным. Если вы работаете в GF (2 м), используйте функцию rank
с массивами Галуа. Для получения дополнительной информации смотрите Вычислительные Ранги.
rk = gfrank(A,p)
вычисляет ранг матричного A
в GF (p
), где p
является простым числом.
В коде ниже, gfrank
говорит, что матричный A
имеет меньше, чем полный ранг. Это заключение целесообразно, потому что детерминантом A
является нулевой ультрасовременный p
.
A = [1 0 1; 2 1 0; 0 1 1]; p = 3; det_a = det(A); % Ordinary determinant of A detmodp = rem(det(A),p); % Determinant mod p rankp = gfrank(A,p); disp(['Determinant = ',num2str(det_a)]) disp(['Determinant mod p is ',num2str(detmodp)]) disp(['Rank over GF(p) is ',num2str(rankp)])
Вывод ниже.
Determinant = 3 Determinant mod p is 0 Rank over GF(p) is 2
gfrank
использует алгоритм, подобный Исключению Гаусса.