大創專案筆記(2)

2021-09-29 21:36:10 字數 1291 閱讀 7805

在文獻《randomized lu decomposition》中的演算法4.1,如下圖:

首先,把輸入矩陣a投影到乙個隨機矩陣g上,得到了矩陣y,這個矩陣可以反映出輸入矩陣a 值域的很大一部分;

然後,對矩陣y應用rrlu分解,得到基底lk和uk,並對輸入矩陣a進行再次投影,得到矩陣b;

之後,再對矩陣b進行列選主元的lu分解從而得到新基底lb和ub;

最後,得到l=lklb,u=ub。

在實現上述演算法的過程中,需要考慮步驟3中rrlu分解是如何實現的,於是我們根據本篇文章的引用文獻找到了如下文章,並進行了研讀。

rrlu分解:全稱rank-revealing lu factorizations, 實現該演算法用到的內容有:

計算矩陣體積(volume)

上圖定義3.1給出了矩陣體積的定義也就是所有奇異值的乘積。

接著,文章又給出了矩陣的區域性最大體積的定義:從原矩陣a中選取k列(或者是k行)構成子矩陣b,並且使得矩陣b的體積最大。

具體原文定義,如下圖:

在實際操作中,為了增加可操作性,避免陷入無窮迴圈,上圖不等式(3.2)常常被換成不等式(3.3)

注意到在用不等式(3.3)時,對應矩陣b的體積不再單單是依賴於區域性,還依賴於係數mju的選取,因此這裡矩陣b的體積(vol(b))又被稱為區域性mju最大體積。如下圖:

根據該文獻的思路,找矩陣a的rrlu分解,就是找兩個置換矩陣,乙個可以取上述矩陣b(也就是矩陣體積是區域性mju最大的矩陣),之後在此基礎上根據區域性mju最**出k行。為實現上述取矩陣子集的思想,作者利用了高斯消去法。

rrlu演算法:

大創專案前傳 儲存階段(1)

pymysql庫 對於sql語句,在後面的撰寫中,碰到了再進行闡述。結合這篇部落格的學習,完成資料庫的儲存操作。首先,使用connect 方法連線乙個資料庫。connect所需要的引數是資料庫的機主,使用者名稱及密碼。一般來說本機上執行的資料庫,機主就是 localhost 使用者名稱和密碼是自己設...

創天下專案總結

1,router這塊只是單純使用了的框架推薦的非同步載入元件,並沒有深入研究webpack的懶載入原理。2,在 my元件的設計上存在瑕疵,之前總是懷疑自己的用法錯誤,直到接觸了react之後,才明白巢狀路由中的子路由是和父路由一起展示的。那說明用法是沒有錯。只是設計上有待商榷,像在做 my和其他巢狀...

大創 小車運動實驗

該部分為小車所有運動的根源。電機不能直接又數碼訊號1和0接兩端而產生運動,需要通過pwm對電機進行控速。我需要pwma和pwmb對每一側電機進行控制。pwm速度控制系統通過脈寬調變器對大功率電晶體的開關時間進行控制,將直流電壓轉換成某種頻率的方波電壓,並通過對脈衝寬度的控制,改變輸出直流平均電壓的自...