Posted on 2011-09-24 22:14
polly 阅读(251)
评论(0) 编辑 收藏 引用 所属分类:
模式识别&图像处理
1
#include <stdio.h>
2
#include <math.h>
3
#include <stdlib.h>
4
/**//*
5
0.500000 1.100000 3.100000
6
0.000000 -10.040000 -24.500000
7
0.000000 0.000000 -12.284024
8
-2.600000
9
1.000000
10
2.000000
11
请按任意键继续. . .
12
*/
13
#define n 3
14
double a[3][3]=
{
{0.5,1.1,3.1},
{5,0.96,6.5},
{2,4.5,0.36}};
15
double b[3]=
{6,0.96,0.02};
16
double m[3][3];
17
double x[3]=
{0,0,0};
18
int k,p;
19
20
int main()
{
21
for(k=0;k<n-1;k++)
{
22
if(a[k][k]==0) break;
23
else
{
24
for(int i=k+1;i<n;i++)
{
25
m[i][k]=a[i][k]/a[k][k];
26
for(int j=k;j<n;j++)
{
27
a[i][j]=a[i][j]-m[i][k]*a[k][j];
28
}
29
b[i]=b[i]-b[k]*m[i][k];
30
}
31
}
32
}
33
for(int i=0;i<n;i++)
{
34
for(int j=0;j<3;j++)
{
35
printf("%f ",a[i][j]);}
36
printf("\n");
37
}
38
//huidai--有错
39
x[n-1]=b[n-1];//Right..
40
for(int i=n-1;i>=0;i--)
{//where is the error
41
double sum=0;//ok
.Vectory
.
42
for(int j=i+1;j<n;j++)
{//Be careful while using for loop!!!
43
sum+=a[i][j]*x[j];
44
}
45
x[i]=(b[i]-sum)/a[i][i];
46
}
47
48
for(int i=0;i<n;i++)
{
49
printf("%3.2f\n",x[i]);
50
}
51
52
system("pause");
53
}
54