#Wolfram语言 酷炫的 #一行代码 #朱利亚集合
#化学分子腺嘌呤三维图 #希尔伯特曲线 #社区图
x 的半导数是多少?
分数阶微积分研究将导数和积分扩展到此类分数阶,以及求解涉及这些分数阶导数和积分的微分方程的方法。该分支在流体动力学、控制理论、信号处理等领域越来越流行。我们也意识到这个主题的重要性和其潜力,因此在最近发布的 Wolfram 语言 13.1 版本中增加了对分数阶微分和积分的支持。
分数阶微积分的概念
微积分的基础是由牛顿和莱布尼茨早在 17 世纪发展起来的,微分和积分是这门学科的两个基本运算。每个学微积分的人都知道,平方函数
的一阶导数是x,而积分的结果是
积分本质上是微分的逆运算(n 阶积分可以看成是阶导数— n)。然而,谈到导数或反导数或积分,我们假设阶数 n 是整数。
如果微分和积分的思想可以扩展到非整数甚至复杂的阶数呢?这是在分数阶微积分理论中完成的,它将导数和积分的经典微积分概念推广到分数阶 α,使得当阶 α 为正整数(微分)或负整数(积分)时,分数运算的结果与经典微积分运算的结果一致。如下图所示,其他实数阶的导数“插值”在整数阶的导数之间:
历史概览
分数阶微积分不是一个新学科。从 Niels Henrik Abel (https://en.wikipedia.org/wiki/Niels_Henrik_Abel)在 1823 年和 1826 年写的两篇文章开始,该学科至少有两个世纪的历史。
正如文章(https://link.springer.com/content/pdf/10.1515/fca-2017-0057.pdf)中所解释的,分数阶微积分是在 Abel 的一篇早期论文中介绍的,其中所有元素都可以找到:分数阶积分和微分的思想;它们之间的相互反比关系;理解分数阶微分和积分可以被视为相同的广义运算;甚至是任意实数阶的微分和积分的统一表示法。
Abel 思考了等时降落问题(https://mathworld.wolfram.com/TautochroneProblem.html,也称为 Abel 问题)的推广版本,关于如何根据规定的传输时间 T = f(x) 确定沿斜率的曲线 KCA 的方程,该方程作为距离 x = AB 的函数给出。
Abel 获得了未知函数 φ(x) 的积分方程
,其判定可以找到曲线本身的方程。经过几次代数运算后,这个积分方程可以改写为
的形式,也就是我们现在所说的卡普托分数导数(Caputo fractional derivative)。
在过去的两个世纪里,来自不同领域和背景的科学家致力于分数微积分理论(从不同的角度考虑)。因此,关于如何定义分数“微分积分(differintegration)”运算有不同的方法。其中有三个在实践中最流行最重要的定义。我们将在这篇博文中讨论它们。
平方函数的半导数
使用平方函数和一些简单的代数运算推导出分数阶导数的公式。首先,让我们计算平方函数的 n 阶普通导数:
将负 n 代入这个公式,很容易得到这个函数的 n 阶反导数:
取平方函数的 n 阶导数公式,并将非整数阶 n 代入其中:
如果取后一个函数的 n 阶普通导数并在那里代入 1/2,我们会得到什么?
这是平方函数的一阶导数!它是通过两个“半阶分数微分”过程获得的。人们可能很容易验证平方函数的反导数可以通过两个类似的半阶积分过程求得(在前面显示的公式中代入 –1/2)。
所以通过这个简单的例子,我们展示了分数微积分是什么,是以何种方式相关,以及它是如何推广经典版本的。
分数阶导数的三个主要定义
由于积分本质上是微分的逆运算,我们可以定义一个微分/积分的联合运算,我们称之为differintegral(微分积分,https://en.wikipedia.org/wiki/Differintegral):在文献中,这个算子写成
,它代表关于 x且下界为 a的函数的 α 阶分数微积分 f(x)。分数阶微分积分取决于函数 f(x) 在点 a 的值,因此它们会使用函数的“历史”。在实践中,下界通常取为 0。
Grünwald-Letnikov 方法
Grünwald–Letnikov 微分积分(https://en.wikipedia.org/wiki/Grünwald–Letnikov_derivative)给出了经典导数/积分的基本推广并且基于极限:
在实践中,这种方法不是很有用,因为它在不同点包含无限数量的函数近似值。
黎曼-刘维尔 (Riemann-Liouville) 方法
黎曼-刘维尔定义(https://en.wikipedia.org/wiki/Riemann–Liouville_integral)是:
,其中
它位于分数阶微积分坚实而严格的数学理论之下。这个理论已经很好地发展了,但是黎曼-刘维尔方法有一些限制,使其不太适合在实际问题中应用。
卡普托 (Capto) 方法
卡普托定义是:
,其中
这与黎曼-刘维尔微分积分有一些相似之处,事实上,卡普托微分积分可以通过黎曼-刘维尔微分积分来定义:
显然,对于负 α,卡普托分数阶导数与黎曼-刘维尔分数阶导数一致。
与黎曼-刘维尔或 Grünwald-Letnikov 的定义相比,卡普托对分数导数和积分的定义具有许多优点:首先,它考虑了函数及其导数在原点(或者,一般来说,在任何更低极限点 a),它自动使其适用于使用拉普拉斯变换解决分数阶初值问题。此外,常数的卡普托分数导数为 0(而黎曼-刘维尔分数导数通常不是),因此它更符合经典微积分。
下面的动画显示了与普通函数相比,平方函数的卡普托分数导数的行为——即分数阶导数“插值”在整数阶的导数之间:
Wolfram语言中的
黎曼-刘维尔分数阶微分积分
我们在 Wolfram 语言版本 13.1 中实现了一个名为 FractionalD (https://reference.wolfram.com/language/ref/FractionalD.html)的函数。此函数计算函数 f(x) 的 α 阶黎曼-刘维尔分数导数
。
例如,计算三次函数的半阶分数导数:
现在使用黎曼-刘维尔定义验证这个结果:
重复半阶分数微分过程导致三次函数的普通导数:
以下计算使用三个嵌套分数积分恢复初始函数:
现在让我们计算这个三次函数的任意分数阶导数,制作一个特定阶的值表并绘制导数列表:
接下来,让我们计算 Exp (https://reference.wolfram.com/language/ref/Exp.html)和 BesselJ (https://reference.wolfram.com/language/ref/BesselJ.html)函数的 0.23 阶分数导数:
在这里,我们展示了 MeijerG (https://reference.wolfram.com/language/ref/MeijerG.html)超函数的分数导数,因为它是一个非常重要的理论案例:MeijerG 的分数导数是根据另一个 MeijerG 函数给出的:
作为最后一个例子,我们给出了一些常见特殊函数的第 α 个小数和第 n 个普通导数的表格:
卡普托分数阶微分积分
在 Wolfram 语言 13.1 中,CaputoD (https://reference.wolfram.com/language/ref/CaputoD.html)给出函数 f(x) 的 α 阶卡普托分数导数
。
如前所述,常数的卡普托分数导数为 0:
对于 α 的负阶,CaputoD 输出与 FractionalD 一致:
现在,计算 Exp 函数的 0.23 阶卡普托分数导数:
计算 BesselJ 函数的半阶卡普托分数导数:
最后一个例子,我们展示一些常见数学函数的半阶卡普托分数导数:
分数阶微分方程
分数阶微分方程(FDE)是涉及分数阶导数 dα l d xα 的微分方程。这些常微分方程(ODE)的推广引起了广泛关注,并已应用于工程、物理、化学、生物学等领域。在大多数应用中,FDE 都涉及松弛和振荡模型。
这是我们使用强大的 DSolve (https://reference.wolfram.com/language/ref/DSolve.html)函数求解 FDE 的示例,该函数在 13.1 版中进行了大量更新以支持 FDE:
这个解是 MittagLefflerE (https://reference.wolfram.com/language/ref/MittagLefflerE.html)函数给出的,它是分数微积分应用的基本函数。该函数在 FDE 解中的作用类似于 Exp 函数对 ODE 解的作用和重要性:任何具有常系数的 FDE 都可以用 Mittag-Leffler 函数求解。
现在,绘制之前的解:
举一个更有趣的例子,求解 1.9 阶分数谐振子的方程:
这种分数谐振子的行为与普通阻尼谐振子的行为非常相似:
绘制这些解并进行比较:
这个例子清楚地表明,FDE 的阶数可以作为控制参数来模拟一些复杂的系统。
求解 FDE 的另一种方法是通过方程的拉普拉斯变换(即将初始 FDE 变换为某个代数方程)。我们还在 13.1 版中添加了对 FDE 的 LaplaceTransform (https://reference.wolfram.com/language/ref/LaplaceTransform.html)支持:
现在,计算这个解的拉普拉斯逆变换,会立即得到通过 DSolve 得到的相同解:
结束语和致谢
在 Wolfram Research,我们不断更新 Wolfram 语言,涵盖越来越多可能具有革命性的主题,并推动科学家在其研究领域开始创新研究。
在 Wolfram 语言 13.1 中,我们实现了分数微积分的两个基本运算符(FractionalD 和 CaputoD 函数),并且还付出了巨大的努力来增加对通过 DSolve 和 LaplaceTransform 求解分数微分方程的支持。我们还更新了 MittagLefflerE 函数的算法,因为它们在分数微积分理论中至关重要。您可以从 Stephen Wolfram 的博文“Launching Version 13.1 of Wolfram Language & Mathematica” (https://writings.stephenwolfram.com/2022/06/launching-version-13-1-of-wolfram-language-mathematica/) 和 Wolfram Language 13.1 网络研讨会系列(https://www.bigmarker.com/series/new-in-wolfram-language-13-1-aug/series_details?utm_bmcr_source=july)中的新功能中了解更多信息。
另外,我要感谢我的同事 Aram Manaselyan 和 Hrachya Khachatryan 在 Wolfram 语言中实现分数阶微积分方面所做的工作;Oleg Marichev 教授对分数阶微积分理论和其中的符号计算算法的宝贵贡献;和 Devendra Kapadia 管理项目以及对本文提出的宝贵意见和批评意见。