wyiu
Follow.
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
posts - 100, comments - 15, trackbacks - 0
<
2009年5月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
(84)
Design Pattern(1)
POJ(67)
常用模板和函数(3)
数据结构(2)
数值分析(3)
算法(8)
随笔档案
(100)
2010年10月 (8)
2010年3月 (11)
2009年10月 (16)
2009年9月 (1)
2009年8月 (1)
2009年7月 (20)
2009年5月 (16)
2009年4月 (27)
向高手学习
cai0715
RyanWang
wingyiu
搜索
积分与排名
积分 - 27379
排名 - 681
最新评论
1. re: poj 3368 rmq(st)
有错误~~
index[] 可能会以负数为下标~
--tongjiantao
2. re: pku poj 3009
@BOAT
行列搞错了吧?
--yaoyaozii
3. re: pku poj 3009
@ww
郁闷啊。。我怎么也是3 啊。。。郁闷!!!
--BOAT
4. re: pku poj 3009 [未登录]
excit就是这个游戏
--X
5. re: pku2777
这个只能用c++交吗?用G++交的结果很神奇喔,居然CE。。
--share4
阅读排行榜
1. POJ 线段树题(1994)
2. pku poj 3009 (997)
3. 矩阵转置_十字链表(940)
4. 全主元高斯消元法(782)
5. 关于“逆序数”[转](766)
评论排行榜
1. pku poj 3009 (10)
2. pku 1019 poj(2)
3. pku2777(1)
4. pku 2151(1)
5. poj 3368 rmq(st)(1)
顺序高斯消元算法
#include
<
iostream
>
#include
<
math.h
>
using
namespace
std;
#define
MAX 100
double
A[MAX
+
1
][MAX
+
1
];
double
B[MAX
+
1
];
double
X[MAX
+
1
];
double
e;
int
n;
void
OrderGaussianElimination()
{
int
i,j,k;
double
T;
//
消元
for
(k
=
1
;k
<=
n
-
1
;k
++
)
{
if
( fabs(A[k][k])
<=
e )
{ printf(
"
Error!\n
"
);
return
;}
for
(i
=
k
+
1
;i
<=
n;i
++
)
{
T
=
A[i][k]
/
A[k][k];
B[i]
-=
T
*
B[k];
for
(j
=
k;j
<=
n;j
++
)
A[i][j]
-=
T
*
A[k][j];
}
}
//
回代
if
( fabs(A[n][n])
<=
e )
{ printf(
"
Error!\n
"
);
return
;}
X[n]
=
B[n]
/
A[n][n];
double
S_Aij_Xj;
for
(i
=
n
-
1
;i
>=
1
;i
--
)
{
S_Aij_Xj
=
0
;
for
(j
=
i
+
1
;j
<=
n;j
++
)
S_Aij_Xj
+=
A[i][j]
*
X[j];
X[i]
=
(B[i]
-
S_Aij_Xj)
/
A[i][i];
}
}
void
print(
double
X[])
{
int
i;
printf(
"
X[]:\n
"
);
for
(i
=
1
;i
<=
n;i
++
)
printf(
"
%f\n
"
,X[i]);
}
int
main()
{
int
i,j;
printf(
"
n:
"
);
scanf(
"
%d
"
,
&
n);
printf(
"
A[][]:\n
"
);
for
(i
=
1
;i
<=
n;i
++
)
for
(j
=
1
;j
<=
n;j
++
)
scanf(
"
%lf
"
,
&
A[i][j]);
printf(
"
B[]:\n
"
);
for
(i
=
1
;i
<=
n;i
++
)
scanf(
"
%lf
"
,
&
B[i]);
printf(
"
e:
"
);
scanf(
"
%lf
"
,
&
e);
OrderGaussianElimination();
print(X);
return
0
;
}
posted on 2009-05-16 16:32
wyiu
阅读(227)
评论(0)
编辑
收藏
引用
所属分类:
数值分析
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
全主元高斯消元法
列主元高斯消元算法
顺序高斯消元算法
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理