Численные методы решения прикладных задач - page 65

65
void
pr_iter(){
double
x0[3]={-1,-1,-1};
int
k_iter=0, i;
if
(shod(a)==
true
){
while
(toch(x0,x)==
false
){
k_iter++;
for
(i=0; i<3; i++){
x0[i]=x[i];
}
x[0]=(b[0]-a[0][1]*x0[1]-a[0][2]*x0[2])/a[0][0];
x[1]=(b[1]-a[1][0]*x0[0]-a[1][2]*x0[2])/a[1][1];
x[2]=(b[2]-a[2][0]*x0[0]-a[2][1]*x0[1])/a[2][2];
}
}
cout<<
"Metod prostoi iteracii: k = "
<<k_iter<<endl;
for
(i=0; i<3; i++){
cout<<
"\tx["
<<i+1<<
"] = "
<<x[i]<<endl;
}
}
void
zeid(){
double
x0[3]={-1,-1,-1};
int
k_iter=0, i;
for
(i=0; i<3; i++) x[i]=0;
if
(shod(a)==
true
){
while
(toch(x0,x)==
false
){
k_iter++;
for
(i=0; i<3; i++){
x0[i]=x[i];
}
x[0]=(b[0]-a[0][1]*x0[1]-a[0][2]*x0[2])/a[0][0];
x[1]=(b[1]-a[1][0]*x[0]-a[1][2]*x0[2])/a[1][1];
x[2]=(b[2]-a[2][0]*x[0]-a[2][1]*x[1])/a[2][2];
}
}
cout<<
"Metod Zeidelya: k = "
<<k_iter<<endl;
for
(i=0; i<3; i++){
cout<<
"\tx["
<<i+1<<
"] = "
<<x[i]<<endl;
}
}
int
main(){
cout<<
"e="
<<e<<endl;
pr_iter();
zeid();
return
0;
}
Результаты выполнения программы с различной точностью
представлены на рис. 2.14 – рис. 2.16.
Рис. 2.14. Результат выполнения программы с точностью 0,1
I...,55,56,57,58,59,60,61,62,63,64 66,67,68,69,70,71,72,73,74,75,...284
Powered by FlippingBook