网站建设总结经验,wordpress自动更新表格,湘潭seo公司,翻译网页python实现函数求导的方法是#xff1a;1、利用sympy库中的symbols方法传入x和y变量#xff1b;2、利用sympy库中的diff函数传入需要求导的函数即可返回求导之后的结果。python利用sympy库对某个函数求导#xff0c;numpy库使用该求导结果计算的程序在python数据处理过程中1、利用sympy库中的symbols方法传入x和y变量2、利用sympy库中的diff函数传入需要求导的函数即可返回求导之后的结果。python利用sympy库对某个函数求导numpy库使用该求导结果计算的程序在python数据处理过程中我们经常会遇见这样一种情况。需要对一个函数表达式求偏导并将具体数值代入导数式。而python中通常可用于函数求导的函数是sympy库中的diff()函数。但他通常所求得的导数只是一个符号表达式。不能直接带入数据使用。如下例import sympy as spimport numpy as npx,y sp.symbols(x y)z sp.sin(2*sp.pi*x2*y/5)zx sp.diff(z,x)zy sp.diff(z,y)print(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进行数值计算。如下例import sympy as spimport numpy as npx,y sp.symbols(x y)z sp.sin(2*sp.pi*x2*y/5)zx sp.diff(z,x)zy sp.diff(z,y)x1 10y1 5z_x1 float(zx.evalf(subs{x:x1,y:y1}))z_y1 float(zy.evalf(subs{x:x1,y:y1}))print(z_x1)print(z_y1)其输出结果-2.61472768902227-0.16645873461885696那如果我的x或y不是单一的值呢而是一个数组。我们可以利用一个循环来完成。如下例import sympy as spimport numpy as npx,y sp.symbols(x y)z sp.sin(2*sp.pi*x2*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偏导的空列表for i in range(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]}))temp_y.append(z_y)zx_array np.array(temp_x)#将列表转换为数组zy_array np.array(temp_y)print(zx_array)print(zy_array)输出结果为[-2.61472769 4.11163864 6.02946289 0.89585862 -5.2854481 -5.28544810.89585862 6.02946289 4.11163864 -2.61472769][-0.16645873 0.26175505 0.38384753 0.05703213 -0.33648208 -0.336482080.05703213 0.38384753 0.26175505 -0.16645873]由此便实现了由sympy得到求导结果到numpy库进行数值计算。本人还是python初学者有什么错误恳请各位大佬及时指正~学习路上共同进步~推荐课程Python3 Selenium3 自动化测试开发实战