高斯消元法求逆矩阵 matlab,高斯消元法与矩阵求逆

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

昨晚信息竞赛复习的内容,与矩阵求逆有点联系,所以发出来。

高斯消元法

对于n元1次方程组

a11*x1+a12*x2+a13*x3=c1

a21*x1+a22*x2+a23*x3=c2

a31*x1+a32*x2+a33*x3=c3

求解x1、x2、x3,可以进行如下操作

1)将系数与等式右侧常熟构造成一个矩阵,称为增广矩阵,如下

a11 a12 a13 c1

a21 a22 a23 c2

a31 a32 a33 c3

易知对每行数值同时进行加减乘除操作或者交换行顺序不会对结果造成影响,于是进行如下操作。

2)选取第一行,与其下每一行进行消元操作,使得 a21,a31变成0

3)选取第二行,与其下每一行进行消元操作,使得a32变成0

4)经过以上操作后,得到如下矩阵(成倒直角三角形)

a11 a12 a13 c1

0 a22' a23' c2'

0 0 a33' c3'

5)由最后一行开始向上求解x3,x2,x1

特殊情况:

使用高斯消元法消去系数时,要注意

如果选择第i行对其下进行消去操作时,aii不能为0,此时可以从i之后选择一行j,并与i交换(如果aji均为0,说明有个元可能有无数组解)

此外,当矩阵中出现类似下面的行时,说明无实数解:

0 0 0 c(c不等于0)

(即 0*x1+0*x2+0*x3=c)

实例:

2*x1 + 5*x2 + 4*x3 = 34

1*x1 + 3*x2 + 4*x3 = 23

2*x1 + 4*x2 + 2*x3 = 26

1)创建矩阵

2 5 4 34

1 3 4 23

2 4 2 26

2)第一行*0.5与第二行消元,第一行*1与第三行消元,得

2 5 4 34

0 -0.5 -2 -6

0 1 2 8

3)第二行*-2与第三行消元,得

2 5 4 34

0 -0.5 -2 -6

0 0 2 4

4)由上,解得

x1=3

x2=4

x3=2

矩阵求逆

按照矩阵相乘构建增广矩阵

按照增广矩阵求解

具体过程略

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高斯消元法是一种常用的解线性方程组和逆矩阵的方法。在Matlab中,可以使用inv函数来解矩阵的逆矩阵。下面是一个使用高斯消元法逆矩阵Matlab代码示例[^1]: ```matlab function inv_matrix = gauss_inverse(matrix) n = size(matrix, 1); augmented_matrix = [matrix, eye(n)]; for i = 1:n % 将当前列的主元素调整为非零值 if augmented_matrix(i, i) == 0 for j = i+1:n if augmented_matrix(j, i) ~= 0 augmented_matrix([i, j], :) = augmented_matrix([j, i], :); break; end end end % 将当前列的主元素变为1 augmented_matrix(i, :) = augmented_matrix(i, :) / augmented_matrix(i, i); % 将当前列的其他元素变为0 for j = 1:n if j ~= i augmented_matrix(j, :) = augmented_matrix(j, :) - augmented_matrix(j, i) * augmented_matrix(i, :); end end end inv_matrix = augmented_matrix(:, n+1:end); end % 测试代码 matrix = [1, 2, 3; 4, 5, 6; 7, 8, 10]; inv_matrix = gauss_inverse(matrix); disp(inv_matrix); ``` 上述代码定义了一个名为gauss_inverse的函数,该函数接受一个矩阵作为输入,并返回其逆矩阵。在测试代码中,我们定义了一个3阶方阵matrix,并调用gauss_inverse函数解其逆矩阵。最后,使用disp函数输出逆矩阵的结果。 需要注意的是,高斯消元法逆矩阵的过程中,如果某一列的主元素为0,则无法进行消元操作,表示该矩阵没有逆矩阵。在代码中,我们通过交换行的方式将主元素调整为非零值,以确保能够进行消元操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值