**

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库使用该求导结果计算的程序相关推荐

  1. Python——利用sympy模块进行数学计算

    参考链接: SymPy简易教程 SymPy库常用函数 Python sympy 模块常用功能(一) Python科学计算库SymPy初探 简介 SymPy是一个符号计算的Python库.它的目标是成为 ...

  2. python如何调用dll库中的函数_Python调用dll库接口-ctypes方法

    背景 最近需要用python写个脚本程序(win10 环境),需要调用现成的dll库完成这项任务,对于一直在Linux平台上开发程序的本人来说,从没有过使用dll的经历(不得不说还是so大法好),遇到 ...

  3. argmax函数_Python之Numpy库常用函数合集(附注释)

    文末免费领取[亚马逊.阿里巴巴股票数据] 最近学习Python,才发现原来python里的各种库才是大头!于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释.在这里分享给大家,对于库的学习 ...

  4. python中求和公式是什么函数_Python的math库中,用于求和的函数是( )。

    [单选题]确定兴利库容 V 兴 ,已知某水库为一回运用水库,其一次蓄水量为 V 1 =300 万 m 3 ,一次供水量为 V 2 =150 万 m 3 . [ ]. [单选题]hAB大于0说明B点的高 ...

  5. Python 利用*args和**kwargs解决函数遇到不确定数量参数问题

    当函数遇到不确定数量参数肿么破?*args和**kwargs前来报道! *args       **kwargs 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值 ...

  6. python创建长度为n的数组_使用numpy库创建N纬数组(ndarray)的四种创建方法

    00:00 ©️北京理工嵩天 Note:Numpy是一个开源的python科学计算的基础库.下面分享ndarray创建数组的方式 1.从Python中的列表(list).元组(tuple)或列表与元组 ...

  7. python机器学习基础--numpy库

    目录 numpy库 数据维度的python表示 数组对象ndarray 数组创建与变换 数组变换 数组操作 数组运算 numpy数据存取 csv文件存储 案例1:使用下面代码生成一个csv文件[^1] ...

  8. Python编程核心内容 ---- Function(函数)

    什么"大事"呢?下面将要介绍Python编程的核心内容之一--函数. 对于Python编程,函数的重要性不言而喻.重要的事情讲三遍:函数实在是太重要,太关键了. 引入函数 之前,我 ...

  9. astype函数_Python库收录——数值计算numpy库常用函数(含注释)

    这里对Numpy库常用的函数进行总结.详细的函数内容可以查阅.Numpy是科学计算库,是一个强大的N维数组对象ndarray,是广播功能函数.其整合C/C++.fortran代码的工具 ,更是Scip ...

最新文章

  1. php中的全局变量$_REQUEST
  2. python要学哪些_学python都要学哪些内容?
  3. C风格字符串和C++ string 对象赋值操作的性能比较
  4. c++和java哪个难_前端和Java开发哪个难?哪个学习容易一点?
  5. 程序图形化界面刷新以及如何从tkinter窗口中正确读出数据
  6. vba 字典_VBA中字典的基础概念及调用方法
  7. 软件需求规格说明书通用模版_通用需求挑战和机遇
  8. python-scrapy爬虫框架
  9. HTML5 API详解(9):大家都知道的 localStorage 本地存储
  10. hdu-1823 Luck and Love
  11. python随机生成6位数验证码
  12. 根据crash学习用户空间程序内存布局
  13. 浏览器打印设置横向打印_震旦打印机如何设置认证打印
  14. 多种富文本编辑器的对比
  15. .gen格式文件读取,完成兰伯特和墨卡托投影转换
  16. galaxy s8 android pc,【三星GALAXYS8评测】DeX套件替代PC办公环境_三星 GALAXY S8_手机评测-中关村在线...
  17. 个人网站建设流程攻略
  18. detached entity passed to persist问题与解决方案
  19. 豌豆怎么做好吃 这几种做法很不错
  20. Ubuntu 虚拟机的 wifi 连接图标上有个问号,网络用不了

热门文章

  1. YYCache源码解读 (一)
  2. 【AirSim】脚本控制无人机
  3. 经典仿句100例_精美仿句100例
  4. 快手java开发面试经验大全
  5. SQL Server 2014 官方培训课件
  6. 状态机在分布式系统中的应用
  7. Docker入门教程和常用命令
  8. 【模拟一】笨笨玩游戏
  9. 树莓派为连接不同Wifi分配固定IP的方法
  10. 如何分析案件的性质_如何运用请求权分析方法分析民事案例?