Gaussian Elimination和Gauss-Jordan method

Gaussian Elimination

高斯消元法希望选中第i行时,把i行下方的第i列元素变为0.

for i = 1 to n-1:	/*选中目标行,目标行第一个非0元是aii*/
	for j = i+1 to n:	/*目标行下方的行,第一个非0元是aji*/
		m=aji/aii	/*希望目标行乘上这个系数再由j行去减,把aji变为0*/
		for k = i to n+1/*第i列开始是非0元,一直把b也变换进去*/
			ajk = ajk - m*aik

( a 11 a 12 a 13 0 a 22 a 23 0 a 32 a 33 ) \begin{pmatrix} a_{11}&a_{12}&a_{13}\\0&a_{22}&a_{23}\\0&a_{32}&a_{33} \end{pmatrix} a1100a12a22a32a13a23a33
下一步就是把a32变为0

每一行操作次数解释
除法n-ii行下方每一行都算出一个m,一共n-i行
乘法(n-i)(n-i+1)选中的行n-i+1个元素,消去下方每一行都要乘1次,下方一共n-i行
加法/减法(n-i)(n-i+1)减每一行有n-i+1个元素,要减n-i次

i是从1到n-1,因为最后一行不需要化简。
乘除法总数: ∑ i = 1 n − 1 ( ( n − i ) + ( n − i ) ( n − i + 1 ) ) \sum\limits_{i=1}^{n-1}((n-i)+(n-i)(n-i+1)) i=1n1((ni)+(ni)(ni+1))
加减法总数: ∑ i = 1 n − 1 ( n − i ) ( n − i + 1 ) \sum\limits_{i=1}^{n-1}(n-i)(n-i+1) i=1n1(ni)(ni+1)

Gauss-Jordan method

和高斯法唯一的不同在于,把下方的元素化掉同时,把上方的元素也化掉。

for i = 1 to n:	/*选中一行,注意每一行都需要选一次*/
	for j = 1 to n:	/*选中的行帮助除它之外的所有行aij都变为0*/
		if(j==i): continue
		m=aji/aii
		for k = i to n+1:
			ajk = ajk - m*aik

( a 11 a 12 a 13 0 a 22 a 23 0 a 32 a 33 ) \begin{pmatrix} a_{11}&a_{12}&a_{13}\\0&a_{22}&a_{23}\\0&a_{32}&a_{33} \end{pmatrix} a1100a12a22a32a13a23a33
下一步就是把a12和a32变为0

每一行操作次数
除法n-1(每一行都需要算一个m)
乘法(n-i+1)(n-1)(每次要乘n-i+1个元素,要乘n-1次)
加法/减法(n-i+1)(n-1)(减每一行有n-i-1个元素,要减n-1次)

i是1到n,每一行都要算一次。
乘除法总数: ∑ i = 1 n ( ( n − 1 ) + ( n − 1 ) ( n − i + 1 ) ) \sum\limits_{i=1}^{n}((n-1)+(n-1)(n-i+1)) i=1n((n1)+(n1)(ni+1))
加减法总数: ∑ i = 1 n ( n − 1 ) ( n − i + 1 ) \sum\limits_{i=1}^{n}(n-1)(n-i+1) i=1n(n1)(ni+1)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值