python生成特殊矩阵:循环矩阵、汉克尔矩阵、费德勒矩阵……

这篇具有很好参考价值的文章主要介绍了python生成特殊矩阵:循环矩阵、汉克尔矩阵、费德勒矩阵……。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

scipy.linalg中提供了一系列特殊矩阵的生成方法,包括循环矩阵、汉克尔矩阵、费德勒矩阵、阿达马矩阵、莱斯利矩阵、希尔伯特及其逆矩阵、帕斯卡及其逆矩阵等。

循环矩阵

现有一向量 c = [ c 0 , c 1 , ⋯   , c n ] c=[c_0, c_1,\cdots,c_n] c=[c0,c1,,cn],则circulant(c)返回一个矩阵,记作 A A A,矩阵第 i i i行第 j j j列元素为 a i j a_{ij} aij,则 a i j = c mod ⁡ ( i − j , n ) a_{ij} = c_{\operatorname{mod}(i-j, n)} aij=cmod(ij,n)

A = circulant([1,2,3])
print(A)
'''
[[1 3 2]
 [2 1 3]
 [3 2 1]]
'''

汉克尔矩阵

汉克尔矩阵和循环矩阵十分相似,不过在向左移位的过程中,hankel(c, r=None)在末尾直接赋0。若r不为None,则通过r对末位进行赋值

print(hankel([1,2,3,4], [0,7,7,8,9]))
'''
[[1 2 3 4 7]
 [2 3 4 7 7]
 [3 4 7 7 8]
 [4 7 7 8 9]]
'''

费德勒矩阵

现有一向量 a = [ a 0 , a 1 , ⋯   , a n ] a=[a_0, a_1,\cdots,a_n] a=[a0,a1,,an],则fiedler(a)返回一个矩阵,记作 F F F,设 F F F i i i行第 j j j列元素为 f i j f_{ij} fij,则 f i j = ∣ a i − a j ∣ f_{ij}=\vert a_i-a_j\vert fij=aiaj,所以显而易见,其对角元素均为0。

F = fiedler([1,2,4,8,16])
print(F)
'''
[[ 0  1  3  7 15]
 [ 1  0  2  6 14]
 [ 3  2  0  4 12]
 [ 7  6  4  0  8]
 [15 14 12  8  0]]
'''

阿达马矩阵

阿达马矩阵的每个元素都是 ± 1 \pm1 ±1,每行都互相正交,常用于纠错码。在scipy.linalg中,hadamard(n, dtype)根据n来生成标准的 n × n n\times n n×n阿达马矩阵,需要注意 n n n必须为偶数,dtype为可选参数,用于指明矩阵的数据类型。

print(hadamard(4))
'''
[[ 1  1  1  1]
 [ 1 -1  1 -1]
 [ 1  1 -1 -1]
 [ 1 -1 -1  1]]
'''

莱斯利矩阵

leslie(f, s),其输入 f f f s s s两个向量,输出矩阵的形式为

[ f 1 f 2 ⋯ f m − 1 f m s 1 0 ⋯ 0 0 0 s 2 ⋯ 0 0 ⋮ ⋮ ⋮ ⋮ 0 0 ⋯ s m − 1 0 ] \begin{bmatrix} f_1&f_2&\cdots&f_{m-1}&f_m\\ s_1&0&\cdots&0&0\\ 0&s_2&\cdots&0&0\\ \vdots&\vdots&&\vdots&\vdots\\ 0&0&\cdots&s_{m-1}&0 \end{bmatrix} f1s100f20s20fm100sm1fm000

print(leslie([0.1, 2.0, 1.0, 0.1], [0.2, 0.8, 0.7]))
'''
[[0.1 2.  1.  0.1]
 [0.2 0.  0.  0. ]
 [0.  0.8 0.  0. ]
 [0.  0.  0.7 0. ]]
'''

希尔伯特及其逆矩阵

hilbert(n)返回一个 n × n n\times n n×n矩阵 H H H,第 i i i行第 j j j列元素 h i j = 1 i + j + 1 h_{ij}=\frac{1}{i+j+1} hij=i+j+11

print(hilbert(3))
'''
[[1.         0.5        0.33333333]
 [0.5        0.33333333 0.25      ]
 [0.33333333 0.25       0.2       ]]
'''

invhilbert(n, exact=False)可生成 n × n n\times n n×n希尔伯特矩阵的逆矩阵,当exactFalse时,返回np.float64类型矩阵;否则返回np.int64类型。

帕斯卡及其逆矩阵

帕斯卡矩阵存在一个递推关系,即 a i j = a i − 1 , j + a i , j − 1 a_{ij}=a_{i-1,j}+a{i,j-1} aij=ai1,j+ai,j1,且 a i 0 = 1 , a 0 j = 1 a_{i0}=1,a_{0j}=1 ai0=1a0j=1,从形状上看就是倒过来的帕斯卡三角。在pascal(n, kind, exact)函数中,kind可选symmetric, lower,upper,分别表示对称矩阵、下三角、上三角矩阵,默认symmetric

print(pascal(4))
'''
[[ 1  1  1  1]
 [ 1  2  3  4]
 [ 1  3  6 10]
 [ 1  4 10 20]]
'''

invpascal可生成逆帕斯卡矩阵,其参数与pascal相同。文章来源地址https://www.toymoban.com/news/detail-641484.html

到了这里,关于python生成特殊矩阵:循环矩阵、汉克尔矩阵、费德勒矩阵……的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用百度文心一言AI大模型生成脸书、哈佛大学、迈克尔·桑德尔和梅丽尔·斯特里普简介

    Facebook(脸书)是美国的一个社交网络服务网站,创立于2004年2月4日,总部位于美国加利福尼亚州门洛帕克。 Facebook是全球排名领先的社交网络,2019年10月23日, 2019《财富》未来50强榜单公布,Facebook排名第39。 哈佛大学(Harvard University),简称“哈佛”,位于美国马萨诸塞州

    2024年02月16日
    浏览(49)
  • 特殊的矩阵与特殊的矩阵关系———实对称、正定、对角、零矩阵

    1、实对称矩阵 定义:都是实数,且 性质:  (1)可以用特征值来求A的大小 (2)可以得到A的秩 (3) 必定可以相似对角化 运用: 与实对称矩阵A合同的矩阵B,必定是实对称矩阵,这一性质可以用来排除某些选项 2、对角矩阵 定义:只有主对角线上有元素的矩阵 性质: (

    2024年02月11日
    浏览(45)
  • 【数据结构和算法】--队列的特殊结构-循环队列

    循环队列是队列的一种特殊结构,它的 长度是固定的 k ,同样是 先进先出 ,理论结构是 首尾相连的环形循环结构 。其理论结构大致如下: 具体结构描述可以参考 LeetCode : 622. 设计循环队列的题目要求,大致如下: 设计你的循环队列实现。 循环队列是一种 线性数据结构 ,

    2024年02月04日
    浏览(45)
  • Python生成对角矩阵和对角块矩阵

    scipy中的函数 在 scipy.linalg 中,通过 tri(N, M=None, k=0, dtype=None) 可生成 N × M Ntimes M N × M 对角矩阵,若 M=None ,则 M M M 默认为 N N N 。 k 表示矩阵中用1填充的次对角线个数。 在 numpy 中也提供了多种对角矩阵生成函数,包括 diag , diagflat , tri , tril , triu 等, numpy.diagflat diagflat 用于

    2024年02月01日
    浏览(46)
  • 矩阵理论| 特殊矩阵:正定矩阵

    实数域中,满足 x T A x 0 ( x ≠ 0 ) mathbf{x}^{T} boldsymbol{A} mathbf{x}0 quad(mathbf{x}neq 0) x T A x 0 ( x  = 0 ) 的矩阵 A boldsymbol{A} A 就是正定矩阵; 在复数域,满足 x H A x 0 ( x ≠ 0 ) mathbf{x}^{H} boldsymbol{A} mathbf{x}0 quad(mathbf{x}neq 0) x H A x 0 ( x  = 0 ) 的矩阵 A boldsymbol{A} A 就是正定矩

    2024年02月11日
    浏览(46)
  • 编写程序,输入一个正整数n,输入n个数,生成一个n*n的矩阵。其中矩阵中第1行是输入的n个数,以后每一行的内容都是上一行循环左移一个元素构成的。

    假设n=5,输入的5个数为2、5、8、4、9,则形成的矩阵为: 2 5 8 4 9 5 8 4 9 2 8 4 9 2 5 4 9 2 5 8 9 2 5 8 4 直接将输入的数储存为数列的第一行: 在循环时,每行的最后一个数是上一行的第一个数,与之前的规律不同,要单独写: 完整的代码:

    2024年02月12日
    浏览(50)
  • 矩阵理论| 特殊矩阵:Householder矩阵 / 镜射矩阵

    由来:镜射变换 给定 镜射超平面,其法向量为 v bold v v ( ∥ v ∥ = 1 |bold v|=1 ∥ v ∥ = 1 ) 对于任意向量 x bold x x ,其镜射变换后的向量为 x − 2 v ( v T x ) = ( I − 2 v v T ) x mathbf{x}-2mathbf{v}(mathbf{v}^Tmathbf{x})=(I-2mathbf{v}mathbf{v}^T)mathbf{x} x − 2 v ( v T x ) = ( I − 2 v v T ) x (

    2024年02月09日
    浏览(43)
  • 特殊矩阵是指在某些特定场合下,其元素具有一定的特殊规律的矩阵

    特殊矩阵是指在某些特定场合下,其元素具有一定的特殊规律的矩阵。特殊矩阵包括对角矩阵、数量矩阵、三角矩阵、正交矩阵等等。下面我会列举几种常见的特殊矩阵及其特点: 对角矩阵:除了主对角线上的元素外,其他元素都为零的矩阵称为对角矩阵。对角矩阵的运算性

    2024年02月03日
    浏览(40)
  • 矩阵理论| 特殊矩阵:Hermite矩阵/共轭对称矩阵

    Hermite矩阵是复数域上的“对称矩阵” Hermite矩阵性质 其性质 与实对称矩阵基本一致 : 实数特征值; 有一套正交的特征向量(各个特征子空间正交+代数重数=几何重数) 此外,Hermite矩阵也是复正定矩阵的前提(就如实数域中对称矩阵是正定矩阵的前提): A boldsymbol{A} A 为

    2024年02月06日
    浏览(53)
  • 矩阵理论| 特殊矩阵:酉矩阵、旋转与镜射

    复数域的“正交矩阵”就是酉矩阵。酉矩阵的列向量组为一组标准正交基,因而 酉矩阵 U U U 满足 U H U = U U H = I U^HU=UU^H=I U H U = U U H = I 酉矩阵出现于许多分解中: SVD( A = U Σ V H A=USigma V^H A = U Σ V H )、矩阵三角化的 Schur 定理( A = A = U T U H A= A=UTU^H A = A = U T U H , T T T 为上三

    2024年02月07日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包