Python 绘制不同表现形式的狄拉克delta函数

  • 方法1---矩形表示
    • 最常见和简便的绘制方法
    • 略微复杂的绘制方法

阅读这一篇之前,推荐优先阅读这篇文章— 89—狄拉克 delta 函数(超链接点击跳转)。

方法1—矩形表示

最常见和简便的绘制方法

这里给出一种最为常见和简便的绘制方法,代码如下:

import numpy as np
import matplotlib.pyplot as pltdef dirac_delta_function(x, sig):val = np.zeros_like(x)val[(-(1 / (2 * sig)) <= x) & (x <= (1 / (2 * sig)))] = 1return valX = np.linspace(-5, 5, 1000)
sigma = 1plt.figure()
plt.grid()
plt.title('Dirac Delta function', size=20)
plt.xlabel('X values', size=10)
plt.ylabel("Dirac Delta functions' values", size=10)
plt.plot(X, dirac_delta_function(X, sigma), color='black')
plt.show()

最终得到的结果如下图所示:

略微复杂的绘制方法

import numpy as np
import matplotlib.pyplot as plt# Defining delta function by rectangles
def delta_function(x, eps):result = np.zeros_like(x)for index, xi in enumerate(x):if -eps / 2.0 < xi < eps / 2.0:result[index] = 1.0 / epselse:result[index] = 0return resultif __name__ == '__main__':a = 1.0  # position of peak of delta functionx1, x2 = -0.1 + a, 0.1 + a  # x-range for plotting about the peak of delta function# plotting delta functions for different eps valueseps_ = 0.1x_ = np.linspace(x1, x2, 1000)n_val = np.arange(1, 5)for i in n_val:eps_ = eps_ / idelta = delta_function(x_ - a, eps_)plt.plot(x_, delta, label=r"$\epsilon=%f$" % eps_)  # %f会自动保留六位小数plt.xlabel(r"$x$")plt.ylabel(r"$\delta\,(x-a)$")plt.title("Delta function")plt.axvline(0, c='gray', ls='--', lw=1)plt.axhline(0, c='gray', ls='--', lw=1)plt.legend(loc='best', fontsize=10)plt.show()

运行后得到的图像如下:

相同的代码,我们也可以使用更为简单的匿名函数形式来实现,代码如下:

import numpy as np
import matplotlib.pyplot as plta = 1.0  # position of peak of delta function
x1, x2 = -0.1 + a, 0.1 + a  # x-range for plotting about the peak of delta function
# Defining delta function by rectangles
delta = lambda x, eps: 1.0 / eps if -eps / 2.0 < x < eps / 2.0 else 0
delta = np.vectorize(delta)
# plotting delta functions for different eps values
eps = 0.1
x = np.linspace(x1, x2, 1000)
n_val = np.arange(1, 5)
for i in n_val:eps = eps / iplt.plot(x, delta(x - a, eps), label=r"$\epsilon=%f$" % (eps))
plt.xlabel("$x$")
plt.ylabel(r"$\delta\,(x-a)$")
plt.title(r"Delta function")
plt.axvline(0, c='gray', ls='--', lw=1)
plt.axhline(0, c='gray', ls='--', lw=1)
plt.legend(loc='best', fontsize=10)
plt.show()

但是在 Pycharm 编译器中,当我们使用匿名函数写法时,会提示我们最好写为 def 函数定义的形式。因此推荐使用第一种书写方法。

注意:严格地来讲,上述我们绘制的所有图形只是感官上的狄拉克 delta 函数,而并非数学意义上的 delta 函数,因为,如果读者使用上述定义的函数进行傅里叶变化,那么得到的结果一定是错误的。为了得到正确的 delta 函数。可以参考------

最后更新时间,2023.05.03。

如果大家觉得有用,就点个赞让更多的人看到吧~

