本文主要是介绍sympy分析函数的极限,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 极限
- 阶数
- 泰勒展开
极限
sympy.series.limits
提供了与极限有关的函数,比如最基础的limit,可用于求解极限
from sympy import limit, sin, oo
from sympy.abc import x
limit(sin(x)/x, x, 0) # 1
limit(1/x, x, oo) # 0
其输入的三个参数分别表示函数表达式,被取极限的变量,以及变量趋向的极限位置。
limit函数有一个可选参数dir
,表示逼近极限时的方向,可选+
, -
或者+-
,默认为+
,以 lim x → 0 1 x \lim_{x\to0}\frac{1}{x} limx→0x1为例,当dir
取值不同时,其返回值亦不相同
dir | “+” | “-” | “±” |
---|---|---|---|
返回值 | oo | -oo | zoo |
阶数
众所周知,无穷大和无穷小在做四则混合运算的时候会出现不定式,解决这种不定式的关键就是认清不同无穷的阶数。sympy中提供了Order工具,即可胜任此工作。
from sympy import Symbol, Order
x = Symbol('x')
Order(x + x**2) # O(x)
Order(x + 1) # O(1)
其含义是, x + x 2 x+x^2 x+x2在 x x x趋近于0时,可约等于 x x x。
Order实质上是一个类,构造时可输入三个参数,分别是函数表达式和限定条件,例如想求 lim x → ∞ x 2 + x \lim_{x\to\infty}x^2+x limx→∞x2+x的阶数,则需如下用法
Order(x + x**2, (x, oo))
# O(x**2, (x, oo))
上述代码表明,当 x → ∞ x\to\infty x→∞时, x 2 + x x^2+x x2+x等于 x 2 x^2 x2。
此外,sympy中提供了Order类的简化写法O。
泰勒展开
泰勒展开是分析复杂函数极限的重要工具,sympy中的series便提供泰勒展开的功能,示例如下
from sympy import series
x = Symbol('x')
series(sin(x),x)
# x - x**3/6 + x**5/120 + O(x**6)
其含义是
sin ( x ) = x − x 3 3 ! + x 5 5 ! + O ( x 6 ) \sin(x)=x-\frac{x^3}{3!}+\frac{x^5}{5!}+O(x^6) sin(x)=x−3!x3+5!x5+O(x6)
这个示例中,series输入了两个参数,分别是表达式和变量,此外还有3个参数
- x0 x的计算位置,默认为0
- n 泰勒展开的阶数,默认为6
- dir 极限逼近的方向,默认"+"
如果给出另一个位置,比如 x 0 = 0 , 5 x_0=0,5 x0=0,5,则返回值如下
series(sin(x),x, 0.5)
# 0.0406342576590166 - 0.239712769302102*(x - 0.5)**2 - 0.146263760315062*(x - 0.5)**3 + 0.0199760641085085*(x - 0.5)**4 + 0.00731318801575311*(x - 0.5)**5 + 0.877582561890373*x + O((x - 1/2)**6, (x, 1/2))
即
0.0406342576590166 + 0.877582561890373 x − 0.239712769302102 ( x − 0.5 ) 2 − 0.146263760315062 ( x − 0.5 ) 3 + 0.0199760641085085 ( x − 0.5 ) 4 + 0.00731318801575311 ( x − 0.5 ) 5 + O ( ( x − 1 / 2 ) 6 , ( x , 1 / 2 ) ) 0.0406342576590166 + 0.877582561890373x\\ - 0.239712769302102(x - 0.5)^2 - 0.146263760315062(x - 0.5)^3\\ + 0.0199760641085085(x - 0.5)^4 + 0.00731318801575311(x - 0.5)^5\\ + O((x - 1/2)^6, (x, 1/2)) 0.0406342576590166+0.877582561890373x−0.239712769302102(x−0.5)2−0.146263760315062(x−0.5)3+0.0199760641085085(x−0.5)4+0.00731318801575311(x−0.5)5+O((x−1/2)6,(x,1/2))
这篇关于sympy分析函数的极限的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!