冪法 c語言

2021-09-29 05:05:36 字數 790 閱讀 1466

編寫了冪法的子函式,單位化時採用二範數,相關引數可以根據需求改動較為靈活

int main() 

,,};

a_lamada1(a);

return 0;

}double a_lamada1(double a[3][3]) //根據冪法計算矩陣a的按模最大的特徵值lamada1

;//向量初始化[1 0 0]

double y[3]; //單位化矩陣

double l; //模長

double temp=0;

double lamada=0;

double lamada1=0;

double e;

for(n=0;n<=100;n++)

l=sqrt(temp);

temp=0;

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

for(i=0;i<3;i++) //計算u(k+1)

} for (i=0;i<3;i++) //計算lamada1

e=fabs(lamada1-lamada)/fabs(lamada1); //精度控制

if(e100)

}

100為最大計算次數,計算次數用n記錄,例子中的矩陣的精確計算結果為45,eps為計算精度,本例中為1e-6,計算結果如下:

C語言 快速冪

快速求a的b次冪。中的pow函式的時間複雜度為o n 快速冪可以解決此問題。求a b如果將b進行處理,讓其有某種規律進行運算。在計算機中,按照二進的方式進行運算,所以將b 1011,ab a 23 a 21 a 2 0 所以將b二進為1的的乘上。includeint main printf d ar...

數值計算 冪法與反冪法

求矩陣模最大的特徵值及其對應特徵向量 注 需要模最大特徵值唯一,矩陣各列線性無關 冪法求特徵值 需要保證各列線性無關 include include include include include using namespace std define n 5 class mt mt int x,in...

C語言快速冪及快速冪的模

未學習快速冪時我們的冪 power 運算一般都是通過for,while迴圈來進行的如 int power int a,int n 這樣其時間複雜度為o n 十分浪費時間。這時如果我們使用快速冪其時間複雜度將降到o logn 我們的運算效率將大大提公升。那麼我們要怎麼樣進行快速冪運算呢?快速冪演算法是...