python利用sympy库对某个函数求导,numpy库使用该求导结果计算的程序
**
python利用sympy库对某个函数求导,numpy库使用该求导结果计算的程序
**
在python数据处理过程中,我们经常会遇见这样一种情况。需要对一个函数表达式求偏导,并将具体数值代入导数式。
而python中通常可用于函数求导的函数是sympy库中的diff()函数。
但他通常所求得的导数只是一个符号表达式。不能直接带入数据使用。
如下例:
import sympy as sp
import numpy as np
x,y = sp.symbols('x y')
z = sp.sin(2*sp.pi*x+2*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 sp
import numpy as np
x,y = sp.symbols('x y')
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: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 sp
import numpy as np
x,y = sp.symbols('x y')
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偏导的空列表
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初学者,有什么错误恳请各位大佬及时指正~
学习路上共同进步~
python利用sympy库对某个函数求导,numpy库使用该求导结果计算的程序相关推荐
- Python——利用sympy模块进行数学计算
参考链接: SymPy简易教程 SymPy库常用函数 Python sympy 模块常用功能(一) Python科学计算库SymPy初探 简介 SymPy是一个符号计算的Python库.它的目标是成为 ...
- python如何调用dll库中的函数_Python调用dll库接口-ctypes方法
背景 最近需要用python写个脚本程序(win10 环境),需要调用现成的dll库完成这项任务,对于一直在Linux平台上开发程序的本人来说,从没有过使用dll的经历(不得不说还是so大法好),遇到 ...
- argmax函数_Python之Numpy库常用函数合集(附注释)
文末免费领取[亚马逊.阿里巴巴股票数据] 最近学习Python,才发现原来python里的各种库才是大头!于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释.在这里分享给大家,对于库的学习 ...
- python中求和公式是什么函数_Python的math库中,用于求和的函数是( )。
[单选题]确定兴利库容 V 兴 ,已知某水库为一回运用水库,其一次蓄水量为 V 1 =300 万 m 3 ,一次供水量为 V 2 =150 万 m 3 . [ ]. [单选题]hAB大于0说明B点的高 ...
- Python 利用*args和**kwargs解决函数遇到不确定数量参数问题
当函数遇到不确定数量参数肿么破?*args和**kwargs前来报道! *args **kwargs 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值 ...
- python创建长度为n的数组_使用numpy库创建N纬数组(ndarray)的四种创建方法
00:00 ©️北京理工嵩天 Note:Numpy是一个开源的python科学计算的基础库.下面分享ndarray创建数组的方式 1.从Python中的列表(list).元组(tuple)或列表与元组 ...
- python机器学习基础--numpy库
目录 numpy库 数据维度的python表示 数组对象ndarray 数组创建与变换 数组变换 数组操作 数组运算 numpy数据存取 csv文件存储 案例1:使用下面代码生成一个csv文件[^1] ...
- Python编程核心内容 ---- Function(函数)
什么"大事"呢?下面将要介绍Python编程的核心内容之一--函数. 对于Python编程,函数的重要性不言而喻.重要的事情讲三遍:函数实在是太重要,太关键了. 引入函数 之前,我 ...
- astype函数_Python库收录——数值计算numpy库常用函数(含注释)
这里对Numpy库常用的函数进行总结.详细的函数内容可以查阅.Numpy是科学计算库,是一个强大的N维数组对象ndarray,是广播功能函数.其整合C/C++.fortran代码的工具 ,更是Scip ...
最新文章
- php中的全局变量$_REQUEST
- python要学哪些_学python都要学哪些内容?
- C风格字符串和C++ string 对象赋值操作的性能比较
- c++和java哪个难_前端和Java开发哪个难?哪个学习容易一点?
- 程序图形化界面刷新以及如何从tkinter窗口中正确读出数据
- vba 字典_VBA中字典的基础概念及调用方法
- 软件需求规格说明书通用模版_通用需求挑战和机遇
- python-scrapy爬虫框架
- HTML5 API详解(9):大家都知道的 localStorage 本地存储
- hdu-1823 Luck and Love
- python随机生成6位数验证码
- 根据crash学习用户空间程序内存布局
- 浏览器打印设置横向打印_震旦打印机如何设置认证打印
- 多种富文本编辑器的对比
- .gen格式文件读取,完成兰伯特和墨卡托投影转换
- galaxy s8 android pc,【三星GALAXYS8评测】DeX套件替代PC办公环境_三星 GALAXY S8_手机评测-中关村在线...
- 个人网站建设流程攻略
- detached entity passed to persist问题与解决方案
- 豌豆怎么做好吃 这几种做法很不错
- Ubuntu 虚拟机的 wifi 连接图标上有个问号,网络用不了