1.求矩阵的秩
import numpy as np A = np.mat([ [1,2,1], [2,4,6], [3,3,2]],int) rank =
np.linalg.matrix_rank(A)
2.求解齐次线性方程组

齐次线性方程组要么有无穷多解,要么只有零解

对于AX=0,对A做SVD分解可得

由高等代数知识得,求解齐次线性方程组就是对系数矩阵A做SVD分解后,从最后一行向上选取出的n-r行向量的线性组合

这里的r是系数矩阵A的秩

如果没有记错的话,这个程序得自己写。。。
import numpy as np def simplify(ans): try: q = eval(input("decimal digit"))
type(q) == type(5) except: q = 5 for i in ans: Min = min([abs(c) for c in i])
ans[ans.index(i)] = [round(d/Min,q) for d in i] return ans def
homogeneous_linequationsolve(A): ans = [] rank = np.linalg.matrix_rank(A)
u,s,vt = np.linalg.svd(A) A = np.array(A) n = len(A[0]) vt = np.array(vt)[::-1]
if n-rank > 0: for i in range(0,n-rank): ans.append(vt[i]) else: return("only
null solution") ans = simplify(ans) return ans A =
np.mat([[2,1,3,7],[0,7,1,4],[0,0,1,3]]) print(homogeneous_linequationsolve(A))
print("over")
得到输出:
[[7.5, -1.0, -21.0, 7.0]]
那么:

方程的解就是
x = k1 * |7.5 -1 -21 7|
3.求解非齐次线性方程组

这个倒是很有现用的方法

为了解方程组

a = np.mat([[2, 4], [1, 3]]) b = np.mat([1, 1]).T x = np.linalg.solve(a, b)
print(x)
4.下期吧

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信