Invers_Gauss(n, a, invert);

printf("\n Obratnaja matrica:\n");

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

{

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

printf("%10.5f", invert[i][j]);

printf("\n");

}

printf("\n");

return 0;}

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

Решение системы линейных алгебраических уравнений

методом Гаусса с выбором главного элемента по всей матрице

В головной программе необходимо:

  1. описать прототип функции решения системы уравнений:

int Gauss(int n, float a[n][n], float b[n], float x[n]);

  1. ввести значение переменной n – порядок системы уравнений,
  2. описать массивы:

float a[n][n];// матрица коэффициентов системы уравнений

float b[n];// матрица свободных членов

float x[n];// вектор решения (вектор неизвестных)

  1. ввести массивыa[n][n]и b[n],
  2. обратиться к программе решения системы уравнений:

Gauss(n, a, b, x)

  1. вывести на экран терминала (в текстовый файл) вектор решения.

Пример:решить систему уравнений

x1 – 3x2 + 2x3 = 5;

3x1 - 4x2 = 7;

2x1 - 5x2 + 3x3 = 9;

В этом случае n=3;

1 -3 2 5

a[3][3]= 3 -4 0 b[3]= 7

2 -5 3 9

Головная программа:

#include <stdio.h>

#include <math.h>

#include <conio.h>

int Gauss(int n, float a[n][n], float b[n], float x[n]);

int main(int argc, char **argv)

{

int n;// порядок системы уравнений

int i,j;// рабочие переменные

printf("\n porjadok sistemy uravn. n=");

scanf("%d", &n);

float a[n][n];// матрица коэффициентов системы уравнений

float b[n];// вектор свободных членов

float x[n];// вектор решения системы уравнений

printf("\n vvedite matrizu koeff. sistemy postrochno:\n");

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

{

printf("\n stroka %d (%d chisel) :\n", i+1, n);

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

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

}

printf("\n");

printf("\n vvedite vektor svobodn. chlenov:\n");

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

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

printf("\n");

Gauss(n, a, b, x);

printf("\n Reshenie sistemy uravn.:\n");

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

printf("%10.5f", x[i]);

printf("\n");

Return 0;

}

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

Таким образом,

x1=5.0 x2=2.0 x3=3.0

 

Решение системы линейных алгебраических уравнений

методом Гаусса по схеме Халецкого

В головной программе необходимо:

1. описать прототип функции решения системы уравнений:

int Gauss_Haleckij(int n, float a[n][n], float b[n], float x[n]);

2. ввести значение переменной n – порядок системы уравнений,

3. описать массивы:

float a[n][n]; // матрица коэффициентов системы уравнений

float b[n]; // матрица свободных членов

float x[n]; // вектор решения (вектор неизвестных)

4. ввести массивы a[n][n]иb[n],

5. обратиться к программе решения системы уравнений:

Gauss_Haleckij(n, a, b, x);

6. вывести на экран терминала (в текстовый файл) вектор решения.

Пример: решить систему уравнений

x1 – 3x2 + 2x3 = 5;

3x1 - 4x2 = 7;

2x1 - 5x2 + 3x3 = 9;

В этом случае n=3;

1 -3 2 5

a[3][3]= 3 -4 0 b[3]= 7

2 -5 3 9

Головная программа:

#include <stdio.h>

#include <math.h>

#include <conio.h>

int Gauss_Haleckij(int n, float a[n][n], float b[n], float x[n]);

int main(int argc, char **argv)

{

int n;// порядок системы уравнений

int i,j;// рабочие переменные

printf("\n porjadok sistemy uravn. n=");

scanf("%d", &n);

float a[n][n];// матрица коэффициентов системы уравнений

float b[n];// вектор свободных членов

float x[n];// вектор решения системы уравнений

printf("\n vvedite matrizu koeff. sistemy postrochno:\n");

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

{

printf("\n stroka %d (%d chisel) :\n", i+1, n);

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

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

}

printf("\n");

printf("\n vvedite vektor svobodn. chlenov:\n");

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

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

printf("\n");