矩阵的乘法与利用矩阵求解线性方程组

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,所以无解。 

以上是关于矩阵的乘法与利用矩阵求解线性方程组的主要内容,如果未能解决你的问题,请参考以下文章

矩阵的乘法与利用矩阵求解线性方程组

如何运用matlab矩阵运算求解线性方程组

线性代数——矩阵与矩阵乘法

一元线性最小二乘法正规方程组的求解过程

线性方程组的迭代解法

计算机是怎么求解线性方程的(矩阵乘和求逆)