三对角矩阵的快速算法

合集下载

三对角矩阵lu分解

三对角矩阵lu分解

三对角矩阵lu分解三对角矩阵,是一种特殊的矩阵,也称为三对角矩阵。

其特点是在主对角线的上下两条对角线上,每个非零元素仅在其对角线的相邻两条对角线上有一个元素。

因此,它的非零元素只有3个对角线上的元素。

在实际计算中,三对角矩阵常常是常见的。

为了方便的解决三对角矩阵的求解问题,可以使用LU分解方法。

LU 分解是一种数学问题处理技术,其旨在将矩阵分解成“下三角矩阵”和“上三角矩阵”的乘积形式,从而简化了复杂性。

下面将介绍三对角矩阵LU分解的具体过程。

1.确定矩阵形式:三对角矩阵中,对角线上的元素为主对角线元素,上下两条对角线上的元素为辅对角线元素。

为了利用LU分解方法,需要将三对角矩阵转化成下三角矩阵和上三角矩阵相乘的形式,因此需要确定要分解的三对角矩阵的形式。

2.分解下三角矩阵:首先,通过高斯消去法,将三对角矩阵转化为下三角矩阵的形式。

下三角矩阵是指在转换后,位于主对角线下方的所有元素都是零。

在这个过程中,需要逐列消去所有非零辅对角线元素。

此时,矩阵的主对角线上的所有元素将会被替换为与它处于同一列的辅对角线下方的元素之和。

这个过程需要重复执行,直到将矩阵转化成一个下三角矩阵。

3.分解上三角矩阵:接着,通过较简单的方法将下三角矩阵分解成上三角矩阵的形式。

上三角矩阵是指在转化后,位于主对角线上方的所有元素都是零。

在这个过程中,需要将矩阵的每一行上下翻转,然后再执行与第二步类似的高斯消去操作。

这个过程同样需要重复执行,直到将矩阵转化成一个上三角矩阵。

4.求解分解后的矩阵:在完成上述步骤之后,可以通过将分解后的下三角矩阵和上三角矩阵相乘,进而获得原始的三对角矩阵。

这个步骤只需要进行矩阵乘法运算即可。

通过上述步骤,可以利用LU分解方法求解三对角矩阵。

它比直接求逆矩阵的方法更加高效,也更适合在计算机上使用,因为它不需要进行倒置操作。

不过,在LU分解过程中,需要小心处理矩阵缩放问题和行转置等操作,以避免误差的出现。

简述三对角矩阵法的计算原理以及泡点法和流率加和法的异同

简述三对角矩阵法的计算原理以及泡点法和流率加和法的异同

简述三对角矩阵法的计算原理以及泡点法和流率加和法的异同。

原理:(1)泡点法:是在初步假定的沿塔高温度下,汽、液流量V、L的情况下逐级用M和E方程联立求得一组方程,并用矩阵求解各级上组成x i,j,用S 方程求各级上新的温度(内层),用H方程求各级上新的V,L(外层),如此循环到稳定为止。

(2)流率加和法:三对角矩阵法的另一种形式,即在解MESH三对角矩阵方程求出组分流率L ij和V ij,组分流率加和得到L j和V j,再用H方程校正温度T j,用这一顺序为计算方便,独立变量取用各级之组分流率L v代替x v,相应的衡算式的形式也要有所改变。

异同:泡点法是以求得的浓度来决定下一循环所用的温度,即适用于塔级温度主要决定于浓度,而流率只要决定于热平衡。

即热平衡算中潜热影响大于显热影响的情况。

对组分沸点相近的系统(即窄沸程物系)。

由于其精馏时,汽液相的总流率是由潜热差通过热平衡确定,且潜热温度受组成的影响较大时适用于该法,即适用于△T<55℃。

流率加和法可以用在组成对流率的影响大于焓平衡对流率的影响,温度主要决定于热量平衡而不是组成,以及热平衡中显热的影响较为显著的情况,沸点差较大(宽沸程)的混合物的精馏计算用流率加和法。

