您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
二阶导数(Python微积分—导数(3) 二阶及 n 阶导数)
导数,函数,结果二阶导数(Python微积分—导数(3) 二阶及 n 阶导数)
发布时间:2019-02-08加入收藏来源:互联网点击:
本文讲述如何用python的sympy、scipy工具包,求函数的二阶导数及 n 阶导数,文中代码和截图都选自Jupter notebook编辑环境。
先导入必要的工具包:
import sympy as smpimport numpy as npimport matplotlib.pyplot as pltimport scipy as spfrom scipy.misc import derivative
把数值变量 x 定义为符号:
x = smp.symbols('x')
例1(如图1),求f(x)和g(x)的一阶导数和二阶导数
图1说明:截图包括两行cell,都为markdown类型;上面一行为 函数表达式的显示形态,下面一行为函数表达式的输入形态。在输入状态行,按Ctrl Enter键运行该行cell,即可显示上一行内容。
用python自定义函数表述函数f(x)和g(x):def f(x): return x**4 3*x**2 def g(x): return -x**4-3*x**2
求例 1 中f(x)和g(x)的一阶导数:
# 定义函数def df(x): return 4*x**3 6*xdef df(x): return -4*x**3-6*xdf(1)-10 (x =1, df(1) 的计算结果)dg(-0.2)1.2320000000000002 (x = -0.2, dg(-0.2) 的计算结果)
求例 1 中f(x)和g(x)的二阶导数:
def ddf(x): return 12*x**2 6def ddg(x): return -12*x**2-6ddf(1)18 (当x =1时, ddf(x)的计算结果)ddg(-0.2)-6.48 (当x = -0.2时, ddg(x)的计算结果)
例2(如图2),求f(x)的一阶导数和二阶导数
图2说明:(见图1说明)
定义函数: def f(x): return 5*x**3 - 3*x
求例题 2 中f(x)的一阶导数:
x = smp.symbols('x')smp.diff(f(x),x)#(计算结果如下)15x*x -3
求例题 2 中f(x)的二阶导数:
smp.diff(f(x),x,2)#(计算结果如下)30x
例3,求f(x)的 n 阶导数
例3-1:求f(x) = sin(x) 的 n 阶导数
def f(x): return smp.sin(x)d3f = smp.diff(f(x), x, 3) # 其中的 3 ,表示求 3 阶导数d3f#(计算结果)-cos(x) d4f = smp.diff(f(x), x, 4) # 其中的 4 ,表示求 4 阶导数d4f#(计算结果)sin(x)
有些函数很复杂,即使函数表达非常明确,但是人工求解这类函数的 n 阶导数很难, 如例 3-2。
例3-2(如图3),求f(x)的 n 阶导数
图3说明:(见图1说明)
定义符号x, a, b, c = smp.symbols('x a b c', real=True)
定义例 3-2 中f(x)计算表达式的函数
def f(x): return smp.exp(-a*smp.sin(x**2)) * smp.sin(b**x) * smp.log(c*smp.sin(x)**2 /x)
求例 3-2 中f(x)的 4 阶导数
d4f = smp.diff(f(x), x, 4)d4f
计算结果略去,非常复杂啊!
给定x, a, b, c的值,计算例 3-2 中f(x)的4阶导数的值d4f.subs([(x,0.5),(a,1),(b,2),(c,3)]).evalf()(计算结果)−34.8746096991241
本文到此结束,希望对大家有所帮助呢。
上一篇:网线怎么接(网线到底要怎么接?不够长或者断了要怎么解决?其实这些并不难)
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |