matlab 线性方程 lu分解法_数值计算笔记-LU分解

eb0bacc77fde70033c7b769745d1ebc6.png

补充

  • 矩阵算子范数:设
    ,对于某种给定的向量范数
    .矩阵的算子范数为
  • 矩阵1-范数:
  • 矩阵2-范数:
  • 矩阵
    -范数:

1.问题条件数:解方程组

,已知
,求

(1)

有扰动变成
,则
;下证

(2)A右扰动,变成

,可证

(3)定理:上述条件数统称为矩阵的条件数,记为cond(A),可证

(4)条件数有如下性质

  • 若A为非奇异矩阵

  • 若D为对角矩阵:
  • 采用2-范数:
  • 若Q为正交矩阵

2.基本高斯消元(行变换不能交换两行)

(1)算法:消去过程

输入:A,

输出:上三角矩阵A,改变后的

for k = 1 to n-1
	for i = k + 1 to n
		c = - a_ik / a_kk
		for j = k + 1 to n	//该循环即为初等行变换,
			a_ij = a_ij + c * a_kj //将矩阵的一行乘c,加到另一行上
		end
		b_i = b_i = c * b_k
	end
end

:这里采用原地工作的方式,上三角矩阵U = 计算得到的A

(2)带回过程(解方程

输入:

输出:

for i = n to 1
	x_i = b_i
	for j = n to i + 1
		x_i = x_i - u_ij * x_j
	end
	x_i = x_i / u_ii
end

  • 其中计算
    的公式为
  • 上面两个算法要求A在高斯化简得过程中不会出现主元
    的现象

3.高斯-若当消元法

思路:高斯若当消元法其实没有什么改变,仅仅是将

矩阵A化简为单位矩阵,在这里以求单位矩阵的过程举例

输入:A,B = I

输出:

for k = 1 to n
	for j = k + 1 to n	//对矩阵A的行归一化
		a_kj = a_kj / a_kk
	end
	for j = 1 to k	//对矩阵B进行相同的操作
		b_kj = b_kj / a_kk
	end
	for i = 1 to n (i != k)
		for j = k + 1 to n	// 对A进行行变化
			a_ij = a_ij - a_ik * a_kj
		end
		for j = 1 to k	//对B进行相同的行变化
			b_ij = b_ij - a_ik * b_kj
		end
	end
end

注:同样要求在高斯消元过程中

不能为0

4.消去矩阵

有下面的形式,则称
为第k类n阶消去矩阵,
称为消去过程的乘数

性质

  • ,可以看作初等矩阵经过n - k次行变换的结果
  • 可以看作A在进行高斯消元时,到第k行的行变换过程
  • 消去矩阵为单位下三角矩阵,且为非奇异矩阵
  • 消去矩阵
    的逆
  • 也为单位下三角矩阵,他们的乘积为每个矩阵元素的”并“

5.LU分解

推导:经过行列变化

,A变换成上三角矩阵U,化简方程得到

定理

存在唯一的LU分解的充要条件为,高斯消元中主元

算法:高斯消去过程进行LU分解

输入:A

输出:A(其中包含了L,U矩阵)

for k = 1 to n - 1
	for i = k + 1 to n
		a_ik = a_ik / a_kk //计算L中元素并储存在A中
		for j = k + 1 to n
			a_ij = a_ij - a_ik * a_kj
		end
	end
end

直接LU分解推导

(1)A第1行:

(2)A第1列:

(3)A第k行:

(4)A第k列:

算法:LU直接分解法

输入:A,n

输出:A(L,U矩阵储存在A中)

for k = 1 to n - 1
	for i = k + 1 to n	//这两个嵌套循环计算L矩阵第k列
		for j = 1 to n
			a_ik = a_ik - a_jk * a_ij
		end
		a_ik = a_ik / a_kk
	end
	for j = k + 1 to n	//计算U矩阵的第k + 1列
		for i = 1 to k
			a_k+1,j = a_k+1, j - a_k+1,i * a_ij
		end
	end
end

5.LU分解用途

解方程

其中

单位下三角方程组算法求解
用高斯消元代回算法求解

单位下三角方程组求解

输入:单位下三角矩阵L,

输出:

for i = 1 to n
	y_i = b_i
	for j = 1 to i - 1
		y_i = y_i - l_{ij} * y_j
	end
end

注:

  • 实际计算公式为

  • 用LU分解计算多个方程组
    时,只用分解一次复杂度为
    ,之后每次计算复杂度都为
    ;但是高斯消元每次计算都有
    的复杂度

6.基本高斯消元的充要条件

高斯消元过程中不出现
的充要条件为A的前n - 1个顺序主子式不为0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值