//高斯列主元消去法(封裝函式一)
#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...