Sage TypeError Положительные характеристики не допускаются в символьных вычислениях - PullRequest
0 голосов
/ 12 октября 2018

Я новичок в sage и получил код ( ссылка на код), который должен работать.Я все еще получаю сообщение об ошибке в части декодирования.Трассировка ошибки выглядит следующим образом:

in decode(y)
--> sigma[i+1+1] = sigma[i+1]*(z)\
                    -(delta[i+1]/delta[mu+1])*z^(i-mu)*sigma[mu+1]*(z);
in sage.structure.element.Element.__mul__
    if BOTH_ARE_ELEMNT(cl):
-->     return coercion_model.bin_op(left, right, mul)
in sage.structure.coerce.CoercionModel_cache_maps.bin_op
--> action = self.get_action(xp,yp,op,x,y)

...... some more traces (don't actually know if they are important)

TypeError: positive characteristics not allowed in symbolic computations

Кто-нибудь знает, если что-то не так в этом фрагменте кода?Из-за предыдущих ошибок я изменил следующее, чтобы добраться до того места, где я сейчас нахожусь:

  • .coeffs() изменено на .coefficients(sparse=False) из-за предупреждающего сообщения.
  • встрока кода sigma[i+1+1] = sigma[i+1](z)\ -(delta[i+1]/delta[mu+1])*z^(i-mu)*sigma[mu+1](z);, где происходит ошибка, мне нужно было вставить * например.sigma[i+1]*(z)

Буду признателен за любые предположения, что может быть не так!

1 Ответ

0 голосов
/ 19 октября 2018

Ваша проблема в том, что вы умножаете вещи, не имеющие нулевой характеристики (например, элементы, относящиеся к Phi.<x> = GF(2^m)), на элементы символических вычислений, такие как z, которые вы явно определили как символическую переменную

Phi.<x> = GF(2^m)
PR = PolynomialRing(Phi,'z')
z = var('z')

По сути, z, который вы получаете от PR, отличается от var('z').Я рекомендую назвать это как-нибудь еще.У вас должна быть возможность получить к этому доступ с помощью PR.gen() или, возможно, PR(z).

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

...