【组合数学】递推方程 ( 有重根递推方程求解问题 | 问题提出 )

简介: 【组合数学】递推方程 ( 有重根递推方程求解问题 | 问题提出 )

文章目录

一、有重根递推方程求解问题

二、有重根递推方程示例





一、有重根递推方程求解问题


有些 递推方程 的 特征方程 的 特征根 有 重根 的情况 , 特征方程解出来的 特征根有一部分是相等的 , 这样就使得 通解中的常数无法获取唯一的值 ;



参考 : 【组合数学】递推方程 ( 通解定义 | 无重根下递推方程通解结构定理 ) 二、无重根下递推方程通解结构定理


在 “无重根下递推方程通解结构定理” 章节中 , 通解要求 方程组中的 系数行列式不等于 0 00 , ∏ 1 ≤ i < j ≤ k ( q i − q k ) ≠ 0 \prod\limits_{1 \leq i < j \leq k} ( q_i - q_k ) \not= 0

1≤i<j≤k


(q

i


−q

k


)


=0 , 如果有两个特征根 q i , q k q_i , q_kq

i


,q

k


 相等 , 则上面的 "系数行列式不等于 0 00" 便无法实现 ;



如果特征方程有重根 , 就不能使用 “无重根下递推方程公式求法” 进行递推方程的求解 ;



针对有重根的递推方程 , 需要将其 线性无关的元素 都找到 , 线性组合在一起 , 才能得到通解 ;



线性组合 : 将一个解乘以 c 1 c_1c

1


 , 另一个解乘以 c 2 c_2c

2


 , 相加之后的组合 ;






二、有重根递推方程示例


递推方程 : H ( n ) − 4 H ( n − 1 ) + 4 H ( n − 2 ) = 0 H(n) - 4H(n-1) + 4H(n-2) = 0H(n)−4H(n−1)+4H(n−2)=0


初值 : H ( 0 ) = 0 , H ( 1 ) = 1 H(0) = 0 , H(1) = 1H(0)=0,H(1)=1




无重根下递推方程求解完整过程 :


1 . 写出特征方程 :

( 1 ) 递推方程标准形式 : 写出递推方程 标准形式 , 所有项都在等号左边 , 右边是 0 00 ;

( 2 ) 特征方程项数 : 确定 特征方程项数 , 与 递推方程项数相同 ;

( 3 ) 特征方程次幂数 : 最高次幂是 特征方程项数 − 1 -1−1 , 最低次幂 0 00 ;

( 4 ) 写出 没有系数 的特征方程 ;

( 5 ) 逐位将递推方程的系数 抄写 到特征方程中 ;

2 . 解特征根 : 将 特征方程的特征根解出来 , x = − b ± b 2 − 4 a c 2 a x = \cfrac{-b \pm \sqrt{b^2 - 4ac}}{2a}x=

2a

−b±

b

2

−4ac



3 . 构造递推方程的通解 : 构造 c 1 q 1 n + c 2 q 2 n + ⋯ + c k q k n c_1q_1^n + c_2q_2^n + \cdots + c_kq_k^nc

1


q

1

n


+c

2


q

2

n


+⋯+c

k


q

k

n


 形式的线性组合 , 该线性组合就是递推方程的解 ;

4 . 求通解中的常数 : 将递推方程初值代入通解 , 得到 k kk 个 k kk 元方程组 , 通过解该方程组 , 得到通解中的常数 ;

( 1 ) 常数代入通解 : 得到最终的递推方程的解 ;



递推方程 -> 特征方程 -> 特征根 -> 通解 -> 代入初值求通解常数



根据上述求解过程进行求解 :



1 . 特征方程 :


( 1 ) 递推方程标准形式 : 递推方程已经是标准形式 ;


( 2 ) 特征方程项数 : 与 递推方程项数 相同 , 3 33 项 ;


( 3 ) 特征方程次幂数 : 最高次幂是 特征方程项数减一 , 3 − 1 = 2 3-1=23−1=2 , 最低次幂 0 00 ;


( 4 ) 写出 没有系数 的特征方程 : x 2 + x + 1 = 0 x^2 + x + 1 = 0x

2

+x+1=0


( 5 ) 逐位将递推方程的系数 抄写 到特征方程中 ;


1 x 2 + ( − 4 ) x + ( 4 ) 1 = 0 1x^2 + (-4)x + (4)1 = 01x

2

+(−4)x+(4)1=0


x 2 − 4 x + 4 = 0 x^2 - 4x + 4 = 0x

2

−4x+4=0



