python实现线性代数(1)

一.克莱姆法则(Cramer's Rule)

1.将线性方程组的每一个系数用向量来表示(系数向量),结果也表示为向量形式(常数项量)

2.将包含未知数的向量拼接在一起,得到一个矩阵(系数矩阵)

3.通过

np.linalg.solve(A,b)#A为系数矩阵,b为常数向量

来求解未知数

例:

x+y=10

2x+4y=28

import numpy as np 
A = np.array([[1, 1],
              [2, 4]])     # 将系数所有向量拼在一起
b = np.array([10,
              28])  # 常数向量
x = np.linalg.solve(A,b)   # 解线性方程组
print("线性方程组的解为:\n",x)
线性方程组的解为:
 [6. 4.]

判断一个方程是否有唯一解的两条法则:

对于多元方程组,有多少未知数,就需要多少方程。

用线性相关来判断方程的有效性

方程有效性的判断:

A = np.array([[1, 1, 1],
              [2, 4, 2],
              [2, 2, 2]])

np.linalg.det(A) # 计算方阵A的行列式
print("A的行列式的值为:",np.linalg.det(A))

B = np.array([[1,1,1,1],
              [1,2,0,0],
              [1,0,3,0],
              [1,0,0,4]])
B_det = np.linalg.det(B)
print("B的行列式的值为:",B_det)

# B = np.array([[1,1,1,1],
#               [1,2,0,0],
#               [1,0,0,4]])# 你可以尝试用非方阵计算行列式,压根没法算!
A的行列式的值为: 0.0
B的行列式的值为: -2.0

注意:一定要是方阵才能求行列式!

判断方程组:

  1. 未知数个数等于方程的个数
  2. 系数行列式|A|≠0|A|≠0 则这个方程组是有唯一解的.

你可能感兴趣的:(线性代数,python)