微积分

使用Python的Sympy包可以实现符号运算,其中包括了微积分的内容。Excel内置Python提供了对Sympy包的支持。使用Sympy包之前,需要先导入它。[大谦Excel,dqexcel点com]

函数与极限

在Sympy中,可以用subs函数实现复合函数。下面将f=sin(x)和g=tan(y)复合到一个函数中,指定x为自变量。

如图6-1所示,打开Excel 365后,用鼠标单击B4单元格,在公式文本框中输入“=PY(”进入Python模式。

Document Image

图6-1 复合函数

在公式文本框中输入下面的代码:

code.python
#导入Sympy
import sympy as sp
#创建符号变量x和y
x,y=sp.symbols('x,y')
#定义要复合的函数f和g
f=1/sp.sin(x)
g=sp.tan(y)
#复合函数并指定自变量,用str函数输出字符串
str(f.subs(x,g).subs(y,x))

单击Ctrl+Enter键,B4单元格中输出复合以后的函数如图6-1所示。

新建Excel文档,求极限。

如图6-2所示,用鼠标单击B4单元格,在公式文本框中输入“=PY(”进入Python模式。在公式文本框中输入下面的代码:

code.python
import sympy as sp
x=sp.Symbol('x')
f=(x-2)/(x**2-4)
str(sp.limit(f,x,2))

单击Ctrl+Enter键,B4单元格中输出求极限的结果1/4如图6-2所示。

用鼠标单击E4单元格,在公式文本框中输入“=PY(”进入Python模式。在公式文本框中输入下面的代码:

code.python
import sympy as sp
x=sp.Symbol('x')
f=(3*x-8)/(7*x+1)
str(sp.limit(f,x,sp.oo))

单击Ctrl+Enter键,E4单元格中输出求极限的结果3/7如图6-2所示。

Document Image

图6-2 求函数的极限

导数

在Sympy中,可以用diff函数实现函数求导。使用diff函数进行求导时,可以指定阶次,也可以指定对哪个符号变量进行求导。

下面求函数的导数。如图6-3所示,打开Excel 365后,用鼠标单击B4单元格,在公式文本框中输入“=PY(”进入Python模式。在公式文本框中输入下面的代码:

code.python
import sympy as sp
x=sp.Symbol('x')
f=(x-1)**3/(x+1)
b=sp.diff(f,x)
#用simplify函数进行简化
str(sp.simplify(b))

单击Ctrl+Enter键,B4单元格中输出结果如图6-3所示。

继续求函数的2阶导数。用鼠标单击B8单元格,在公式文本框中输入“=PY(”进入Python模式。在公式文本框中输入下面的代码:

code.python
import sympy as sp
x=sp.Symbol('x')
f=(x-1)**3/(x+1)
b=sp.diff(f,x,2)
str(sp.simplify(b))

单击Ctrl+Enter键,B8单元格中输出结果如图6-3所示。

Document Image

图6-3 求函数的导数

不定积分

在Sympy中,可以用integrate函数求函数的不定积分。

下面求不定积分 。如图6-4所示,打开Excel 365后,用鼠标单击B5单元格,在公式文本框中输入“=PY(”进入Python模式。在公式文本框中输入下面的代码:

code.python
import sympy as sp
x=sp.Symbol('x')
f=1/(1+x**2)
str(sp.integrate(f))

单击Ctrl+Enter键,B5单元格中输出结果如图6-4所示。

Document Image

图6-4 求函数的不定积分

6.1.4定积分

在Sympy中,可以用integrate函数求函数的定积分。使用该函数时指定积分变量及其对应的下界和上界,注意积分变量、下界和上界要放在一个小括号里面。

下面求定积分。如图6-5所示,打开Excel 365后,用鼠标单击B4单元格,在公式文本框中输入“=PY(”进入Python模式。在公式文本框中输入下面的代码:

code.python
import sympy as sp
x=sp.Symbol('x')
f=x**7
str(sp.integrate(f,(x,0,1)))

单击Ctrl+Enter键,B5单元格中输出结果如图6-5所示。

下面求定积分。如图6-5所示,打开Excel 365后,用鼠标单击B8单元格,在公式文本框中输入“=PY(”进入Python模式。在公式文本框中输入下面的代码:

code.python
import sympy as sp
x=sp.Symbol('x')
f=1/x
str(sp.integrate(f,(x,1,2)))

单击Ctrl+Enter键,B8单元格中输出结果如图6-5所示。

Document Image

图6-5 求函数的定积分

级数

在Sympy中,可以用series函数求函数的泰勒级数展开。

下面求函数的泰勒级数展开。如图6-6所示,打开Excel 365后,用鼠标单击B4单元格,在公式文本框中输入“=PY(”进入Python模式。在公式文本框中输入下面的代码:

code.python
import sympy as sp
x=sp.Symbol('x')
f=1/(5+4*sp.cos(x))
str(sp.series(f,x))

单击Ctrl+Enter键,B4单元格中输出结果如图6-6所示。

Document Image

图6-6 求函数的泰勒级数展开