日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

如何使用Python生成Hilbert矩陣_python

作者:堿化鉀 ? 更新時間: 2022-11-18 編程語言

1.什么是Hilbert矩陣矩陣

下面分別列舉了1*1;2*2;3*3大小的矩陣;

?通過觀察,我們發(fā)現(xiàn)其規(guī)律性極強,那第三列舉個例子:

2.找規(guī)律

1.第一種思路:先從值出發(fā)(找規(guī)律)

我們會發(fā)現(xiàn)沿著主對角線從上往下是遞增的,但是元素的個數(shù)是先增加后減少的,這樣就不好處理,這種思路無法解出題目。

2.第二種思路:先從下標(biāo)索引出發(fā)(找規(guī)律)

  • 第一行的三個數(shù),下標(biāo)索引為:[0][0],[0][1],[0][2],其對應(yīng)的值分別為:1;1/2 ;1/3。
  • 第二行的三個數(shù),下標(biāo)索引為:[1][0],[1][1],[1][2],其對應(yīng)的值分別為:1/2 ;1/3;1/4。
  • ?第二行的三個數(shù),下標(biāo)索引為:[2][0],[2][1],[2][2],其對應(yīng)的值分別為:1/3?;1/4;1/5。

我們發(fā)現(xiàn),,分子是不變的,然后索引相加然后再加1,作為分母,這樣就能夠計算出索引對應(yīng)的值。

3.代碼展示

import numpy as np#導(dǎo)入numpy計算模塊
def CreateHT(n):#創(chuàng)建Hilbert矩陣
    a=np.zeros((n,n))#定義一個空的矩陣
    for i in range(n):#遍歷的行數(shù)
       for j in range(n):#遍歷的列數(shù)
           a[i][j]=1/(i+j+1)#通過觀察簡單的來發(fā)現(xiàn)規(guī)律進(jìn)而寫出公式
    return a
for i in range (5):#一共創(chuàng)建5個來看看
    print(CreateHT(i))
    print("\n")

4.輸出展示

5.初始化解為1,1,

等構(gòu)建解的增廣矩陣(代碼展示)

(1)以生3*4的增廣矩陣為例

import numpy as np  # 導(dǎo)入numpy計算模塊
 
def CreateHT(n):  # 創(chuàng)建Hilbert矩陣
    a = np.zeros((n, n+1))  # 定義一個空的矩陣
    jie=[len(a)]
    for i in range(n):  # 遍歷的行數(shù)
        x=0#初始化解為1,1,1等,用x將每一行的數(shù)據(jù)接起來然后在下面賦值給每一行的最后一個元素
        for j in range(n):  # 遍歷的列數(shù)
            a[i][j] = 1 / (i + j + 1)  # 通過觀察簡單的來發(fā)現(xiàn)規(guī)律進(jìn)而寫出公式
            x+=a[i][j]
        a[i][n]=x

    return a
print(CreateHT(3))

(2)輸出結(jié)果

原文鏈接:https://blog.csdn.net/weixin_61057398/article/details/127096645

欄目分類
最近更新