2 . 解特征根 : 将 特征方程的特征根解出来 , x = − b ± b 2 − 4 a c 2 a x = \cfrac{-b \pm \sqrt{b^2 - 4ac}}{2a}x=

2a

−b±

b

2

−4ac




x = 4 ± 16 − 16 2 = 2 x=\cfrac{4 \pm \sqrt{16 - 16}}{2} = 2x=

2

16−16



=2


两个特征根都是 2 22 , q 1 = 2 , q 2 = 2 q_1=2, q_2 = 2q

1


=2,q

2


=2 ;



3 . 构造递推方程的通解 : 构造 c 1 q 1 n + c 2 q 2 n + ⋯ + c k q k n c_1q_1^n + c_2q_2^n + \cdots + c_kq_k^nc

1


q

1

n


+c

2


q

2

n


+⋯+c

k


q

k

n


 形式的线性组合 , 该线性组合就是递推方程的解 ;


通解是 : H ( n ) = c 1 2 n + c 2 2 n = c 2 n H(n) = c_12^n + c_22^n = c2^nH(n)=c

1


2

n

+c

2


2

n

=c2

n



4 . 求通解中的常数 : 将递推方程初值代入通解 , 得到 k kk 个 k kk 元方程组 , 通过解该方程组 , 得到通解中的常数 ;


将 c 2 n c2^nc2

n

 代入到 x 2 − 4 x + 4 = 0 x^2 - 4x + 4 = 0x

2

−4x+4=0 特征方程中 , c cc 是无解的 ;




如果 两个特征根 都是 2 22 , 线性相关 , 此时就 无法确定通解中的 c 1 , c 2 c_1, c_2c

1


,c

2


 待定常数 ;


观察 n 2 n n2^nn2

n

 是解 , 该解与 2 n 2^n2

n

 线性无关 , 将上述两个解进行线性组合 ,


c 1 n 2 n + c 2 2 n c_1n2^n + c_22^nc

1


n2

n

+c

2


2

n

 线性组合 , 是递推方程的解 ,


将初值代入 , 可以解出 c 1 , c 2 c_1, c_2c

1


,c

2


 常数的值 ;


目录
相关文章
|
存储 缓存 安全
Nacos 安全零信任实践
本文将介绍如何基于安全零信任的理念来保证 Nacos 的数据安全。
13343 120
|
并行计算 PyTorch Linux
幸福的烦恼:显卡算力太高而pytorch版本太低不支持
幸福的烦恼:显卡算力太高而pytorch版本太低不支持
2371 0
|
机器学习/深度学习 算法 数据挖掘
CogLTX:应用BERT处理长文本
CogLTX:应用BERT处理长文本
896 0
CogLTX:应用BERT处理长文本
|
SQL canal 算法
PolarDB-X最佳实践:如何设计一张订单表
本文主要内容是如何使用全局索引与CO_HASH分区算法(CO_HASH),实现高效的多维度查询。
|
11月前
|
弹性计算 Serverless API
海量大模型如何一键部署上云,函数计算 x ModelScope 社区给出答案
得益于阿里云函数计算的产品能力,魔搭 SwingDeploy 后的模型推理 API 服务默认具备极致弹性伸缩(缩零能力)、GPU 虚拟化(最小 1GB 显存粒度)、异步调用能力、按用付费、闲置计费等能力,这些能力帮助算法工程师大大加快了魔搭开源模型投入生产的生命周期。
|
安全 数据安全/隐私保护 UED
|
存储 机器学习/深度学习 并行计算
95% 的算法都是基于这 6 种算法思想 (详细介绍)
95% 的算法都是基于这 6 种算法思想 (详细介绍)
359 4
|
并行计算 Linux iOS开发
Julia 教程
Julia,一款高性能的开源编程语言,专为科学计算设计,具备动态高级语言特性,速度快,无需解释器。支持多种平台,包括macOS、Windows和Linux等。其特点是小核心、丰富的类型语法、高性能、并行计算优化、C函数直接调用、Unicode支持及元编程工具。常用于数值计算。首个Julia程序示例为打印&quot;Hello World!&quot;。参考链接:[Julia官网](https://julialang.org/)和[Julia中文手册](https://docs.juliacn.com/latest/)。
|
算法
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
661 0
|
SQL Java 数据库
解析SQLSyntaxErrorException异常:not in GROUP BY clause
大家好,欢迎阅读我们的文章。今天,我们将讨论一个常见的Java异常——java.sql.SQLSyntaxErrorException,并深入探讨其中一个具体的错误信息:Expression #1 of SELECT list is not in GROUP BY clause。
1190 0
解析SQLSyntaxErrorException异常:not in GROUP BY clause