天天看点

高等数学基础概念的Python开发实现

一般的数学算式math函数库就可以解决了,如果是涉及到高等数学极限,微积分等知识,就需要用到sympy科学计算库,它是专门用来解决数学的运算问题的。

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

官方文档:SymPy 1.11 documentation

安装 sympy:

# 第一种

pip install sympy

# 第二种 推荐,镜像下载更快

pip install sympy -i Simple Index

使用 jupyter 显示效果更好。Project Jupyter | Home

导入库的方式为 from sympy import *

常见的数学符号在sympy中的表示方式:

数学符号 sympy表达 数学符号 sympy表达
sinx sin(x) arccosx acos(x)
cosx cos(x) arcsinx asin(x)
tanx tan(x) imaginary number i I(大写i)
高等数学基础概念的Python开发实现
exp(x) 或者 E**x
高等数学基础概念的Python开发实现
oo(两个o)
高等数学基础概念的Python开发实现
y**x linx log(x)
高等数学基础概念的Python开发实现
x/y
高等数学基础概念的Python开发实现
pi

基本数学方法

from sympy import *       # 导入sympy 全部函数

#数学表达式,用到symbols() 声明数学符号

x, y = symbols('x, y')    # symbols() 声明了两个符号x, y。否则就会报 x 未定义错误

expr = x + 2*y            # 定义了表达式:x + 2y

expr               # x + 2*y

#可以对表达式进行简单的四则运算

expr = expr + x + 1       # 表达式可以进行基本运算

expr              # 2*x + 2*y + 1

expr = expr * x + 2       # 相当于:(2*x + 2*y + 1) * x + 2

expr              # x*(2*x + 2*y + 1), 并没有进行展开计算

#表达式展开成最终形式,用到 expand() 函数

expanded_expr = expand(expr)

expanded_expr     # 2*x**2 + 2*x*y + x,表达式以最终能够展开的形式显示

#平方根

sqrt(8)                # 

高等数学基础概念的Python开发实现

#如果想求8的算数平方根的具体的值,就需要用的 math 类

import math

math.sqrt(8)       # 2.82842712474619

#简化表达式,用到simplify()函数

expr = (3*x**2+9)/3

expr     # 

高等数学基础概念的Python开发实现

#分解因式,用到 factor() 函数

expr = factor(expanded_expr)       #expanded_expr = 2*x**2 + 2*x*y + x

expr             # 𝑥(2𝑥+2𝑦+1)

#解方程,用到solve(equation, symbol),equation为等式或者表达式,symbol声明的符号即变量

x = Symbol("x")

expression = x**2+3*x-4    # 即方程

高等数学基础概念的Python开发实现

,x为变量

solve(expression, x)      # 方程的解有两个:[-4,1]

solve(x**2 - 2, x)     # 

高等数学基础概念的Python开发实现

的解为: 

高等数学基础概念的Python开发实现

#替代变量为具体值,用到expression.subs(symbol, constant),equation为等式或者表达式,symbol为要替换的变量,constant具体的数值

expression = x**2+3*x-4  

expression.subs(x, 3)  #将表达式expression中的x的值替换为3,结果为:14

高等数学方法

#求极限,用到limit(expr, symbol, value),expr表达式,symbol变量,value变量的值

limit(x**2, x, 5)      # 

高等数学基础概念的Python开发实现

在点5处的极限值为 25

limit(x**3, x, oo)    # 

高等数学基础概念的Python开发实现

在点正

高等数学基础概念的Python开发实现

处的极限值为 

高等数学基础概念的Python开发实现

limit(1/x, x, 0)        # 1/x 从正方向逼近0时的极限值为 

高等数学基础概念的Python开发实现

limit(1/x, x, 0, dir="-")    #1/x 从负方向逼近0时的极限值为 -

高等数学基础概念的Python开发实现

limit(1/x, x, 0, dir='+-')    #1/x 从正负方向逼近0时的极限值为 

高等数学基础概念的Python开发实现

limit(sin(x)/x, x, 0)    #计算 

高等数学基础概念的Python开发实现

的极限值为1

#计算阶乘,用到factorial()

factorial(5)      #计算5的阶乘,即5×4×3×2×1=120

#求一阶导数,用到diff(expr),计算表达式的导数

x = Symbol('x')      #声明变量

expression = x**3 + x**2 + 9*x     #要求导的表达式

高等数学基础概念的Python开发实现

diff(expression)     #求导结果:

高等数学基础概念的Python开发实现

diff(sin(x))    #求导结果:cos(x)

diff(x**3*y*z,x)   #表达式

高等数学基础概念的Python开发实现

对x求导,结果为:

高等数学基础概念的Python开发实现

expr = x**4+x**3+x+1

expr.diff(x)    #导数为:

高等数学基础概念的Python开发实现
高等数学基础概念的Python开发实现

#求高阶导数

expr=sin(x)    

expr.diff(x,4)      #求sin(x)的4阶导数,为:sin(x)

expr=x**5 + x**4

expr.diff(x,3)        #求

高等数学基础概念的Python开发实现

的3阶导数,为:12x(5x+2)

#求不定积分,用到Integrate(expr),求表达式的不定积分,即计算∫ expr dx 

expr = 3*x**2 + 2*x + 9          # 表达式

高等数学基础概念的Python开发实现

integrate(3 * x ** 2 + 2 * x + 9)   #积分为:

高等数学基础概念的Python开发实现

integrate(x*y, x)    #表达式xy对x进行积分,结果为

高等数学基础概念的Python开发实现

integrate(sin(x**2), (x, -oo, oo))  #计算

高等数学基础概念的Python开发实现

积分,结果为

高等数学基础概念的Python开发实现

#求定积分,用到Integrate(expr, (x, a,b )),求表达式的定积分,即计算

高等数学基础概念的Python开发实现

integrate(log(x), (x, 1, a))   #log(x)对x从1到a求积分,结果为alog(a)-a+1

#二重积分,用到integrate(expr,x,y),对表达式expr进行对x,y的二重积分。

# 计算 

高等数学基础概念的Python开发实现

,即计算 xy在抛物线 

高等数学基础概念的Python开发实现

与直线 y=x−2 所围成的区域上的二重积分

expr=x*y      # 表达式

integrate(expr,(x, y**2,y+2),(y,-1,2))     # y区间[-1,2],x区间[y**2, y+2],结果: 45/8

附图如下:

高等数学基础概念的Python开发实现