74---Python绘制不同表现形式的狄拉克delta函数(视觉上的delta函数)
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函数)相关推荐
- python绘制时间节点事件图_在节点上绘制带有时间标签的图形
我有一个(有向无环)图,这样每个节点都有一个离散的时间戳,也就是说,每个节点都有一个数字:1,2,3,4...在 图形可能有多个组件,并且时间戳随着图形的方向而增加.在 我把图作为netowrkx对象 ...
- Python 绘制狄拉克 delta 函数(完美实现)
Python 绘制狄拉克 delta 函数 引言 自制方法 scipy 内置函数方法 plt.scatter() 函数绘制 完美绘制 delta 函数 引言 阅读这篇文章前,推荐优先阅读74-Pyth ...
- python画树叶-手把手|如何用Python绘制JS地图?
原标题:手把手|如何用Python绘制JS地图? 关于转载授授权 大数据文摘作品,欢迎个人转发朋友圈,自媒体.媒体.机构转载务必申请授权,后台留言"机构名称+文章标题+转载",申请 ...
- 用python画玫瑰花代码-python绘制玫瑰的实现代码
今天为大家介绍一个Python绘制一朵漂亮的玫瑰花,用python的turtle库这个绘画库是非常简单的,但是还是需要你测试路径方向,慢慢调试,下面的代码具有一定的参考价值 利用python绘制一朵玫 ...
- 如何用python画数据图-关于如何使用Python绘制基本数据图形模型
关于如何使用Python绘制基本数据图形模型 通过之前的数据分析软件的学习,了解了数据清洗.处理后最好是输出图形,以方便后期的数据分析报告的输出.之前学习的方法是通过是SPSS软件然后进行数据整理归类 ...
- 用python画玫瑰花-python绘制玫瑰的实现代码
今天为大家介绍一个Python绘制一朵漂亮的玫瑰花,用python的turtle库这个绘画库是非常简单的,但是还是需要你测试路径方向,慢慢调试,下面的代码具有一定的参考价值 利用python绘制一朵玫 ...
- 用Python绘制皮卡丘
来源:动态图片基地 科普:皮卡丘是日本任天堂公司开发的掌机游戏系列<口袋妖怪>中登场精灵中的一种,为口袋妖怪里代表性的角色. 随着其周边动画宠物小精灵(即神奇宝贝)动画的热播,这只神奇宝贝 ...
- Python 怎么利用Python绘制二元高次隐函数的函数图像及其极值点——以某双核论文模型方程为例
项目场景: 几日前,在研究某双核期刊的某篇论文时,发现论文上的函数图像绘制得似乎有些不精确.原函数方程为:(0.2045*y)^2+(3/4*y^3-2*x*y)^2-0.45^2=0.论文原文中函数 ...
- python画圣诞老人简笔画_利用Python绘制有趣的万圣节南瓜怪效果
关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日;而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints ...
最新文章
- 金融数据分析(二)-------基本资本,金融衍生品,资本收益率
- JAVA基础----java中E,T,?的区别?
- java web从入门到精通光盘_0基础入门 IT,Web前端、Java、C++和Linux哪种好?
- html连接服务器文件夹,云服务器html链接到文件夹
- php分布式cache,thinkPHP实现MemCache分布式缓存功能
- Shell基本命令汇总
- numpy文件读写的三对函数
- 东鹏特饮占据市场第二的背后:数据让我们比谁都了解消费者!
- Blender - 武器icon贴图渲染 阴影角度
- AspUpload实时上传进度的AJAX方法
- css设置字体的位置
- 计算机右键管理没有管理员权限,win7系统右键菜单没有“以管理员身份运行”选项如何恢复...
- css 平行四边形 梯形 组合_css3实现平行四边形框效果
- maikr博客备份工具 3.0.0.0 详细介绍
- vm装linux不能上网 系统,VM 安装Linux后,以前的系统无法上网
- 华为AR路由器端口配置trunk_锐捷交换机和路由器的一些基础命令
- Mars3D\Cesium
- 了解 Fetch API
- POCO软件测试自学,自动化UI测试工具airtest 之V2.2 airtest文档学习POCO
- SAP区分采购订单入库和转储订单入库
热门文章
- 勒索病毒场景模拟及原理
- 抖音本地餐饮账号如何运营,教你月入十万赚钱攻略丨国仁网络资讯
- 关于游戏买量系统的业务模块简单划分
- 可信时间戳服务,如何确保电子数据法律效力?
- csgo为什么显示vac无法连接服务器,《csgo》vac无法验证游戏会话怎么解决 vac无法验证游戏会话解决方法介绍...
- Teamcity NuGet Installer
- 百丽三十而立:“鞋王”DTC之路的阵痛与重生
- 三十而立,记录我的土木转行之路思考
- java随堂练习05,编写一个程序,为一个给定的年份找出其对应的中国生肖
- 旋转rot和翻转flip