导数模块的导入与求导
1.添加导数的资源包
首先如果我们要进行求导,则必须拥有计算导数的资源包'sympy',下面在Jupyter的环境下进行配置。打开Jupyter notebook并在代码框中输入以下的代码(或者在ANACONDA命令框中):
pip install sympy
2.导数模块的导入与使用
1.先导入该模块,在编辑器里面如下写出
from sympy import *
2.对x进行标注(原因,x是一个变量,但是要让它成为一个函数自变量,必须声明)
x=symbols('x')
如果想省事,可以在开头就进行标注,但是是用模块的方式(把x当成字母模块来引用)
from sympy.abc import x,y,z
3.进行计算
f=x**8+9
z=diff(f,x)
print(z)
此时的输出结果就是其导函数
除此之外,我们可以直接用最习惯的表示方法
import sympy as sym
x=sym.symbols('x')
f=x**8+9
z=sym.diff(f,x)
print(z)
积分模块的使用
1.用刚刚以及装的库sympy来求解
方法和微分一样,首先看不定积分:
import sympy as sym
x=sym.symbols('x')
f=x**8+9
z=sym.integrate(f,x)
print(z)
再看定积分:
import sympy as sym
x=sym.symbols('x')
f=x**8+9
z=sym.integrate(f,(x,1,4))#注意这里的括号,把自变量、下限、上限括进去
print(z)
2.用机器学习里面常用的numpy来进行计算
在numpy里面不能直接进行准确积分,但是可以进行近似计算,用trapz()函数实现梯形法求解
这里由于不是精确值,而且不能得出积分后的函数,我们暂时不做考虑(求解方程一般需要精确值)给出代码:
import numpy as np
x=np.linspace(0,np.pi,1000)
y=sin(x)
resault=np.trapz(y,x)
print(resault)
求偏导数的方法
1.直接求出偏导函数
我们依然要用到上面的所需要的模块sympy,整体的过程与求导数是相似的,但是在数学意义上有些许不同。先给出代码:
from sympy import *
x,y=symbols('x,y')
f=x**5+y**4
fx=diff(f,x)
fy=diff(f,y)
print(fx,fy)
2.求出某点的具体值
用sub()函数来求,而且用“字典”的方式进行带入
fx=diff(f,x).subs({x:1,y:2})
fy=diff(f,y).subs({x:2,y:1})