欢迎大家来到IT世界,在知识的湖畔探索吧!
欢迎大家来到IT世界,在知识的湖畔探索吧!
本文将讲解五种非常实用的物理学微分方程解法。我们将从最基础的逐步深入到最高级也是最强大的方法。事实上,几乎所有物理问题的解决都离不开微分方程。在牛顿力学中,这通常意味着我们需要分析物体受力,将其代入牛顿第二定律,即 F = ma,或者更准确地说,是质量乘以位置的二阶导数,然后求解这个微分方程,得到位置关于时间的函数。对于我们在入门物理课程中遇到的简单系统,这并不困难,但随着学习的深入,你会很快发现,即使是一些看似简单的物理场景,其对应的 F = ma 方程也会变得极其难以求解。
因此,掌握一套解决微分方程的策略至关重要,这将帮助你应对物理学习中遇到的各种问题。这正是你需要学习本文中介绍的五种方法的原因。我们将以经典力学中最基础但也至关重要的微分方程——简谐振子方程为例,来讲解这些方法。换句话说,也就是一个连接到弹簧的物块的牛顿第二定律方程。
你很可能之前已经接触过这个方程,甚至了解过几种不同的解法。但本文的独特之处在于,我们将从最直观的解法开始,逐步深入到更高级的方法。首先,我们会介绍一些相对基础的策略,这些策略足以解决你在经典力学及其他领域中遇到的很多问题,例如通过变量替换或者利用能量守恒来求解。之后,我们将逐步引入一些更高级的技巧,例如利用级数展开来求解方程,使用积分变换(例如拉普拉斯变换),最后我们会讲解哈密顿方程,它可以帮助我们以一种全新的视角——相空间上的“流”——来理解微分方程的解。
哈密顿方程非常强大,请务必继续阅读至结尾。现在,让我们开始吧。首先,让我们快速回顾一下这个微分方程的来源。我们考虑一个质量为 m 的物块,放置在一个光滑的水平面上,并连接到一个劲度系数为 k 的弹簧上。当系统处于平衡状态时,弹簧既没有被拉伸也没有被压缩,物块可以保持静止。
我们将这个位置定义为 x = 0。如果我们将物块从平衡位置拉开,弹簧就会产生一个指向平衡位置的力,大小为 -kx,试图将物块拉回平衡位置。此时,牛顿第二定律方程可以写成:质量 m 乘以 x 的二阶导数(即加速度)等于力 -kx。现在,假设我们将物块拉到初始位置 x₀,然后从静止状态释放。被拉伸的弹簧会将物块拉回平衡位置,但物块会越过平衡位置 x = 0,继续向左运动。
此时,弹簧被压缩,并将物块推向右侧。物块就这样在平衡位置左右不断振荡。这就是我们所说的简谐运动。本文作者之前撰写过一篇专门讲解简谐运动的文章,解释了为什么它可以说是物理学中最重要的系统,以及为什么它几乎无处不在。现在,让我们看看如何从这个方程中求解物块的运动。
我们希望得到物块的位置关于时间的函数,即 x(t)。由于牛顿第二定律方程包含这个函数的导数,因此它是一个微分方程。这个方程告诉我们,x 关于 t 的二阶导数等于 -k/m 乘以 x。在本文的剩余部分,我们将探索五种越来越高级的求解方法。让我们从第一种方法开始。
这听起来可能有点简单,但坦诚地说,特别是对于像这样相对简单的方程,首先可以尝试猜测解。当然,“猜测”听起来不够专业,所以教科书通常称之为“试探解”(Ansatz),这个德语词汇听起来更加高大上。在这种情况下,试探解指的是,我们尝试找到一个函数,它的二阶导数等于它本身乘以一个负数。那么,什么样的函数满足这个条件呢?根据我们的物理直觉,物块会在平衡位置附近来回振荡,因此我们可以想到正弦函数和余弦函数。
所以,我们不妨假设解的形式为 Acos(ωt),其中 A 和 ω 是待定的常数。我们的目标是找到合适的 A 和 ω 值,使得这个假设的解满足方程。为了保证单位的一致性,我们需要引入这些常数。请记住,x 的单位是长度,例如米。这意味着 A 的单位也应该是米。
括号内的 ωt 的单位应该是弧度,它是无量纲的。因此,ω 的单位应该是弧度每秒,这样才能抵消时间 t 的单位秒。好的,现在让我们将这个假设的解代入方程,看看它是否成立。根据链式法则,cos(ωt) 的导数是 -ωsin(ωt)。
再次求导,得到 -ω²cos(ωt)。现在,我们已经得到了假设解的二阶导数,但它是否满足我们的微分方程呢?看起来很有希望,因为我们发现 x 的二阶导数确实等于 x 乘以一个常数 -ω²。因此,我们只需要让 ω² 等于方程中的 k/m 即可。
如果我们选择这个 ω 值,那么 x(t) = Acos(ωt) 确实满足方程。那么,我们是否已经完成了?还没有。首先,sin(ωt) 同样满足二阶导数等于自身乘以负数的条件。更一般地,我们可以将它们组合起来,得到如下形式的通解。这是因为我们的微分方程是线性的,这意味着方程中只包含 x 及其导数的一次幂。
那么,我们应该如何处理这两个常数 A 和 B 呢?对于任意 A 和 B 的取值,这个表达式都满足方程。这引出了一个关于求解微分方程的重要概念:方程本身只是问题的一部分。为了得到问题的唯一解,我们还需要指定初始条件。
从物理的角度来看,这是很自然的。例如,当你将一个球抛向空中时,我们需要知道球的初始位置和初始速度,才能确定球的运动轨迹。同样地,我们需要知道物块的初始位置和初始速度,才能确定物块之后的位置。在本例中,我们在 x = x₀ 处释放物块,且物块初始静止,这意味着我们的两个初始条件如下:
当 t = 0 时,sin(ωt) = 0,cos(ωt) = 1。因此,为了满足第一个初始条件,我们必须令 A = x₀。同样地,如果我们对 x(t) 求导,并要求初始速度为零,我们会发现 B = 0。最终,我们得到 x(t) = x₀cos(ωt),其中 ω = √(k/m) 由弹簧的劲度系数和物块的质量决定。
这个解符合我们的预期。物块从初始位置 x₀ 开始,在平衡位置附近来回振荡,振荡的频率由 ω 决定。至此,我们通过引入一个包含待定常数的试探解,并根据初始条件确定这些常数的值,成功地求解了微分方程。对于像这样形式的线性方程,这种策略通常是有效的,其中 a、b 和 c 是常数。
通常情况下,你可以选择一个指数函数作为试探解,例如 Ae^(ωt),将其代入方程,并分析 ω 需要满足的条件。详细讲解这种方法需要另行撰文。现在,我们继续以简谐振子方程为例,讲解其他四种强大的求解方法。接下来,让我们进入第二种方法:利用能量守恒求解方程。你可能已经学过,物块的动能(1/2mv²)加上弹簧的势能(1/2kx²)等于一个常数,即总能量。
这并非显而易见,因为 x 和 dx/dt 都会随着时间变化。但当我们将它们以这种特殊的形式组合起来时,时间 t 的影响就会消失,得到一个常数。我们可以通过对 E 关于 t 求导,并验证导数是否为零来证明这一点。本文作者将在其他文章中详细解释如何证明这一点,并对本文中提到的所有内容进行更详细的阐述。
在本例中,势能曲线是一个抛物线。当我们在 x = x₀ 处释放物块时,所有的能量都储存在弹簧的势能中。由于物块初始静止,因此动能为零。当我们释放物块后,物块开始加速,弹簧的势能逐渐转化为动能。当物块到达平衡位置 x = 0 时,所有的能量都转化为动能。
能量就这样在动能和势能之间不断转换,但总能量保持不变,始终等于初始值 1/2kx₀²。接下来,我们将看到如何利用能量守恒方程来求解物块的运动轨迹。这个方程仍然是一个关于 x 的微分方程,但它只包含 x 的一阶导数,而不像牛顿第二定律方程那样包含二阶导数。让我们对这个方程进行一些变形。
首先,我们可以约掉等号两边的 1/2,并将 kx² 移到等号左侧,然后除以 m。我们仍然使用 ω² 来表示 k/m。记住,ω 决定了物块振荡的频率。最后,我们对等式两边取平方根,得到 dx/dt 的表达式。
现在,我们得到了一个非常重要的结果:这个方程描述了物块的速度与其位置 x 之间的关系。也就是说,如果我们知道物块的位置,我们就可以知道弹簧被拉伸或压缩的程度,进而知道弹簧中储存的势能大小。然后,根据能量守恒定律,我们可以计算出物块的动能大小,进而得到物块的速度。当物块从初始位置 x₀ 开始运动时,由于初始速度为零,因此 v = 0。当物块到达平衡位置 x = 0 时,速度达到最大值,此时 dx/dt = ωx₀。
实际上,由于物块初始向左运动,因此我们应该取负号。因此,在开平方根时,我们需要根据物块的运动方向选择正负号。当物块向左运动时,取负号;当物块向右运动时,取正号。现在,我们可以通过积分来求解 x(t)。将平方根移到等号左侧,并将 dt 移到等号右侧,即可分离变量。
接下来,我们对等式两边进行积分。右侧的积分非常简单,结果为 t + C,其中 C 是积分常数。左侧的积分稍微复杂一些,你可以使用三角函数替换来求解,或者直接查阅积分表。
结果为 -arccos(x/x₀)。我们也可以在左侧添加一个积分常数,但可以将其合并到右侧的常数 C 中。现在,我们可以解出 x。首先,对等式两边取反余弦,然后将 x₀ 移到等号右侧。
我们快完成了。由于余弦函数是偶函数,因此我们可以去掉正负号。至于常数 C,请记住,当 t = 0 时,x = x₀。因此,我们可以令 C = 0。最终,我们得到 x(t) = x₀cos(ωt),这与我们使用第一种方法得到的结果相同。
因此,利用能量守恒定律,我们也可以轻松地求解微分方程。事实上,即使对于一些更复杂的物理问题,例如单摆,这种方法也能够奏效,尽管单摆的运动方程比简谐振子方程复杂得多。我建议你自己尝试使用这种方法来求解单摆的运动方程,本文作者将在其他文章中提供更多细节。
至此,我们已经学习了两种求解简谐振子方程的方法,这些方法足以解决你在入门力学课程中遇到的大部分问题。但如果你想进一步学习,接下来我将介绍一些更强大的方法,这些方法可以帮助你应对更复杂的微分方程。让我们继续学习第三种方法:利用级数展开求解方程。这可能是我们介绍的所有方法中最通用的一种,它可以应用于几乎所有类型的微分方程,得到精确解或者近似解。
这种方法的基本思想是,无论微分方程的解 x(t) 是什么,我们几乎总是可以将它展开成 t 的幂级数,至少在级数收敛的范围内。问题在于,我们如何确定这些系数的值?首先,让我们应用初始条件。当 t = 0 时,级数展开式中所有包含 t 的项都为零,只剩下 x(0) = a₀。因此,为了满足第一个初始条件,我们必须令 a₀ = x₀。
为了满足初始速度为零的条件,我们需要对级数展开式求导,得到 a₁ + 2a₂t + 3a₃t² + … 当 t = 0 时,只剩下 a₁。因此,我们必须令 a₁ = 0。
到目前为止,我们已经确定了 a₀ 和 a₁ 的值,但还有无穷多个系数需要确定。接下来,我们需要将级数展开式代入微分方程。这意味着我们需要对级数展开式再次求导,得到加速度的表达式:2a₂ + 3·2a₃t + 4·3a₄t² + … 然后,我们将加速度的表达式加上 ω²x,并令结果等于零。为了方便分析,我们将相同幂次的项组合在一起。
如果我们希望级数展开式能够满足微分方程,那么对于任意时间 t,括号内的表达式都必须等于零。为了实现这一点,我们需要令每个括号内的系数都等于零。让我们先分析奇数次幂的项。t 的系数为 3·2a₃。为了使其等于零,我们必须令 a₃ = 0。注意到 t³ 的系数中也包含 a₃,因此我们也可以将 t³ 的系数中的 a₃ 项去掉。
现在,让我们分析 t³ 的系数。它只剩下 5·4a₅。为了使其等于零,我们必须令 a₅ = 0。对于所有奇数次幂的项,都会出现同样的情况。因此,我们可以得出结论:所有奇数次幂的系数都等于零。这是一个非常重要的结论,因为它意味着我们可以去掉级数展开式中一半的项。
接下来,让我们分析偶数次幂的项。常数项为 2a₂ + ω²x₀。为了使其等于零,我们可以解出 a₂ 的值。
对于 t² 的系数,我们有 4·3a₄ + ω²a₂。为了使其等于零,我们可以解出 a₄ 的值。
不要太在意这些代数运算。重点在于,你已经可以看出这些系数的规律了。以下是我们得到的级数展开式的前几项。
这看起来熟悉吗?让我们将 x₀ 提取出来,并将 ω 和 t 组合在一起,得到如下形式的表达式。
现在,你是否认出括号内的表达式是什么?没错,它是 cos(ωt) 的泰勒级数展开式。因此,我们再次得到了 x(t) = x₀cos(ωt)。
正如我之前提到的,级数展开是一种非常通用的求解微分方程的方法。虽然级数展开式并不总是能够化简成像这样简单的函数形式,但这并不影响它作为微分方程解的有效性,只要级数在所考虑的范围内收敛即可。
好的,让我们继续学习第四种方法:利用积分变换求解微分方程。这是一种更高级的方法,但它非常强大,所以请继续关注。
有很多种积分变换,例如傅里叶变换,之前的文章中已经详细讲解过傅里叶变换。但对于我们今天要解决的问题,最实用的一种积分变换叫做拉普拉斯变换。以下是拉普拉斯变换的定义。
拉普拉斯变换指的是,我们将位置函数 x(t) 乘以 e^(-st),其中 s 是一个新的变量,然后对结果关于 t 从 0 积分到无穷大,并将结果记为 X(s)。
这看起来可能很奇怪,特别是如果你从未见过这种变换。但我们很快就会看到,这种变换在求解微分方程时具有神奇的效果。
你可以将拉普拉斯变换理解为一种将函数从 t 空间转换到 s 空间的操作。t 空间是我们原始函数 x(t) 所在的空间,s 空间是其拉普拉斯变换 X(s) 所在的空间。举几个例子,如果 x(t) 是一个常数,例如 x(t) = 1,那么它在 t 空间中是一条水平线。
你可以很容易地证明,它的拉普拉斯变换在 s 空间中是一个函数 1/s。对于我们弹簧上的物块,我们已经知道(并且即将再次证明),x(t) = x₀cos(ωt)。它在 t 空间中是一个振荡函数。
在 s 空间中,它的拉普拉斯变换是一个有理函数:x₀s/(s² + ω²)。
好的,我们可以通过积分将函数从 t 空间转换到 s 空间。但这有什么意义呢?它如何帮助我们求解像简谐振子方程这样的微分方程呢?
原因在于,拉普拉斯变换对导数的作用非常简单。当我们对导数 dx/dt 进行拉普拉斯变换时,结果为 sX(s) – x(0)。换句话说,在 t 空间中求导数相当于在 s 空间中乘以 s,并减去初始位置 x(0)。这个结论可以通过对拉普拉斯变换的积分表达式进行分部积分来证明。
本文作者将在其他文章中详细解释如何证明这一点。重点在于,由于这个特性,拉普拉斯变换可以将 x(t) 的微分方程转换为 X(s) 的代数方程。让我们看看它如何应用于我们的简谐振子方程。
我们将对等式两边进行拉普拉斯变换。右侧的结果为 -ω² 乘以 x 的拉普拉斯变换。
在左侧,我们需要连续两次应用导数的拉普拉斯变换规则。经过计算,我们得到 s²X(s) – sx(0) – v(0)。将初始条件代入,我们得到 s²X(s) – sx₀ = -ω²X(s)。
正如之前提到的,方程中不再包含导数。拉普拉斯变换将 x(t) 的微分方程转换为了 X(s) 的代数方程。这个代数方程更容易求解。将包含 X(s) 的项移到等号左侧,然后除以系数,得到 X(s) = sx₀/(s² + ω²)。
这就是我们问题的解,至少在 s 空间中是这样。为了得到最终的解,我们需要将 X(s) 转换回 t 空间。虽然存在一个通用的逆变换公式,但在实际应用中,通常更快的方法是查阅拉普拉斯变换表,例如维基百科上的拉普拉斯变换表,找到对应的函数。
事实上,之前已经提到过,这个函数是 x₀cos(ωt) 的拉普拉斯变换。因此,我们再次得到了原始方程的解 x(t) = x₀cos(ωt)。
这就是第四种方法:从线性微分方程出发,进行拉普拉斯变换,将其转换为代数方程,并求解 X(s)。最后,进行逆变换,得到 x(t) 的解。
好的,我们已经接近尾声了。我将最精彩的一种方法留到了最后:哈密顿方程和相空间上的流。让我来解释一下这种方法。
我们从弹簧上物块的牛顿第二定律方程 F = ma 开始。注意到等号左侧可以写成 m(dx/dt) 的导数,因为质量 m 是一个常数。换句话说,它等于动量 p 的导数。这就是牛顿第二定律的另一种表达方式:力 -kx 等于动量的变化率。
从数学的角度来看,这意味着我们可以将原来的二阶微分方程转换为两个一阶微分方程。这两个方程被称为哈密顿方程。我没有做任何复杂的操作,这两个方程包含的信息与牛顿第二定律方程完全相同。我只是将它拆分成了两个部分,但使用一阶方程有两个主要优势。
为了理解为什么这样做有好处,让我们画一个图,其中 x 作为横坐标,p 作为纵坐标。这个图被称为相空间,平面上的每个点都代表了物块在某个时刻的位置和动量(或者等效地,速度)。例如,当我们将物块拉到初始位置 x₀ 并从静止状态释放时,这个初始状态对应于相空间中横轴上的一个点,其中 x = x₀,p = 0。
当我们释放物块后,物块开始运动,x 和 p 坐标会随着时间变化。因此,相空间中的点会随着时间移动,并描绘出一条曲线,这条曲线被称为“流”。“流”这个词很形象,因为它可以帮助我们理解物块的运动轨迹。
你可以将相空间想象成一个水池的表面,水流在水面上流动。我们将一个乒乓球放在初始状态对应的点上。当我们释放乒乓球后,水流会带动乒乓球在水面上移动。乒乓球的运动轨迹就是“流”。
那么,是什么决定了水流的方向和强度呢?当然是我们的微分方程。我们可以将这两个微分方程写成一个向量方程的形式。
x 和 p 是乒乓球在水面上的坐标,因此它们的导数代表了乒乓球在每个点上的速度矢量。在初始状态对应的点上,x 为正,p 为零,因此速度矢量的水平分量为零,垂直分量为负。这意味着速度矢量垂直向下。
同样地,我们可以计算出相空间中每个点上的速度矢量,并用箭头表示。这些箭头代表了水流的方向和强度,它们决定了乒乓球的运动轨迹。你可以看到,这些箭头围绕原点(即平衡点)旋转。我使用不同的颜色来表示水流的强度,黄色箭头代表水流较弱,红色箭头代表水流较强。
通过沿着这些箭头从初始状态开始,我们发现“流”是一个椭圆,它围绕原点不断旋转,这对应于物块在平衡位置附近来回振荡。这是一种更抽象的理解微分方程解的方式。请记住,我们研究的物理系统是一个在一维直线上运动的物块。因此,实际上并不存在水池和乒乓球,它们只是帮助我们理解物块运动的数学工具。
但这方法的优势在于,我们可以在不求解微分方程的情况下,快速地了解物块的运动规律。我们只需要根据哈密顿方程,在相空间中绘制每个点上的速度矢量即可,这可以通过手工完成,或者更方便地,使用计算机程序来完成。
这是一种非常有用的分析微分方程的方法。此外,哈密顿方程还提供了一种直接写出解的表达式的方法,至少对于像简谐振子方程这样的线性方程是这样。这是我想向你介绍的最后一部分内容。
为了了解这种方法,让我们将哈密顿方程写成矩阵方程的形式。
这看起来可能更复杂了,但请稍等片刻,我们将看到这种方法的优势。考虑一个简单的微分方程,例如 dz/dt = αz,其中 α 是一个常数。这个方程告诉我们,函数 z(t) 的导数等于它本身乘以一个常数 α。
这个方程的解很简单:z(t) = e^(αt)z(0)。这是因为指数函数的导数等于它本身乘以一个常数 α,并且当 t = 0 时,z(t) = z(0)。
注意到我们弹簧上物块的矩阵方程与这个简单的微分方程非常相似,只是将数字替换为了向量和矩阵。它告诉我们,向量 (x, p) 的导数等于它本身乘以一个常数矩阵 M。
这个矩阵方程的解与简单微分方程的解类似。我们取初始向量 (x₀, p₀),并用矩阵 e^(tM) 对其进行变换。
这看起来很合理,但我们必须搞清楚如何计算矩阵的指数。矩阵的指数可以通过泰勒级数来定义。
我们得到 1 + tM + (tM)²/2! + (tM)³/3! + … 这看起来可能很复杂,但对于我们这个问题中的矩阵 M,结果非常简单。
本文作者将在其他文章中详细解释如何计算矩阵的指数,但以下是最终结果。
我们得到左上角和右下角的元素为 cos(ωt),右上角和左下角的元素为 sin(ωt) 乘以一些常数。
最后,将初始条件代入,我们得到如下结果。
第一行告诉我们,x(t) = x₀cos(ωt),这与我们之前得到的结果相同。第二行给出了对应的动量,即 m(dx/dt)。
希望你 enjoyed 本文。我们学习了五种越来越复杂的技术来求解简谐振子方程。再次强调,没有人建议你真的使用拉普拉斯变换或矩阵指数来求解这样一个简单的微分方程。但随着你在物理学中的学习,你很快就会遇到更复杂的微分方程,这时你今天学到的这些方法将会变得非常重要。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/99340.html