此时全塔温差大,在热量平衡中显热的影响较为显著,即适用于△T>55℃。

简述三对角矩阵法的计算原理以及泡点法和流率加和法的异同。

原理:(1)泡点法:是在初步假定的沿塔高温度下,汽、液流量V、L的情况下逐级用M和E方程联立求得一组方程,并用矩阵求解各级上组成x i,j,用S 方程求各级上新的温度(内层),用H方程求各级上新的V,L(外层),如此循环到稳定为止。

(2)流率加和法:三对角矩阵法的另一种形式,即在解MESH三对角矩阵方程求出组分流率L ij和V ij,组分流率加和得到L j和V j,再用H方程校正温度T j,用这一顺序为计算方便,独立变量取用各级之组分流率L v代替x v,相应的衡算式的形式也要有所改变。

三对角行列式计算公式推导

三对角行列式计算公式推导

三对角行列式计算公式推导要推导三对角行列式的计算公式,我们首先需要定义三对角矩阵。

一个n×n的矩阵A是三对角的,如果它的非零元素只在主对角线上以及位于主对角线上方和下方的相邻两条对角线上。

一个三对角矩阵的一般形式如下:a1b10c2a2b200c3a3b3...0 0 cn an bn其中,ai, bi 和 ci 分别表示第i个主对角线和位于主对角线上方和下方的对角线元素。

det(A) = a1 * a2 * a3 * ... * an - 1 * an - (b1 * c2 * a2 * a3 * ... * an - 1) - (b2 * c3 * a3 * a4 * ... * an - 1) - ... - (bn - 2 * cn - 1 * an - 1 * an)推导过程如下:设三对角矩阵A的行列式为det(A)。

我们可以通过对A的第一列使用行列式展开式来推导det(A)的计算公式。

根据行列式的定义,展开式如下:det(A) = a1 * M11 - b1 * M12其中,M11是去除A的第一行和第一列后的(n-1)×(n-1)的子矩阵的行列式,M12是去除A的第一行和第二列后的(n-1)×(n-1)的子矩阵的行列式。

我们可以继续展开M11 和 M12 的行列式,直到展开到1×1 的子矩阵。

在展开的过程中,我们会发现只有b1 * c2 * ... *bn - 1 * an - 1 这一项才会保留下来。

通过这个过程,我们可以得到以下递推关系:det(A) = a1 * M11 - b1 * M12=a1*(a2*M21-b2*M22)-b1*(c2*M21-a2*M23)=a1*a2*M21-a1*b2*M22-b1*c2*M21+b1*a2*M23=a1*a2*M21-a1*b2*M22+a2*b1*M23-b1*c2*M21继续展开,我们得到:det(A) = a1 * a2 * M21 - a1 * b2 * (a3 * M31 - b3 * M32) + a2 * b1 * (c3 * M32 - a3 * M33) - b1 * c2 * M21-a1*b2*a3*M31+a1*b2*b3*M32-a2*b1*c3*M33这一过程可以继续下去,直到展开到最后一个(n-1)×(n-1) 子矩阵的行列式,此时我们只剩下最后一个主对角线上的元素an。

6.2三对角矩阵法

6.2三对角矩阵法

