python中求导,如何给函数求导

  python中求导,如何给函数求导

  Python的函数求导方法如下:1。使用sympy库中的symbols方法输入X和Y变量;2.使用sympy库中的diff函数传入需要求导的函数,可以返回求导后的结果。

  

  python利用sympy库对某个函数求导,numpy库使用该求导结果计算的程序

  在python数据处理的过程中,我们经常会遇到这样的情况。需要求一个函数表达式的偏导数,将具体值代入导数公式。

  在python中,sympy库中的diff()函数通常用于函数派生。

  但他通常得到的导数只是一个象征性的表达。不能直接用于数据使用。

  示例:

  importsympyassp

  importnumpyasnp

  x,y=特殊符号( xy )

  z=sp.sin(2*sp.pi*x 2*y/5)

  zx=sp.diff(z,x)

  zy=sp.diff(z,y)

  打印(zx)

  Print(zy)它的输出是:

  2*pi*cos(2*pi*x 2*y/5)

  2*cos(2*pi*x 2*y/5)/5那么如何解决这个问题呢?

  x和y分别用evalf()函数赋值后,用float进行类型转换后,就可以用numpy进行数值计算了。

  示例:

  importsympyassp

  importnumpyasnp

  x,y=特殊符号( xy )

  z=sp.sin(2*sp.pi*x 2*y/5)

  zx=sp.diff(z,x)

  zy=sp.diff(z,y)

  x1=10

  y1=5

  z _ x1=float(zx . evalf(subs={ x : x 1,y:y1}))

  z _ y1=float(zy . evalf(subs={ x : x 1,y:y1}))

  打印(z_x1)

  打印(z_y1)其输出结果:

  -2.61472768902227

  -0.16645873461885696如果我的x或者y不是单值怎么办?而是一个数组。

  我们可以用一个循环来完成它。

  示例:

  importsympyassp

  importnumpyasnp

  x,y=特殊符号( xy )

  z=sp.sin(2*sp.pi*x 2*y/5)

  zx=sp.diff(z,x)

  zy=sp.diff(z,y)

  x_array=np.linspace(-5,5,10)

  y_array=np.linspace(-5,5,10)

  Temp_x=[]#首先定义一个空列表来存储x个偏导数。

  Temp_y=[]#首先定义一个空列表来存储y的偏导数。

  (10):

  z _ x=float(zx . evalf(subs={ x : x _ array[I],y:y_array[i]}))

  Temp_x.append(z_x)#将计算出的偏导数逐个添加到列表中。

  z _ y=float(zy . evalf(subs={ x : x _ array[I],y:y_array[i]))

  临时_y .追加(z_y)

  将一个列表转换成一个数组

  zy_array=np.array(温度_y)

  打印(zx_array)

  print(zy_array)的输出结果是:

  [-2.614727694.111638646.029462890.89585862-5.2854481-5.2854481

  0.895858626.029462894.11163864-2.61472769]

  [-0.166458730.261755050.383847530.05703213-0.33648208-0.33648208

  0.057032130.383847530.26175505-0.16645873]由此,由sympy得出推导结果,并在numpy库中进行数值计算。

  我还是一个python初学者。如有错误请指正~

  在学习的道路上共同进步~

  推荐课程:Python3 Selenium3自动测试与开发实践

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: