如何使用Python生成Hilbert矩阵

目录
  • 1.什么是Hilbert矩阵矩阵
  • 2.找规律
  • 3.代码展示
  • 4.输出展示
  • 5.初始化解为1,1,
    • (1)以生3*4的增广矩阵为例
    • (2)输出结果

1.什么是Hilbert矩阵矩阵

下面分别列举了1*1;2*2;3*3大小的矩阵;

 通过观察,我们发现其规律性极强,那第三列举个例子:

2.找规律

1.第一种思路:先从值出发(找规律)

我们会发现沿着主对角线从上往下是递增的,但是元素的个数是先增加后减少的,这样就不好处理,这种思路无法解出题目。

2.第二种思路:先从下标索引出发(找规律)

  • 第一行的三个数,下标索引为:[0][0],[0][1],[0][2],其对应的值分别为:1;1/2 ;1/3。
  • 第二行的三个数,下标索引为:[1][0],[1][1],[1][2],其对应的值分别为:1/2 ;1/3;1/4。
  • 第二行的三个数,下标索引为:[2][0],[2][1],[2][2],其对应的值分别为:1/3 ;1/4;1/5。

我们发现,,分子是不变的,然后索引相加然后再加1,作为分母,这样就能够计算出索引对应的值。

3.代码展示

import numpy as np#导入numpy计算模块
def CreateHT(n):#创建Hilbert矩阵
    a=np.zeros((n,n))#定义一个空的矩阵
    for i in range(n):#遍历的行数
       for j in range(n):#遍历的列数
           a[i][j]=1/(i+j+1)#通过观察简单的来发现规律进而写出公式
    return a
for i in range (5):#一共创建5个来看看
    print(CreateHT(i))
    print("\n")

4.输出展示

5.初始化解为1,1,

等构建解的增广矩阵(代码展示)

(1)以生3*4的增广矩阵为例

import numpy as np  # 导入numpy计算模块

def CreateHT(n):  # 创建Hilbert矩阵
    a = np.zeros((n, n+1))  # 定义一个空的矩阵
    jie=[len(a)]
    for i in range(n):  # 遍历的行数
        x=0#初始化解为1,1,1等,用x将每一行的数据接起来然后在下面赋值给每一行的最后一个元素
        for j in range(n):  # 遍历的列数
            a[i][j] = 1 / (i + j + 1)  # 通过观察简单的来发现规律进而写出公式
            x+=a[i][j]
        a[i][n]=x

    return a
print(CreateHT(3))

(2)输出结果

到此这篇关于如何使用Python生成Hilbert矩阵的文章就介绍到这了,更多相关Python生成Hilbert内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • nlp自然语言处理学习CBOW模型类实现示例解析

    目录 实现CBOW模型类 Trainer类的实现 实现CBOW模型类 初始化:初始化方法的参数包括词汇个数 vocab_size 和中间层的神经元个数 hidden_size.首先生成两个权重(W_in 和 W_out),并用一些小的随机值初始化这两个权重.设置astype(‘f’),初始化将使用 32 位的浮点数. 生成层:生成两个输入侧的 MatMul 层.一个输出侧的 MatMul 层,以及一个 Softmax with Loss 层. 保存权重和梯度:将该神经网络中使用的权重参数和梯度分

  • nlp自然语言处理基于SVD的降维优化学习

    目录 基于SVD的降维优化 SVD的直观意义 基于SVD的降维优化 向量降维:尽量保留数据“重要信息”的基础上减少向量维度.可以发现重要的轴(数据分布广的轴),将二维数据 表示为一维数据,用新轴上的投影值来表示各个数据点的值,示意图如下. 稀疏矩阵和密集矩阵转换:大多数元素为0的矩阵称为稀疏矩阵,从稀疏矩阵中找出重要的轴,用更少的维度对其进行重新表示.结果,稀疏矩阵就会被转化为大多数元素均不为0的密集矩阵.这个密集矩阵就是我们想要的单词的分布式表示. 奇异值分解(Singular Value D

  • 深度学习Tensorflow2.8 使用 BERT 进行文本分类

    目录 前言 1. python 库准备 2. BERT 是什么? 3. 获取并处理 IMDB 数据 4. 初识 TensorFlow Hub 中的 BERT 处理器和模型 5. 搭建模型 6. 训练模型 7. 测试模型 8. 保存模型 9. 重新加载模型并进行预测 前言 本文使用 cpu 版本的 Tensorflow 2.8 ,通过搭建 BERT 模型完成文本分类任务. 1. python 库准备 为了保证能正常运行本文代码,需要保证以下库的版本: tensorflow==2.8.4 tenso

  • BERT vs GPT自然语言处理中的关键差异详解

    目录 正文 BERT和GPT的简要概述 BERT GPT BERT和GPT的主要区别 GPT的训练相对于BERT有以下不同之处: GPT和BERT在使用场景上有明显的不同: 总结 正文 在近几年的自然语言处理领域中,BERT和GPT是两个引起广泛关注的语言模型.特别是在GPT3.5的基础上进行微调的chatGPT,持续出圈和火爆.chatGPT的火爆表明了预训练语言模型在自然语言处理领域具有巨大的潜力,并且在提高自然语言理解和生成能力方面取得了显著的进展.这可能会带来更多的应用和更广泛的接受.

  • Python结合spaCy 进行简易自然语言处理

    目录 简介 1. spaCy 简介及安装方法 1.1 简介 1.2 安装 2. spaCy 的管道(Pipeline)与属性(Properties) 2.1 Tokenization 2.2 词性标注(POS Tag) 2.3 实体识别 2.4 依存句法分析 2.5 名词短语(NP) 3. 集成词向量 4. 使用 spaCy 对文本进行机器学习 5. 和其它库的对比 支持功能表 速度:主要功能(Tokenizer.Tagging.Parsing)速度 准确性:实体抽取结果 结束语 原文地址:Na

  • 如何使用Python生成Hilbert矩阵

    目录 1.什么是Hilbert矩阵矩阵 2.找规律 3.代码展示 4.输出展示 5.初始化解为1,1, (1)以生3*4的增广矩阵为例 (2)输出结果 1.什么是Hilbert矩阵矩阵 下面分别列举了1*1:2*2:3*3大小的矩阵:  通过观察,我们发现其规律性极强,那第三列举个例子: 2.找规律 1.第一种思路:先从值出发(找规律) 我们会发现沿着主对角线从上往下是递增的,但是元素的个数是先增加后减少的,这样就不好处理,这种思路无法解出题目. 2.第二种思路:先从下标索引出发(找规律) 第一

  • Python用scipy生成特殊矩阵

    目录 循环矩阵 汉克尔矩阵 费德勒矩阵 阿达马矩阵 莱斯利矩阵 希尔伯特及其逆矩阵 帕斯卡及其逆矩阵 scipy.linalg中提供了一系列特殊矩阵的生成方法,包括循环矩阵.汉克尔矩阵.费德勒矩阵.阿达马矩阵.莱斯利矩阵.希尔伯特及其逆矩阵.帕斯卡及其逆矩阵等. 循环矩阵 A = circulant([1,2,3]) print(A) ''' [[1 3 2] [2 1 3] [3 2 1]] ''' 汉克尔矩阵 汉克尔矩阵和循环矩阵十分相似,不过在向左移位的过程中,hankel(c, r=No

  • Python 生成 -1~1 之间的随机数矩阵方法

    1. 使用函数 np.random.random 由于 np.random.random() 默认生成 0~1 之间的小数,因此需要转换一下 如生成 3*3 的 -1~1 之间的随机数矩阵 -1 + 2*np.random.random((3,3)) # -*- coding:utf-8 -*- import matplotlib.pyplot as plt import pylab import cv2 import numpy as np img = plt.imread("1.png&qu

  • python生成1行四列全2矩阵的方法

    如下所示: print np.ones((1,4))*2 以上这篇python生成1行四列全2矩阵的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python+pillow绘制矩阵盖尔圆简单实例

    本文主要研究的是使用Python+pillow绘制矩阵盖尔圆的一个实例,具体如下. 盖尔圆是矩阵特征值估计时常用的方法之一,其定义为: 与盖尔圆有关的两个定理为: 定理1:矩阵A的所有特征值均落在它的所有盖尔圆的并集之中. 定理2:将矩阵A的全体盖尔圆的并集按连通部分分成若干个子集,(一个子集由完全连通的盖尔圆组成,不同子集没有相连通的部分),对每个子集,若它恰好由K个盖尔圆组成,则该子集中恰好包含A的K个特征值. 与盖尔圆定理有关的几个推论为: 推论1:孤立盖尔圆中恰好包含一个特征值. 推论2

  • 如何用Python生成二维码、解析二维码

    楔子 二维码在我们的生活中可以说是必不可少的,不单单是手机支付.其它很多地方也都需要扫描二维码.那么下面我们就来看看如何使用python来生成二维码.以及识别二维码. 关于二维码,我们来说一下它的结构.当然关于二维码的结构其实不是太重要,这里只是提一下,没兴趣可以不用看. 从图中我们可以看出二维码结构整体划分为功能图形和编码区两大部分,功能图形又细分为:空白区.位置探测图形.位置探测图形分隔符.定位图形.校正图形,而编码区细分为:格式信息.版本信息.数据和纠错码字,来简单了解一下每一部分的功能:

  • Python生成扫雷地图的方法

    本文实例为大家分享了Python生成扫雷地图的具体代码,供大家参考,具体内容如下 需求说明 输入:行数m.列数n.地雷数k 输出:随机扫雷地图 第一步,生成地图和随机地雷 第二步,没有地雷的格子填充数字,该数字表示周边地雷总数 思路 代码实现 下面2种实现,分别是不用numpy和用numpy,思路是一样的 from random import shuffle # 行数.列数.地雷数 m, n, k = 5, 10, 15 # 地雷符号,此处用9表示 landmine = 9 # 初始化序列,总长

  • python生成单位阵或对角阵的三种方式小结

    目录 python生成单位阵或对角阵 1.identity 2.eye 3.diag(可以指定对角元素) python创建对角阵的np.eye()函数 看下面两个例子就明白用法啦 python生成单位阵或对角阵 前提: import numpy as np 1.identity np.identity(4) array([[ 1., 0., 0., 0.], [ 0., 1., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 1.]]) 2.eye np.ey

  • 详解Python NumPy中矩阵和通用函数的使用

    目录 一.创建矩阵 二.从已有矩阵创建新矩阵 三.通用函数 四.算术运算 在NumPy中,矩阵是 ndarray 的子类,与数学概念中的矩阵一样,NumPy中的矩阵也是二维的,可以使用 mat . matrix 以及 bmat 函数来创建矩阵. 一.创建矩阵 mat 函数创建矩阵时,若输入已为 matrix 或 ndarray 对象,则不会为它们创建副本. 因此,调用 mat() 函数和调用 matrix(data, copy=False) 等价. 1) 在创建矩阵的专用字符串中,矩阵的行与行之

  • python 共现矩阵的实现代码

    目录 python共现矩阵实现 项目背景 什么是共现矩阵 共现矩阵的构建思路 共现矩阵的代码实现 共现矩阵(共词矩阵)计算 共现矩阵(共词矩阵) 补充一点 python共现矩阵实现 最近在学习python词库的可视化,其中有一个依据共现矩阵制作的可视化,感觉十分炫酷,便以此复刻. 项目背景 本人利用爬虫获取各大博客网站的文章,在进行jieba分词,得到每篇文章的关键词,对这些关键词进行共现矩阵的可视化. 什么是共现矩阵 比如我们有两句话: ls = ['我永远喜欢三上悠亚', '三上悠亚又出新作

随机推荐