Python求解T形矩阵(toeplitz矩阵)
文章目录
- 简介
- 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} 11121314151617181920211011121314151617181920910111213141516171819891011121314151617187891011121314151617678910111213141516567891011121314154567891011121314345678910111213234567891011121234567891011
可以将其绘制出来
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_cr
和x
,其中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矩阵)相关推荐
- Newton迭代法求解Toeplitz矩阵逆的程序
说明: 迭代法的收敛性和矩阵的条件数相关,条件数大于1K肯定不收敛,小于100肯定收敛 100--1000则要适当选择截断的小量,采用迭代法的另一种多参数调用方式 程序清单: %%%%%%%%%%%% ...
- python 生成 Toeplitz 矩阵
python 生成 Toeplitz 矩阵 首先导入必要的依赖文件 import numpy as np from scipy.linalg import toeplitz 明确要实现的功能 Toep ...
- Levinson-Durbin算法原理推导(Hermitian Toeplitz矩阵,包括实数和复数情况)
先明确Toeplitz矩阵,Hermitian Toeplitz矩阵 一些有用的补充知识 知道以上这些知识,我们终于可以开始求解方程了 明确Levinson-Durbin算法要解决的问题 充分利用已知 ...
- 半正定Toeplitz矩阵的范德蒙德分解
半正定Toeplitz矩阵的范德蒙德分解 Toeplitz矩阵的定义:Matrices whose entries are constant along each diagonal are calle ...
- python 怎么取对数_概率矩阵分解(PMF)及MovieLens上的Python代码
首先对Probabilistic Matrix Factorization这篇论文的核心公式进行讲解和推导:然后用Python代码在Movielens数据集上进行测试实验. 一. 背景知识 文中作者提 ...
- Toeplitz 矩阵对角化
Toeplitz 矩阵是一种比较特殊的矩阵:其中任何一条对角线的元素取相同的值,即 An=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢a0a1a2⋮ana−1a0a1⋮an−1a−2a−1a0⋱⋯⋯⋯⋱⋱a1a−na−n+ ...
- python将txt文件转化为矩阵_python 读文件,然后转化为矩阵的实例
代码流程: 1. 从文件中读入数据. 2. 将数据转化成矩阵的形式. 3. 对于矩阵进行处理. 具体的python代码如下: - 文件路径需要设置正确. - 字符串处理. - 字符串数组到 整型数组的 ...
- 【Python学习笔记】多个矩阵点乘和叉乘
[Python学习笔记]多个矩阵点乘和叉乘 一.定义 二.代码实现 一.定义 点乘,对应元素相乘,点乘对象的行数必须相等,且前者的列数必须与后者相等,或为1,具有广播机制. 叉乘,前者的列数必须和后者 ...
- 矩阵与矩阵相乘python代码实现
为了更加直观的感受矩阵与矩阵是怎么相乘的,我先来写一个简单的公式理解一下: 假设有两个矩阵分别是A和B A的维数是3*4,B的维数是4*2,那么我们相乘后变为3*2的矩阵 这其中的数学原理是A的第一行 ...
最新文章
- 【网络流】解题报告:luogu P2740 [USACO4.2]草地排水Drainage Ditches(Edmonds-Karp增广路,最大流模板)
- 工厂方法模式与IoC/DI
- 为什么要在Java中使用Unchecked异常而不是Checked异常
- tomcat如何查找请求资源的?
- 教你玩转CSS 下拉菜单
- LeetCode 1108. IP 地址无效化
- 北京联通光猫 F427 路由改桥接的方法
- oc语言学习之基础知识点介绍(三):类方法、封装以及继承的介绍
- era5数据内容说明_接口测试:A04_HttpRunner通用_02_提取数据_01_extract关键字
- idm chrome扩展被阻止解决办法
- 荣耀8鸿蒙刷机,华为荣耀平板s8-701w刷机记(示例代码)
- HFSS - 圆形双馈微带天线
- 一个UE4崩溃问题以及解决方案
- [FSOD][笔记]Context-Transformer: Tackling Object Confusion for Few-Shot Detection(AAAI 2020)
- 数学连乘和累加运算符号_3,7,5之间加数学运算符号使结果等于8?
- system.data.oracleclient
- 【转载】华为荣耀V9手机如何设置WiFi热点共享
- 怎么把csdn博客白色的代码样式改成黑色且有个复制按钮的样式
- 在Kali中 利用工具Fluxion渗透wpa/wpa2加密WiFi 详细步骤(小白适用) 2020.1
- 三个和尚没水喝--责任感与团队意识
热门文章
- 一枚程序猿的MacBook M1详细体验报告
- IBM V7000存储Mdisk磁盘掉线数据恢复_服务器数据恢复
- 六十星系之20天机独坐子午
- 计算机在工作中的表现英语回答,外企英语面试常用表达-12个方面总结.doc
- linux会话空闲无法关机,解决linux的”turn off swap”无法关机问题
- 马化腾:办公用QQ休闲用微信[Dream Catchers论坛]
- D盘出现如同Program Files等因为权限问题而删除不掉的文件,可以使用bat文件强行删除
- Clickhouse—MergeTree 数据生命周期
- java截全屏_Java全屏截图
- Excel为某一列增加数据筛选