因式分解 2u 2u1.(v-2u)^2-(2u...

为道日损,为学日增(三)
已有 784 次阅读
|系统分类:
“根本性”原理的形式看上去往往是简单的,然而其求解会非常困难;为了做出用得上的解,我们往往不得不把原理进行各种的复杂化,或者说把它的适用范围不断减小,这样就产生了各种专门学科。实际上,绝大部分理论或者应用基础学科,其实不过是某个特定的简化问题的解组而已。当然,“不过是”这个词可能有点让人误解的地方,我本人并不认为“求某个方程的一个特定解”是个很低级的工作(或许某教授是这么看的?)。薛定谔也不过是求了一个方程的三个解,(并且还都是别人已经求解过的),然后就成为了量子力学的创始人之一。认真说来麦克斯韦最重要的工作也就是写出了某个方程的一个特解。问题只是在于这种解能扩展到多少类似问题中。类似性是个有趣的事情,不过我们这里不去讨论这个了。要点是前面说的,其实真正用“理论”或者“大师”能搞定的东西通常都是简单的特解,当然依赖于某些技巧,我们可以通过猜测校正方法把对于简化问题的特解推广到比较常见的真实问题中,这种推广过程就是一种典型理论产生的过程。这种推广+猜测的行为有时候是定性的,比如泡林的的价键共振理论之类,有时候是定量的,比如研究光纤中电磁波传播的非线性薛定谔方程,或者爱因斯坦的跃迁速率理论之类。在很多情况下,这种推广和猜测行为具有大致一致的形式或者逻辑,就被认为是一个理论。绝大部分所谓“学术”都是这种推广和猜测,当然,每个实际情况都和理想特解有一些区别,因此猜测会带来误差和限制,需要人为地去校正。擅长做这种校正,并且也比较熟悉通常存在的限制的,就被称为专家,然后能熬到死的,就被称为大师。我们不去认真吐槽这个问题,而是从一个新手的逻辑来考虑一下:为什么我们不能从基本理论直接求解实际问题,非要去绕这么一个大圈子?当然,你马上可以说基本方程找不到解(所以你知道特解的意义了吧),然而这不是真的。至少对于方程式,原则上我们可以尝试数值解。数值解的奇特之处在于它非常简单,或者说非常没有逼格,比如说电磁场方程,这是个偏微分方程,我们只要把它简单的用微分化差分的手法处理一下,就得到了最简单的FDTD算法,然后理论上(!)FDTD能解决几乎所有的电磁场传播问题:我无非就是给定一个初态,然后给定外加电流,剩下的就是按时间演化麦克斯韦方程组就好了。但是实践中问题当然不会如此简单,首先这种算法的毛病是它需要边界条件。在电磁波的情况下,边界条件算是比较简单的,因为你只要让电磁波碰到计算区域边界就逃出去就好了,反正假设外面是个暗室,不考虑外面有电磁波注入的问题。然而这事在电磁理论的人来说觉得很不好办,因为什么也不做的时候电磁波碰到边界就会反射回来(什么也不做的边界就是边界电场等于0,等效于一块理想导体),然后结果就错了。“因为这一点,Yee的标准FDTD方法在很长时间内几乎没有实际应用”(某教科书语,虽然我觉得这是不对的,至少在Mur边界之前,在等离子模拟中FDTD类型方法就很常用了)。当然,这个问题解决起来并不复杂,虽然历史上做这个的人把它人为的搞复杂了。历史上的研究者从理论开始分析这个问题。麦克斯韦方程组其实等价于达兰贝尔方程,即有驱动的波动方程,波动方程按照大家熟知的可以分解为两组一阶方程,也就是科学网上肖教授提到的所谓“因式分解”法:波动方程是1/c^2&d^2U&/dt^2-d^2U/dx^2=S,因式分解变成(1/c&d/dt-d/dx)(1/c&d/dt&+d/dx)U=S,然后在S=0的时候自然变成了两个一阶方程,或者说1/c&dU/dt-dU/dx=0和1/c&dU/dt+dU/dx=0。也就是在自由空间,波动方程的解是两个解的和,一个是f(x+ct),一个是g(x-ct)。那么考虑右边的边界,只要做一个算法能从U中过滤出相应于x+ct的项,把这个项从U里面减掉,那么就等于在右边的向左传播波被消除掉了,也就没有了反射。这方法称为Mur边界条件。实践中比这个要复杂一点点,因为实际计算问题可能是二维或者三维的,于是Mur边界条件要考虑有多个电磁波从不同角度斜着射入的情况,这时候直接因式分解是行不通的,需要使用近似的因式分解,就是把因式分解结果写成一系列算子多项式的叠加,然后再套用上面的做法。不管怎样,这方法的精度不算高,也就是效果不太好。最荒唐的是,在很多情况下,特别如果你算错了入射电磁波的速度,会出现各种奇怪的效果。于是在某个过去的时代中,能不能理解这个边界条件被视为理解计算电磁的一个判据。(比如某研究员认为我在综述电磁计算的时候不提边界条件是不理解的表现,好吧,我重申,我不提只是因为这东西过于简单了,计算问题中比这个重要又困难的东西太多)为了修正这边界条件的缺陷,90年代每年都要出很多论文来研究到底怎么设计这种边界才是最好的。好吧我说过这事其实是这帮人把事情人为地搞复杂了。为了理解这个问题,我们要回到1989年,那时候有人试着去求解含有时间的薛定谔方程。一般来说含时演化可以用爱因斯坦戏法来凑合一个近似的结果,但在有些情况下,比如强激光驱动原子电离这类事情中,爱因斯坦的跃迁系数等等“物理概念”都是不能用的,我们需要从头求解薛定谔方程。我们不去讨论这东西的物理背景,那个和我们的关系不大;和我们有关的只有一个简单问题:薛定谔方程也需要边界条件。电子被激光电场拉出来之后,会有一定几率飞走,飞到足够远就不会回来。显然这个和前面的电磁场边界问题很类似,只是薛定谔方程不存在上面说的因式分解方法(薛定谔方程对时间是一阶导数,对空间是两阶,这没法分解的)。所以Mur方法哭晕在厕所。然后当时的研究者很怒,就决定上一个典型的物理学家或者数学盲的做法:设置一个吸收函数,比如说f(x),这个函数在原子所在区域是1,在边界上是0.1或者类似的一个值,在中间光滑过渡,例如在-d&x&d的时候,f(x)=1,在-L&x&-d和d&x&L的地方,f(x)由1光滑下降到0.1。然后,在跟踪薛定谔方程的时候,每一步都把算出的波函数人为乘以f(x)。然后他们发现,这么做确实可以解决问题。当然这方法听起来太矬了,所以基本没有人真正去讨论它(这方法发表在一本论文集的某个注释里面)。但是不久以后有人意识到其实这方法可以写成不那么矬的形式。上面的方法其实就是人为地削减波函数的大小,在理论上这等价于波函数对应的粒子在衰变。而衰变问题在理论上是有成熟的做法的,就是直接把势函数加上一个小的负虚部。所以92年左右,就有人发了一篇论文,解释说你可以在势函数上人为加上一个小的负虚函数,(V=V-iW),数值求解含时薛定谔方程的最后困难就被解决了(后来这个问题发展出了一系列衍生话题,不过有些偏离主题了)。我们回到麦克斯韦方程组,薛定谔方程的势函数加上虚部,对于麦克斯韦方程组是什么?它相当于给介质加上一定的电导损耗。所以你看问题一下子就简单了:我就直接添加一组缓慢增加的数值电导不就行了?当然这么做还是太矬,毕竟电磁学家是讲bigger的,所以他们考虑将方程改写一下,在边界层人为添加相当于电导的项,并且让理论上两层链接的时候反射率为0。这方法后来有个专门的名字,叫完美匹配层(PML)。好吧PML一出,基本上世界清净了,90年代在Mur边界或者廖氏边界上搞的大量研究慢慢的消失了,以后大家的任务主要是整理PML的具体形态。但有趣的是Mur边界并没有完,因为PML或者类似的吸收势函数方法,对于薛定谔方程的效果并不像对于电磁场那么好,要实现有效的处理,在薛定谔方程的情况,吸收层厚度要很大。然而这就意味着更大的计算量。因此,有人回到了Mur边界条件上:谁说薛定谔方程不能因式分解?我们只是会分解出来一个类似d^0.5/dx^0.5的东西而已。一个分数导数小事啦,我们可以用分数傅里叶变换来对应它。。。于是,又出现了各种论文。。。。(事实上,吸收势函数方法本身存在一些问题,其中之一是它和狄拉克方程的组合很不好做,因此Mur边界自有其未来的用处)。总之,全部的事情就是我们想扔掉那些不靠谱的“理论”,直接从基本方程开始求解实际问题,然后问题就变成了产生各种各样的计算Trick,这些Trick有时候需要数学分析,有时候是靠物理考虑,但共性在于都很偏门,任何有志于“创新”的老教授都会很鄙视这些工作,然而只有这些工作做出来,才能使得实际问题的基本方程求解成为可能。并且,这些trick构成了很多学科的主要内容。损道而增学,不过如此。(你问我为什么非要用基本方程来处理实际问题?因为那些基于“概念”、“数学”和“大师直觉”的理论不能解决问题,或者给出错误的结果,我们在这个间奏过后将会解释这件事情。)&
转载本文请联系原作者获取授权,同时请注明本文来自王虹宇科学网博客。链接地址:
上一篇:下一篇:
当前推荐数:2
评论 ( 个评论)
扫一扫,分享此博文
作者的精选博文
作者的其他最新博文
热门博文导读
Powered by
Copyright &

我要回帖

更多关于 因式分解 2u 2u 的文章

 

随机推荐