|
程序如下,是用来解线性方程的,用的是高斯赛德乐迭代法做的5 _% I+ R6 X7 m: T1 @! h
在算三个未知量的时是和答案一致的,四个未知量就有出入,做六个未知量就出错了.! V+ e: o9 \3 `
谁能告诉我错在哪里了,是题错还是程序错了.: W* t* |1 q) z' F% T
刚开始学,不足之处请指教。3 o9 f2 F" s4 t$ {$ ^! }( s
#include
' h3 Y/ T; q9 ]! ]; O#include F; X" C( `9 i2 ?. R0 p
#define NN 50 ' n( `4 B1 M0 P' p$ {. p: y
void main()1 A* }0 o: e5 M5 N7 }2 {* J
{
# a& Q8 i+ s! u" E7 x& e cout.setf(ios::fixed,ios::floatfield);" q: ]1 B2 j/ S/ q
cout<: }# `* a: {9 ~
int i,j,k;
( W) K% L; ?' i/ M- q8 h; N8 N double e,c,T,r;
1 `1 N6 W2 b8 G+ y1 Y //double x[NN],A[NN][NN],B[NN];
3 [4 ]! `# C+ ~$ G, b* B$ w6 C //题目如下:任选一个
; n8 o) @& S: G% w# J //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};
: @, R2 t& ]' W# x/ L; Q! B* H( ` 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};% z- f7 f8 `7 |. _! {! x
//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};
7 \2 }! A6 @1 V5 }5 g( U //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};
' b2 C2 L$ h! B1 [0 J& z- Q //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};
& q# h. \2 x0 u: r# } //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};& t6 ]1 m& C# z9 @2 e; M) ^% g
int N;- F3 K9 U* @- z) }
cout<<"请输入N值:";% o" z$ y+ h5 ^3 J& e" x
cin>>N;' \6 R8 ?- u4 R
cout<5 H+ ^4 K7 v: [- y# q7 Q0 d B
cin>>e;
! f. ]8 z- l+ I% ^/ ]2 u0 F /*cout<2 C+ ?) |! N4 Q1 F$ W- `
for(i=1;i<=N;i++), n, o/ \) h/ s$ I. T* O2 A# S
for(j=1;j<=N;j++): T8 U- u8 B* H& K5 R3 l `
{) w% x, }' `4 P3 w8 u6 }
cin>>A[j];
; w, S, Z u% z% w- J3 |9 l2 j }8 D/ i( v9 y ]8 A. j& Q
cout<- E( s8 h$ \' |- u* m1 H a
for(i=1;i<=N;i++)
4 A' {* d$ T2 i+ @% q {
6 Z( x7 g! N% e/ {2 V: W for(j=1;j<=N;j++)
0 N4 i. Z4 O. t; \% d8 T {
4 ~2 ?3 q$ |$ c+ E! `; ^) q cout<[j]<<' ';4 F9 y+ S7 q: l
) i0 k6 U w! d4 E* T }" i' ^# o+ F* X2 E* }
cout<& C# n( H* w0 ?3 i }
* y' X3 a: X# W, _) t: z2 c cout<5 N- T5 K3 v. N: `3 t" l" `
for(i=1;i<=N;i++)cin>>B;. V8 x( R6 n0 F( h% _0 z/ |
for(i=1;i<=N;i++)cout<<<' ';8 v/ v" \) L; J5 y: L' O$ y
cout<9 v8 [" F4 @. t/ ]6 c* B for(i=1;i<=N;i++)cin>>x;*/* L$ c8 e& `8 v# y
6 A# B& S9 L1 O7 \3 `, G2 B J2 a! n H //cout<<"k"<2 A- e7 L; L8 p( N. m! a/ i- a //for(i=1;i<=N;i++)cout<<"x["<& G# A& U. Z' r7 d r=e;9 V! Z1 ?6 u: ~; @
for(k=1;r>=e;k++)
' [0 w* }) u7 p1 I/ O {
3 x4 A' P% x) K+ v6 u r=0;7 d$ P1 x% I( N2 L
i=1;
" [( t& J% _* f: c( [ for(i=1;i<=N;i++) d' w) Y+ z) H7 n. b
{+ {& r6 P" M, [# q; o- I& T U2 _
T=x;
5 e; m. |6 T" R) t* ~* B. r c=0;; C( F+ a% h' W' U% G7 b: a4 V
for(j=1;j<=N;j++)
5 K$ a8 Q# ~! t: P) n7 B7 k: [' \ {
% k5 \) F; m. j5 o$ q5 p if(j!=i)c+=(A[j]*x[j]);/ H# B2 `7 h6 d0 V0 Q( ? F6 ~
cout<<"第"<1 F- F/ X6 T& w9 a) S }
2 X. J: ~5 j4 @: L) }; X //c1=0;5 |; r- ]* K& K- [
//for(j=1;j<=i-1;j++)c1+=(A[j]*x[j]); d S+ q9 G& _+ T! w+ h
x=(B-c)/A;' P5 m9 |& }! `& R; ~
cout<<"第"<<: J; I. [0 A# Q% f) z8 H& v if((fabs(x-T))>r)r=fabs(x-T);
, }9 p4 ?* _" @5 N6 L9 @, i/ A cout<<"第"<+ v0 ^' K: V4 D/ z4 A }/ A E3 I8 F! H. f
cout<1 m6 q$ P) I( E0 }, G //cout<<"k="<; j0 Y3 k, R2 N& \ " ^0 v* j% L" y+ j6 b
//cout.setf(ios::fixed,ios::floatfield);, J a+ u ]* t! S+ l' K0 |
for(i=1;i<=N;i++)cout<<"k="<<<' ';//<5 ^* p; t, j$ \# ?0 b! b. P
3 o( s' [8 ?) u# k& O% \6 k. N }cout<- }4 V# r4 R' ~2 M 1 ~7 F7 i; p3 ]! L8 N0 K
} |
|