矩阵的乘法与利用矩阵求解线性方程组
Posted luffy5459
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矩阵的乘法与利用矩阵求解线性方程组相关的知识,希望对你有一定的参考价值。
矩阵的乘法定义:假定A=是一个m s的矩阵,B=是一个s n的矩阵,那么规定,矩阵A与矩阵B的乘积是一个m n的矩阵C=,其中, (i=1,2,...,m; j=1,2,...,n)
单看公式,可能理解有困难,我们直接上示例:
矩阵乘法示例1:
矩阵乘法示例2:
矩阵乘法示例3:
矩阵乘法示例4:
以上矩阵能够做乘法是因为他们的行和列正好满足:
A矩阵的列数=B矩阵的行数。
有一些矩阵就不满足这些条件,他们就不能做乘法,比如:
他们不满足上面的条件,2!=3。所以他们不能做乘法。
上面的示例,我们通过python编程,使用numpy库实现:
import numpy as np
A = np.array([[1,2,3]])
B = np.array([[4],[5],[6]])
C = np.matmul(A,B)
print(C)
print()
A = np.array([[1],[2],[3]])
B = np.array([[4,5,6]])
C = np.matmul(A,B)
print(C)
print()
A = np.array([[-2,4],[1,-2]])
B = np.array([[2,4],[-3,-6]])
C = np.matmul(A,B)
print(C)
print()
A = np.array([[1,0,0],[0,2,0],[0,0,3]])
B = np.array([[1,1,1],[1,1,1],[1,1,1]])
C = np.matmul(A,B)
print(C)
运行,打印结果:
=====
下面介绍矩阵变换在解线性方程组中的应用。
假定有如下方程组:
我们可以转换如下的矩阵:
其中,是系数矩阵,英文名为coefficient matrix。为常数项矩阵。
有时候,我们会把系数矩阵和常数项矩阵合并。
,这个矩阵叫增广矩阵,英文名为augmented matrix 。
这种矩阵,直接计算未知量,有一些困难,我们需要人为作一些操作,将它化简,有一种叫做高斯约尔当消元法,英文名为Gauss Jordan。
这种消元法其实就是我们最早解方程用的把方程进行系数相乘,相加,相减的办法。
可以考虑先消除x,这里先用第一行分别 乘以 4,7然后与第二行,第三行相减。
这个表达式里面可以使用第二行乘以 2 与 第三行作减法,消除y。
其实到这里,z已经解出来了,我们继续把z带入第二行,求出y=1,最后带入第一行,x=-2。
上面的过程,貌似跟矩阵没什么关系,都是方程组基本变换。
这个方程,用python语言结合numpy,scipy库可以计算出结果。
import numpy as np
from scipy.linalg import solve
A = np.array([[1,2,3],[4,5,6],[7,8,10]])
B = np.array([3,3,4])
C = solve(A,B)
print(C)
运行结果截图:
方程组也有无数解、无解的情况,无数解其实就是方程组最后化简,两条直线合并成了一条直线。无解就是两条直线不相交。关于无解其实就是最后化简会出现0=X 的情况,这里X是非0的任意值,这种情况是不成立的,比如0=1,所以无解。
以上是关于矩阵的乘法与利用矩阵求解线性方程组的主要内容,如果未能解决你的问题,请参考以下文章