2
150
305.4.
3
150
319.3
4
150
333.2
5
150
347.0
V2=150 mol/h
平衡常数:
按(6-12)~(6-15)计算常数 A、B、C、D, 得到方程组的矩阵(6-16)的形式:
⎡−150
⎢ ⎢
100
⎢0
⎢ ⎢
0
⎢⎣ 0
244.5 − 344.5
100 0 0
0 325.5 525.5 200
j
Bi, j = −[Vj+1 + ∑ (Fm −Um −Wm ) −V1 + U j + (Vj +Wj )Ki, j ] m=1
Ci, j = Vj+1Ki, j+1 1 ≤ j ≤ N -1
Di, j = −Fj zi, j 1≤ j ≤ N
(6-12)
1≤ j ≤ N (6-13) (6-14) (6-15)
⎥⎢VN−1⎥ ⎢ γ N−2 ⎥
⎢⎣
αN-1 βN-1⎥⎦⎢⎣ VN ⎥⎦ ⎢⎣ γ N−1 ⎥⎦
(6-33)
逐级求解的通式:
Vj
=
γ
j−1
−α jVj−1 β j-1
⑥迭代终止标准:
(6-36)
ε T = ∑[(T j ) k − (T j ) k−1 ]2 ≤ 0.01N
(6-37) (6-38)
对于具有三对角线矩阵的线性方程组, 常用追赶法(或称托玛斯法)求解。该
法仍属高斯消元法。变换(6-16)第一行(式):
j=1:
Bi,1xi,1 + Ci,1xi,2 = Di,1 ,

三对角矩阵公式推导

三对角矩阵公式推导

三对角矩阵公式推导我们先定义一个三对角矩阵,记作A:\[A = \begin{bmatrix}a_1 & b_1 & 0 & 0 & \dots & 0 \\c_1 & a_2 & b_2 & 0 & \dots & 0 \\0 & c_2 & a_3 & b_3 & \dots & 0 \\\vdots & \vdots & \vdots & \ddots & \ddots & \vdots \\0 & \dots & 0 & c_{n-2} & a_{n-1} & b_{n-1} \\0 & \dots & 0 & 0 & c_{n-1} & a_n \\\end{bmatrix}\]我们想要找到一个矩阵B,使得A可以通过B的逆和B相乘得到。

如果我们能够找到相应的B,那么我们就可以得到A的逆矩阵。

通过观察,我们可以发现这个三对角矩阵有一些特点。

首先,对角线上的元素是$a_1, a_2, a_3, \dots, a_n$,即A的主对角线元素。

其次,A的上方对角线元素是$b_1, b_2, b_3, \dots,b_{n-1}$,下方对角线元素是$c_1, c_2, c_3, \dots, c_{n-1}$。

其他位置的元素都是零。

我们再来观察相应的矩阵B。

B的对角线上的元素是$b_1, b_2, b_3, \dots, b_{n-1}$,B的上方对角线元素是$c_1, c_2, c_3,\dots, c_{n-1}$,下方对角线元素是$c_1, c_2, c_3, \dots, c_{n-1}$。

其他位置的元素都是零。

根据矩阵乘法的定义,我们可以将矩阵B的逆矩阵写成如下形式:\[B^{-1} = \begin{bmatrix}d_1 & e_1 & 0 & 0 & \dots & 0 \\f_1 & d_2 & e_2 & 0 & \dots & 0 \\0 & f_2 & d_3 & e_3 & \dots & 0 \\\vdots & \vdots & \vdots & \ddots & \ddots & \vdots \\0 & \dots & 0 & f_{n-2} & d_{n-1} & e_{n-1} \\0 & \dots & 0 & 0 & f_{n-1} & d_n \\\end{bmatrix}\]要得到A的逆矩阵,我们需要通过B的逆和B相乘。

托马斯方法方程组

托马斯方法方程组

托马斯方法方程组
托马斯方法(Thomas decomposition)或追赶法是一种求解三对角线性
方程组的快速算法。

这种算法在特殊情况下,即对角占优的情况下,其复杂度可以与N同阶,为O(3N-2)。

三对角线性方程组是一类特殊的线性方程组,其系数矩阵是一个三对角矩阵。

这种方程组在物理学、工程学和经济学等领域有广泛应用。

托马斯方法的基本思想是利用三对角矩阵的特性,通过一系列迭代步骤求解方程组。

在使用托马斯方法时,需要先输入方程的个数,然后根据算法步骤逐步求解。

具体实现时,需要定义一个类,包含输入函数和求解函数等成员函数,以及相应的私有变量。

