2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.



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


28/08/09
37
Глупый, конечно, вопрос...
Нужно развернуть в виде формулы (слагаемых будет огромное количество). Вручную считать долго и легко ошибиться, 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 
Заслуженный участник
Аватара пользователя


01/03/06
13626
Москва
Может, применить другой пакет символьных вычислений, вдруг, среди них есть более сговорчивые?

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


28/05/08
284
Трантор

(Оффтоп)

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

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


09/05/12
25179
Вот эта страшилка. Использовался синтаксис Фортрана (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 


28/08/09
37
Всем огромное спасибо.
Мне дали подсказку, как это посчитать в 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 


20/03/14
12041
 i  mrbus
Следите за тем, чтобы формула обязательно была заключена в доллары:
Код:
[math]$   $[/math]

 Профиль  
                  
 
 Re: Определитель симметричной матрицы 5 порядка
Сообщение21.05.2014, 21:43 
Заслуженный участник


09/05/12
25179
mrbus в сообщении #866223 писал(а):
Я не выяснил, как именно все меняется. Но похоже, с некоторого момента становится выгоднее вычислять "в лоб". Интересно, с какого именно.
Это, пожалуй, сугубо теоретический интерес, поскольку почти сразу становится выгоднее использовать обычный метод Гаусса.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group