Проблема с использованием Sympy для упрощения кусочных функцийPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с использованием Sympy для упрощения кусочных функций

Сообщение Anonymous »

Я потратил неделю на математические исследования, основанные на вычислении, которое оказалось неверным из-за ошибки в упрощении кусочных функций в Sympy. Кто-нибудь знает, почему возникает эта ошибка? Мне кажется очень странным, что функция Sympy.simplify() может преобразовать выражение во что-то другое, что при вычислении дает другое значение. Я использую:
Версия Python: 3.10.9
Версия Sympy: 1.11.1.
Вот MWE.

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

import sympy as sp
from sympy import Piecewise, Eq, cos, sin, Ne

j = sp.symbols('j', real=True)

function = Piecewise((0, Eq(j, 0)), (-Piecewise((0, Ne(j, 0)), (2, True)), True)) - Piecewise((0, Eq(j, 0)), (-Piecewise((1, Ne(j, 0)), (0, True)), True))

function_simple = sp.simplify(function)

print(function.subs({j:1})) #prints 1
print(function_simple.subs({j:1})) #prints -1
Примечание: я только что попробовал это в Google Colab с Sympy 1.13.3 и Python 3.10.12, и результат правильный. Думаю, это ошибка, исправленная в новых версиях Sympy.


Подробнее здесь: https://stackoverflow.com/questions/790 ... -functions
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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