WKB近似

  • WKB方法用于研究一种特定类型的微分方程的全局性质
    • 很有用
    • 这种特定的微分方程形如:

y''+[\lambda^2q_1(x)+q_2(x)]y=0

  • 经过一些不是特别复杂的推导,我们可以得到他的WKB近似解。
    • 该近似解的选择取决于函数q_1(x)和参数\lambda的性质
    • 同时,我们默认函数的定义域为[0,+\infty)
  • q_1(x)恒大于零,\lambda\rightarrow +\infty时:

y=\frac{1}{q_1^{\frac{1}{4}}(x)}\begin{pmatrix} a\cdot cos(\lambda \int_0^x\sqrt{q_1(\tau)}d\tau)+b\cdot sin(\lambda\int_0^x\sqrt{q_1(\tau)}d\tau) \end{pmatrix}

  • q_1(x)恒小于零,\lambda\rightarrow +\infty时:

y=\frac{1}{[-q_1(x)]^{\frac{1}{4}}} \begin{pmatrix} a\cdot ch(\lambda \int_0^x\sqrt{-q_1(\tau)}d\tau)+b\cdot sh(\lambda\int_0^x\sqrt{-q_1(\tau)}d\tau) \end{pmatrix}

  • 注:很快你会发现两个问题
    • a 和 b 是怎么确定的
      • 答:初始条件
    • \lambda 趋于正无穷 并不意味着 只有 \lambda 很大才能使得该WKB 近似真实
  • q_1(x)存在一个或者多个零点时,函数的WKB近似会变得非常的复杂
    • 我们一会再看

WKB 近似案例 1

  • 该案例选取自参考文献【1】P137 例5.1.1

\begin{matrix} y''=\lambda^2Q(x)y\\ y(0)=0,y'(0)=1\\ Q(x)=(1+x^2)^2 \end{matrix}

  • 我们相信它的WKB近似为y\sim \frac{1}{\lambda (1+x^2)^{\frac{1}{2}}}sh(\lambda\cdot(x+\frac{x^3}{3}))
  • 我们使用四阶Runge-Kutta方法求解
import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import fsolveclass odessolver():def __init__(self, f, Y_start=np.array([0, 1]), dY_start=np.array([0, 0]), \X_start=0, X_end=1, h=0.01):self.f = fself.h = hself.X = np.arange(X_start, X_end, self.h)self.n = Y_start.sizeself.Y = np.zeros((self.n, self.X.size))#第一个参数表示元 第二个参数表示变量self.Y[:, 0] = Y_startself.Y[:, 1] = Y_start + self.h * dY_startself.tol = 1e-6def __str__(self):return f"y'(x) = f(x) = ({self.f}) variables"def RK4(self):for i in range(1, self.X.size):k1 = self.f(self.X[i-1]           , self.Y[:, i-1])k2 = self.f(self.X[i-1] +self.h/2 , self.Y[:, i-1]+1/2*self.h*k1)k3 = self.f(self.X[i-1] +self.h/2 , self.Y[:, i-1]+1/2*self.h*k2)k4 = self.f(self.X[i-1] +self.h   , self.Y[:, i-1]+    self.h*k3)self.Y[:, i] = self.Y[:, i-1] +self.h/6 * (k1 + 2*k2 + 2*k3 + k4)return self.Ydef IRK4(self):for i in range(1, self.X.size):def f1(k1, k2):f1_x = self.X[i-1] + self.h*(3-3**0.5)/6f1_y = self.Y[:, i-1]+k1/4*self.h+(3-2*3**0.5)/12*k2*self.hf1_res = self.f(f1_x, f1_y)return np.array([f1_res[i] for i in range(self.n)])def f2(k1, k2):f2_x = self.X[i-1] + self.h*(3+3**0.5)/6f2_y = self.Y[:, i-1]+k2/4*self.h+(3+2*3**0.5)/12*k1*self.hf2_res = self.f(f2_x, f2_y)return np.array([f2_res[i] for i in range(self.n)])              def func(k):k1 = np.array([k[i] for i in range(self.n)])k2 = np.array([k[i+self.n] for i in range(self.n)])doc = []for i in range(self.n):doc.append((k1 - f1(k1, k2))[i])for i in range(self.n):doc.append((k2 - f2(k1, k2))[i])return docsol = fsolve(func, np.zeros(self.n*2))self.Y[:, i] = self.Y[:, i-1] + 1/2 * self.h * (sol[:self.n] + sol[self.n:])return self.YA = 0 
B = 1
Lambda = 1
Q = lambda x:(1+x**2)**2
Y0 = np.array([A, B])def test_fun(x, Y):   return np.array([Y[1], Lambda**2 * Q(x) * Y[0]])c = odessolver(test_fun, Y_start=Y0)
x = np.arange(0, 1, 0.01)y3 = c.RK4()
x = np.arange(0, 1, 0.01)
plt.plot(x, y3[0, :], label="RK4")##y4 = c.IRK4()
##x = np.arange(0, 1, 0.01)
##plt.plot(x, y4[0, :], label="IRK4")WKB = lambda x:1/(Lambda*(1+x**2)**0.5)*(np.exp(x+x**3/3)-np.exp(-(x+x**3/3)))/2
plt.plot(x, WKB(x), label="WKB")plt.legend()
plt.pause(0.01)

  • 看上去十分得合理

参考文献

[1]数学物理中的渐近方法 李家春 周显初 科学出版社

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/87565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

44.java教程

目录 一、Java 教程。 (1)我的第一个 JAVA 程序。 (2)Java 简介。 (2.1)java简介。 (2.2)主要特性。 (2.3)发展历史。 (2.4)J…

iOS应用程序的签名、重签名和安装测试

目录 前言 打开要处理的IPA文件 设置签名使用的证书和描述文件 开始ios ipa重签名 前言 ipa编译出来后,或者ipa进行修改后,需要进行重新签名才能安装到测试手机,或者提交app store供apple 商店审核上架。ipaguard有签名和重签名功能&…

吴恩达ChatGPT《Finetuning Large Language Models》笔记

课程地址:https://learn.deeplearning.ai/finetuning-large-language-models/lesson/1/introduction Introduction 动机:虽然编写提示词(Prompt)可以让LLM按照指示执行任务,比如提取文本中的关键词,或者对…

React中setState的原理及深层理解

1.为什么使用setState React并没有实现类似于Vue2中的Object.defineProperty或者Vue3中的Proxy的方式来监听数据的变化 我们必须通过setState来告知React数据已经发生了变化 setState方法是从Component中继承过来的。 2.setState异步更新 setState设计为异步,可…

PHY6230低成本遥控灯控芯片国产蓝牙BLE5.2 2.4G SoC

高性价比的低功耗高性能蓝牙5.2系统级芯片,适用多种PC/手机外设连接场景。 高性能多模射频收发机: 通过硬件模块的充分复用实现高性能多模数字收发机。发射机,最大发射功率10dBm;BLE 1Mbps速率接收机灵敏度达到-96dBm&#xff1…

解决Vue设置图片的动态src不生效的问题

一、问题描述 在vue项目中,想要动态设置img的src时,此时发现图片会加载失败。在Vue代码中是这样写的: 在Vue的data中是这样写的: 我的图片在根目录下的static里面: 但是在页面上这个图片却无法加载出来。 二、解决方案…

五、核支持向量机算法(NuSVC,Nu-Support Vector Classification)(有监督学习)

和支持向量分类(Nu-Support Vector Classification),与 SVC 类似,但使用一个参数来控制支持向量的数量,其实现基于libsvm 一、算法思路 本质都是SVM中的一种优化,原理都类似,详细算法思路可以参考博文:三…

10分钟让你拿下Linux常用命令,网安运维测试人员必掌握!

