Как я могу вычислить определитель n порядка, где n - это переменная с mathematica, maple или maxima? - PullRequest
0 голосов
/ 01 октября 2019

Например, матрица n * n

A_n=[2 1 1 ... 1]
    [1 2 1 ... 1]
    [...     ...]
    [1 1 1 ... 2]

имеет определитель n + 1. Могу ли я вычислить этот результат с помощью этих программ?

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Поскольку Maple не может легко обеспечить структуру, представляющую абстрактный вектор или матрицу неопределенного размера, вы можете попытаться переформулировать проблему с точки зрения некоторых известных свойств определителей.

Например, используя Сильвестрадетерминантная теорема , которую вы можете использовать, используя nx1 Matrix V (n), в которой все записи одинаковы 1.

Итак, det (A (n)) = det (Id (n) + V (n). transpose (V (n))) = 1 + det (transpose (V (n)). V (n)) = 1 + add (i, i = 1..n) = 1 + n

Другим способом может быть рассмотрение незначительного расширения вдоль n-го ряда. Когда n-я строка и n-й столбец удаляются из исходной матрицы, обозначенной A (n), вы получаете A (n-1). Удаление n-й строки и j-го столбца (j в 1..n-1) создает матрицу с определителем (-1) ^ j. Я не показываю это здесь. Но, возможно, обратите внимание, что любой из этих несовершеннолетних - это одиночный ряд, заменяющий матрицу (n-1) x (n-1) с A (n-2) в левом верхнем углу и 1 в другом месте.

В результате Q (n) определитель A (n) определяется как Q (n) = 2 * Q (n-1) - (n-1), я полагаю. И Q (1) = 2. Используя команду Maple rsolve,

rsolve({Q(n)=2*Q(n-1)-(n-1), Q(1)=2}, Q(n));

               n + 1

Другой подход может заключаться в рассмотрении сокращения строк вдоль строк 2..n. Вы должны быть в состоянии создать новую Матрицу (имеющую тот же определитель) с диагональными элементами: 2, (i + 1) / i, i = 2..n. Таким образом, детерминант является удобным телескопическим продуктом.

simplify( 2*product((i+1)/i, i=2..n) );

                n + 1

Конечно, достаточно просто иметь дело с такими матрицами для размера n, взятого с определенным значением,

H:=n->1+Matrix(n,n,1):
with(LinearAlgebra):

seq(Determinant(H(i)),i=1..5);

            2, 3, 4, 5, 6

U7:=LUDecomposition(H(6),output=U);

                  [2  1  1  1  1  1]
                  [                ]
                  [   3  1  1  1  1]
                  [0  -  -  -  -  -]
                  [   2  2  2  2  2]
                  [                ]
                  [      4  1  1  1]
                  [0  0  -  -  -  -]
                  [      3  3  3  3]
                  [                ]
            U7 := [         5  1  1]
                  [0  0  0  -  -  -]
                  [         4  4  4]
                  [                ]
                  [            6  1]
                  [0  0  0  0  -  -]
                  [            5  5]
                  [                ]
                  [               7]
                  [0  0  0  0  0  -]
                  [               6]

# The product of the  main diagonalentries telescopes.
mul(U7[i,i],i=1..6);

                  7
0 голосов
/ 01 октября 2019

Это

f[n_]:=Det[Table[1,{n},{n}]+IdentityMatrix[n]];
f[12]

возвращает 13 и, похоже, работает для любой матрицы небольшого размера.

...