ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

线性差分方程通解一般求法:从递推关系到特征方程实战

线性差分方程通解一般求法:从递推关系到特征方程实战 线性差分方程及其通解的一般求法这个题目摆在面前的时候大多数人脑子里浮现的是考研数学或者离散数学的那几页公式。但真正做过递推算法优化、写过动态规划的状态转移、算过分期还款表、推过马尔可夫链稳态的人会知道线性差分方程根本不是纸上的东西它是离散世界里最基础的一套运动学。连续世界用微分方程描述变化率离散世界用差分方程描述步与步之间的增量关系两者几乎是一一对应的孪生兄弟。区别在于微分方程的解是函数差分方程的解是数列微分方程用特征方程找指数解差分方程照样用特征方程找几何数列解。这套方法能帮你把一步一步往前推的暴力迭代压缩成一步到位的闭式表达从而看清一个系统的长期走势、收敛速度、是否存在周期振荡。不管你是刚开始学离散数学的学生还是需要为算法做复杂度推导的工程师或者只是想搞明白为什么某类递推式一定有解、解长什么样把这套通解求法吃透后面的路都会顺很多。接下来我会从最朴素的一阶模型开始一层层推到高阶、推到非齐次、推到实际踩坑的排查流程把通解一般求法这件事拆到可以照着抄的程度。1. 先把差分方程这件事说清楚1.1 从斐波那契说起为什么离散需要自己的方程斐波那契数列 aₙ aₙ₋₁ aₙ₋₂这个式子就是最典型的二阶线性差分方程。它没有给出 aₙ 的显式公式只给了相邻几项之间的关系这叫递推关系。递推关系的优点是写起来直观缺点是算第 100 项就得从第 1 项一路推过去而且你根本看不出这个数列是越跑越快还是最终收敛。差分方程理论要解决的核心问题就是把递推关系翻译成通项公式也就是所谓的通解。这里有个概念必须先立住微分方程里我们比较的是函数值对自变量的变化率而差分方程里比较的是数列相邻项之间的差。记 Δaₙ aₙ₊₁ − aₙ那么 Δ 就是一阶差分算子Δ²aₙ Δ(Δaₙ) 是二阶差分算子。有了这个算子任何递推关系都能写成算子的形式比如 aₙ₊₂ − 2aₙ₊₁ aₙ 0 其实就是 Δ²aₙ 0。这种写法之所以重要是因为它让离散问题和连续问题在结构上对齐了微分方程的标准形是各阶导数线性组合等于一个已知函数差分方程的标准形是各阶差分或各阶移位项的线性组合等于一个已知数列。对齐之后两边的方法论几乎可以平行搬运。提示初学者最容易混的是移位形式和差分形式。移位形如 aₙ₊₂ p aₙ₊₁ q aₙ f(n)差分形如 Δ²aₙ α Δaₙ β aₙ f(n)。两者可以互相转换解题时用哪种要看你手上数据长什么样。工程里递推式天然是移位形式所以本篇文章默认都用移位形式展开。1.2 阶数、线性、齐次三个标签决定解题路线拿到一个差分方程第一件事不是急着算而是给它贴标签。贴完标签解题路线基本就定了。阶数方程里出现的最大移位间隔。aₙ₊₁ 2aₙ 是一阶aₙ₊₂ aₙ₊₁ aₙ 是二阶以此类推。阶数决定了特征方程的次数也决定了通解里自由常数的个数。一个 k 阶线性差分方程的通解一定含有 k 个独立常数这是因为它的解空间是 k 维线性的跟 k 阶微分方程完全一致。线性方程里 aₙ, aₙ₊₁ … 这些项都是一次幂没有互相乘、没有平方、没有三角函数套在里面。线性意味着叠加原理成立——如果 y₁ 和 y₂ 都是齐次方程的解那么任意常数组合 C₁y₁ C₂y₂ 也是解。这是整个通解理论的基石没有它后面所有先求齐次通解再叠加特解的套路都站不住脚。反过来像 aₙ₊₁ aₙ² 1 这种就是非线性只能用不动点、周期点这些工具单独分析不在本篇范围内。齐次与非齐次等式右边等于零的叫齐次等于非零数列 f(n) 的叫非齐次。非齐次方程的通解结构是齐次通解 非齐次特解这个结构也是从线性代数的解空间理论直接搬过来的。理解这一点很重要非齐次项 f(n) 只影响特解那一部分不影响系统的自由运动模式而自由模式完全由齐次部分决定。这就是为什么分析系统稳定性时我们只看齐次方程的特征根。注意判断线性时小心 f(n) 里出现 aₙ 的情况。如果非齐次项里含有未知数列本身那方程就不是标准意义上的非齐次需要先移项合并。这类隐性非齐次在应用题里特别常见比如 aₙ₊₁ 2aₙ 3aₙ₋₁ 5 看起来乱其实是 aₙ₊₁ − 2aₙ − 3aₙ₋₁ 5右边是常数 5属于非齐次。2. 一阶线性差分方程最小模型藏着最多直觉2.1 齐次一阶几何数列是怎么冒出来的先看最简的齐次一阶方程 aₙ₊₁ r aₙ。这个式子不用任何理论直接迭代就能看出 aₙ a₀ rⁿ是等比数列。但我想强调的是这个猜的过程其实有严格的逻辑假设解具有 aₙ λⁿ 的形式代入 aₙ₊₁ r aₙ 得到 λⁿ⁺¹ r λⁿ约掉 λⁿλ ≠ 0就得到 λ r。这里的 λ 就是特征根特征方程是 λ − r 0。一阶只有一根通解就是 aₙ C rⁿC 由初始条件 a₀ 定出来。这个假设指数形式的手法是后面所有高阶问题的模板。为什么可以假设指数形式因为线性方程的解在移位操作下要保持形式不变——aₙ 变成 aₙ₊₁ 只是把指数往前提了一位整体函数形状不变。能满足这种移位不变性的函数在离散情形下只有几何数列 λⁿ在连续情形下只有指数函数 e^{λx}。这是一个非常本质的对应关系理解了它特征方程法就不再是死记硬背的技巧而是唯一合理的猜测。关于稳定性一阶齐次模型给出了最干净的判据|r| 1 时解衰减到零系统稳定|r| 1 时解发散r 1 时解是常数临界r −1 时解在 a₀ 和 −a₀ 之间来回跳是持续振荡。这个判据在算法分析里用得极多比如迭代法求解方程组的收敛条件本质上就是在要求迭代矩阵的谱半径小于 1一阶标量情形下就是 |r| 1。2.2 非齐次一阶常数变易法和稳态 瞬态的分解加上非齐次项aₙ₊₁ r aₙ b其中 b 是常数。这是分期还款、复利储蓄、种群带固定补充的模型。解法有两条路我建议两条都掌握。第一条路是凑特解 叠加齐次通解。先找一个常数特解令 aₙ A常数代入得 A rA b解得 A b/(1−r)r ≠ 1 时。齐次通解是 C rⁿ所以总通解是 aₙ C rⁿ b/(1−r)。代入初始条件 a₀ 定 C得到 aₙ (a₀ − b/(1−r)) rⁿ b/(1−r)。这个结果特别有启发aₙ 被拆成了两部分C rⁿ 是随时间衰减的瞬态分量b/(1−r) 是不随时间变化的稳态分量。当 |r| 1 时瞬态很快消失系统最终稳定在 b/(1−r) 这个固定点上这个点叫不动点。很多做数值迭代的人管它叫收敛值本质是一个东西。第二条路是常数变易法也就是把齐次解里的常数 C 换成一个数列 Cₙ。设 aₙ Cₙ rⁿ 代入原方程Cₙ₊₁ rⁿ⁺¹ r Cₙ rⁿ b整理得 Cₙ₊₁ − Cₙ b / rⁿ⁺¹。右边是个几何数列求和得到 Cₙ再回代即可。这条路看起来绕但它是通用方法当非齐次项 f(n) 不是常数而是任意数列时只有它能走通。我个人的经验是非齐次项是多项式、指数、三角这类好函数时用待定系数法凑特解非齐次项是任意数列时用常数变易法这是最省事的分工。实操心得r 1 这个边界千万不要漏。此时 aₙ₊₁ aₙ b特解不再是常数而是 aₙ b n通解是 aₙ C b n。这个特解形式为什么多了一个 n因为 λ 1 恰好是特征根常数试解和齐次解撞车了需要乘一个 n 来解除重复。这个规则在高阶非齐次里会反复出现现在记住它是值得的。2.3 一个能直接套的还款模型算例举一个具体的算例把参数选择的过程走一遍。假设你贷款 100000 元月利率 0.5%分 36 期等额本息还款每月还 M 元问 M 是多少。设第 n 期还款后剩余本金为 aₙ则 aₙ₊₁ aₙ (1 0.005) − M初始 a₀ 100000要求 a₃₆ 0。套用通解 aₙ (a₀ − M/(1−r)) rⁿ M/(1−r)其中 r 1.005。要求 a₃₆ 0代入0 (100000 − M/(1−r)) r³⁶ M/(1−r)。整理得 M 100000 r³⁶ (1−r) / (r³⁶ − 1)。算一下 r³⁶ ≈ exp(36 × ln1.005) ≈ exp(36 × 0.0049875) ≈ exp(0.17955) ≈ 1.1967。于是 M 100000 × 1.1967 × (−0.005) / (0.1967) ≈ 100000 × 0.005 × 1.1967 / 0.1967 ≈ 3042 元。这个数字和市面上任何等额本息计算器的结果一致。整个推导只用了齐次通解加常数特解这一个套路没有循环没有递推直接闭式。这就是通解求法的价值把 36 步迭代变成一次代数运算而且能一眼看出提前还款、利率变化对结果的影响。类似的模型换个参数就能套用到库存周转、设备折旧、种群迁移上方法论完全一样。3. 二阶常系数线性差分方程通解框架的核心战场3.1 特征方程三种根型对应三种解的形状二阶齐次方程的标准形式是 aₙ₊₂ p aₙ₊₁ q aₙ 0。照搬一阶的思路假设 aₙ λⁿ代入得 λⁿ⁺² p λⁿ⁺¹ q λⁿ 0约掉 λⁿ 得到特征方程λ² pλ q 0。这是一个一元二次方程根的情况分三种每种对应不同的通解形状这张表必须刻在脑子里特征根情况判别式通解形式两个不等实根 λ₁, λ₂Δ 0aₙ C₁λ₁ⁿ C₂λ₂ⁿ两个相等实根 λΔ 0aₙ (C₁ C₂n) λⁿ一对共轭复根 ρe^{±iθ}Δ 0aₙ ρⁿ(C₁cos nθ C₂sin nθ)三种形式背后的逻辑是一样的解必须由两个线性无关的基解张成。实根情形下λ₁ⁿ 和 λ₂ⁿ 在 λ₁ ≠ λ₂ 时线性无关直接就是基。重根情形下λⁿ 只有一个独立方向第二个基解要乘一个 n 才和第一个线性无关——这个乘 n的操作在离散情形里恰好对应连续情形里乘 x不是巧合而是两个理论在重根处的共同特征。复根情形下实数列的解不能直接写成虚数幂必须用欧拉公式把 ρe^{±iθ} 的幂展开成 ρⁿ 乘以三角函数的组合这样得到的才是实序列。提示复根情形的 ρ 是模θ 是辐角ρ √q当特征方程为 λ² pλ q 0 且 Δ 0 时两根之积等于 q所以 ρ² q。这个关系在判断振荡是否衰减时很有用ρ 1 衰减震荡ρ 1 等幅振荡ρ 1 发散震荡。很多人算完通解却忘了看 ρ其实稳定性信息全藏在 ρ 里。3.2 重根情形的系数确定一个容易翻车的细节重根情形 aₙ (C₁ C₂n) λⁿ初始化时要用两个初始条件联立。这里有个常见错误代入 a₀ 和 a₁ 时λ⁰ 1 是常数但 λ 本身如果是负数或分数n 0 和 n 1 处的值要小心算。我见过太多人把 a₀ C₁ 直接写出来结果 λ 是负数时符号全错。稳妥的做法是老老实实代 n 0 和 n 1 两个方程解 C₁、C₂不要跳步。举个例子aₙ₊₂ − 4aₙ₊₁ 4aₙ 0特征方程 λ² − 4λ 4 0重根 λ 2。通解 aₙ (C₁ C₂n)2ⁿ。设 a₀ 1a₁ 3代入 n 0C₁ 1n 1(C₁ C₂)·2 3得 C₂ 0.5。于是 aₙ (1 0.5n)2ⁿ。验算 n 2a₂ (1 1)·4 8而原式 a₂ 4a₁ − 4a₀ 12 − 4 8吻合。重根还有一个隐蔽的坑如果方程是三阶或更高阶重根的重数决定了要乘多少个 n 的幂。比如三阶特征方程有根 λ 重三次对应的齐次基解是 λⁿ、nλⁿ、n²λⁿ。这条规则是通解求法里最容易记错的我的记忆窍门是重数减一就是 n 的最高次数。三重根最高次是 n²二重根最高次是 n¹单根就是 n⁰ 1。3.3 非齐次二阶待定系数法的完整套路非齐次方程 aₙ₊₂ p aₙ₊₁ q aₙ f(n)通解 齐次通解 一个特解。特解怎么找取决于 f(n) 的形式。工程和考试里最常出现的 f(n) 有三类多项式、指数、三角。这三类都可以用待定系数法处理核心思路是猜出解的形式带回方程定系数。非齐次项 f(n)试解形式修正规则m 次多项式m 次多项式0 是特征根时乘 n^ss 为 0 作为特征根的重数c·λⁿA·λⁿλ 是特征根时乘 n^ss 为重数多项式 × λⁿ同次多项式 × λⁿ同上A cos(ωn) B sin(ωn)C cos(ωn) D sin(ωn)e^{±iω} 是特征根时乘 n修正规则是这张表的灵魂。为什么撞车要乘 n因为如果试解形式和齐次解重复代入后会被齐次方程部分吃掉导致系数无解只能靠乘 n 把它顶出齐次空间。这个规则和二阶微分方程的处理完全平行唯一的区别是离散情形里撞车判据变成了λ 是不是特征根。举个混合型的例子aₙ₊₂ − 3aₙ₊₁ 2aₙ 4n。齐次特征方程 λ² − 3λ 2 0根 λ₁ 1, λ₂ 2齐次通解 aₙ^h C₁ C₂·2ⁿ。非齐次项是 1 次多项式而且 λ 1 恰好是特征根重数 1所以试解要乘 n设 aₙ* n(An B) An² Bn。代入原方程算一算得到 A 2, B ...具体算设 aₙ* An² Bn则 aₙ₊₂* A(n2)² B(n2)aₙ₊₁* A(n1)² B(n1)代进去化简可得 A 2, B 6。于是 aₙ* 2n² 6n通解 aₙ C₁ C₂·2ⁿ 2n² 6n。注意待定系数法在 f(n) 是多项式乘指数时指数部分和多项式部分要一起处理不能拆开分别试。比如 f(n) (n1)3ⁿ试解是 (An B)3ⁿ如果 λ 3 是特征根就变成 n(An B)3ⁿ。拆开处理会漏掉指数和多项式的耦合项结果必然错。4. 高阶与一般理论把方法推广到任意阶4.1 解空间的维数决定了通解里有多少个自由常数k 阶线性差分方程的通解有 k 个独立常数这不是凑数而是线性代数里k 维解空间的直接体现。把数列的前 k 项看作初始向量方程给出了从初始向量到后续项的线性映射解空间自然就是 k 维的。这个结论有个很实用的推论给定 k 个初始条件解唯一确定。也就是说如果你手上有 a₀, a₁, …, aₖ₋₁ 这 k 个数那么整个数列就被完全锁定通解里的 k 个常数也恰好被这 k 个条件定死。验证 k 个解是否线性无关要用Casorati 行列式离散版的朗斯基行列式。对二阶情形W(n) y₁(n) y₂(n1) − y₁(n1) y₂(n)。如果对某个 n 有 W(n) ≠ 0则两个解线性无关。这个判据在常数变易法求特解时是必需品因为它出现在分母上。关于 Casorati 行列式有一个漂亮的性质它本身满足一个一阶差分方程 W(n1) (−1)^k a₀ W(n)a₀ 是最高阶项系数所以如果 W 在某点非零它就恒非零这保证了解的线性无关性不会中途退化。实操心得判断线性相关时不要只看两个解是否看起来不同。λ₁ⁿ 和 λ₂ⁿ 在 λ₁ λ₂ 时是同一个解但 λ₁ −λ₂ 时它们完全不同。真正要算 Casorati 行列式。我在做递推解的验证时习惯先算 W(0)非零就放心往下走零就说明选的基解有问题得换。4.2 常数变易法的一般形式非齐次特解的万能公式当 f(n) 是任意数列不是多项式、指数、三角这些好函数时待定系数法就不管用了必须用常数变易法。以二阶为例设齐次方程的两个线性无关解为 y₁(n), y₂(n)则非齐次方程的一个特解可以写成y*(n) −y₁(n) · Σ [ y₂(k) f(k) / W(k) ] y₂(n) · Σ [ y₁(k) f(k) / W(k) ]其中求和从某个起点到 n−1W(k) 是 Casorati 行列式。这个公式形式上跟微分方程的常数变易公式一模一样只是积分变成了求和。推导思路也一样把齐次通解里的常数 C₁, C₂ 换成数列 C₁(n), C₂(n)并要求额外项不引入新的差分阶从而得到关于 C₁(n), C₂(n) 差分的方程组解出来再累加即可。这个公式看着吓人但实际用起来是有套路的。我一般先把 W(k) 算出来看它是不是常数对很多常见方程它确实是常数或简单几何数列如果是求和就退化成简单的数列求和公式立刻变得好算。如果 W(k) 是复杂的 n 的表达式那说明方程本身可能有更特殊的结构这时候我会检查是不是可以用换元法把方程简化而不是硬套公式。4.3 复根与三角形式把振荡说清楚复根情形在应用里出现得比想象中频繁。任何带来回摆动特征的离散系统特征方程大概率有复根。比如 aₙ₊₂ aₙ 0特征方程 λ² 1 0根 λ ±i模 ρ 1辐角 θ π/2。通解是 aₙ C₁ cos(nπ/2) C₂ sin(nπ/2)展开看就是 0, 1, 0, −1, 0, 1, … 这样的周期数列。振幅不衰减说明系统是临界稳定的。把复根情形写成极坐标形式 ρⁿ(C₁ cos nθ C₂ sin nθ) 之后稳定性的判据就非常直观了ρ 就是每步振幅的缩放因子。ρ 1.05 意味着每步振幅放大 5%跑上一百步就是原来的 1.05¹⁰⁰ ≈ 131 倍发散得很厉害ρ 0.95 则一百步后衰减到约 0.6%。这个 ρ 在工程里叫谱半径是判断迭代算法收敛速度的核心指标。更细一点θ 决定了振荡的频率θ 越大每步转过的角度越多振荡越快。如果 θ π就是纯粹的符号翻转振荡如果 θ 很小那就是缓慢的过冲—回调过程。注意用 ρ 判断稳定性时前提是系统已经写成标准的齐次形式所有项都移到等号左边。很多应用题里非齐次项 f(n) 本身也带指数增长这时候系统的整体行为由齐次部分最大模根和f(n) 的增长因子共同决定单纯看 ρ 会误判。判断长期趋势时要看两者谁涨得快。5. 常见问题与排查技巧实录5.1 问题一算出来的通解代回去不成立这是最高频的问题九成以上出在三个地方。第一特征根算错尤其是一元二次方程的符号p、q 是移位形式里的系数特征方程是 λ² pλ q 0不是 λ² − pλ q。这个符号规则来自约掉 λⁿ 后把最高阶项系数归一。第二重根情形下第二个基解忘了乘 n导致两个基解线性相关常数只有一个是自由的。第三复根情形下忘了把虚数幂转成三角函数直接写了 C₁(i)ⁿ C₂(−i)ⁿ这在实数问题里虽然数学上没错但通常不是想要的实数列形式。排查方法很简单代入验证。把你求出的通解代回原方程取 n 0, 1, 2 三组值分别算左边和右边只要有一组对不上就说明形式错了。这个方法笨但绝对有效我做了这么多年每次推导完都习惯验算三组从没让它坑过我。5.2 问题二特解试解形式和齐次解撞车导致无解当你发现代入试解后方程两边系数对不上、无解那基本可以断定试解和齐次解撞车了。典型场景非齐次项是常数而 λ 1 是特征根。这时候把试解乘以 n 再重来一遍即可。如果乘 n 之后还撞说明重根重数至少是 2就再乘一个 n。这个逐次乘 n的规则可以机械化执行先判断 λ 作为特征根的重数 s试解直接乘 n^s一步到位不要试一次乘一次。5.3 问题三初始条件代入后常数求出多个矛盾值出现这种情况通常是初始条件的个数和通解的阶数对不上。k 阶方程需要 k 个初始条件少给了会导致常数无法完全确定多给了则会出现矛盾。在应用题里这意味着你对问题的建模可能漏了边界条件或重复使用了某个条件。我的排查顺序是先确认方程阶数 初始条件个数再确认每个条件是否独立比如 a₀ 1 和 2a₀ 2 就是同一个条件不算两个。5.4 常见问题速查表现象可能原因处理方式通解代回不成立特征方程符号错 / 漏乘 n / 复根未转换按 λ² pλ q 0 重算检查重根复根转三角特解无解试解与齐次解撞车试解乘 n^ss 为撞车重数常数矛盾初始条件数与阶数不符补足或去重初始条件长期趋势判断错忽略非齐次项的增长比较齐次最大模根与非齐次增长因子振荡不衰减但预期衰减ρ 计算错用 ρ √q复根时重新算数值算出来和解析差一点浮点精度或 λⁿ 溢出用对数域计算或改用同阶递推验证实操心得我在做长序列数值验证时遇到 λ 绝对值大于 1 的情况λⁿ 很快就会溢出浮点数范围。这时候不要硬算改成先算对数再取指数或者直接用递推关系小步验证前 20 项。前 20 项如果对得上形式基本就没错。6. 用代码把推导验证一遍6.1 数值验证的最小脚本推导完之后我强烈建议写几行代码验算。下面这段 Python 用解析解和递推解对比前 15 项两列一旦完全一致通解就是对的。这个习惯能帮你省下大量检查时间。import numpy as np # 例子a_{n2} - 3a_{n1} 2a_n 4n, a01, a12 # 齐次特征根 1, 2特解 2n^2 6n def analytic(n): # 通解 a_n C1 C2*2^n 2n^2 6n # 由 a01, a12 定 C1, C2 # n0: C1 C2 1 # n1: C1 2C2 8 2 - C1 2C2 -6 # 解得 C2 -7, C1 8 return 8 - 7 * (2 ** n) 2 * n**2 6 * n def numeric(terms15): a [1, 2] for n in range(terms - 2): # a_{n2} 3a_{n1} - 2a_n 4n a.append(3 * a[n1] - 2 * a[n] 4 * n) return a an [analytic(n) for n in range(15)] num numeric(15) for i, (x, y) in enumerate(zip(an, num)): print(i, x, y, OK if abs(x - y) 1e-9 else MISMATCH)跑一遍你会发现两列完全一致这比手工验算三组值更彻底。我通常在每次推完一个新方程后都跑一遍成本几秒钟收益是避免把错误结论带到后续分析里。6.2 稳定性扫描一眼看出 ρ 的影响对复根情形我习惯写一个扫描脚本把 ρ 从 0.9 到 1.1 扫一遍画出前 30 项的包络直观感受衰减和发散的速度差。虽然这篇不讲画图但你可以用打印振幅的方式看每一步振幅乘 ρ三十步后 0.9³⁰ ≈ 0.041.1³⁰ ≈ 17.4差距是四百多倍。这个数量级上的差别就是为什么工程里那么在意谱半径比 1 大还是小——差一点点长期行为天差地别。提示做数值验证时要注意解析解和递推解都可能因为浮点误差在小数点后很多位出现分歧。判断标准不要设成完全相等而是设一个相对误差阈值比如 1e-9。对大规模序列阈值可以放宽到 1e-6。7. 我从这套方法里提炼的几条经验第一永远先贴标签再动手。阶数、线性、齐次这三个标签花不了你十秒钟但能决定你走哪条路。跳过这一步直接算十有八九会在中途发现方法不对回来重来。第二特征方程是核心中的核心。齐次解的稳定性、振荡性、重根现象全都藏在特征根里。我见过很多人把特征方程当中间步骤草草算过结果后面全乱。我的建议是特征根算出来之后先花一分钟分析它的模和辐角把系统的长期行为预判出来再继续往下求未知常数。这样即使后面常数算错了你也能靠量级判断发现异常。第三特解形式的选择要有意识不能靠试。待定系数法的表格要背撞车乘 n 的规则要背这两条记住了非齐次问题就没有难的。很多卡壳其实是不知道试解该设成什么形式而不是运算难。第四验证是必需品不是可选项。解析解 递推解双路对照成本极低收益极高。我做了这么多年凡是跳过验证的推导最后都出过问题凡是老老实实验证的基本一次就过。第五别把离散和连续割裂开想。差分方程和微分方程在结构上是一套东西特征方程、通解结构、特解方法、稳定性判据全部平行对应。你把微分方程那套学扎实了反过来看差分方程会无比熟悉你用差分方程练熟了再回头看微分方程的重根、复根也会觉得理所当然。这两个理论互相印证学一个是学学两个还是学一个。最后分享一个小技巧遇到阶数大于 3 的方程不用硬算特征方程的高次根。先用试根法找有理根常数项因式除以最高次项因式找到一个根就做多项式除法降阶剩下的低次方程再用求根公式或判别式处理。这个思路和求解高次代数方程完全一样把问题一步步降到能处理的规模比正面硬刚高效得多。降阶之后再逐层套用前面的通解框架任何阶数的线性差分方程都能拆到一阶 二阶的基本单元剩下的就是耐心和仔细了。
返回列表