【sympy】用python的库 sympy 求导数 |
您所在的位置:网站首页 › 2x的导数用哪个公式 › 【sympy】用python的库 sympy 求导数 |
d i f f ( f , x ) diff(f, x) diff(f,x)求导数可引入求微分方程 sympy 求微分方程.(点击可跳转) 1.一阶导数基本格式 print(diff(f, x)) # f为所求导函数,x为对x进行求导例:求该函数的导数 f ( x ) = c o s ( x ) f(x)=cos(x) f(x)=cos(x) 程序,如下 from sympy import * x = symbols('x') print(diff(cos(x), x)) 结果:-sin(x)~ 2.二阶导数例:求该函数的二阶导数 f ( x ) = c o s 2 ( x ) f(x)=cos^{2}(x) f(x)=cos2(x) 程序,如下 from sympy import * x = symbols('x') print(diff(cos(x), x, 2)) # or print(diff(cos(x), x, x)) 结果:-cos(x)解释: d i f f ( c o s ( x ) , x , 2 ) diff(cos(x), ~x,~2) diff(cos(x), x, 2) 此处的2指对 x x x进行两次求导 ~~~~~ 即:二阶导数 同理, d i f f ( c o s ( x ) , x , x ) diff(cos(x), ~x,~x) diff(cos(x), x, x) 此处的两个 x x x也是对 x x x进行两次求导 可推广到更高阶 ~ 3.一阶偏导数例:求该函数的一阶偏导数 g ( x , y ) = c o s ( x 2 y ) x 2 + y 2 + 1 \quad g(x,y)=\frac{cos(x^2y)}{x^2+y^2+1} g(x,y)=x2+y2+1cos(x2y) 程序,如下 from sympy import * g = symbols('g', cls=Function) x, y = symbols('x y') eq = cos(x**2*y)/(x**2+y**2+1) dx = diff(eq, x) dy = diff(eq, y) print("对x的一阶偏导:", dx) print("对y的一阶偏导:", dy)结果 对x的一阶偏导: -2*x*y*sin(x**2*y)/(x**2 + y**2 + 1) - 2*x*cos(x**2*y)/(x**2 + y**2 + 1)**2 对y的一阶偏导: -x**2*sin(x**2*y)/(x**2 + y**2 + 1) - 2*y*cos(x**2*y)/(x**2 + y**2 + 1)**2~ 4.二阶偏导数例:求该函数的二阶偏导数 g ( x , y ) = c o s ( x 2 y ) x 2 + y 2 + 1 \quad g(x,y)=\frac{cos(x^2y)}{x^2+y^2+1} g(x,y)=x2+y2+1cos(x2y) 程序,如下 from sympy import * g = symbols('g', cls=Function) x, y = symbols('x y') eq = cos(x**2*y)/(x**2+y**2+1) dx_2 = diff(eq, x, 2) dy_2 = diff(eq, y, 2) print("对x的二阶偏导:", dx_2) print("对y的二阶偏导:", dy_2)结果 对x的二阶偏导: 2*(4*x**2*y*sin(x**2*y)/(x**2 + y**2 + 1) - y*(2*x**2*y*cos(x**2*y) + sin(x**2*y)) + (4*x**2/(x**2 + y**2 + 1) - 1)*cos(x**2*y)/(x**2 + y**2 + 1))/(x**2 + y**2 + 1) 对y的二阶偏导: (-x**4*cos(x**2*y) + 4*x**2*y*sin(x**2*y)/(x**2 + y**2 + 1) + 2*(4*y**2/(x**2 + y**2 + 1) - 1)*cos(x**2*y)/(x**2 + y**2 + 1))/(x**2 + y**2 + 1) 5. 贴图:运行结果 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |