Как убрать "O ()" из серии sympy - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу нарисовать расширение функции Тейлора, например: sin

from sympy import *
from sympy.plotting import *
m, x = symbols("m x")
plot(*Array([2, 4, 6]).applyfunc(lambda m: sin(x).series(x0=0, n=m)), (x, -pi/2, pi/2))

Но, поскольку Array([2, 4, 6]).applyfunc(lambda m: sin(x).series(x0=0, n=m) выдает

\ displaystyle \ left [\ begin {matrix} x + O \ left (x ^ {2} \ right) & x - \ frac {x ^ {3}} {6} + O \ left (x ^ {4} \ справа) & x - \ frac {x ^ {3}} {6} + \ frac {x ^ {5}} {120} + O \ left (x ^ {6} \ right) \ end {matrix} \ right ]

sympy не может построить их.

Так что мне интересно, есть ли способ удалить O(x^n)? В Mathematica я могу использовать Normal, чтобы сделать это.

1 Ответ

1 голос
/ 16 апреля 2020

Есть способ удалить O:

In [5]: s = sin(x).series(x)                                                                                                      

In [6]: s                                                                                                                         
Out[6]: 
     3     5        
    x     x     ⎛ 6⎞
x - ── + ─── + O⎝x ⎠
    6    120        

In [7]: s.removeO()                                                                                                               
Out[7]: 
  5    3    
 x    x     
─── - ── + x
120   6     

In [8]: s.getO()                                                                                                                  
Out[8]: 
 ⎛ 6⎞
O⎝x ⎠
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...