2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Определитель симметричной матрицы 5 порядка
Сообщение21.05.2014, 19:05 
Глупый, конечно, вопрос...
Нужно развернуть в виде формулы (слагаемых будет огромное количество). Вручную считать долго и легко ошибиться, MathCAD отказался показать результат как слишком длинный. А мне формулу нужно зашить в программу.
$\begin{Vmatrix}T_{11} & T_{12} & T_{13} & T_{14} & T_{15} \\
T_{12} & T_{22} & T_{23} & T_{24} & T_{25} \\
T_{13} & T_{23} & T_{33} & T_{34} & T_{35} \\
T_{14} & T_{24} & T_{34} & T_{44} & T_{45} \\
T_{15} & T_{25} & T_{35} & T_{45} & T_{55} \end{Vmatrix}$

 
 
 
 Re: Определитель симметричной матрицы 5 порядка
Сообщение21.05.2014, 19:07 
Аватара пользователя
Может, применить другой пакет символьных вычислений, вдруг, среди них есть более сговорчивые?

 
 
 
 Re: Определитель симметричной матрицы 5 порядка
Сообщение21.05.2014, 19:19 

(Оффтоп)

Вообще, если счет определителя не самоцель, то лучше подключить какую-нибудь библиотеку линейной алгебры (LAPACK, обертку над ним, или еще что), и поручить ему это считать. Если матпакет выдаст ответ в непригодном для прямого копипаста виде, то там же в паре мест напутать ничего не стоит, потом замучаетесь искать.

 
 
 
 Re: Определитель симметричной матрицы 5 порядка
Сообщение21.05.2014, 19:45 
Вот эта страшилка. Использовался синтаксис Фортрана (x**2 - это возведение в квадрат), все переводы строк, естественно, надо убрать:
Код:
T11*(T22*(T33*(T44*T55-T45**2)-T34*(T34*T55-T35*T45)+T35*(T34*T45-
T35*T44))-T23*(T23*(T44*T55-T45**2)-T34*(T24*T55-T25*T45)+T35*(
T24*T45-T25*T44))+T24*(T23*(T34*T55-T35*T45)-T33*(T24*T55-T25*T
45)+T35*(T24*T35-T25*T34))-T25*(T23*(T34*T45-T35*T44)-T33*(T24*
T45-T25*T44)+T34*(T24*T35-T25*T34)))-T12*(T12*(T33*(T44*T55-T45
**2)-T34*(T34*T55-T35*T45)+T35*(T34*T45-T35*T44))-T23*(T13*(T44
*T55-T45**2)-T34*(T14*T55-T15*T45)+T35*(T14*T45-T15*T44))+T24*(
T13*(T34*T55-T35*T45)-T33*(T14*T55-T15*T45)+T35*(T14*T35-T15*T3
4))-T25*(T13*(T34*T45-T35*T44)-T33*(T14*T45-T15*T44)+T34*(T14*T
35-T15*T34)))+T13*(T12*(T23*(T44*T55-T45**2)-T34*(T24*T55-T25*T
45)+T35*(T24*T45-T25*T44))-T22*(T13*(T44*T55-T45**2)-T34*(T14*T
55-T15*T45)+T35*(T14*T45-T15*T44))+T24*(T13*(T24*T55-T25*T45)-T
23*(T14*T55-T15*T45)+(T14*T25-T15*T24)*T35)-T25*(T13*(T24*T45-T
25*T44)-T23*(T14*T45-T15*T44)+(T14*T25-T15*T24)*T34))-T14*(T12*
(T23*(T34*T55-T35*T45)-T33*(T24*T55-T25*T45)+T35*(T24*T35-T25*T
34))-T22*(T13*(T34*T55-T35*T45)-T33*(T14*T55-T15*T45)+T35*(T14*
T35-T15*T34))+T23*(T13*(T24*T55-T25*T45)-T23*(T14*T55-T15*T45)+
(T14*T25-T15*T24)*T35)-T25*(T13*(T24*T35-T25*T34)-T23*(T14*T35-
T15*T34)+(T14*T25-T15*T24)*T33))+T15*(T12*(T23*(T34*T45-T35*T44
)-T33*(T24*T45-T25*T44)+T34*(T24*T35-T25*T34))-T22*(T13*(T34*T4
5-T35*T44)-T33*(T14*T45-T15*T44)+T34*(T14*T35-T15*T34))+T23*(T1
3*(T24*T45-T25*T44)-T23*(T14*T45-T15*T44)+(T14*T25-T15*T24)*T34
)-T24*(T13*(T24*T35-T25*T34)-T23*(T14*T35-T15*T34)+(T14*T25-T15
*T24)*T33))


P.S. Использовалась Maxima.

 
 
 
 Re: Определитель симметричной матрицы 5 порядка
Сообщение21.05.2014, 20:55 
Всем огромное спасибо.
Мне дали подсказку, как это посчитать в WolframAlfa, и он посчитал, формула есть.

Но выяснил одну интересную вещь.
Если взять несимметричный определитель, общего вида, то разложение "в лоб" будет содержать $n!$ слагаемых, каждое из которых содержит n множителей. Легко посчитать число операций:
$(n-1)n!$ умножений,
$n!-1$ сложений (вычитание считаем как сложение).
Если же применить разложение по столбцу/строке, в полученных определителях меньшего порядка также разложение по столбцу/строке и т. д. вплоть до определителя 1х1, получим:
для определителя 2x2 то же количество операций: 2 умножения, 1 сложение.
для определителя порядка N будет:
$(P+1)N$ умножений,
$SN + N - 1$ сложений,
где $P$ - число умножений для определителя порядка $N-1$, $S$ - число сложений для определителя порядка $N-1$.
В итоге, для определителя общего вида разложение по строке получается всегда выгоднее, чем "в лоб", по количеству умножений, а по числу сложений совершенно одинаково.
Но для симметричной матрицы всё меняется. Здесь возникают одинаковые члены, которые (в качестве примера) можно представить как $2xyz$ вместо $xyz+xyz$ (4 умножения, 1 сложение заменяются на 3 умножения, 0 сложений). Я не выяснил, как именно все меняется. Но похоже, с некоторого момента становится выгоднее вычислять "в лоб". Интересно, с какого именно.

 
 
 
 Re: Определитель симметричной матрицы 5 порядка
Сообщение21.05.2014, 21:01 
 i  mrbus
Следите за тем, чтобы формула обязательно была заключена в доллары:
Код:
[math]$   $[/math]

 
 
 
 Re: Определитель симметричной матрицы 5 порядка
Сообщение21.05.2014, 21:43 
mrbus в сообщении #866223 писал(а):
Я не выяснил, как именно все меняется. Но похоже, с некоторого момента становится выгоднее вычислять "в лоб". Интересно, с какого именно.
Это, пожалуй, сугубо теоретический интерес, поскольку почти сразу становится выгоднее использовать обычный метод Гаусса.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group