最速下降法 python_鞍点近似法及其应用

本文介绍了鞍点近似法(最速下降法),它是积分近似的一种强大方法,广泛应用于量子力学和统计力学。在量子力学中,它体现在波包的稳定相位近似和WKB近似;在统计力学中,用于微正则系综的密度矩阵计算。文章通过实例解释了如何找到最速下降方向,并展示了该方法在不同物理问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近recitation上提到鞍点近似法(saddle point approximation,也称最速下降法)的时候,很多同学都一脸懵逼(这就很让人尴尬了==)。虽然在本科课程里有各式各样的方法绕过它,但是由于这个近似手段使用起来相当便捷,而且也几乎出现在所有的物理领域里,所以感觉还是有必要小小总结一下的(没错,逃的课总是要还的。犹豫,就会白给)。

一、数学基础

鞍点近似法是积分近似众多手段中相当强大的一种,它考虑的是如下复平面内的积分

为正的大实数时的渐进行为(asymptotic behavior)。数学上我们要求
为复变量
的解析函数(analytic function),此外积分在路径
的两端应当是收敛的(注意到解析函数的性质决定了
没有极值,因此我们只能够找到鞍点)。

553006a4c1b7701bb2d0f426d6bfb283.png
图1. 鞍点示意图(摘自Arfken第598页)

现在我们试想对路径

做一个变形。我们使其通过函数
鞍点
(见图1),并且沿着
最速下降(the steepest descent)的方向离开鞍点(这一点很重要)。想象一下如果我们沿这条线把上图的马鞍劈开,得到的剖面在保留至二次项的情况下可以近似为一个高斯函数:

这里的一次项被省略了,由于在鞍点我们有

首先我们先检验一下这个近似带来的误差。从(1.2)式我们知道这个高斯函数的宽大致为

,因此
越大,高次项越无关紧要。

那么有同学就会问了,怎么确定通过鞍点的方向(即最速下降方向)呢?这里我们可以利用复数的极坐标形式

现在再来看看

好的,我会尽力解答您的问题,以下是详细步骤: 1.首先要安装 GLMsData 包,可以使用以下命令完成安装: ```R install.packages("GLMsData") ``` 2.安装完成后,载入 GLMsData 包和 belection 数据集: ```R library(GLMsData) data(belection) ``` 3.接下来进行模型拟合。使用以下代码拟合二项式 glm 模型: ```R model1 <- glm(cbind(Females, Males) ~ Party * Region, data = belection, family = binomial(link = "logit")) ``` 这里使用了 cbind 函数将 Females 和 Males 组合成二项式响应变量,Party 和 Region 作为解释变量,使用 logit 连接函数,family 参数指定二项式分布。 4.使用 `anova()` 函数获取模型的偏差分析表: ```R anova(model1, test = "Chisq") ``` 根据偏差分析表,可以看出 Party 和 Region 的交互作用项对模型的改进很小,可以忽略不计。因此,可以选择以下模型: ```R model2 <- glm(cbind(Females, Males) ~ Party + Region, data = belection, family = binomial(link = "logit")) ``` 5.进行诊断分析,首先可以绘制 deviance residuals vs transformed fitted value 的散点图: ```R plot(model2, which = 1) ``` 如果散点图中没有出现任何明显的模式,说明模型拟合良好。否则,可能需要进一步检查模型的假设是否成立。 6.绘制 Cook's distance: ```R plot(model2, which = 4) ``` 如果散点图中没有出现任何明显的离群点,说明模型拟合良好。否则,需要进一步检查这些点是否对模型的拟合产生了显著的影响。 7.绘制 Q-Q 图: ```R plot(model2, which = 2) ``` 如果 Q-Q 图中的点落在一条直线上,说明模型的残差服从正态分布。否则,需要进一步检查模型的假设是否成立。 8.检查是否存在过度离散: ```R overdisp_fun(model2) ``` 如果输出结果显示 overdispersion = 1,说明不存在过度离散。否则,需要考虑使用泊松回归或负二项式回归等模型。 9.计算 PartyLabour 的估计系数: ```R coef(model2)["PartyLabour"] ``` 10.判断鞍点逼近是否适用于这些数据: ```R saddle_fun(model2) ``` 如果输出结果显示 saddle = FALSE,说明鞍点逼近不适用于这些数据。否则,可以使用鞍点逼近来估计模型参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值