|
程序如下,是用来解线性方程的,用的是高斯赛德乐迭代法做的
7 n/ @9 v/ L8 X+ ], T0 p _: l$ S在算三个未知量的时是和答案一致的,四个未知量就有出入,做六个未知量就出错了.
. c. P0 ~* F& P0 Q+ G谁能告诉我错在哪里了,是题错还是程序错了.
* q- l% X# b& N4 b刚开始学,不足之处请指教。
6 `8 O# F- p- T& V" W#include; X [7 E/ P' L9 i4 z/ t& }
#include7 R+ N! u3 l ~) l, i
#define NN 50 ) M* g, E1 Q" a0 D8 @& h
void main(), e) T6 Z$ S5 _' F- f
{
+ N, P- ~( Q! W% X cout.setf(ios::fixed,ios::floatfield);
; M) B1 b8 [$ r cout<( s' ]- G$ o. f
int i,j,k;# d/ O$ O+ p: y0 ]
double e,c,T,r;" u, D. X- K1 o
//double x[NN],A[NN][NN],B[NN];) ~7 y6 W; ^. m" G: I
//题目如下:任选一个
# p+ ?0 _: i4 z //double x[NN]={0,0,0,0},A[NN][NN]={{0,0,0,0},{0,10,-2,-1},{0,-2,10,-1},{0,-1,-2,5}},B[NN]={0,3,15,10}; j, y4 J5 |. ^3 t
double x[NN]={0,0,0,0},A[NN][NN]={{0,0,0,0},{0,10,-1,-2},{0,-1,10,-2},{0,-1,-1,5}},B[NN]={0,7.2,8.3,4.2};
+ Z8 A8 u* E$ {0 H& u, z; z; I+ p0 Y //double x[NN]={0,0,0,0,0},A[NN][NN]={{0,0,0,0,0},{0,-5,1,1,2},{0,2,8,1,3},{0,1,-2,-4,-1},{0,-1,3,2,7}},B[NN]={0,-2,-6,6,12};1 N7 W# [0 a$ x' H) z
//double x[NN]={0,0,0,0,0,0,0},A[NN][NN]={{0,0,0,0,0,0,0},{0,1,-1,0,-1,0,0},{0,2,4,-1,0,-1,0},{0,4,-1,4,-1,0,-1},{0,8,0,-1,4,-1,0},{0,12,-1,0,-1,4,-1},{0,16,0,-1,0,-1,4}},B[NN]={0,0,5,-2,5,-2,6};
) G. i! t4 E+ o. b' |5 E; n //double x[NN]={0,0,0,0,0},A[NN][NN]={{0,0,0,0,0},{0,1,0.333,1.5,-0.333},{0,-2.01,1.45,0.50,2.95},{0,4.32,-1.95,0.007,2.08},{0,5.11,-4.00,3.33,-1.11}},B[NN]={0,3.00,2.62,0.130,3.77};
6 g- p1 k" `/ Z' x9 i //double x[NN]={0,0,0,0},A[NN][NN]={{0,0,0,0},{0,10,3,1},{0,2,-10,3},{0,1,3,10}},B[NN]={0,14,-5,14};
7 s" g0 T0 v$ u int N;
# q& `0 d8 {8 L4 |# B" I. { cout<<"请输入N值:";
4 q# N- I, E% j! O7 _5 B cin>>N;" s1 {' ^7 U* \9 T
cout< N1 F' q) k `6 X2 I cin>>e;
9 M6 t# V: O( D0 X8 z/ ^- W6 x% d /*cout<6 x5 r) l& I/ n$ C for(i=1;i<=N;i++)4 w# H8 l \+ Y4 R9 Z8 d
for(j=1;j<=N;j++)
+ i) f/ g' v9 d# j6 \' J0 I {
. p1 ^2 Y6 a4 m' z cin>>A[j];
" @1 O" e" K0 v, _0 b }2 Q. U8 y; l5 {8 K: _4 c+ b* V
cout<, j. _7 Z: w1 y1 R* P0 o
for(i=1;i<=N;i++)
- F9 h4 t* H7 I3 c4 j {- n: n: K, b' \4 |2 y+ w+ a
for(j=1;j<=N;j++)
' U6 m7 j/ n8 b0 b) @5 W+ } { H* F) u& b# }3 B ^5 V& p" u
cout<[j]<<' ';
) g3 L% }( ?5 ~( C; w 7 x8 k: |7 V" V
}5 _7 K/ X+ I% |5 u& D+ P% I
cout<2 s O: {1 r. V
} p$ L ~' e$ L. |
cout<( }4 n) s4 u, H+ f& E
for(i=1;i<=N;i++)cin>>B;6 ^6 G0 _. e0 c% s
for(i=1;i<=N;i++)cout<<<' ';5 Y" m* A- U' N2 ?8 c7 }+ G
cout<3 n, j7 I8 R" @7 n& L* j
for(i=1;i<=N;i++)cin>>x;*/. y+ ~3 x+ D9 s, N- ]+ k$ ^
9 R% g9 B" v0 `4 z) Y' [ //cout<<"k"<$ j7 u- i; [. v2 W$ H: B //for(i=1;i<=N;i++)cout<<"x["<$ ^4 E8 l9 P! X; H* s r=e;
: @4 x( s7 P+ U: c2 h/ n/ ?2 e for(k=1;r>=e;k++)$ F: M: [- R! F. N
{
0 r7 D. T+ F) @( k6 j r=0;* A) o# P- s$ g: N& D/ i
i=1;
$ [% u% P. k0 ~7 f0 S for(i=1;i<=N;i++)
: O' X7 v" i# P9 ^2 X ]% ^ {) c; ]1 c. T8 u* K/ D+ ^3 g) G
T=x;
! m+ C g7 H( Z; E c=0;
e( |0 }' {0 | for(j=1;j<=N;j++)
4 w2 f! K h. q, `' t/ a/ Y* h- N q {. s* \9 v$ P& O( S
if(j!=i)c+=(A[j]*x[j]);
4 N4 D4 W- I5 X0 B) w8 U cout<<"第"<5 p% `5 m1 }% L3 | w6 r( q% t; @ }! e, B' }0 T" E: q+ j% J
//c1=0;
{ o# ?$ |# Z$ g/ n //for(j=1;j<=i-1;j++)c1+=(A[j]*x[j]);0 A, \' N: S3 p9 w$ T" A" y/ _
x=(B-c)/A;( D+ `) j& z$ f w4 h- K/ t
cout<<"第"<<( Y+ @! r: e5 i" a. Y* Y! H if((fabs(x-T))>r)r=fabs(x-T);2 O( d# i7 F9 z
cout<<"第"<& a7 F" y1 {* Z' c" I }0 ]/ S/ \& u) K4 s7 ]
cout<4 m; V/ [& l* |$ [- H //cout<<"k="<. Y# G7 q6 y' ]7 Y" n0 V# y9 F
3 y+ F; y9 l7 N4 Y$ `. \; q
//cout.setf(ios::fixed,ios::floatfield);" Y! ?8 [% G, j5 y
for(i=1;i<=N;i++)cout<<"k="<<<' ';//<3 \& f/ {3 \: H' a% l
) G7 b1 I/ W7 q1 G! c }cout<$ J/ l8 \2 t3 |; }5 S, K2 s! ?
! ]3 x1 d9 m( H1 u' J
} |
|