74---Python绘制不同表现形式的狄拉克delta函数(视觉上的delta函数)相关推荐

  1. python绘制时间节点事件图_在节点上绘制带有时间标签的图形

    我有一个(有向无环)图,这样每个节点都有一个离散的时间戳,也就是说,每个节点都有一个数字:1,2,3,4...在 图形可能有多个组件,并且时间戳随着图形的方向而增加.在 我把图作为netowrkx对象 ...

  2. Python 绘制狄拉克 delta 函数(完美实现)

    Python 绘制狄拉克 delta 函数 引言 自制方法 scipy 内置函数方法 plt.scatter() 函数绘制 完美绘制 delta 函数 引言 阅读这篇文章前,推荐优先阅读74-Pyth ...

  3. python画树叶-手把手|如何用Python绘制JS地图?

    原标题:手把手|如何用Python绘制JS地图? 关于转载授授权 大数据文摘作品,欢迎个人转发朋友圈,自媒体.媒体.机构转载务必申请授权,后台留言"机构名称+文章标题+转载",申请 ...

  4. 用python画玫瑰花代码-python绘制玫瑰的实现代码

    今天为大家介绍一个Python绘制一朵漂亮的玫瑰花,用python的turtle库这个绘画库是非常简单的,但是还是需要你测试路径方向,慢慢调试,下面的代码具有一定的参考价值 利用python绘制一朵玫 ...

  5. 如何用python画数据图-关于如何使用Python绘制基本数据图形模型

    关于如何使用Python绘制基本数据图形模型 通过之前的数据分析软件的学习,了解了数据清洗.处理后最好是输出图形,以方便后期的数据分析报告的输出.之前学习的方法是通过是SPSS软件然后进行数据整理归类 ...

  6. 用python画玫瑰花-python绘制玫瑰的实现代码

    今天为大家介绍一个Python绘制一朵漂亮的玫瑰花,用python的turtle库这个绘画库是非常简单的,但是还是需要你测试路径方向,慢慢调试,下面的代码具有一定的参考价值 利用python绘制一朵玫 ...

  7. 用Python绘制皮卡丘

    来源:动态图片基地 科普:皮卡丘是日本任天堂公司开发的掌机游戏系列<口袋妖怪>中登场精灵中的一种,为口袋妖怪里代表性的角色. 随着其周边动画宠物小精灵(即神奇宝贝)动画的热播,这只神奇宝贝 ...

  8. Python 怎么利用Python绘制二元高次隐函数的函数图像及其极值点——以某双核论文模型方程为例

    项目场景: 几日前,在研究某双核期刊的某篇论文时,发现论文上的函数图像绘制得似乎有些不精确.原函数方程为:(0.2045*y)^2+(3/4*y^3-2*x*y)^2-0.45^2=0.论文原文中函数 ...

  9. python画圣诞老人简笔画_利用Python绘制有趣的万圣节南瓜怪效果

    关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日;而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints ...

最新文章

  1. 金融数据分析(二)-------基本资本,金融衍生品,资本收益率
  2. JAVA基础----java中E,T,?的区别?
  3. java web从入门到精通光盘_0基础入门 IT,Web前端、Java、C++和Linux哪种好?
  4. html连接服务器文件夹,云服务器html链接到文件夹
  5. php分布式cache,thinkPHP实现MemCache分布式缓存功能
  6. Shell基本命令汇总
  7. numpy文件读写的三对函数
  8. 东鹏特饮占据市场第二的背后:数据让我们比谁都了解消费者!
  9. Blender - 武器icon贴图渲染 阴影角度
  10. AspUpload实时上传进度的AJAX方法
  11. css设置字体的位置
  12. 计算机右键管理没有管理员权限,win7系统右键菜单没有“以管理员身份运行”选项如何恢复...
  13. css 平行四边形 梯形 组合_css3实现平行四边形框效果
  14. maikr博客备份工具 3.0.0.0 详细介绍
  15. vm装linux不能上网 系统,VM 安装Linux后,以前的系统无法上网
  16. 华为AR路由器端口配置trunk_锐捷交换机和路由器的一些基础命令
  17. Mars3D\Cesium
  18. 了解 Fetch API
  19. POCO软件测试自学,自动化UI测试工具airtest 之V2.2 airtest文档学习POCO
  20. SAP区分采购订单入库和转储订单入库

热门文章

  1. 勒索病毒场景模拟及原理
  2. 抖音本地餐饮账号如何运营,教你月入十万赚钱攻略丨国仁网络资讯
  3. 关于游戏买量系统的业务模块简单划分
  4. 可信时间戳服务,如何确保电子数据法律效力?
  5. csgo为什么显示vac无法连接服务器,《csgo》vac无法验证游戏会话怎么解决 vac无法验证游戏会话解决方法介绍...
  6. Teamcity NuGet Installer
  7. 百丽三十而立:“鞋王”DTC之路的阵痛与重生
  8. 三十而立,记录我的土木转行之路思考
  9. java随堂练习05,编写一个程序,为一个给定的年份找出其对应的中国生肖
  10. 旋转rot和翻转flip