Gauss列主元消去法(封裝函式)

2021-10-11 22:46:26 字數 3021 閱讀 9015

//高斯列主元消去法(封裝函式一)

#include

#include

"windows.h"

using

namespace std;

intsolvereqguass

(double

**a,

double

*b,int n,

double eps,

double

*x) m=n;

//賦值

for(i=

0;i) a[i]

[n]=b[i];}

if(m<=

0||n<=0)

for(k=

0;k1;k++

)//找列主元最大值}if

(a[row]

[i]==0)

if(k!=row)

//換行

}for

(i=k+

1;i}for

(i=0

;i)for

(i=m-

1;i>=

0;i--

)//求解向量

btemp[i]

=(a[i]

[n]-d)

/a[i]

[i];

}for

(i=0

;i)for

(i=0

;i)delete

a;delete

btemp;

}int

main()

int loop_num=

1e5;

int n=4;

//根據題目選擇賦值或輸入

a[0][

0]=1

;a[0][

1]=-

1;a[0]

[2]=

2;a[0]

[3]=

-1; a[1]

[0]=

2;a[1]

[1]=

-2;a[1][

2]=3

;a[1][

3]=-

3;a[2][

0]=1

;a[2][

1]=1

;a[2][

2]=1

;a[2][

3]=0

; a[3]

[0]=

1;a[3]

[1]=

-1;a[3][

2]=4

;a[3][

3]=3

; b[0]

=-8;b[1]

=-20;b[2]

=-2;b[3]

=4;solvereqguass

(a,b,n,

1.0e-10

,x);

for(

int i=

0;i)queryperformancecounter

(&lendcount)

;//獲得cpu計數器數字,放在計時結尾

computime =

(double

)(lendcount.quadpart - lbegincount.quadpart)/(

double

)lfrequency.quadpart;

//得到執行時間,單位微秒

cout<<

"gauss法計算時間為"

<}

//封裝函式二

void

solvereqgauss

(double

** a,

double

* b,

int n,

double

* x)}if

(delta <

pow(

0.1,8)

) bo =

true;if

(bo)

else

omiga = b[i]

; b[i]

= b[lamda]

; b[lamda]

= omiga;

}for

(int i = i+

1;i < n +

1;i++

) b[i]

= b[i]

- b[i]

*aef;}}

for(

int u = n;u >

0;u--

) x[u]

= b[u]

/ a[u]

[u];

}}

//高斯列主元消去法(封裝函式三)

void

solvereqgauss

(double

**a,

double

*b,int n,

double eps,

double

*x)//賦值

for(i=

0;i) a[i]

[n]=b[i];}

if(n<=0)

for(k=

0;k1;k++)}

if(fabs

(a[row]

[k])

< eps)

if(k != row)

//換行

}for

(i = k +

1; i < n; i++

)//消元 }}

if(fabs

(a[n -1]

[n -1]

)< eps)

for(i = n -

1; i >=

0; i--

)//回代

x[i]

=(a[i]

[n]- d)

/ a[i]

[i];

}for

( i =

0; i < n; i++

)delete

a;}

列主元Gauss消去法 C 實現

原理 列主元素消去法是為控制捨入誤差而提出來的一種演算法,列主元素消去法計算基本上能控制捨入誤差的影響,其基本思想是 在進行第 k k 1,2,n 1 步消元時,從第k列的 akk及其以下的各元素中選取絕對值最大的元素,然後通過行變換將它交換到主元素akk的位置上,再進行消元。列主元消去法的基本思想...

列主元消去法例題詳解 Gauss列主元消去法函式

列主元消去法解方程組ax b,實現pa lu function x,deta gauss a,b n length b p,q size a if p q p n fprintf 方陣的維數不同,請重新輸!檢錯 end 為提高執行速度,給l,u,x,c,d1賦初值 l zeros n,n u zer...

實驗八Gauss列主元素消去法

實驗八gauss列主元素消去法 實驗目的 掌握gauss列主元素消去法求解線性方程組的過程。實驗內容 用gauss消去法求解線性方程組 先來看一下不選主元的方法 include include define n 3 void main float temp,m,x n int i,j,k,q,p f...