嵌入式
编程与应用
posts - 14, comments - 1, trackbacks - 0, articles - 0
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
高斯约旦求矩阵的逆
Posted on 2010-04-17 10:55
陈显锋
阅读(774)
评论(1)
编辑
收藏
引用
#include
<
iostream
>
using
namespace
std;
#define
n 3
int
main()
{
int
i,j,k;
double
m;
double
a[n][n],E[n][n];
//
单位矩阵E[n][n]
for
(i
=
0
;i
<
n;i
++
)
{
for
(j
=
0
;j
<
n;j
++
)
{
if
(i
==
j)
E[i][j]
=
1
;
else
E[i][j]
=
0
;
}
}
//
输入矩阵a[n][n]
cout
<<
"
输入矩阵:
"
<<
endl;
for
(i
=
0
;i
<
n;i
++
)
for
(j
=
0
;j
<
n;j
++
)
cin
>>
a[i][j];
//
上三角变换
for
(k
=
0
;k
<
n
-
1
;k
++
)
{
for
(i
=
k
+
1
;i
<
n;i
++
)
{
m
=
a[i][k]
/
a[k][k];
for
(j
=
0
;j
<
n;j
++
)
{
a[i][j]
=
a[i][j]
-
m
*
a[k][j];
E[i][j]
=
E[i][j]
-
m
*
E[k][j];
}
}
}
//
下三角变换
for
(k
=
n
-
1
;k
>
0
;k
--
)
{
for
(i
=
k
-
1
;i
>=
0
;i
--
)
{
m
=
a[i][k]
/
a[k][k];
for
(j
=
0
;j
<
n;j
++
)
{
a[i][j]
=
a[i][j]
-
m
*
a[k][j];
E[i][j]
=
E[i][j]
-
m
*
E[k][j];
}
}
}
//
单位矩阵……
for
(i
=
0
;i
<
n;i
++
)
for
(j
=
0
;j
<
n;j
++
)
{
E[i][j]
=
E[i][j]
/
a[i][i];
}
//
输出矩阵的逆
cout
<<
"
矩阵的逆是:
"
<<
endl;
for
(i
=
0
;i
<
n;i
++
)
{
for
(j
=
0
,k
=
0
;j
<
n;j
++
)
{
cout
<<
E[i][j]
<<
"
\t
"
;k
++
;
if
(k
==
n)
cout
<<
endl;
}
}
}
Feedback
#
re: 高斯约旦求矩阵的逆
回复
更多评论
2010-08-17 09:07 by
zhan
这不是高斯约旦算法
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © 陈显锋
日历
<
2010年8月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
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
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(4)
给我留言
查看公开留言
查看私人留言
随笔分类
c/c++(2)
非技术区(1)
封装
技术交流(4)
数据结构程序(5)
随笔档案
2012年5月 (2)
2012年4月 (3)
2012年3月 (3)
2010年4月 (6)
搜索
最新评论
1. re: 高斯约旦求矩阵的逆
这不是高斯约旦算法
--zhan