2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 sympy и вычеты
Сообщение23.03.2013, 15:51 


26/10/08
38
Вопрос в следующем: как вычислить вычет в полюсе(-ах) гиперболического тангенса, используя python и библиотеку sympy? Существует функция residue(expr, x, x0), но в данном случае получается вот что (использую isympy):

код: [ скачать ] [ спрятать ]
Используется синтаксис Python
 
from __future__ import division
from sympy import *
x, y, z, t = symbols('x y z t')
k, m, n = symbols('k m n', integer=True)
f, g, h = symbols('f g h', cls=Function)

In [1]: residue(tanh(x), x, 3*I*pi/2)
---------------------------------------------------------------------------
PoleError                                 Traceback (most recent call last)
/.../.../<ipython-input-1-06ae92309a12> in <module>()
----> 1 residue(tanh(x), x, 3*I*pi/2)

/usr/lib/python2.7/dist-packages/sympy/series/residues.pyc in residue(expr, x, x0)
     43     if x0 != 0:
     44         expr = expr.subs(x, x+x0)
---> 45     s = expr.series(x, 0, 0).removeO()
     46     # TODO: this sometimes helps, but the series expansion should rather be

     47     # fixed, see #1627:


/usr/lib/python2.7/dist-packages/sympy/core/expr.pyc in series(self, x, x0, n, dir)
   1560
   1561         if n != None: # nseries handling
-> 1562             s1 = self._eval_nseries(x, n=n, logx=None)
   1563             o = s1.getO() or S.Zero
   1564             if o:

/usr/lib/python2.7/dist-packages/sympy/core/function.pyc in _eval_nseries(self, x, n, logx)
    378                 term = e.subs(x, S.Zero)
    379                 if term.is_bounded is False or term is S.NaN:
--> 380                     raise PoleError("Cannot expand %s around 0" % (self))
    381                 series = term
    382                 fact = S.One

PoleError: Cannot expand tanh(x + 3*I*pi/2) around 0


В то время как с обычным тангенсом дела обстоят нормально:

Используется синтаксис Python
In [2]: residue(tan(x), x, 3*pi/2)
Out[2]: -1
 


Сразу оговорюсь, что не являюсь уверенным пользователем python и sympy, изучаю на ходу, и разобраться во всем ворохе нюансов sympy так с разбегу не просто. Подозреваю, что переменная должна быть комплексной, но как это сделать? Если кто-то сможет прокомментировать, буду очень благодарен

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group