在输入函数中,需要读取方程的系数和常数项,并存储在相应的数组中。

在求解函数中,需要实现托马斯方法的算法步骤,包括初始化、迭代计算和输出结果等。

托马斯方法是一种高效的求解三对角线性方程组的算法,其优点在于具有较低的时间复杂度和空间复杂度。

然而,它也有一定的局限性,只能适用于对角占优的三对角线性方程组。

对于其他类型的线性方程组,可能需要使用其他算法进行求解。

三对角线矩阵法


精馏系统内的热量传递主要由潜热的变化引
起,由此也引起两相流率的变化,所以用热
量衡算方程,即H-方程来检验流率Vj是否正 确。
开始
规定设计变量 设定Tj、Vj初值 解三对角线矩阵方程,求xi,j
归一化xi,j
规定: 进料:Fj,zi,j,TFj,PFj 压力:pj 侧采:Uj,Wj 热负荷:Qj(除Q1和QN) 级数:N
2、Tj:(1)塔顶: 气相采出:露点温度 液相采出:泡点温度 气、液相混合:泡、露点之间的温度
(2)塔釜:釜液泡点温度 线性内插,得到中间各级温度初值。
二、归一化
由于求三对角矩阵方程时没有考虑S-eq.的约束, 必须对得到的xi,j归一化。
x
x=
i, j
i, j
C
Σx
i, j
i=1
三、泡点方程的计算 (实际就是S-eq.):
五、迭代收敛的标准
或更简单的:
泡点(BP)法 流率加和(SR)法
END
自学:等温流率加和法、同时校正法、内-外 法。 关注:非平衡级模型。
2、Tj:(1)塔顶: 气相采出:露点温度 液相采出:泡点温度 气、液相混合:泡、露点之间的温度
(2)塔釜:釜液泡点温度 线性内插,得到中间各级温度初值。
二、流率加和法计算新的Lj,Vj
由S-eq.导出流率加和方程:
L(jk +1)
=
C
L(jk

i =1
x
i
,
j
L(k )由物料衡算式(6-10)从Vj(k)算出:
i,j j-1 i,j-1 j+1 i,j+1 j i,j j j i,j j j i,j
E-eq.

计算n阶三对角阵

计算三对角矩阵行列式、特征值及特征向量姓名:郑佳文学院:机械工程专业:机械工程指导教师计算n 阶三对角阵n 2112112112A ⎡⎤-⎢⎥--⎢⎥⎢⎥=-⎢⎥-⎢⎥⎢⎥-⎣⎦(1) 行列式 (2)特征值 (3)特征向量。

解 计算行列式n 2112112112D ---=---将n210003010024001034132 (12311)00011n n D n n nn nn n---+==⨯⨯⨯⨯⨯=+---+(2)计算特征值n n n n-1n-2212121*********==2121212111121212I A D λλλλλλλλλλλλλλ-------=--------n n-1n-2=(2)D D D λ-- (1)将式(1)看作n n n -1n --x D =()D y D x D - (2)或 n n n-1n-2-yD =x ()D D yD - (3)其中{21x y xy λ+=-=为方程2(2)10ωλω--+=的两个解。

即x y ⎧⎪⎨⎪⎩由(2)式反复递推可得 22n n-1n-1n-2n-2n-321-xD =()()...()n D y D xD y D xD y D xD --=-==- (4)同理由(3)式得2n n 21-y D =x ()n D D y D -- (5) 又,2221(2)1(),2D x y xy D x yλ=--=+-==+ 因此n n-1-xD =n D y (6) n n-1-yD =x n D (7)所以当2n 1(2)40,>4或者0,这与det (A )10矛盾,故舍去ni i n λλλλ=--><=∏=+>。

当2(2)40λ--=时 n 1=0或者=4,而det (A )10ni i n λλλ==∏=+>,矛盾,故舍去。

所以当2(2)40, 即04λλ--<<<时,联立(6)(7)两式可得:11n =,n n y x D x yy x ++-≠-即11n n n D ++-=令n 0D =,则11n n ++=11n +=所以21,1,2,,k i n ek nπ+==22cos()sin()11k k i n n ππ=+++22cos()sin()11k k i n n ππ=-++将这两式的右端分母有理化,得到22cos()sin()1122cos()sin()11k k i n n k k i n n ππππ=+++=-++将以上两个公式相加,得到222(2)2(1cos())4cos ()11k k n n ππλ-=+=++因此,三对角矩阵n A 的所有特征值22cos(),1,2,,1k k k n n πλ=+=+计算特征向量设与特征值k λ相对应的的特征向量为Tk n k k x x x ),,()()(1)( =将 22c o s (),(1,2,,)1k k k n n πλ=+=+带入0)()(=-k n k x A I λ令()1sin ()1k k x n π=+()2(2)sin ()k 21(2+2cos()2)sin ()sin ()1n+111k k k k k n x n n πλπππ-+==-=++()32k 2k k 2-sin()+(2)sin ()-sin()+(2+2cos()2)sin ()n+11n+1n+11k k k 3k 4sin ()cos ()sin ()sin ()n+1n+1n+1n+1k k k k x n n πππππλππππ=-=-++=-= …归纳得()sin(),1,2,,1k jjk xj n n π==+二、计算n 阶三对角阵n b c a b c A a b c a b ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦(1)行列式 (2)特征值 (3)特征向量。

三对角行列式计算公式推导

三对角行列式计算公式推导三对角矩阵指的是只有主对角线和相邻的次对角线和超过它们一格的次对角线上有非零元素的方阵。

计算这种矩阵的行列式有一个特别简单的公式,即Cramer公式的变形:$$|A|=\prod_{i=1}^n a_i,$$其中$a_1, a_n$ 为矩阵 $A$ 的主对角线元素,$a_i, a_{i-1}$ 和 $a_{i+1}$ 分别为它的第 $i$ 个、第 $i-1$ 个、第$i+1$ 个次对角线上的元素。

我们可以采用数学归纳法来证明这个公式。

如果 $n=1$,那么$|A|=a_1$,这满足公式。

如果 $n=2$,那么 $|A|$ 的表达式可以用主对角线元素和第 $1$ 个次对角线元素表示,即:$$|A|=\left|\begin{matrix}a_1 & a_2 \\a_3 &a_4\end{matrix}\right|=a_1a_4-a_2a_3.$$根据公式可知,$|A|=a_1a_4-a_2a_3$,这满足公式。

假设$n=k$ 时公式成立,考虑 $n=k+1$ 的情况,即:$$|A|=\left|\begin{matrix}a_1 & a_2 & & & \\a_3 & a_4 & \ddots & & \\& \ddots & \ddots & \ddots & \\& & \ddots & a_{n-1} & a_n \\& & & a_{n+1} & a_{n+2}\end{matrix}\right|.$$将矩阵 $A$ 按行 $n$ 进行展开,可得:$$|A|=a_{n+1}\left|\begin{matrix}a_1 & a_2 & & & \\a_3 & a_4 & \ddots & & \\& \ddots & \ddots & \ddots & \\& & \ddots & a_{n-1} & a_n \\a_1/a_{n+1} & a_2/a_{n+1} & \cdots & a_{n-1}/a_{n+1} & 1 \end{matrix}\right|-a_n\left|\begin{matrix}a_1 & a_2 & & & \\a_3 & a_4 & \ddots & & \\& \ddots & \ddots & \ddots & \\& & \ddots & a_{n-1} & a_{n+1} \\a_1/a_n & a_2/a_n & \cdots & 1 & a_{n+1}/a_n\end{matrix}\right|.$$根据归纳假设,我们有:$$|A|=a_{n+1}\prod_{i=1}^{n} a_i-a_n\prod_{i=1}^{n-1} a_i,$$可见这满足公式。

分离过程-三对角线矩阵法

7. 汽相流率 Vj的计算
因为F1,V1,U1,L1已经确定,可用(5-17)式计算V2。
L j V j 1 Fm Gm U m V1
m 1
j
5 17 5 32
18
V2 L1 ( F1 U1 ) V1
5.3.2 泡点法(BP法)
为使用 H 方程计算各板的气相流率 Vj ,分别对 Lj-1,Lj 写出式( 5-17 )并代入 H 方程( 5-5 ),得到修 正的H方程: Lj-1
no 是否满足迭代收敛准则 yes
结束
*BP法计算框图*
14
5.3.2 泡点法(BP法)
1. 设计变量的规定:
① 各级的进料流率、组成、温度和压力; ② 各级的压力; ③ 各级的汽、液相侧线采出流率; ④ 除第一极和第N级之外各级的热负荷(注: 加热取正号,冷却取负号); ⑤ 总级数; ⑥ 泡点温度下的回流量(L1)和塔顶气相馏出物 流率(V1)。
塔底温度:取釜液的泡点温度。
16
5.3.2 泡点法(BP法)
3. 相平衡常数Ki,j的计算
⑴ 如果Ki,j=(T,P)时,根据各级温度和压力计算。 ⑵ 如果Ki,j=(T,P,xi,j,yi,j)时,在第一次迭代中用假 设为理想溶液的相平衡常数,在后面的迭代计算 中再把组成考虑进去。
4. xi,j的归一化
第五章 多组分多级分离的严格计算
5.1 平衡级的理论模型 5.2 逐级计算法 5.3 三对角线矩阵法

5.3.1 方程的解离方法和三对角线矩阵方程的 托玛斯解法 5.3.2 泡点法(BP法) 5.3.3 流率加和法(SR法)
1
5.3 三对角线矩阵法
三对角线距阵法 是最常用的多组分多级分离过
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三对角矩阵的快速算法
三对角矩阵是一种特殊的矩阵,其非零元素只在主对角线和其相邻的两条对角线上。

由于其特殊性,我们可以采用一些特殊的算法来加速其求解。

下面就介绍三对角矩阵的快速算法。

1. Thomas算法
Thomas算法是最常用的三对角矩阵求解算法。

该算法的基本思想是将原始矩阵转化为一个下三角矩阵和一个上三角矩阵的乘积形式,在此基础上使用迭代求解的方法。

具体实现过程如下:
设三对角矩阵为A,向量b为待求解的线性方程组右端项,向量x为解向量,则原始的线性方程组可以表示为:
Ax = b
将A分解为下三角矩阵L和上三角矩阵U的乘积形式:
则有:
令y = Ux,可以得到:
这是一个下三角矩阵和向量的乘积,可以使用前代法求解。

然后,再使用后代法求解Ux = y即可得到解向量x。

2. Sherman-Morrison算法
设当前矩阵为A,其逆矩阵为A-1,将A作出如下形式的修正:
A' = A + uvT
其中u和v是向量,T表示向量的转置。

则有:
A'-1 = A-1 - A-1uvTA-1 / (1 + vTA-1u)
将上式表示为如下形式:
显然,如果u和v分别为e1和en,即:
u = [1, 0, …, 0]T
这个式子就是Sherman-Morrison算法的核心推导。

然后,可以递归地使用这个式子进行修正即可。

3. Doolittle算法
Doolittle算法是一种用于求解三对角矩阵的LU分解的算法,与一般的LU分解算法类似,其也将矩阵分解为下三角矩阵L和上三角矩阵U的乘积形式。

总结
三对角矩阵是一种特殊的矩阵,其求解具有一些特殊性质,例如可以使用Thomas算法、Sherman-Morrison算法和Doolittle算法等算法进行快速求解。

由于其特殊性,这些算法都比一般的矩阵求解算法具有更高的效率,因此在实际应用中得到了广泛的应用。

相关文档
最新文档