如何使用Python生成Hilbert矩陣
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é)果
到此這篇關(guān)于如何使用Python生成Hilbert矩陣的文章就介紹到這了,更多相關(guān)Python生成Hilbert內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python框架flask入門之路由及簡單實現(xiàn)方法
這篇文章主要介紹了python框架flask入門路由及路由簡單實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06夯實基礎(chǔ)python集合的應(yīng)用場景及字符串定義和表示
這篇文章主要為大家介紹了python集合的應(yīng)用場景及字符串定義和表示,來幫大家夯實基礎(chǔ),有需要的朋友可以借鑒參考下,希望能夠有所幫助2023-10-10Python增量循環(huán)刪除MySQL表數(shù)據(jù)的方法
這篇文章主要介紹了Python增量循環(huán)刪除MySQL表數(shù)據(jù)的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友可以參考下2016-09-09