Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #define N 4
- double print(int n, double y[n][n])
- {
- int i,j,k;
- for (i=0;i<n;i++)
- {
- for (j=0;j<n;j++)
- {
- printf("%8.3lf",y[i][j]);
- if (j==(n-1))
- printf("\n");
- else
- printf(" ");
- }
- }
- }
- double printvec(int n, double x[n])
- {
- int i;
- for (i=0;i<N;i++)
- {
- printf("%8.3lf",x[i]);
- if (i==(n-1))
- printf("\n");
- else
- printf(" ");
- }
- }
- /*4V1 -V2 -V3 -V4 = V
- 3V3 -V1 -V4 = V
- 3V2 -V1 -V4 = 0
- 4V4 -V2 -V1 -V3 = 0
- 4 -1 -1 -1 = V
- -1 0 3 -1 = V
- -1 3 0 -1 = 0
- -1 -1 -1 4 = 0*/
- int main(void)
- {
- double A[N][N]={{4,-1,-1,-1},{-1,0,3,-1},{-1,3,0,-1},{-1,-1,-1,4}}, b[N]={5,5,0,0}, x[N]={0}; // POR LINHAS!
- int i,j,k;
- printf("Antes do escalonamento: \n");
- print(N,A); // o nome da matriz é A, A[N][N] é um número
- for (i=0;i<N;i++)
- {
- for (j=i+1;j<N;j++)
- {
- double c=A[j][i]/A[i][i];
- for (k=i;k<N;k++)
- {
- A[j][k]=A[j][k] - c*A[i][k];
- }
- b[j]=b[j]-c*b[i];
- }
- }
- printf("Após o escalonamento: \n");
- print(N,A);
- for (i=N-1;i>=0;i--)
- {
- double soma = b[i];
- for (j=i+1;j<N;j++)
- {
- soma=soma-A[i][j]*x[j];
- }
- x[i]=soma/A[i][i];
- }
- printf("Solução: \n");
- printvec(N,x);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement