文章目录

  • 简介
  • matmul_toeplitz
  • solve_toeplitz

简介

T形矩阵,即托普利兹矩阵,其主对角线上的元素相等,平行于主对角线的线上的元素也相等;矩阵中的各元素关于次对角线对称,即T型矩阵为次对称矩阵。

scipy.linalg中,可通过toeplitz函数来创建T形矩阵

import numpy as np
import scipy.linalg as slm = 10             # 中心项索引
d = np.arange(1, 2*(m+1))
d2 = d[::-1]T = sl.toeplitz(d[m:], d2[m:])
print(T)

结果为

[ 11 10 9 8 7 6 5 4 3 2 1 12 11 10 9 8 7 6 5 4 3 2 13 12 11 10 9 8 7 6 5 4 3 14 13 12 11 10 9 8 7 6 5 4 15 14 13 12 11 10 9 8 7 6 5 16 15 14 13 12 11 10 9 8 7 6 17 16 15 14 13 12 11 10 9 8 7 18 17 16 15 14 13 12 11 10 9 8 19 18 17 16 15 14 13 12 11 10 9 20 19 18 17 16 15 14 13 12 11 10 21 20 19 18 17 16 15 14 13 12 11 ] \begin{bmatrix} 11&10& 9& 8& 7& 6& 5& 4& 3& 2& 1\\ 12&11&10& 9& 8& 7& 6& 5& 4& 3& 2\\ 13&12&11&10& 9& 8& 7& 6& 5& 4& 3\\ 14&13&12&11&10& 9& 8& 7& 6& 5& 4\\ 15&14&13&12&11&10& 9& 8& 7& 6& 5\\ 16&15&14&13&12&11&10& 9& 8& 7& 6\\ 17&16&15&14&13&12&11&10& 9& 8& 7\\ 18&17&16&15&14&13&12&11&10& 9& 8\\ 19&18&17&16&15&14&13&12&11&10& 9\\ 20&19&18&17&16&15&14&13&12&11&10\\ 21&20&19&18&17&16&15&14&13&12&11\\ \end{bmatrix} ​1112131415161718192021​1011121314151617181920​910111213141516171819​89101112131415161718​7891011121314151617​678910111213141516​56789101112131415​4567891011121314​345678910111213​23456789101112​1234567891011​ ​

可以将其绘制出来

import matplotlib.pyplot as plt
plt.imshow(t/21)
plt.show()

matmul_toeplitz

由于T型矩阵的特殊形态,所以在解决一些问题时,往往有更加便捷的方法。scipy为T形矩阵提供了两个特殊的函数,分别用于矩阵乘法和 T x = − r Tx=-r Tx=−r问题的求解。

其中,matmul_toeplitz为矩阵乘法函数

import scipy.linalg as sl
import numpy as npc = np.array([1, 3, 6, 10])
r = np.array([1, -1, -2, -3])
b = np.array([1, 2, 2, 5])
T = sl.toeplitz(c,r)np.random.seed(42)
xs = np.random.rand(4)
print(xs)
# array([0.37454012, 0.95071431, 0.73199394, 0.59865848])print(T@xs)
# array([-51.17958147, -41.08476258, -29.59336213,  -9.54874811])
print(matmul_toeplitz((c,r), xs))
# array([-51.17958147, -41.08476258, -29.59336213,  -9.54874811])

solve_toeplitz

对于形如 T x = − r Tx=-r Tx=−r这种问题,其中 T T T为T形矩阵, r r r为已知量,可通过Levinson-Durbin算法对方程进行求解。

scipy.linalg中,solve_toeplitz函数实现了这个算法,其输入参数主要是c_or_crx,其中c_or_r是一个元组,表示T的第一列和第一行。此外还有一个参数是有限校验了。

下面做一下测试

s = T@xs
c, r = np.arange(11,22), np.arange(11,0,-1)
sl.solve_toeplitz((c,r), s)
# array([0.37454012, 0.95071431, 0.73199394, 0.59865848])

这个值与xs完全相同。

Python求解T形矩阵(toeplitz矩阵)相关推荐

  1. Newton迭代法求解Toeplitz矩阵逆的程序

    说明: 迭代法的收敛性和矩阵的条件数相关,条件数大于1K肯定不收敛,小于100肯定收敛 100--1000则要适当选择截断的小量,采用迭代法的另一种多参数调用方式 程序清单: %%%%%%%%%%%% ...

  2. python 生成 Toeplitz 矩阵

    python 生成 Toeplitz 矩阵 首先导入必要的依赖文件 import numpy as np from scipy.linalg import toeplitz 明确要实现的功能 Toep ...

  3. Levinson-Durbin算法原理推导(Hermitian Toeplitz矩阵,包括实数和复数情况)

    先明确Toeplitz矩阵,Hermitian Toeplitz矩阵 一些有用的补充知识 知道以上这些知识,我们终于可以开始求解方程了 明确Levinson-Durbin算法要解决的问题 充分利用已知 ...

  4. 半正定Toeplitz矩阵的范德蒙德分解

    半正定Toeplitz矩阵的范德蒙德分解 Toeplitz矩阵的定义:Matrices whose entries are constant along each diagonal are calle ...

  5. python 怎么取对数_概率矩阵分解(PMF)及MovieLens上的Python代码

    首先对Probabilistic Matrix Factorization这篇论文的核心公式进行讲解和推导:然后用Python代码在Movielens数据集上进行测试实验. 一. 背景知识 文中作者提 ...

  6. Toeplitz 矩阵对角化

    Toeplitz 矩阵是一种比较特殊的矩阵:其中任何一条对角线的元素取相同的值,即 An=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢a0a1a2⋮ana−1a0a1⋮an−1a−2a−1a0⋱⋯⋯⋯⋱⋱a1a−na−n+ ...

  7. python将txt文件转化为矩阵_python 读文件,然后转化为矩阵的实例

    代码流程: 1. 从文件中读入数据. 2. 将数据转化成矩阵的形式. 3. 对于矩阵进行处理. 具体的python代码如下: - 文件路径需要设置正确. - 字符串处理. - 字符串数组到 整型数组的 ...

  8. 【Python学习笔记】多个矩阵点乘和叉乘

    [Python学习笔记]多个矩阵点乘和叉乘 一.定义 二.代码实现 一.定义 点乘,对应元素相乘,点乘对象的行数必须相等,且前者的列数必须与后者相等,或为1,具有广播机制. 叉乘,前者的列数必须和后者 ...

  9. 矩阵与矩阵相乘python代码实现

    为了更加直观的感受矩阵与矩阵是怎么相乘的,我先来写一个简单的公式理解一下: 假设有两个矩阵分别是A和B A的维数是3*4,B的维数是4*2,那么我们相乘后变为3*2的矩阵 这其中的数学原理是A的第一行 ...

最新文章

  1. 【网络流】解题报告:luogu P2740 [USACO4.2]草地排水Drainage Ditches(Edmonds-Karp增广路,最大流模板)
  2. 工厂方法模式与IoC/DI
  3. 为什么要在Java中使用Unchecked异常而不是Checked异常
  4. tomcat如何查找请求资源的?
  5. 教你玩转CSS 下拉菜单
  6. LeetCode 1108. IP 地址无效化
  7. 北京联通光猫 F427 路由改桥接的方法
  8. oc语言学习之基础知识点介绍(三):类方法、封装以及继承的介绍
  9. era5数据内容说明_接口测试:A04_HttpRunner通用_02_提取数据_01_extract关键字
  10. idm chrome扩展被阻止解决办法
  11. 荣耀8鸿蒙刷机,华为荣耀平板s8-701w刷机记(示例代码)
  12. HFSS - 圆形双馈微带天线
  13. 一个UE4崩溃问题以及解决方案
  14. [FSOD][笔记]Context-Transformer: Tackling Object Confusion for Few-Shot Detection(AAAI 2020)
  15. 数学连乘和累加运算符号_3,7,5之间加数学运算符号使结果等于8?
  16. system.data.oracleclient
  17. 【转载】华为荣耀V9手机如何设置WiFi热点共享
  18. 怎么把csdn博客白色的代码样式改成黑色且有个复制按钮的样式
  19. 在Kali中 利用工具Fluxion渗透wpa/wpa2加密WiFi 详细步骤(小白适用) 2020.1
  20. 三个和尚没水喝--责任感与团队意识

热门文章

  1. 一枚程序猿的MacBook M1详细体验报告
  2. IBM V7000存储Mdisk磁盘掉线数据恢复_服务器数据恢复
  3. 六十星系之20天机独坐子午
  4. 计算机在工作中的表现英语回答,外企英语面试常用表达-12个方面总结.doc
  5. linux会话空闲无法关机,解决linux的”turn off swap”无法关机问题
  6. 马化腾:办公用QQ休闲用微信[Dream Catchers论坛]
  7. D盘出现如同Program Files等因为权限问题而删除不掉的文件,可以使用bat文件强行删除
  8. Clickhouse—MergeTree 数据生命周期
  9. java截全屏_Java全屏截图
  10. Excel为某一列增加数据筛选