Есть ли быстрый алгоритм для определителя матрицы, заполненной переменными?

Я отчаянно ищу алгоритм полиномиального времени, который вычисляет определитель символической (n x n) матрицы.

Проблема в том, что каждая запись верхней треугольной половины матрицы состоит из разных переменных (например, x_1, x_2,...).

На диагонали каждая запись представляет собой многочлен, состоящий из отрицательной суммы до (n-1) этих переменных (например, (- x_1 - x_2 - x_3), (- x_3 - x_2), ...).

Однако это всегда симметричная матрица, поэтому элементы будут одинаковыми, если вы отразите их по диагонали. Может быть, это свойство помогает во время выполнения?

Алгоритм LU-Decomposition я уже рассматривал, но боюсь, он работает только для чисто числовых матриц, или я ошибаюсь?

Может ли кто-нибудь помочь мне здесь?


person jjzun    schedule 25.08.2019    source источник
comment
Здравствуйте, stackoverflow может быть неподходящим местом для публикации вопросов, не связанных напрямую с программированием. Пожалуйста, взгляните на math.stackexchange.com   -  person Viktor    schedule 25.08.2019
comment
@Виктор Проблема в том, что на math.stackexchange я однажды задал аналогичный вопрос, касающийся алгоритма, и меня отправили в stackoverflow...   -  person jjzun    schedule 25.08.2019
comment
Разложение LU (не LUP) отлично работает символически. Каждая ячейка содержит рациональную функцию, и множество рациональных функций замкнуто над всеми требуемыми операциями ( *, /, +, -)   -  person Matt Timmermans    schedule 25.08.2019


Ответы (1)


Комментарий @MattTimmermans отвечает на вопрос:

«Разложение LU (не LUP) прекрасно работает символически. Каждая ячейка содержит рациональную функцию, а множество рациональных функций замкнуто на все необходимые операции ( *, /, +, -)»

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

Большое спасибо!

person jjzun    schedule 25.08.2019