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)

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值