冪法求矩陣最大特徵值的近似解(C 實現)

2021-07-13 17:03:46 字數 1110 閱讀 8376

數字影象處理領域中經常會要求某畫素矩陣的最大特徵值。

在處理攝像頭資料的時候,遇到過這個問題。本來用matlab是可以很快解決的。幾行**而已。但是程式要寫入mcu中,matlab就無能為力了。並且本人不熟悉matlab函式向c++**的轉化。

網上找不到直接可用的c++**,於是查詢資料自己寫了乙個。

冪法的數學推導就不貼出來了,網上隨處可見,且大同小異。本人參考的是萬方資料上的某篇**,位址如下

還是很容易看懂的,只不過實際程式中有些細節需要注意。

下面貼上原始碼:

#include 

#include

#include

#include

#include

using

namespace

std;

double a[3][3];

int row=0;

int col=0;

double max1=0;

void open_file()

fclose(fp);

}double y[3]=;

double x[3]=;

void mult()

}void to1()

for(int i=0;i<3;i++)

max1=tmp;

}int main()

mult();

to1();

cout

<

for(int i=0;i<3;i++)

cout

cout

<1

<

<

<0]<

<1]<

<2]<

主函式while迴圈,判斷條件裡面,是輸出精度0.00001。本來寫成巨集定義會好看一點。哎,懶得改了。

初始矩陣,也就是chiang.txt中內容如下:

達到規定精度時,迭代次數23次,最後最大特徵值(迭代向量第三個分量)趨近於7.

特徵向量為[0.3 0.067 1].

C語言實現逆冪法求矩陣解特徵值

實驗結果 逆冪法用於計算非奇異陣a aa的按模最小的特徵值和特徵向量。實際計算中,可以構造以下迭代格式 l k u k max i end quad 1 i n ly k z k 1 uyk y k mk max yk i zk yk mk 1 i n 其中l ll是下三角矩陣,u uu是上三角矩陣...

matlab 求矩陣最大特徵值對應的特徵向量

a 1,1,2,3,4 1,1,1,2,3 1 2,1,1,1,2 1 3,1 2,1,1,1 1 4,1 3,1 2,1,1 待求矩陣 x,y eig a 求矩陣的特徵值和特徵向量,x為特徵向量矩陣,y為特徵值矩陣。eigenvalue diag y 求對角線向量 lamda max eigenv...

OpenCV求矩陣的特徵值和特徵向量

opencv求矩陣的特徵值和特徵向量 首先安轉和配置opencv windows版,在此不贅述!首先看看opencv中的矩陣運算的相關知識 cvmat 多通道矩陣 cvmat的結構定義 typedef struct cvmat data data 指標 ifdef cplusplus union u...