Как узнать, является ли функция непрерывной с sympy? - PullRequest
1 голос
/ 27 апреля 2019

Мне нужно определить функцию, которая проверяет, является ли функция ввода непрерывной в точке с sympy.

Я искал документы sympy с ключевым словом «непрерывность», и для этого не существует никакой функции.Я думаю, может быть, я должен рассмотреть возможность сделать это с ограничениями, но я не уверен, как.

def check_continuity(f, var, a):
    try:
            f = sympify(f)
        except SympifyError:
            return("Invaild input")
        else:
            x1 = Symbol(var, positive = True)
            x2 = Symbol(var, negative = True)
            //I don't know what to do after this

Ответы [ 2 ]

1 голос
/ 27 апреля 2019

Да, вам нужно использовать ограничения.

Формальное определение непрерывности в точке имеет три условия, которые должны быть выполнены. Функция f ( x ) непрерывна в точке, где x = c , если

  • lim x -> c f ( x ) существует
  • f ( c ) существует (то есть c находится в домене f .)
  • lim x -> c f ( x ) = f ( c )

SymPy может вычислять символьные ограничения с помощью функции предела.

>>> limit(sin(x)/x, x, 0)
1

См .: https://docs.sympy.org/latest/tutorial/calculus.html#limits

0 голосов
/ 28 апреля 2019

Я бы предложил вам использовать функцию continuous_domain. Это определено в calculus.util

Пример использования:

>>> from sympy import Symbol, S
>>> from sympy.calculus.util import continuous_domain
>>> x = Symbol("x")
>>> f = sin(x)/x
>>> continuous_domain(f, x, S.Reals)
Union(Interval.open(-oo, 0), Interval.open(0, oo))

Это еще не добавлено в документы. Вы можете проверить более подробную информацию здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...