sympy分析函数的极限

2023-12-31 08:36
文章标签 分析 函数 极限 sympy

本文主要是介绍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} limx0x1为例,当dir取值不同时,其返回值亦不相同

dir“+”“-”“±”
返回值oo-oozoo

阶数

众所周知,无穷大和无穷小在做四则混合运算的时候会出现不定式,解决这种不定式的关键就是认清不同无穷的阶数。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 limxx2+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)=x3!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.877582561890373x0.239712769302102(x0.5)20.146263760315062(x0.5)3+0.0199760641085085(x0.5)4+0.00731318801575311(x0.5)5+O((x1/2)6,(x,1/2))

这篇关于sympy分析函数的极限的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/555510

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe