python矩阵计算器_Python 实现线性代数计算器

计算逆序数,运用O(N^2)的算法计算

# 逆序数计算

def reversePairs(nums):

"""

计算数组的逆序数,输入数组,返回逆序数

"""

res, n= 0, len(nums)

for i in range(1,n):

for j in range(0,i):

if nums[j]>nums[i]:

res +=1

return res

nums = [4,6,1,5,2,3]

res = reversePairs(nums)

print(res)

任意数字行列式的计算

# 数字行列式计算

def determinant(matrix):

"""

计算numpy矩阵的行列式,输入numpy矩阵,返回行列式的值

"""

return np.linalg.det(matrix)

A = np.array([(3,-1,0,7),(1,0,1,5),(2,3,-3,1),(0,0,1,-2)],dtype=np.int32)

res = determinant(A)

print(res)

字母行列式,使用sympy符号计算功能

# 符号行列式的计算

a = sym.symbols('a')

b = sym.symbols('b')

c = sym.symbols('c')

d = sym.symbols('d')

A = sym.Matrix(

[[a,1,0,0],[-1,b,1,0],[0,-1,c,1],[0,0,-1,d]]

)

A

sym.det(A)

计算矩阵的秩,内部使用SVD分解算法

# 计算数字矩阵的秩

def rank(matrix):

"""

计算numpy矩阵的秩,输入numpy矩阵,返回矩阵的秩

"""

return np.linalg.matrix_rank(matrix)

A = np.array([(2,-1,2),(4,0,2),(0,-3,3)],dtype=np.int32)

res = rank(A)

print(res)

计算矩阵的逆矩阵

# 计算矩阵的逆矩阵

def inverse(matrix):

"""

计算numpy矩阵的逆,输入numpy矩阵,返回矩阵的逆矩阵

"""

return np.linalg.inv(matrix)

A = np.array([(0,0,0,2),(1,2,0,0),(3,4,0,0),(0,0,5,0)],dtype=np.int32)

res = inverse(A)

print(res)

你可能感兴趣的:(python矩阵计算器)