4. Квадратная матрица A называется ортогональной, если AT=A-1. Определить, явля-ется ли заданная матрица A(n,n) ортогональной.
Квадратная матрица A называется ортогональной, если AT=A-1. Определить, является ли заданная матрица A(n,n) ортогональной.
Не понял вопроса: можно действовать по определению, проверив близость матрицы transpose(A) * A к единичной. Программируется это просто (нужно только оценивать близость к единичной матрице). Но если у вас матрицы индуцируются конкретным оператором, лучше убедиться в этом теоретически.
не совсем поняла)))
A = {1/sqrt(2), 1/sqrt(2) ; -1/sqrt(2), 1/sqrt(2) } -- запись по строкам
Транспонированная от нее:
transpose(A) = {1/sqrt(2), -1/sqrt(2) ; 1/sqrt(2), 1/sqrt(2) }
Умножим transpose(A) на A, получим единичную матричку:
E={1, 0 ; 0, 1}
Проблема в том, что в вещественной арифметике (например, в double), получится не E, а что-то похожее на
E_={1.0000000000001, 1.E-12 ; 1.E-12, 1.0000000000001}
Т.е. в вещественной арифметике невозможно "точно" установить, что матрица ортогональнана, но в данном случае можно проверять, чтобы диагональные элементы отличались от 1 менее чем на 1.E-10, а внедиагональные были не более 1.E-10 (все сравнения по модулю).
Как правило, матрицы это не сферические кони в вакууме, а образы операторов в конкретном базисе, поэтому лучше теоретически доказывать интересные свойства данных матриц (ортогональность, СПО, ...).
Наверное, если будут еще вопросы, лучше в личку писать.