脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python求矩阵的范数和行列式

Python求矩阵的范数和行列式

2023-04-10 15:36微小冷 Python

这篇文章主要介绍了Python求矩阵的范数和行列式,文章中有详细的代码实例,感兴趣的同学可以参考阅读

scipy.linalg的函数中,往往会提供两种参数,其一是check_finite,当为True时将进行有限检查,另一类是overwrite_xxxx,表示xxxx在计算过程中是否可以被覆写。简洁起见,后文中说a提供覆写开关,就表示存在一个参数overwrite_a,当其为True时,a允许计算过程中被覆写;若说提供有限检查开关,则代表提供check_finite参数。

范数

scipy.linalg中提供了函数norm用来求范数,其定义为

?
1
norm(a, ord=None, axis=None, keepdims=False, check_finite=True)

其中ord用于声明范数的阶 

ord 矩阵范数 向量范数
None 弗罗贝尼乌斯范数 2-范数
'fro' 弗罗贝尼乌斯范数 -
'nuc' 核范数 -
inf max(sum(abs(a), axis=1)) max ⁡ ( ∣ a ∣ ) 
-inf min(sum(abs(a), axis=1)) min ⁡ ( ∣ a ∣ ) 
0 - sum(a!=0)
1 max(sum(abs(a), axis=0))  
-1 min(sum(abs(a), axis=0))  
2 2-范数(最大奇异值)  
-2 最小奇异值

 若a为向量,若ord为非零整数,记作n nn,设a i a_iai​为矩阵a aa中的元素,则矩阵的n nn范数为

Python求矩阵的范数和行列式

核范数又称“迹范数” (trace norm),表示矩阵的所有奇异值之和。

Frobenius范数可定义为

Python求矩阵的范数和行列式

 

其实质是向量的2-范数在矩阵中的自然推广。

除了scipy.linalg之外,numpy.linalg中也提供了norm,其参数为

?
1
norm(x, ord=None, axis=None, keepdims=False)

其中order的可选参数与scipy.linalg中的norm函数相同。

行列式

scipy.linalg中,行列式函数为det,其定义非常简单,除了待求矩阵a之外,就只有a的覆写开关和有限检查。

示例如下

?
1
2
3
4
5
6
7
8
import numpy as np
from scipy import linalg
a = np.array([[1,2,3], [4,5,6], [7,8,9]])
linalg.det(a)
# 0.0
a = np.array([[0,2,3], [4,5,6], [7,8,9]])
linalg.det(a)
# 3.0

scipy.linalg不提供trace函数,但是numpy提供,其定义为

?
1
umpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None)

其中

  • offset为偏移量,表示相对于主对角线的偏移
  • axis1, axis2 表示坐标轴
  • dtype 用于调整输出值的数据类型
?
1
2
3
4
5
6
7
>>> x = np.random.rand(3,3)
>>> print(x)
[[0.26832187 0.64615363 0.09006217]
 [0.63106319 0.65573765 0.35842304]
 [0.66629322 0.16999836 0.92357658]]
>>> np.trace(x)
1.8476361016546932

到此这篇关于Python求矩阵的范数和行列式的文章就介绍到这了,更多相关Python求矩阵范数和行列式内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/m0_37816922/article/details/129864009

延伸 · 阅读

精彩推荐
  • Python时间序列预测中的数据滑窗操作实例(python实现)

    时间序列预测中的数据滑窗操作实例(python实现)

    滑动窗口操作非常普遍,非常有用,它们也很容易在Python中实现,下面这篇文章主要给大家介绍了关于时间序列预测中的数据滑窗操作python实现的相关资料,需要...

    Chace_B7032022-10-27
  • Pythonpandas 实现分组后取第N行

    pandas 实现分组后取第N行

    这篇文章主要介绍了pandas 实现分组后取第N行的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    NoOne-csdn7392021-09-28
  • Pythonpython中的unittest框架实例详解

    python中的unittest框架实例详解

    在本篇文章里小编给大家分享的是一篇关于python中的unittest框架实例详解内容,对此有兴趣的朋友们可以学习下。...

    小妮浅浅11482021-09-02
  • Pythonpython中取整数的几种方法

    python中取整数的几种方法

    这篇文章主要给大家分享python中取整数的几种方法技巧,文章将围绕python取整数的详细的相关资料展开内容,需要的朋友可以参考一下,希望对你有所帮助...

    小程序员ol6852022-02-25
  • PythonEM算法的python实现的方法步骤

    EM算法的python实现的方法步骤

    本篇文章主要介绍了EM算法的python实现的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看 ...

    LilyNothing7642020-12-30
  • Python解决Python3.7.0 SSL低版本导致Pip无法使用问题

    解决Python3.7.0 SSL低版本导致Pip无法使用问题

    这篇文章主要介绍了解决Python3.7.0 SSL低版本导致Pip无法使用问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    polkabobo4912020-09-04
  • Python详解Python中的日志模块logging

    详解Python中的日志模块logging

    这篇文章主要介绍了Python中的日志模块logging,包括Python下的日志级别以及模块内常用方法的使用,需要的朋友可以参考下 ...

    DarkBull11172020-07-16
  • Python使用Python Pandas处理亿级数据的方法

    使用Python Pandas处理亿级数据的方法

    这篇文章主要介绍了使用Python Pandas处理亿级数据的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    frchen7942021-07-19