Я пишу код с использованием Sympy на Python и пытаюсь выполнить некоторые вычисления с кортежами, но каждый раз, когда я пытаюсь использовать предыдущий результат в следующем результате, мне выдается ошибка: TypeError: объект 'Piecewise' не является итерируемым .
Код, который я использую до сих пор:
from sympy import symbols, Piecewise,Eq,summation,Mod
def math_func(k):
result = Piecewise(
((1,1), Eq(Mod(k,3),1)), # Mod(k,3) does k % 3
((1,2), Eq(Mod(k,3),2)),
((3,3), Eq(Mod(k,3),3)), # No change if k % 3 == 0
)
#print(result.args)
result2 = Piecewise(
(sum(result), Eq(Mod(k,3),1)),
(sum(result), Eq(Mod(k,3),2)),
(sum(result), Eq(Mod(k,3),3)), # No change if k % 3 == 0
# Default case to keep result unchanged
)
return result2
x = symbols('x')
total = summation(math_func(x), (x, 2, 2))
print(total)
Когда я запускаю этот код, он выдает ошибку, о которой я говорил выше. Проблема в Eq(). он оценивает символ, и когда я выполняю print(result.args), он возвращает все разделы результата по частям. Попробуйте сами.
Мне нужно использовать свой код таким образом, потому что это единственный способ оценить символ, если я выполню k %3 == число или Mod(k, 3) == число это не работает, работает только для чисел.
Мне не нужны циклы. Может ли кто-нибудь показать мне, как исправить этот код?
Я пишу код с использованием Sympy на Python и пытаюсь выполнить некоторые вычисления с кортежами, но каждый раз, когда я пытаюсь использовать предыдущий результат в следующем результате, мне выдается ошибка: TypeError: объект 'Piecewise' не является итерируемым . Код, который я использую до сих пор: [code]from sympy import symbols, Piecewise,Eq,summation,Mod
def math_func(k): result = Piecewise(
((1,1), Eq(Mod(k,3),1)), # Mod(k,3) does k % 3 ((1,2), Eq(Mod(k,3),2)), ((3,3), Eq(Mod(k,3),3)), # No change if k % 3 == 0
) #print(result.args)
result2 = Piecewise( (sum(result), Eq(Mod(k,3),1)), (sum(result), Eq(Mod(k,3),2)), (sum(result), Eq(Mod(k,3),3)), # No change if k % 3 == 0 # Default case to keep result unchanged ) return result2
x = symbols('x') total = summation(math_func(x), (x, 2, 2)) print(total) [/code] Когда я запускаю этот код, он выдает ошибку, о которой я говорил выше. Проблема в Eq(). он оценивает символ, и когда я выполняю print(result.args), он возвращает все разделы результата по частям. Попробуйте сами. Мне нужно использовать свой код таким образом, потому что это единственный способ оценить символ, если я выполню k %3 == число или Mod(k, 3) == число это не работает, работает только для чисел. Мне не нужны циклы. Может ли кто-нибудь показать мне, как исправить этот код?
Я пишу код с использованием Sympy на Python и пытаюсь выполнить некоторые вычисления для кортежей, но каждый раз, когда я пытаюсь использовать предыдущий результат в следующем результате, мне выдается ошибка: TypeError: объект 'Piecewise' не...
from sympy.abc import x, i, j, n
from sympy import *
x = IndexedBase('x')
U = -Sum(Piecewise((KroneckerDelta(i, j, (1, n)), x > 0), (0, True)), (i, 1, n))
print(simplify(U))
# Output: Piecewise((-1, x > 0), (0, True))
# Which is wrong because i...
Я пишу код с использованием Sympy на Python и пытаюсь выполнить некоторые вычисления для кортежей, но каждый раз, когда я пытаюсь использовать предыдущий результат в следующем результате, мне выдается ошибка: TypeError: объект 'Piecewise' не...
Я пишу на Python и использую Sympy. Я специально использую суммирование. При суммировании я использую в формуле функцию next(), чтобы каждый раз при суммировании переходить к следующему значению переменной, но у меня возникают проблемы.
значение...
Я пишу на Python и использую Sympy. Я специально использую суммирование. При суммировании я использую в формуле функцию next(), чтобы каждый раз при суммировании переходить к следующему значению переменной, но у меня возникают проблемы.
значение...