Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Метод простой итерации решения СЛАУ на C++
.cpp//Метод простой итерации решения СЛАУ
#include <stdio.h>
#include <conio.h>
#include <math.h>
const n = 5;
float A[n][n] = {
{ 79.2, 0, 35, 19.8, 24 },
{ 39.6, 85, 0, 19.8, 25 },
{ 19.8, -15, 45, 0, 10 },
{ 49.5, 18, 20, 89.1, 0 },
{ 9.9, 15, 20,-49.5, 95 },
};
float B[n] = { 86, 55, 77, 5, -64};
float X[30][n] = {0};
float TEST[n];
float summ;
float eps;
int k = 0;
bool ExitFunc(float eps)
{
if(k == 0) return true;
for(int i=0; i<n; i++){
if( fabs(X[k][i]-X[k-1][i]) > eps )
return true;
}return false;
}
void main(void)
{
printf("Enter eps:");
scanf("%f",&eps);
do
{
for(int i=0; i<n; i++)
{
summ = 0;
for(int j=0; j<n; j++)
if(i!=j)
summ += A[i][j] * X[k][j];
X[k+1][i] = (1/A[i][i]) * (B[i] - summ);
}
k++;
}while(ExitFunc(eps));
//Проверка
printf("\nResult:\n");
for(int j=0; j<n; j++)
printf("%4.8f ",X[k][j]);
printf("\nTest:\n");
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
TEST[i] +=(A[i][j] * X[k][j]);
printf("%4.8f ", TEST[i]);
}
printf("\nIterations:\n%i",k);
getch();
}
Соседние файлы в предмете Вычислительная математика