平面波向球面波的展开

2024-01-29 06:50
文章标签 展开 平面波 球面波

本文主要是介绍平面波向球面波的展开,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 平面波向球面波的展开是一个极其重要的话题

e^{-i\vec{k}\cdot\vec{r}}=e^{-ikrcos\theta}=e^{-ikrx}=\sum_{l=0}^\infty c_l(kr)P_l(x)

  • 手稿放在文章的结尾处 

  • 勒让德展开

\int_{-1}^1e^{-ikrx}P_l(x)dx=c_l(kr)\int_{-1}^1P^2_l(x)dx

  • citation 1:

\int_{-1}^1P_l^2(x)dx=\frac{2}{2l+1}

  • 我们整理一下,对exp(x)做泰勒展开,得

c_l(kr)=\sum_{n=0}^\infty \frac{(-i)^n(kr)^n}{n!}\int_{-1}^1x^nP_l(x)dx

  • citation 2:

P_l(x)=\frac{1}{2^ll!}\frac{d^l}{dx^l}(x^2-1)^l

  • 我们先把精力集中到解决这个积分上去
    • 反复利用分部积分

\int_{-1}^{1}x^n\frac{d^l}{dx^l}(x^2-1)^l dx=[x^n\frac{d^{l-1}}{dx^{l-1}}(x^2-1)|^{1}_{-1}-n\int_{-1}^1x^{n-1}(x^2-1)^ldx]=... 

=(-1)^n\frac{n!}{(n-l)!}\int_{-1}^1x^{n-1}(x^2-1)^ldx

  • 考虑到奇偶性问题
    • 当且仅当n=2m+l时积分不为零
  • 现在做变换 x=t^{1/2}
    • 注意,这是一个偶函数积分,因此我们只需要计算0-1上的积分然后乘2

=\frac{n!}{(2m)!}\int_0^1t^{m-1/2}(t-1)^ldt

  • citation 3:B函数
    • 对于B函数我们需要知道的不多,只需要知道

\int_0^1t^{m-1}(t-1)^{n-1}dt=B(m,n)=\frac{\Gamma(m)\Gamma(n)}{\Gamma(m+n)}

 

  • 很好,现在我们回到主线上去 
    • 经过一些小小的整理,我们可以得到

c_l(kr)=\frac{2l+1}{2\times 2^{l}}(-i)^l\sum_{m=0}^\infty \frac{(-1)^m\times(kr)^{2m+l}}{(2m)!}\frac{\Gamma(m+1/2)}{\Gamma(m+l+3/2)}

  • 现在分离出一个\Gamma(1/2)出来

c_l(kr)=\frac{2l+1}{2\times 2^{l}}(-i)^l\sum_{m=0}^\infty \frac{(-1)^m\times(kr)^{2m+l}}{(2m)!}\frac{\Gamma(1/2)\Gamma(m+1/2)}{\Gamma(1/2)\Gamma(m+l+3/2)}

  • citation 4:小技巧 \frac{\Gamma(m+\frac{1}{2})}{\Gamma(1/2)}=\frac{(2m-1)!!}{2^m}
    • 证明非常得简单,只需要按照\Gamma(z+1)=z\Gamma(z)不断展开即可
  • citation 5:小技巧 \frac{(2m-1)!!}{(2m)!}=\frac{1}{2^mm!}
    • 证明同样非常得简单

  • 我们最后一次回到主线上去,现在我们已经可以得到了

(2l+1)(-i)^l\sum_{m=0}^\infty (-1)^m(\frac{kr}{2})^{2m+l}\frac{\Gamma(1/2)}{2\cdot m!\Gamma(m+l+3/2)}

  • 虽然在特殊函数的课本上没有明确得给出球贝塞尔函数的表达式,但是这对于聪明的我们来说完全没有任何问题

j_l(z)=\frac{\Gamma(1/2)}{2}\sum_{m=0}^\infty\frac{(-1)^m}{m!\Gamma(m+l+3/2)}(\frac{z}{2})^{2m+l}

  • 于是我们得到了

c_l=(2l+1)(-i)^lj_l(kr)


 


这篇关于平面波向球面波的展开的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/656091

相关文章

通知Notification(可展开的大布局)使用,适配android8.0

补充修正: 2018-11-07 问题:Notification PendingIntent失效,每个通知都响应第一个PendingIntent https://blog.csdn.net/u013370255/article/details/83791750 2018-08-16 问题:app版本更新,通知形式显示安装包下载进度 https://blog.csdn.net/u01337025

vue3 行点击事件 table 树 点击行展开

需求:每次需要点击左侧小按钮才可以展开不方便,提出点击行就展开 el-table 添加 ref="tableDeptRef"@row-click="handleRowClick" 方法 const tableDeptRef = ref()/**行点击事件 */const handleRowClick=(row)=> {tableDeptRef.value.toggleRowExpa

zm-tree-org 数据量过大时,全部展开后,根节点点击收缩,树形消失

zm-tree-org 数据量过大时,全部展开后,根节点点击收缩,树形消失 <zm-tree-orgref="tree"@on-expand="onExpand"</zm-tree-org>export default {methods: {onExpand(e, data) {<!-- 当为根节点,且根节点为闭合时 -->if (data.root === true && data.expa

二叉树展开为列表(LeetCode)

题目 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 解题 class TreeNode:def __init__(self, val=0, left=None, right=None):self.va

24.9.1(康托展开)

上星期三: 补 24牛客多校 二 C                                                  牛客传送门 思路: 赛时写模拟写的很臭,如果用dp写就很方便 代码如下: const int N=2e6+10;const int mod=1e9+7;ll n;char s[N][2];int dp[N][2];void solve(){c

leetcode 114:二叉树展开为链表

二叉树的题,使用递归的方式 TreeNode *last(TreeNode*root){while(root->right!=NULL){root=root->right;}return root;}TreeNode *fla(TreeNode *root){if(root==NULL)return NULL;if(root->left==NULL&&root->right==NULL)re

求幂级数展开的部分和 / 求分数序列前N项和 / 特殊a串数列求和

习题4-2 求幂级数展开的部分和   (20分) 已知函数e^xe​x​​可以展开为幂级数1+x+x^2 /2! + x^3 /3! + \cdots + x^k /k! + \cdots1+x+x​2​​/2!+x​3​​/3!+⋯+x​k​​/k!+⋯。现给定一个实数xx,要求利用此幂级数部分和求e^xe​x​​的近似值,求和一直继续到最后一项的绝对值小于0.00001。 输入格式:

JQ点击展开二级菜单

JQuery控制点击展开二级菜单,以下为测试代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  <html>      <head>          <title>JQ点击展开二级菜单</title>  <script class="jquery library" src="jquery-

dom练习题-全选反选、可展开子菜单、事件冒泡、二级联动、表格增删、定时器、多事件绑定

checkbox全选反选可展开菜单事件冒泡二级联动菜单表格增删定时器多事件绑定 checkbox全选、反选 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>作业分解小礼包</title><style></style><script>// 全选function checkAll(

android 折叠屏展开收起监听

折叠屏在展开和收起时,屏幕的物理尺寸会发生变化。你可以通过注册一个ComponentCallbacks2的实例来监听屏幕大小的变化。这个接口提供了onConfigurationChanged(Configuration newConfig)方法,当设备的配置发生变化时(包括屏幕大小和方向)会调用此方法。 public class MyActivity extends AppCompatAct