МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА кафедра «Захист інформації»
Звіт
про виконання лабораторної роботи №3
з курсу: "Комп’ютерні методи дослідження інформаційних процесів та систем"
ІТЕРАЦІЙНІ МЕТОДИ РОЗВ’ЯЗУВАННЯ СИСТЕМ
ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ
Львів – 2007
Мета роботи – ознайомлення з ітераційними методами розв’язування систем лінійних алгебраїчних рівнянь.
.ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ
Розв’язати систему лінійних алгебраїчних рівнянь методами простої ітерації або Зейделя.
,
Список ідентифікаторів констант, змінних, процедур і функцій, використаних в програмі, та їх пояснення.
i– номер рядка;
j – номер стовпця;
n – кількість рівнянь;
s, k, b, p – задані величини;
kil – кількість ітерацій;
х1[] – масив коренів після першої ітерації;
х0[] – масив коренів;
e[] – масив похибок;
а [][]– масив, що задає систему рівнянь;
main() – головна функція;
Остаточно відлагоджений текст програми згідно з отриманим завданням мовою С
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define k 0
#define p 0
#define n 4
void main()
{
int i,j,kil=0;
double s=0.2*k, b=0.2*p, rez;
double a[n][n+1]={{3.3,-12.62+s,4.1,1.9,-10.55+b},
{3.92,8.45,-(1.78-s),1.4,12.21},
{3.77,1.21+s,8.04,0.28,15.45-b},
{2.21,3.65-s,1.69,9.99,-8.35}},
/*{{4,-1,1,4},{1,6,2,9},{-1,-2,5,2}},*/
x0[n],x1[n],ee=0.00001,e[n];
//perevirka zbignosti
for(i=0;i<n;i++){
rez=0;
for(j=0;j<n;j++)
if(j!=i)
rez+=a[i][j];
if(rez>a[i][i]){
puts("ne vukonyytsia ymovu zbignosti");
return;
}
}
for (i=0;i<n;i++)
for(j=0;j<n+1;j++)
if(i!=j)
a[i][j]=a[i][j]/a[i][i];
for(i=0;i<n;i++)
x0[i]=a[i][n];
do{
for(i=0;i<n;i++){
x1[i]=a[i][n];
for(j=0;j<n;j++)
if(i!=j)
x1[i]=x1[i]-x0[j]*a[i][j];
e[i]=fabs(x1[i]-x0[i]);
x0[i]=x1[i];
}
kil++;
}while(!(e[0]<ee&&e[1]<ee&&e[2]<ee&&e[3]<ee));
puts("RESULTAT");
for(i=0;i<n;i++)
printf("x%d = %lf\n",i+1,x0[i]);
printf("kilkist krokiv=%d\n",kil);
getchar();
}
Результати виконання програми
x1=
x2=
x3=
x4=
kilkist krokiv=
Висновок: на цій лабораторній роботі я ознайомився з ітераційними методами розв’язування систем лінійних алгебраїчних рівнянь.