Python和R热释光动能朗伯W函数解析方程

news/2024/5/9 23:12:19

🎯要点

  1. Python和R计算和绘图:
    1. 🎯一陷阱一复合中心模型计算:🖊常微分方程求解器求解 | 🖊不同活化能和频率因子动力学参数下热释放光强度 | 🖊改变重捕获率 | 🖊数值解光热激发一阶动能微分方程 | 🖊模拟可变初始陷阱浓度的一阶峰和二阶峰 | 🖊数值计算寻找活化能 | 🖊绘制不同加热速率的辉光曲线 | 🖊加热速率法求活化能和频率因子 | 🖊数值求解和绘制一般动能解析方程 | 🖊朗伯W函数求解和绘制一般离子陷阱方程 | 🖊数值计算和绘制混合级动能微分方程。🎯辉光曲线反卷积数值计算:🖊光热激发一阶动能微分方程反卷积 | 🖊一般动能方程反卷积 | 🖊离域电子跃迁方程反卷积 | 🖊离域电子跃迁方程氧化铝热释光反卷积 |🖊混合级动能微分方程氧化铝热释光反卷积 | 🖊离域电子跃迁方程两个峰值辉光曲线数据反卷积 | 🖊一般动能方程两个峰值辉光曲线数据反卷积 | 🖊离域电子跃迁方程九峰值辉光曲线反卷积。
    2. 🎯量子隧道局域跃迁模型计算:🖊评估立方体中电子和受体之间距离的最近邻分布 | 🖊评估异常衰落周期结束时距离的分布 | 🖊数值计算评估基态隧道效应模型 | 🖊数值计算和绘制亨特利方程:基态隧道效应模型剩余电子 | 🖊数值评估同时基态隧道模型 | 🖊数值计算和绘制同时基态隧道模型自然界中同时照射和异常衰落 | 🖊模拟未衰落取样辉光曲线求和。🎯长石和磷灰石等材料的模型实验数据分析。
    3. 🎯等温释光信号模型:🖊模型数据分析 | 🎯离域电子跃迁光激发光模型:🖊模型数据分析 | 🎯其他模型

🍇Python朗伯W函数一阶时滞微分方程

延时系统是指在系统输入输入和结果输出之间存在显着时间延迟的系统,这种延迟可能是固有的或故意引入的。延时系统可以使用延迟微分方程进行建模。

假设以下系统包含时滞微分方程:
{ x ′ ( t ) = a x ( t ) + a d x ( t − h ) + b u ( t ) t > 0 x ( t ) = g ( t ) t ∈ [ − h , 0 ) x ( t ) = x 0 t = 0 \begin{cases}x^{\prime}(t)=a x(t)+a_d x(t-h)+b u(t) & t>0 \\ x(t)=g(t) & t \in[-h, 0) \\ x(t)=x_0 & t=0\end{cases} x(t)=ax(t)+adx(th)+bu(t)x(t)=g(t)x(t)=x0t>0t[h,0)t=0
其中,

  • x ( t ) x(t) x(t) 是未知函数
  • a r a d a_r a_d arad b b b 是标量常数 ∈ R \in R R
  • h h h 是常数 ∈ R + \in R ^{+} R+,因此严格为正数并表示延迟
  • g ( t ) g(t) g(t) 是一个函数,当时间变量 t t t 包含在区间 [ − h , 0 ) [-h, 0) [h,0) 中时,该函数提供 x ( t ) x(t) x(t) 的值
  • x ( 0 ) = x 0 x(0)=x_0 x(0)=x0 是柯西初始条件

根据论文,时滞微分方程的解如下:
x ( t ) = ∑ k = − ∞ + ∞ e s k t C k I + ∫ 0 t ∑ k = − ∞ + ∞ e s k ( t − η ) C k N b u ( η ) d η x(t)=\sum_{k=-\infty}^{+\infty} e^{s_k t} C_k^I+\int_0^t \sum_{k=-\infty}^{+\infty} e^{s_k(t-\eta)} C_k^N b u(\eta) d \eta x(t)=k=+esktCkI+0tk=+esk(tη)CkNbu(η)dη
其中,
C k I = x 0 + a d e − s k h ∫ 0 h e − s k t g ( t − h ) d t 1 + a d h e − s k h C_k^I=\frac{x_0+a_d e^{-s_k h} \int_0^h e^{-s_k t} g(t-h) d t}{1+a_d h e^{-s_k h}} CkI=1+adheskhx0+adeskh0hesktg(th)dt

C k N = 1 1 + a d h e − s k h C_k^N=\frac{1}{1+a_d h e^{-s_k h}} CkN=1+adheskh1

s k = 1 h W k ( a d h e − a h ) + a s_k=\frac{1}{h} W_k\left(a_d h e^{-a h}\right)+a sk=h1Wk(adheah)+a

其中 W k W_k Wk 是索引 k k k 的朗伯函数 W W W。朗伯函数 W W W 是在随着索引 k k k 变化而获得的复数域中定义的函数族。

在开始Python实现之前需要注意两点:

  • 函数W不能用初等函数表示,因此我们将使用SciPy提供的数值实现scipy.special.lambertw
  • 对于积分的计算,我们将始终使用 SciPy,特别是 scipy.integrate.quad,但请记住,我们在复数域中操作,我们必须小心分别对实部和虚部进行积分,因为 scipy.integrate.quad 不支持复数域中的积分。
import numpy as np
from scipy import real, imag
from scipy.integrate import quad
from scipy.special import lambertw
import matplotlib.pyplot as plt

本示例中使用的设置是:

t_begin=0.
t_end=10.
t_nsamples=101
t_space, t_step = np.linspace(t_begin, t_end, t_nsamples, retstep=True)k_range=9
a = 0.5
ad = -2.5
b = 1.75
h = 1.
g = lambda t : 1. - 0.1 * t
u = lambda t : 0.2 * t
x0 = 1.5

然后,

sk_fn = lambda k :  (1./h) * lambertw(ad * h * np.exp(-a * h), k) + a
SK = [sk_fn(k) for k in range (-k_range, k_range+1)]

执行该片段后。 x ( t ) x(t) x(t)的实现在Python中如下:

def x(t):def integrand_for_cki(t_, sk):return np.exp(-sk * t_) * g(t_ - h)def integral_for_cki(sk):def real_func(t_, sk):return np.real(integrand_for_cki(t_, sk))def imag_func(t_, sk):return np.imag(integrand_for_cki(t_, sk))real_integral = quad(real_func, 0., h, args=(sk))imag_integral = quad(imag_func, 0., h, args=(sk))return real_integral[0] + 1.j*imag_integral[0]def integrand_for_x_t(eta):tot = 0.for k in range (-k_range, k_range+1):sk = SK[k + k_range]ck_denom = (1. + ad * h * np.exp(-sk * h))ckn = 1. / ck_denomtot += np.exp(sk * (t - eta)) * ckn * b * u(eta)return totdef integral_for_x_t():def real_func(eta):return np.real(integrand_for_x_t(eta))def imag_func(eta):return np.imag(integrand_for_x_t(eta))real_integral = quad(real_func, 0., t)imag_integral = quad(imag_func, 0., t)return real_integral[0] + 1.j*imag_integral[0]tot = 0.for k in range (-k_range, k_range+1):sk = SK[k + k_range]int_for_cki = integral_for_cki(sk)ck_denom = (1. + ad * h * np.exp(-sk * h))cki = (x0 + ad * np.exp(-sk * h) * int_for_cki) / ck_denomtot += np.exp(sk * t) * ckitot += integral_for_x_t()return tot

参阅一:计算思维

参阅二:亚图跨际


http://www.mrgr.cn/p/58056570

相关文章

Jetpack Compose 中如何实现全面屏

看问题本质,设置全面屏,是系统窗口的行为,与 View 和 Compose 有什么关系呢? 所以,原理和传统 View 视图是一样的,甚至 Api 都是一模一样的,不熟悉的可以看我之前的文章。传送门: Android 全面屏体验 那为什么还要写这篇文章呢?主要是在 Compose 中写法上的一些区别,…

论文解读:Label Hallucination for Few-Shot Classification

文章汇总 动机 本文的一个思想就是:尽管新类的标签并不能“恰如其分”地表示基数据集中的样本,但是很多基数据集的样本会包含与新类中相似的对象,例如,基数据集中的老虎和新类中的猫有相似的特征,那么就有60%的概率将…

【CSS】使用 scroll snap 实现页面的垂直大屏滚动

CSS 属性 scroll-snap-type 设置了在有滚动容器的情形下吸附至吸附点的严格程度。 scroll-snap-type 使用 scroll snap 也可以用于垂直滚动&#xff0c;全屏展示就是一个很好的例子: <main><section class"section section-1"></section><sect…

4.26文件上传学习

文件上传,绕过,验证,检测一、文件上传 概念:(不赘述转web安全文件上传)[[9.6-9.7基础和过滤方式]] 前置知识:(除解析漏洞)后门代码需要以特定格式后缀解析,不能以图片后缀解析; 知识点 1、文件上传-前端验证 直接修改前端js代码,文件上传格式; 2、黑白名单 3、use…

MySQL—MySQL的存储引擎之InnoDB

MySQL—MySQL的存储引擎之InnoDB 存储引擎及种类 存储引擎说明MyISAM高速引擎&#xff0c;拥有较高的插入&#xff0c;查询速度&#xff0c;但不支持事务InnoDB5.5版本后MySQL的默认数据库存储引擎&#xff0c;支持事务和行级锁&#xff0c;比MyISAM处理速度稍慢ISAMMyISAM的…

Python-Flask-migrate安装和使用

在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库。最直接的方式就是删除旧表,但这样会丢失数据。 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中。在Flask中可以使用Flask-Migrate扩展,来实现数据迁移。 环境…

MySQL-07.InnoDB数据存储结构

C-07.InnoDB数据存储结构 1.数据库的存储结构:页索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切说是存储在页结构中。另一方面,索引是在存储引擎中实现的,MySQL服务器上的存储引擎负责对表中数据的读取和写入工作。不同存储引擎中存…

C++感受6-Hello World 交互版

变量、常量输入、输出、流getline() 函数读入整行输入Hello() 函数复习新定义函数 Input() 实现友好的人机交互还有 “痘痘” 为什么挤不到的分析…… 1. DRY 原则简介 上一节课&#xff0c;我们写了两版“问候”程序。第一版的最大问题是重复的内容比较多&#xff0c;每一次问…

以链表为基础实现链式队列——————遍历、入队、出队

以链表为基础实现链式队列 ​ 如果打算以链表作为基础来实现队列的操作,可以避免内存浪费以及避免内存成片移动,只需要确定队头和队尾即可,一般把链表头部作为队头,可以实现头删,把链表尾部作为队尾,可以实现尾插。​ 需要注意的点:遍历队列需要备份地址 出队需要考虑空…

Windows设置开机自启动项

一、常见软件的开机自启设置大部分安装的软件,在设置中都带有“设置开机自启”的选项,直接在软件本身的设置中勾选相应开关项即可。 二、本身无开机自启的软件或一些绿色便携式的软件 (一)实现原理Windows自带了一个启动文件夹,在此文件夹中的软件都会在开机后进行启动操作…

个人音乐播放网站项目(SpringBoot+Linux部署上线)

在做完第一个博客系统项目以后&#xff0c;接着做下一个项目&#xff1a;音乐播放网站项目&#xff0c;此项目应用的技术栈和第一个项目是差不多的&#xff0c;即算是学完SSM等知识以后的两个入门级Java开发项目吧。 此项目包含的核心功能有&#xff1a; 一、登录、注册、退出…

李彦宏:程序员将不复存在! 周鸿祎回怼!网友:先把百度程序员都开除了!

近日&#xff0c;百度创始人、董事长兼首席执行官李彦宏在央视《对话》•开年说的访谈中指出&#xff1a;“基本上说以后其实不会存在“程序员”这种职业了&#xff0c;因为只要会说话&#xff0c;人人都会具备程序员的能力”。 “未来的编程语言只会剩下两种&#xff0c;一种…

Unsortbin attack原理及分析

Unsortbin attack原理 ✔️条件:首先要实现Unsortbin attack前提是可以控制Unsortbin attack chunk的bk指针 ✔️目的:我们可以实现修改任意地址为一个比较大的值 ✔️原理:1.Unsortbin的来源 1.当一个较大的 chunk 被分割成两半后,如果剩下的部分大于MINSIZE,就会被放到 …

flutter release 报错 Error: SocketException: Failed host lookup:

flutter 的 debug 模式没有任何问题 &#xff0c;打了release 包后一直报下面的错&#xff0c;查了一下是 因为没有网络权限 Error: SocketException: Failed host lookup: yomi-test-aws-sg.yomigame.games (OS Error: No address associated with hostname, errno 7) 按照下…

新手Pytorch入门笔记-transforms.Compose()

我使用的图片是上图&#xff0c;直接下载即可 transforms.Compose 是PyTorch中的一个实用工具&#xff0c;用于创建一个包含多个数据变换操作的变换对象。这些变换操作通常用于数据预处理&#xff0c;例如图像数据的缩放、裁剪、旋转等。使用transforms.Compose 可以将多个数据…

ClickHouse 高可用之副本

文章目录 ClickHouse 副本支持副本的引擎配置高可用副本副本应用1.副本表概述2.创建副本表3.写入模拟数据4.副本验证 扩展 —— 在 Zookeeper 中查看副本表信息 ClickHouse 副本 ClickHouse 通过副本机制&#xff0c;可以将数据拷贝存储在不同的节点上。这样&#xff0c;如果一…

运行django

确保app被注册 urls.py中编写url 视图对应关系 命令行启动 python manage.py runserver

iOS - 多线程-GCD-队列组

文章目录 iOS - 多线程-GCD-队列组1. 队列组1.1 基本使用步骤 iOS - 多线程-GCD-队列组 开发过程中&#xff0c;有时候想实现这样的效果 多个任务并发执行所有任务执行完成后&#xff0c;进行下一步处理&#xff08;比如回到主线程刷新UI&#xff09; 1. 队列组 可以使用GC…

npm run dev, serve和build的区别

真实命令分别为npm run vite,npm run vite build,npm run vite preview ctrl+c结束运行的npm项目

算法06链表

算法06链表 一、链表概述1.1概述1.2链表的组成部分&#xff1a;1.3链表的优缺点&#xff1a; 二、链表典例力扣707.设计链表难点分析&#xff1a;&#xff08;1&#xff09;MyLinkedList成员变量的确定&#xff1a;&#xff08;2&#xff09;初始化自定义链表&#xff1a;&…