Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //MÉTODO DA FATORAÇÃO LU EM C++
- //ELIEZER BATISTA DA COSTA NETO - 359606 - ENGENHARIA MECÂNICA
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- int main(){
- // DECLARAÇÃO DE VARIÁVEIS
- int i,k,w,j,h;
- float X[6], Y[6], R[6], soma, t, u, d, o;
- float A[6][6], L[6][6], U[6][6], V[6][6];
- printf("Entre com os 25 coeficientes da matriz dos coeficientes do problema. Digite os coeficientes por ordem das linhas: \n");
- for(i=1;i<=5;i++){
- for(j=1;j<=5;j++){
- scanf("%f", &A[i][j]);
- }
- printf("\n");
- }
- printf("Entre com os 5 termos da matriz dos termos independentes do problema: \n");
- for(i=1;i<=5;i++){
- scanf("%f", &R[i]);
- }
- if(A[1][1]==0){
- for(i=2;i<=5;i++){
- if(A[i][1]!=0){
- for(h=1; h<=5; h++){
- t = A[i][h];
- u = A[1][h];
- A[1][h] = t;
- A[i][h] = u;
- d = R[i];
- o = R[1];
- R[1] = d;
- R[i] = o;
- }
- i=5;
- }
- }
- }
- // CÁLCULO DA MATRIZ L e U
- for(i=1;i<=5;i++){
- for(j=1;j<=5;j++){
- if(i!=j){
- L[i][j] = 0;
- }
- if(i==j){
- L[i][j] = 1;
- }
- }
- }
- k=1;
- w=1;
- while(k<=4){
- for(i=1; i<=4; i++){
- V[k+i][k] =(A[k+i][w]/A[k][w]);
- L[k+i][k] = (V[k+i][k]);
- if(fabs(L[k+i][k])<0.001){
- L[k+i][k] = 0;
- }
- for(j=1; j<=5; j++){
- A[k+i][j]= A[k+i][j] - (V[k+i][k])*(A[k][j]);
- if(fabs(A[k+i][j])<0.001){
- A[k+i][j] = 0;
- }
- }
- }
- k = k + 1;
- w = w + 1;
- }
- for(i=1;i<=5;i++){
- for(j=1;j<=5;j++){
- U[i][j] = A[i][j];
- }
- }
- printf("\n\n A matriz U eh: \n\n\n");
- for(i=1;i<=5;i++){
- for(j=1;j<=5;j++){
- printf("%f ", U[i][j]);
- }
- printf("\n\n");
- }
- printf("\n\n\n\n");
- printf("A matriz L eh: \n\n\n");
- for(i=1;i<=5;i++){
- for(j=1;j<=5;j++){
- printf("%f ", L[i][j]);
- }
- printf("\n\n");
- }
- printf("\n\n\n\n");
- //CÁLCULO DAS INCÓGNITAS: SABE-SE QUE LUX = R E QUE UX = Y, ASSIM LY=R
- for(i=1;i<=5;i++){
- soma = 0;
- for(j=1; j<=(i-1); j++){
- soma = soma + L[i][j]*Y[j];
- }
- Y[i] = R[i] - soma;
- }
- for (i=5; i>=1; i--){
- soma = 0;
- for(j=(i+1); j<=5; j++){
- soma = soma + U[i][j]*X[j];
- }
- X[i] = (Y[i] - soma)/U[i][i];
- }
- printf("O vetor resposta eh:\n\n c1:%f kg/m3\n c2:%f kg/m3\n c3:%f kg/m3\n c4:%f kg/m3\n c5:%f kg/m3 \n\n", X[1],X[2],X[3],X[4],X[5]);
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement