jacobi,seidel,sor方法的c 實現

2021-10-03 23:09:31 字數 3724 閱讀 2098

沒有進行收斂性判斷,只是演算法的單純求解

#include

#include

#include

using

namespace std;

const

int n =4;

//檔案的行列數

//陣列求max

double

max_array

(double err[n])}

return max;

}//分離矩陣確定d

void

arrayd

(double a[n]

[n],

double

(*d)

[n])

//分離矩陣確定l,-l下三角矩陣

void

arrayl

(double a[n]

[n],

double

(*l)

[n])}}

//分離矩陣確定u,-u上三角矩陣

void

arrayu

(double a[n]

[n],

double

(*u)

[n])}}

//jacobi x二維陣列儲存行數是x的個數,列數是迭代次數最多迭代kmax次

void

jacobi

(double d[n]

[n],

double l[n]

[n],

double u[n]

[n],

double b[n]);

double err[n]=;

//x誤差

int k =1;

//統計迭代次數

int i;

//j是x的個數

for(k; k < kmax; k++

) x[i]

[k]=(1

/ d[i]

[i])

*(sum + b[i]);

cout <<

setiosflags

(ios::fixed)

<<

setprecision(4

)<<

setiosflags

(ios::left)

; cout <<

setw(15

)<< x[i]

[k]<<

"\t"

; err[i]

=fabs

(x[i]

[k]- x[i]

[k -1]

);} cout << endl;if(

max_array

(err)

<

0.0001

)break;}

for(

int num =

0; num < n; num++)}

void

sediel

(double d[n]

[n],

double l[n]

[n],

double u[n]

[n],

double b[n]);

double err[n]=;

//x誤差

int k =1;

//統計迭代次數

int i;

//j是x的個數

for(k; k < kmax; k++

) x[i]

[k]=(1

/ d[i]

[i])

*(sum + b[i]);

cout <<

setiosflags

(ios::fixed)

<<

setprecision(4

)<<

setiosflags

(ios::left)

; cout <<

setw(15

)<< x[i]

[k]<<

"\t"

; err[i]

=fabs

(x[i]

[k]- x[i]

[k -1]

);} cout << endl;if(

max_array

(err)

<

0.0001

)break;}

for(

int num =

0; num < n; num++)}

void

sor(

double d[n]

[n],

double l[n]

[n],

double u[n]

[n],

double b[n]

,double w)

;double err[n]=;

//x誤差

int k =1;

//統計迭代次數

int i;

//j是x的個數

for(k; k < kmax; k++

) x[i]

[k]=(1

- w)

* x[i]

[k -1]

+(w / d[i]

[i])

*(sum + b[i]);

cout <<

setiosflags

(ios::fixed)

<<

setprecision(4

)<<

setiosflags

(ios::left)

; cout <<

setw(15

)<< x[i]

[k]<<

"\t"

; err[i]

=fabs

(x[i]

[k]- x[i]

[k -1]

);} cout << endl;if(

max_array

(err)

<

0.0001

)break;}

for(

int num =

0; num < n; num++)}

intmain

(void);

double b[n]=;

// double a[n][n] = ;

// double b[n] = ;

// double a[n][n] = ;

// double b[n] = ;

double d[n]

[n]=

;double l[n]

[n]=

;double u[n]

[n]=

;arrayd

(a, d)

;arrayl

(a, l)

;arrayu

(a, u)

;jacobi

(d, l, u, b)

;sediel

(d, l, u, b)

;double w =

1.16

;sor

(d, l, u, b, w)

; cin.

get();

return0;

}

IP Header Checksum計算c實現

關於ip header checksum的計算在rfc791中有比較完整的描敘,header checksum 16 bits a checksum on the header only.since some header fields change e.g.time to live this is...

IP Header Checksum計算c實現

關於ip header checksum的計算在rfc791中有比較完整的描敘,header checksum 16 bits a checksum on the header only.since some header fields change e.g.time to live this is...

C 實訓心得

我祝你不幸並痛苦 美國首席 官在兒子畢業典禮上的演講 一開始抱著多學點有用的東西去上課,因為將來的筆試面試很可能會遇到關於c 的題目,在開始的三天,學的c語言寫貪吃蛇,老師講得很詳細,對於基礎比較好的我們,學得很輕鬆,到了學習mfc,組隊做專案的時候就感覺到困難了,因為和我一隊的是四個女生 這裡不是...