本节主要使用sympy、scipy库来处理一些函数问题


文章目录

  • 1.求不定积分
  • 2.求定积分
  • 3.解线性方程
  • 4.解微分方程
  • 5.求导
  • 6.级数展开
  • 7.求极限
  • 8.求重积分
  • 普通定积分问题
  • 二重积分
  • 三重积分


1.求不定积分

例:求python编程求解不定积分 python 求不定积分_python编程求解不定积分
代码如下:

from sympy import *
x = symbols('x')
y = integrate(log(x),x)
print('y=log(x)的原函数为:',y)

输出结果为:

python编程求解不定积分 python 求不定积分_python_02


提示:不要忘记手动+C哦

2.求定积分

例:求python编程求解不定积分 python 求不定积分_ci_03

from sympy import *
x=symbols('x')
y=integrate(x**2,(x,0,1))#求y=x**2在(0,1)内定积分
print('y=x**2在(0,1)内的定积分为:',y)

结果:

python编程求解不定积分 python 求不定积分_python_04

3.解线性方程

例:求 python编程求解不定积分 python 求不定积分_2d_05的解

from sympy import *
x=symbols('x')
f=x**3-1
u=solve(f)
print('x**3-1=0的解为:',u)

结果:

python编程求解不定积分 python 求不定积分_python编程求解不定积分_06

4.解微分方程

例:求解微分方程: python编程求解不定积分 python 求不定积分_ci_07

from sympy import *
f=symbols('f',cls=Function)#定义f为函数
x=symbols('x')
eq=Eq(f(x).diff(x,2)-2*f(x).diff(x)+f(x),sin(x))#f''(x)-2f'(x)+f(x)=sin(x)
print('f\'\'(x)-2f\'(x)+f(x)=sin(x)的结果为:')
print(dsolve(eq,f(x)))

结果:

python编程求解不定积分 python 求不定积分_python编程求解不定积分_08


这里得出的结果为:python编程求解不定积分 python 求不定积分_2d_09

5.求导

例:求python编程求解不定积分 python 求不定积分_python_10的一阶导数、二阶导数

from sympy import *
x=symbols('x')
y=sin(x)
print('y=sin(x)的导数为:',y.diff(x))
print('y=sin(x)的二阶导数为:',y.diff(x,2))

结果:

python编程求解不定积分 python 求不定积分_定积分_11

6.级数展开

例:求python编程求解不定积分 python 求不定积分_定积分_12的展开式

from sympy import *
x=symbols('x')
y=tan(x).series(x,0,10)
print('y=tan(x)展开式:',y)

结果:

python编程求解不定积分 python 求不定积分_python编程求解不定积分_13


python编程求解不定积分 python 求不定积分_ci_14,可以看出series函数的第三个参数为展开式无穷小的阶数

7.求极限

例:求python编程求解不定积分 python 求不定积分_python_15

from sympy import *
x=symbols('x')
y=limit(sin(x)/x,x,0)#x趋于0时sin(x)/x极限
print('x趋于0时sin(x)/x极限:',y)

结果:

python编程求解不定积分 python 求不定积分_python_16


python编程求解不定积分 python 求不定积分_2d_17

8.求重积分

scipy库中的integrate也可以帮助我们求解积分问题,并且一二三重积分均可以解决

普通定积分问题

仍以python编程求解不定积分 python 求不定积分_ci_18为例:

from scipy.integrate import quad 

def f(x):
    return x**2

v,err = quad(f,#被积函数
             0,#x下限
             1)#x上限

print(v)

结果为:

python编程求解不定积分 python 求不定积分_定积分_19


我们知道结果应为python编程求解不定积分 python 求不定积分_ci_20,可见此结果存在一定误差,因此一般不用于求出精确结果,而在解决实际问题(允许结果存在误差)时使用

二重积分

例:python编程求解不定积分 python 求不定积分_python编程求解不定积分_21我们可以看出此式实际上是单位圆在第一象限内的面积,结果为python编程求解不定积分 python 求不定积分_定积分_22,约等于0.7853981634(卡西欧计算器结果)

import numpy as np
from scipy.integrate import dblquad 

def f(x,y):
    return 1

v,err = dblquad(f,#被积函数
             0,#x下限
             1,#x上限
             0,#y下限
             lambda x:np.sqrt(1-x**2))#y上限

print(v)

结果为:

python编程求解不定积分 python 求不定积分_python编程求解不定积分_23


可见结果还是较为精确的

三重积分

例:python编程求解不定积分 python 求不定积分_python编程求解不定积分_24实际上为底为单位圆,高为1的圆锥的体积的四分之一,结果应为python编程求解不定积分 python 求不定积分_ci_25,约等于0.2617993878

import numpy as np
from scipy.integrate import tplquad 

def f(x,y,z):
    return 1

v,err = tplquad(f,#被积函数
             0,#z下限
             1,#z上限
             0,#x下限
             lambda z:z,#x上限
             0,#y下限
             lambda z,x:np.sqrt(z**2-x**2))#y上限

print(v)

结果为:

python编程求解不定积分 python 求不定积分_定积分_26