Вычисление аналога определителя матрицы из линеных дифференциальных операторов

Форум пользователей пакета Maple

Модератор: Admin

NikitaTsybin
Сообщения: 6
Зарегистрирован: Чт ноя 22, 2018 2:10 pm

Вычисление аналога определителя матрицы из линеных дифференциальных операторов

Сообщение NikitaTsybin » Чт ноя 22, 2018 2:18 pm

Добрый день! Имеется матрица, составленная из линейных дифференциальных операторов.
К примеру M={[L11(f), L12(f)], [L21(f), L22(f)]}. Требуется вычислить аналог определителя данной матрицы с одним главным отличием.
Если вычислять классический определитель, то
Delta=L11(f)*L22(f)-L12(f)*L21(f).
Мне же нужно получить выражение вида
Delta=L11(L22(f))-L12(L21(f)).
Как можно подобное реализовать в Maple?
Как объяснить, что "умножение" необходимо делать именно таким образом?
Вариант "вручную" прошу не предлагать, далее мне нужно будет рассматривать матрицы размерностью 12x12 и более.
Если кому-то будет интересно, готов объяснить в личке, зачем это нужно.
Спасибо за внимание!

NikitaTsybin
Сообщения: 6
Зарегистрирован: Чт ноя 22, 2018 2:10 pm

Re: Вычисление аналога определителя матрицы из линеных дифференциальных операторов

Сообщение NikitaTsybin » Вс ноя 25, 2018 8:47 pm

Получилось реализовать через простейшие функции op и nops.
Результаты работы на матрице 3x3

Код: Выделить всё

 LD[1, 1](LD[2, 2](LD[3, 3](f)))
-LD[1, 1](LD[3, 2](LD[2, 3](f)))
-LD[2, 2](LD[3, 1](LD[1, 3](f)))
-LD[2, 1](LD[1, 2](LD[3, 3](f)))
+LD[2, 1](LD[1, 3](LD[3, 2](f)))
+LD[1, 2](LD[3, 1](LD[2, 3](f)))
Вложения
Аналог определителя.rar
(7.36 КБ) 8 скачиваний

Kitonum
Сообщения: 2050
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Вычисление аналога определителя матрицы из линеных дифференциальных операторов

Сообщение Kitonum » Вс ноя 25, 2018 9:56 pm

Вам в определителе вместо L11(f) и т.д. надо писать просто L11, так как L11(f) это не оператор, а значение оператора L11 на функции f .
Вот решение вашей проблемы на примере определителя 3 порядка (код работает на определителях любого порядка):

Код: Выделить всё

restart;
A:=Matrix(3, (i,j)->L||i||j);
Delta:=LinearAlgebra:-Determinant(A);
F:=map(t->`if`(sign(t)=1,`@`(op(t)),sign(t)*`@`(op(2..-1,t))), Delta):
F;
F(f);

Результат:
Изображение

NikitaTsybin
Сообщения: 6
Зарегистрирован: Чт ноя 22, 2018 2:10 pm

Re: Вычисление аналога определителя матрицы из линеных дифференциальных операторов

Сообщение NikitaTsybin » Вс ноя 25, 2018 10:16 pm

Kitonum, Большое спасибо! Это значительно проще, чем то, что сделал я.

NikitaTsybin
Сообщения: 6
Зарегистрирован: Чт ноя 22, 2018 2:10 pm

Re: Вычисление аналога определителя матрицы из линеных дифференциальных операторов

Сообщение NikitaTsybin » Вс ноя 25, 2018 10:32 pm

Kitonum, прошу прощения. Остался один вопрос. Как в вашем случае обозначить линейные операторы. В качестве примера результат выполнения данной процедуры в моем файле для матрицы 2x2.
Вложения
Снимок.PNG
Снимок.PNG (11.73 КБ) 73 просмотра

Kitonum
Сообщения: 2050
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Вычисление аналога определителя матрицы из линеных дифференциальных операторов

Сообщение Kitonum » Пн ноя 26, 2018 11:56 pm

Я не понял суть проблемы. Обозначайте как Вам нравится.