文章目录 一、目录操作 1、批量操作 二、文件操作三、文件内容操作(查看日志,更改配置文件) 1、grep(检索文件内容)2、awk(数据统计)3、sed(替换文件内容)4、管道操作符|5、cut(数据裁剪) 四、系统日志位置五、创建与删除软连接六、压缩和解压…

虹科案例 | ELPRO帮助客户实现符合GDP标准的温度监测和高效的温度数据管理

文章来源:虹科环境监测技术 点击阅读原文:https://mp.weixin.qq.com/s/wwIPx_GK3ywqWr5BABC4KQ 在本案例研究中,虹科ELPRO帮助客户 ● 实施了温度监测解决方案,以一致的数据结构获取各国和各种运输方式的数据; ● 通过将温度数据上…

https跳过SSL认证时是不是就是不加密的,相当于http?

https跳过SSL认证时是不是就是不加密的,相当于http?,其实不是,HTTPS跳过SSL认证并不相当于HTTP,也不意味着没有加密。请注意以下几点: HTTPS(Hypertext Transfer Protocol Secure)本质上是在HTTP的基础上…

【postgresql】ERROR: column “xxxx.id“ must appear in the GROUP BY

org.postgresql.util.PSQLException: ERROR: column "xxx.id" must appear in the GROUP BY clause or be used in an aggregate function 错误:列“XXXX.id”必须出现在GROUP BY子句中或在聚合函数中使用 在mysql中是正常使用的,在postgre…

数字IC笔试千题解--单选题篇(二)

前言 出笔试题汇总,是为了总结秋招可能遇到的问题,做题不是目的,在做题的过程中发现自己的漏洞,巩固基础才是目的。 所有题目结果和解释由笔者给出,答案主观性较强,若有错误欢迎评论区指出,资料…

投资理财知识分享:100个金融知识专业术语

大家好,我是财富智星,今天跟大家分享一下投资理财知识方面100个金融知识专业术语,希望能帮助大家了解更多金融知识。 1. 股票:代表对一家公司所有权的证券。 2. 债券:公司或政府发行的借款证券。 3. 投资组合&#xff…

00-MySQL数据库的使用-上

一 数据库基础知识 先谈发音 MySQL如何发音?在国内MySQL发音有很多种,Oracle官方文档说 他们念作 My sequal[si:kwəl]。 数据库基本概念 数据 数据(Data)是指对客观事物进行描述并可以鉴别的符号,这 些符号是可识别…

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测(SE注意力机制)

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测(SE注意力机制) 目录 分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测(SE注意力机制)分类效果基本描述模型描述程序设计参考资料 分类效果 基本描述 1.MATLA…

loadEnv是vite的工具函数

loadEnv()函数返回一个对象,这个对象就是根据开发模式还是生产环境加载的.env.development文件里的环境变量,有系统自带的也有自己手写的 loadEnv(第1个参数,第2个参数,第3个参数) 注意:第3个参数如果是“”空字符…

LL库实现正交编码器数据采集

1,首先打开STM32CubeMX,配置一下工程,这里使用的芯片是STM32F103C8T6。 我这里选择了定时器2和3,因为我有两个电机,在定时器模式这边,我们在Combined Channels这个选项里面我们选择Encoder Mode&#xff0c…

OpenCV实现图像的礼帽和黑帽

礼帽运算 黑帽运算 参数 cv.morphologyEx(img,op,kernel)参数: img : 要处理的图像op: 处理方式 代码实现 import numpy as np import cv2 as cv import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [SimHei]#读取图像img1 …

Hyper-V 虚拟机CentOS配置网络(三)

总目录 https://preparedata.blog.csdn.net/article/details/132877836 文章目录 总目录一、创建交换机二、共享网络给交换机三、虚拟机配置交换机四、配置CentOS网络 一、创建交换机 二、共享网络给交换机 打开物理宿主机的控制面板的网络链接中心,此时已经多了一…

【从0学习Solidity】52. EIP712 类型化数据签名

【从0学习Solidity】 52. EIP712 类型化数据签名 博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页&#…