狄拉克函数从何而来?卷积是怎么回事?卷积定理又是什么?如果你对卷积公式不甚了解,亦或是想对其有更深的认知,那么本文便是一份优秀的科普材料。
一、狄拉克何许人也?
镜头一:
1933年狄拉克获诺贝尔物理奖(与薛定谔共享)。当时他私下对学术老前辈卢瑟福(也是诺奖得主)说,对于获诺奖这个事他很苦恼,他不想成为新闻人物,更不想出名,这样会打断他平静的生活,打算拒绝接受这个荣誉。卢瑟福对他说:“如果你这样做,你会更出名。”于是狄拉克同意领奖。
镜头二:
狄拉克在美国威斯康辛大学作报告。期间,有一位听众说 :“您写在黑板右上方的那个方程我看不懂。”狄拉克听后一言不发,让当时的场面相当尴尬。主持人试图打破僵局,说狄拉克教授刚才那个问题您还没回答呢。狄拉克喃喃地回应道:“刚才那个不是一个疑问句,那是一个陈述句啊。”
镜头三:
位于英国伦敦的威斯敏斯特教堂(Westminster Abbey),是英国国王登基和皇室举行婚礼的地方。这里长眠着许多伟大人物,如牛顿、达尔文、狄更斯、邱吉尔、弥尔顿。牛顿墓旁放置有一块石碑,上面镌刻着保罗• 狄拉克的名字以及他那优美的方程式。
狄拉克最早是从事相对论动力学的研究,1925年海森堡访问剑桥大学,狄拉克深受影响,把精力转向量子力学的研究。1928年他把相对论引进了量子力学,建立了相对论形式的薛定谔方程,也就是著名的狄拉克方程。1930年狄拉克出版了他的量子力学著作著作《量子力学原理》,这是物理史上重要的里程碑,至今仍是量子力学的经典教材。
物理学中常常要研究一个物理量在空间或时间中分布的密度,例如质量密度、电荷密度、每单位时间传递的动量(力)等等,但是物理学中又常用到质点、点电荷、瞬时力等抽象模型,他们不是连续分布于空间或时间中,而是集中在空间中的某一点或者时间中的某一瞬时,那么它们的密度应该如何表示呢?——δ函数!
<pre data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;color: black;font-size: 16px;"><section style="margin-right: 8px;margin-left: 8px;padding: 16px;overflow-x: auto;color: rgb(171, 178, 191);background: rgb(40, 44, 52);display: -webkit-box;font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;border-radius: 0px;font-size: 12px;">clc; clear all; close all;<br /><span style="color: rgb(92, 99, 112);font-style: italic;line-height: 26px;">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span><br />N=<span style="color: rgb(209, 154, 102);line-height: 26px;">10000</span>; <span style="color: rgb(92, 99, 112);font-style: italic;line-height: 26px;">% sampling numbers</span><br />Tau0=<span style="color: rgb(209, 154, 102);line-height: 26px;">1</span>; <span style="color: rgb(92, 99, 112);font-style: italic;line-height: 26px;">% define initial Tau</span><br /><span style="color: rgb(198, 120, 221);line-height: 26px;">for</span> <span style="color: rgb(230, 192, 123);line-height: 26px;">i</span>=<span style="color: rgb(209, 154, 102);line-height: 26px;">1</span>:<span style="color: rgb(209, 154, 102);line-height: 26px;">100</span><br /> Tau=Tau0/<span style="color: rgb(230, 192, 123);line-height: 26px;">i</span>; <br /> TimeRange=<span style="color: rgb(230, 192, 123);line-height: 26px;">linspace</span>(<span style="color: rgb(209, 154, 102);line-height: 26px;">-10</span>*Tau,<span style="color: rgb(209, 154, 102);line-height: 26px;">10</span>*Tau,N); <span style="color: rgb(92, 99, 112);font-style: italic;line-height: 26px;">% display time range</span><br /> FreqRange=<span style="color: rgb(230, 192, 123);line-height: 26px;">linspace</span>(<span style="color: rgb(209, 154, 102);line-height: 26px;">-200</span>*<span style="color: rgb(230, 192, 123);line-height: 26px;">pi</span>/<span style="color: rgb(230, 192, 123);line-height: 26px;">i</span>,<span style="color: rgb(209, 154, 102);line-height: 26px;">200</span>*<span style="color: rgb(230, 192, 123);line-height: 26px;">pi</span>/<span style="color: rgb(230, 192, 123);line-height: 26px;">i</span>,N); <span style="color: rgb(92, 99, 112);font-style: italic;line-height: 26px;">% display frequency range</span><br /> Half_Tau=Tau/<span style="color: rgb(209, 154, 102);line-height: 26px;">2</span>; <span style="color: rgb(92, 99, 112);font-style: italic;line-height: 26px;">% -0.5 Tao ==> 0.5 Tao</span><br /> RECT=<span style="color: rgb(209, 154, 102);line-height: 26px;">1</span>/Tau*double(<span style="color: rgb(230, 192, 123);line-height: 26px;">abs</span>(TimeRange)<Half_Tau); <span style="color: rgb(92, 99, 112);font-style: italic;line-height: 26px;">% one rectangular pulse</span><br /> SINC=sinc(FreqRange*Tau*<span style="color: rgb(230, 192, 123);line-height: 26px;">pi</span>); <span style="color: rgb(92, 99, 112);font-style: italic;line-height: 26px;">% sinc pulse, Xtra</span><br /> <br /> subplot(<span style="color: rgb(209, 154, 102);line-height: 26px;">2</span>,<span style="color: rgb(209, 154, 102);line-height: 26px;">1</span>,<span style="color: rgb(209, 154, 102);line-height: 26px;">1</span>);<br /> <span style="color: rgb(230, 192, 123);line-height: 26px;">plot</span>(TimeRange,RECT,<span style="color: rgb(152, 195, 121);line-height: 26px;">'LineWidth'</span>,<span style="color: rgb(209, 154, 102);line-height: 26px;">1.5</span>); grid on;<br /> xlim([<span style="color: rgb(209, 154, 102);line-height: 26px;">-1</span> <span style="color: rgb(209, 154, 102);line-height: 26px;">1</span>]); ylim([<span style="color: rgb(209, 154, 102);line-height: 26px;">-0.5</span> <span style="color: rgb(209, 154, 102);line-height: 26px;">120</span>]);<br /> xlabel(<span style="color: rgb(152, 195, 121);line-height: 26px;">'Time'</span>); ylabel(<span style="color: rgb(152, 195, 121);line-height: 26px;">'Amplitude'</span>);<br /> title(<span style="color: rgb(152, 195, 121);line-height: 26px;">'Made by J Pan'</span>)<br /> <br /> subplot(<span style="color: rgb(209, 154, 102);line-height: 26px;">2</span>,<span style="color: rgb(209, 154, 102);line-height: 26px;">1</span>,<span style="color: rgb(209, 154, 102);line-height: 26px;">2</span>);<br /> <span style="color: rgb(230, 192, 123);line-height: 26px;">plot</span>(FreqRange,SINC,<span style="color: rgb(152, 195, 121);line-height: 26px;">'LineWidth'</span>,<span style="color: rgb(209, 154, 102);line-height: 26px;">1.5</span>); grid on; <br /> xlim([<span style="color: rgb(209, 154, 102);line-height: 26px;">-200</span>*<span style="color: rgb(230, 192, 123);line-height: 26px;">pi</span>/<span style="color: rgb(230, 192, 123);line-height: 26px;">i</span> <span style="color: rgb(209, 154, 102);line-height: 26px;">200</span>*<span style="color: rgb(230, 192, 123);line-height: 26px;">pi</span>/<span style="color: rgb(230, 192, 123);line-height: 26px;">i</span>]);ylim([<span style="color: rgb(209, 154, 102);line-height: 26px;">-0.5</span> <span style="color: rgb(209, 154, 102);line-height: 26px;">1.5</span>]); <br /> xlabel(<span style="color: rgb(152, 195, 121);line-height: 26px;">'Frequency'</span>); ylabel(<span style="color: rgb(152, 195, 121);line-height: 26px;">'Amplitude'</span>);<br /> title(<span style="color: rgb(152, 195, 121);line-height: 26px;">'Made by J Pan'</span>)<br /> drawnow; <br /><span style="color: rgb(198, 120, 221);line-height: 26px;">end</span></section>
二、卷积是怎么个回事?
话说有一个七品县令,喜欢用打板子来惩戒那些市井无赖,而且有个惯例:如果没犯大罪,只打一板,释放回家,以示爱民如子。
有一个无赖,想出人头地却没啥指望,心想:既然扬不了善名,出恶名也成啊。怎么出恶名?炒作呗!怎么炒作?找名人呀!隔现在,注册个微博账号随便找个流量明星就能开撕啊 ——那时候不行,还没有微博一说,他自然想到了他的行政长官——县令。
于是在光天化日之下,无赖站在县衙门前撒了一泡尿,后果是可想而知,这是明目张胆的藐视公堂无视法律啊,自然被请进大堂挨了一板子——这无赖身体也是好,挨了板子后居然昂首挺胸回家了。躺了一天,嘿!身上啥事也没有!无赖在这件事上的决心还很大,第二天如法炮制,全然不顾行政长管的仁慈和衙门的体面,第三天、第四天......每天去县衙门领一个板子回来,还喜气洋洋地,坚持一个月之久!这无赖的名气已经和衙门口的臭气一样,传遍八方了!
县令大人噤着鼻子,呆呆地盯着案子上的惊堂木,拧着眉头思考一个问题:这三十个大板子怎么不好使捏?......想当初,本老爷可是因为奥数加分才金榜题名的,今天要好好建个数学模型,好歹要解决这个问题,挽回一点面子:
——人(系统!)挨板子(冲击!)以后,会有什么表现(输出!)?
——废话,疼呗!
——如何量化呢?
——看疼到啥程度。像这无赖的体格,每天挨一个板子啥事都不会有,连哼一下都不会有,你也看到他那得意洋洋的嘴脸了;如果一次连揍他十个板子,他可能会皱皱眉头,咬咬牙,硬挺着不哼;揍到二十个板子,他会疼得脸部扭曲,象猪似地哼哼;揍到三十个板子,他可能会象驴似地嚎叫,一把鼻涕一把泪地求你饶他一命;揍到四十个板子,他会大小便失禁,勉强哼出声来;揍到五十个板子,他连哼一下都不可能——死啦!
县令双手捧腮,若有所悟,拧紧的眉头渐渐松弛下来:
——呜呼呀!为啥那个无赖连挨了三十天大板却不喊绕命,而一次连续打上三十个大板呀?
—— 呀呼嘿,打一次的时间间隔(Δτ=24小时)太长了,所以那个无赖承受的痛苦程度一天一利索,没有叠加,始终是一个常数;如果缩短打板子的时间间隔(建议Δτ=0.5秒),那他的痛苦程度可就迅速叠加了;等到这无赖挨三十个大板(t=30)时,痛苦程度达到了他能喊叫的极限,会收到最好的惩戒效果,再多打就显示不出您的仁慈了。
——还是不太明白,时间间隔小,为什么痛苦程度会叠加呢?
——这与人(线性时不变系统)对板子(脉冲、输入、激励)的响应有关。什么是响应?人挨一个板子后,疼痛的感觉会在一天(假设的,因人而异)内慢慢消失(衰减),而不可能突然消失。这样一来,只要打板子的时间间隔很小,每一个板子引起的疼痛都来不及完全衰减,都会对最终的痛苦程度有不同的贡献,总的来说:
t个大板子造成的痛苦程度=Σ(第τ个大板子引起的痛苦*衰减系数)
三、卷积定理又是个什么玩意?
<section data-brushtype="text" style="padding-right: 0em;padding-left: 0em;white-space: normal;font-size: 16px;letter-spacing: 0.544px;color: rgb(62, 62, 62);font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;widows: 1;word-spacing: 2px;caret-color: rgb(255, 0, 0);text-align: center;"><strong style="color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;font-size: 14px;"><strong style="font-size: 16px;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;">—</span></strong>完<strong style="font-size: 16px;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;font-size: 14px;"><strong style="font-size: 16px;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;">—</span></strong></span></strong></span></strong></section><pre style="color: rgb(86, 86, 86);font-size: 16px;letter-spacing: 1px;text-align: left;"><pre><section style="letter-spacing: 0.544px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;"><section powered-by="xiumi.us"><section style="margin-top: 15px;margin-bottom: 25px;opacity: 0.8;"><section><section style="letter-spacing: 0.544px;"><section powered-by="xiumi.us"><section style="margin-top: 15px;margin-bottom: 25px;opacity: 0.8;"><section><section style="margin-bottom: 15px;padding-right: 0em;padding-left: 0em;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;text-align: center;"><span style="color: rgb(0, 0, 0);"><strong><span style="font-size: 16px;font-family: 微软雅黑;caret-color: red;">为您推荐</span></strong></span></section><p style="margin: 5px 16px;padding-right: 0em;padding-left: 0em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;">彻底搞懂机器学习中的正则化<br /></p><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;">我在哥大读博的五年,万字总结<br /></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;">一个算法工程师的日常是怎样的?</section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;"><span style="font-size: 14px;">吴恩达上新:生成对抗网络(GAN)专项课程</span></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;">从SGD到NadaMax,十种优化算法原理及实现</section></section></section></section></section></section></section></section></section>
本篇文章来源于: 深度学习这件小事
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
内容反馈