Как создать Sympy IndexedBase, используя собственный подкласс символа?Python

Программы на Python
Ответить
Anonymous
 Как создать Sympy IndexedBase, используя собственный подкласс символа?

Сообщение Anonymous »

Я хочу создать двумерную матрицу двоичных переменных x. Пока я делаю это так:

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

x = IndexedBase('x', shape=(imax,jmax), integer=True)
Для двоичной переменной выполняется следующее тождество: x**n == x для целого числа n>0, и я хочу используйте это тождество для упрощения моих выражений в дальнейшем. Следовательно, «целочисленное» предположение следует заменить «более сильным» «двоичным» предположением.
Создание одной двоичной переменной работает (ссылка: https://stackoverflow.com/a/ 73953040/7740977):

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

from sympy import *

class Binary(Symbol):
def _eval_power(self, other):
return self

x0 = Binary('x0')
x0**2 == x0
Вывод: True
Сейчас я борюсь с созданием объекта IndexedBase, в котором находятся его записи экземпляры моего класса Binary, а не класса Symbol. Посмотрев https://docs.sympy.org/latest/modules/t ... ndexedBase, я увидел, что предположения могут быть унаследованы, если для инициализации IndexedBase используется символ, что заставило меня безуспешно попробовать следующее:

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

x = symbols('x', cls=Binary)
x = IndexedBase(x)

x[0,0]**2 == x[0,0]
Вывод: False (ожидается True)
Есть ли другой способ использовать IndexedBase мой собственный класс Binary?
Заранее большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/793 ... -of-symbol
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»