Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


За допомогою пакету MathCad





Розв’язок системи лінійних рівнянь

За допомогою методу Зейделя

 

Застосування методу Гауса для розв’язування системи лінійних рівнянь з великою кількістю невідомих досить громіздке. Крім того, кількість невідомих може бути така велика, що коефіцієнти системи не завжди можна розмістити у оперативній пам’яті ПЕОМ. Тоді застосовувати для її розв’язування метод Гауса взагалі не можна. У цих випадках розв’язують систему ітераційними методами. Метод Зейделя належить саме до ітераційних методів.

Представлена програма на мові С здійснює реалізацію методу Зейделя.

Текст програми

 

#include <stdio.h>

#include <math.h>

main()

{

FILE *stream;

float e=0.001,a[11][11],x[11],y[11],s,r[11],t[11][11];

int i,j,n,m;

stream=fopen("zej.txt","w");

puts("введiть к-сть рiвнянь");

scanf("%d",&m);

m--;

for (i=0;i<=m;i++)

for (j=0;j<=m+1;j++)

{printf("a %d %d=",i,j);

scanf("%f",&a[i][j]);

t[i][j]=a[i][j];};

fprintf(stream," Розв'язок системи\n");

fprintf(stream," методом Зейделя\n");

fprintf(stream," матриця системи\n");

for (i=0;i<=m;i++)

{

for (j=0;j<=m+1;j++)

fprintf(stream," %5.2f",a[i][j]);

fprintf(stream,"\n");

};

/*присвоення початкових значень*/

for(i=0;i<=m;i++)

x[i]=a[i][m+1];

/*цикл iтерацiй*/

do {

s=0;

for(n=0;n<=m;n++)

{

y[n]=a[n][m+1];

for(j=0;j<=m;j++)

{if (j==n) continue;

y[n]-=a[n][j]*x[j];};

y[n]/=a[n][n];

s+=fabs(x[n]-y[n]);

x[n]=y[n];

};}

while (s>=e);

fprintf(stream," Розв'язок\n");

for (i=0;i<=m;i++)

fprintf(stream,"x %d=%5.4f\n",i,x[i]);

fprintf(stream,"невязки\n");

for(i=0;i<=m;i++)

{s=0;

for(j=0;j<=m;j++)

{

s+=t[i][j]*x[j]; };

r[i]=s-t[i][m+1];

fprintf(stream,"r[%d]=%5.3f\n",i,r[i]);

};

fclose(stream);

}

 

Результат роботи програми

Розв'язок системи





Поделиться с друзьями:


Дата добавления: 2015-09-20; Мы поможем в написании ваших работ!; просмотров: 608 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Своим успехом я обязана тому, что никогда не оправдывалась и не принимала оправданий от других. © Флоренс Найтингейл
==> читать все изречения...

2378 - | 2186 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.