python求极限函数_SymPy库常用函数

本文介绍了Python的SymPy库,这是一个用于符号计算的库,支持符号计算、高精度计算等多种功能。文章详细讲解了如何安装SymPy,以及如何使用它进行基本数值类型的操作,如实数、有理数和整数。此外,还涵盖了特殊常数、变量定义、表达式替换、极限计算、微分、积分、系列展开等代数和微积分操作。通过示例展示了如何使用SymPy解决这些问题,并提供了关于打印输出和表达式匹配的说明。
摘要由CSDN通过智能技术生成

标签:

简介

SymPy是一个符号计算的Python库。它的目标是成为一个全功能的计算机代数系统,同时保持代码简 洁、易于理解和扩展。它完全由Python写成,不依赖于外部库。SymPy支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散 数学、几何学、概率与统计、物理学等方面的功能。(来自维基百科的描述)

Sympy安装方法

安装命令:pip install sympy

基本数值类型

实数,有理数和整数

SymPy有三个内建的数值类型:实数,有理数和整数。有理数类用两个整数来表示一个有理数。分子与分母,所以Rational(1,2)代表1/2,Rational(5,2)代表5/2,等等。

>>>from sympy import *

>>>a = Rational(1,2)

>>>a

1/2

>>>a*2

1

>>>Rational(2)**50/Rational(10)**50

1/88817841970012523233890533447265625

当利用Python的整数计算时要注意一下,Python只会截取除法的整数部分:

>>>1/2

0

>>>1.0/2

0.5

然而你可以:

>>>from __future__ import division

>>>1/2 #doctest: +SKIP

0.5

正确的除法在python3k和isympy中这样做,是标准的。

特殊的常数

我们也可以有一些特殊的常数,像e和pi,它们会被当作符号去对待。(1+pi不会求得值,反而它会保持为1+pi),例如:

>>>pi**2

pi**2

>>>pi.evalf()

3.14159265358979

>>>(pi+exp(1)).evalf()

5.85987448204884

求表达式的浮点数-evalf()函数

正如你看到的,evalf()函数可以用求出表达式的浮点数。

有一个无穷大的类型,被成为oo:

>>>oo > 99999

True

>>>oo + 1

oo

If the substitution will be followed by numerical evaluation, it is better to pass the substitution to evalf as

>>> (1/x).evalf(subs={x: 3.0}, n=21)

0.333333333333333333333

rather than

>>> (1/x).subs({x: 3.0}).evalf(21)

0.333333333333333314830

Sympy基本使用

定义变量-Symbols函数

对比与其他的计算机代数系统,在SymPy中要明确声明符号变量:

>>> x = symbols(‘x‘)

>>> x + 1

x + 1

>>>x,y,z=symbols(‘x y z‘)

>>> crazy = symbols(‘unrelated‘)

>>> crazy + 1

unrelated + 1

>>> x = symbols(‘x‘)

>>> expr = x + 1

>>> x = 2

>>> print(expr)

x + 1

Changing x to 2 had no effect on expr. This is because x = 2 changes the Python variable x to 2, but has no effect on the SymPy Symbol x, which was what we used in creating expr.

变量替换subs函数

>>> x = symbols(‘x‘)

>>> expr = x + 1

>>> expr.subs(x, 2)

3

>>> from sympy import pi, exp, limit, oo

>>> from sympy.abc import x, y

>>> (1 + x*y).subs(x, pi)

pi*y + 1

>>> (1 + x*y).subs({x:pi, y:2})

1 + 2*pi

>>> (1 + x*y).subs([(x, pi), (y, 2)])

1 + 2*pi

>>> reps = [(y, x**2), (x, 2)]

>>> (x + y).subs(reps)

6

>>> (x + y).subs(reversed(reps))

x**2 + 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值