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

相关文章

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

kotlin的函数forEach示例详解

《kotlin的函数forEach示例详解》在Kotlin中,forEach是一个高阶函数,用于遍历集合中的每个元素并对其执行指定的操作,它的核心特点是简洁、函数式,适用于需要遍历集合且无需返回值的场... 目录一、基本用法1️⃣ 遍历集合2️⃣ 遍历数组3️⃣ 遍历 Map二、与 for 循环的区别三、高