如何使用Python生成Hilbert矩陣
1.什么是Hilbert矩陣矩陣
下面分別列舉了1*1;2*2;3*3大小的矩陣;

通過觀察,我們發(fā)現其規(guī)律性極強,那第三列舉個例子:
2.找規(guī)律
1.第一種思路:先從值出發(fā)(找規(guī)律)
我們會發(fā)現沿著主對角線從上往下是遞增的,但是元素的個數是先增加后減少的,這樣就不好處理,這種思路無法解出題目。
2.第二種思路:先從下標索引出發(fā)(找規(guī)律)
- 第一行的三個數,下標索引為:[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。
我們發(fā)現,,分子是不變的,然后索引相加然后再加1,作為分母,這樣就能夠計算出索引對應的值。
3.代碼展示
import numpy as np#導入numpy計算模塊
def CreateHT(n):#創(chuàng)建Hilbert矩陣
a=np.zeros((n,n))#定義一個空的矩陣
for i in range(n):#遍歷的行數
for j in range(n):#遍歷的列數
a[i][j]=1/(i+j+1)#通過觀察簡單的來發(fā)現規(guī)律進而寫出公式
return a
for i in range (5):#一共創(chuàng)建5個來看看
print(CreateHT(i))
print("\n")4.輸出展示

5.初始化解為1,1,
等構建解的增廣矩陣(代碼展示)
(1)以生3*4的增廣矩陣為例
import numpy as np # 導入numpy計算模塊
def CreateHT(n): # 創(chuàng)建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) # 通過觀察簡單的來發(fā)現規(guī)律進而寫出公式
x+=a[i][j]
a[i][n]=x
return a
print(CreateHT(3))(2)輸出結果

到此這篇關于如何使用Python生成Hilbert矩陣的文章就介紹到這了,更多相關Python生成Hilbert內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在?Python?中使用變量創(chuàng)建文件名的方法
這篇文章主要介紹了在?Python?中使用變量創(chuàng)建文件名,格式化的字符串文字使我們能夠通過在字符串前面加上 f 來在字符串中包含表達式和變量,本文給大家詳細講解,需要的朋友可以參考下2023-03-03
python計算Content-MD5并獲取文件的Content-MD5值方式
這篇文章主要介紹了python計算Content-MD5并獲取文件的Content-MD5值方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04

