Documente Academic
Documente Profesional
Documente Cultură
Bli, 2016
I. Formularea problemei
Calcularea matricei: a[Nmax][Nmax+1] = {{-8, 7, 3, 6, 10}, {11, 4, -2, 3, 47},
{13, 7, 25, 3, 61}, {5, -6, 12, 26, 30}} prin intermediul metodei Gauss, Gauss optimizat,
Gauss-Jordan .
II. Preliminarii
A1
A2
A3
A4
A5
-8
10
11
-2
47
13
25
61
-6
12
26
30
III.Programele
Metoda Gauss:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#define NMAX 10
int main()
{
int i,j,l,m,n = 4;
double a[NMAX][NMAX+1] = {{-8,7,3,6,10}, {11,4,-2,3,47},
{13,7,25,3,61},{5,-6,12,26,30}};
double x [NMAX];
double suma;
printf("Calcularea matricei prin metoda Gauss\n");
Rezultatele
Matricea iniial a sistemului
Matricea 1 a sistemului
Matricea 2 a sistemului
Matricea 3 a sistemului
//clrscr();
int l,i,j,n=4,m,imax,jmax;
//clrscr();
printf("\n Matriceainitiala
a sistemului\n");
printf("\n");
for(l=0; l<n; l++)
{
if(a[l][l] == 0)
{
if(a[m][l] != 0) break;
if(m==n)
{
cu 0");
getch(); exit(-1);
for(j=0;j<=n;j++)
{
t = a[m][j];
}
}
for(j=l+1; j<=n; j++)
a[l][j] = a[l][j]/a[l][l];
a[l][l] = 1;
for(i=l+1; i<n; i++)
for(j=l+1; j<=n; j++)
a[i][j] = a[i][j] - a[i][l]*a[l][j];
for(i=l+1; i<n; i++)
a[i][l] = 0;
printf("\n Matricea %d
a sistemului\n", l+1);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%8.3lf",a[i][j]);
printf("%8.3lf \n",a[i][n]);
}
X[n-1] = a[n-1][n];
for(i=n-2; i>=0; i--)
{
sum = 0;
for(j=i+1; j<n; j++)
sum += a[i][j]*X[j];
X[i] = a[i][n] - sum;
Rezultatele
Matricea 2 a sistemului
1.000 -0.875 -0.375 0.750
-1.250
Matricea 1 a sistemului
1.000 -0.875 -0.375 0.750
-1.250
0.000 13.625 2.125 11.250
60.750
0.000 18.375 29.875 12.750
77.250
0.000 -1.625 13.875 29.750
36.250
Matricea 3 a sistemului
1.000 -0.875 -0.375 0.750
-1.250
Matricea 4 a sistemului
1.000 -0.875 -0.375 0.750
-1.250
0.000 1.000 0.156 0.826 4.459
0.000 0.0000 1.000 -0.090 -0.173
0.000 0.000 0.000 1.000 1.420
Metoda Gauss-Jordan:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#define Nmax 10
int main()
{
//clrscr();
int l,i,j,n=4,m,imax,jmax;
scanf("%d", &n);
A[i][j] =
a[i][j];
}
//clrscr();
printf("\n Matriceainitiala
a sistemului\n");
for(j=0;j<n;j++)
printf("%8.3lf",a[i][j]);
printf(" %8.3lf \n", a[i][n]);
printf("\n");
for(l=0; l<n; l++)
{
if(a[l][l] == 0)
{
if(a[m][l] != 0) break;
if(m==n)
{
0");
getch(); exit(-1);
for(j=0;j<=n;j++)
{
}
t = a[m][j];
}
for(i=0; i<n; i++)
if(i != l)
for(j=l+1; j<=n; j++)
a[i][j] = a[i][j] - a[i][l]*a[l][j]/a[l]
[l];
for(i=l+1; i<n; i++)
a[i][l] = 0;
for(i=0; i<l; i++)
a[i][l] = 0;
printf("\n Matricea %d
a sistemului\n", l+1);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%8.3lf",a[i][j]);
printf("%8.3lf \n",a[i][n]);
}
for(i=0;i<n;i++)
X[i] = a[i][n]/a[i][i];
printf(" Solutia este\n");
for(i=0;i<n;i++)
Rezultatele
Matricea 1 a sistemului
-6.000
12.000
26.000
0.000
60.750
0.000
77.250
0.000
36.250
13.625
18.375
-1.625
2.125
11.250
29.875
12.750
13.875
Matricea 2 a sistemului
Matricea 3 a sistemului
29.750
Matricea 4 a sistemului
-8.000 0.000 0.000 0.000
-21.211
0.000 13.625 0.000 0.000 44.875
Concluzii: