Invers_Gauss(n, a, invert);. Printf("\n Obratnaja matrica:\n");
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;}
Результат работы программы:
Решение системы линейных алгебраических уравнений
методом Гаусса с выбором главного элемента по всей матрице
В головной программе необходимо:
- описать прототип функции решения системы уравнений:
int Gauss(int n, float a[n][n], float b[n], float x[n]);
- ввести значение переменной n – порядок системы уравнений,
- описать массивы:
float a[n][n];// матрица коэффициентов системы уравнений
float b[n];// матрица свободных членов
float x[n];// вектор решения (вектор неизвестных)
- ввести массивыa[n][n]и b[n],
- обратиться к программе решения системы уравнений:
Gauss(n, a, b, x)
- вывести на экран терминала (в текстовый файл) вектор решения.
Пример:решить систему уравнений
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");