Advertisement
Guest User

Untitled

a guest
May 6th, 2015
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. //MÉTODO DA FATORAÇÃO LU EM C++
  2.  
  3. //ELIEZER BATISTA DA COSTA NETO - 359606 - ENGENHARIA MECÂNICA
  4.  
  5. #include<stdio.h>
  6. #include<stdlib.h>
  7. #include<math.h>
  8.  
  9. int main(){
  10.  
  11. // DECLARAÇÃO DE VARIÁVEIS
  12.  
  13. int i,k,w,j,h;
  14. float X[6], Y[6], R[6], soma, t, u, d, o;
  15. float A[6][6], L[6][6], U[6][6], V[6][6];
  16.  
  17. printf("Entre com os 25 coeficientes da matriz dos coeficientes do problema. Digite os coeficientes por ordem das linhas: \n");
  18. for(i=1;i<=5;i++){
  19. for(j=1;j<=5;j++){
  20. scanf("%f", &A[i][j]);
  21. }
  22. printf("\n");
  23. }
  24.  
  25. printf("Entre com os 5 termos da matriz dos termos independentes do problema: \n");
  26. for(i=1;i<=5;i++){
  27. scanf("%f", &R[i]);
  28. }
  29.  
  30. if(A[1][1]==0){
  31. for(i=2;i<=5;i++){
  32. if(A[i][1]!=0){
  33. for(h=1; h<=5; h++){
  34. t = A[i][h];
  35. u = A[1][h];
  36. A[1][h] = t;
  37. A[i][h] = u;
  38.  
  39. d = R[i];
  40. o = R[1];
  41. R[1] = d;
  42. R[i] = o;
  43. }
  44. i=5;
  45. }
  46. }
  47. }
  48.  
  49. // CÁLCULO DA MATRIZ L e U
  50.  
  51. for(i=1;i<=5;i++){
  52. for(j=1;j<=5;j++){
  53. if(i!=j){
  54. L[i][j] = 0;
  55. }
  56. if(i==j){
  57. L[i][j] = 1;
  58. }
  59. }
  60. }
  61.  
  62. k=1;
  63. w=1;
  64.  
  65. while(k<=4){
  66. for(i=1; i<=4; i++){
  67. V[k+i][k] =(A[k+i][w]/A[k][w]);
  68.  
  69. L[k+i][k] = (V[k+i][k]);
  70.  
  71. if(fabs(L[k+i][k])<0.001){
  72. L[k+i][k] = 0;
  73. }
  74.  
  75. for(j=1; j<=5; j++){
  76. A[k+i][j]= A[k+i][j] - (V[k+i][k])*(A[k][j]);
  77.  
  78. if(fabs(A[k+i][j])<0.001){
  79. A[k+i][j] = 0;
  80. }
  81. }
  82. }
  83. k = k + 1;
  84. w = w + 1;
  85. }
  86.  
  87. for(i=1;i<=5;i++){
  88. for(j=1;j<=5;j++){
  89. U[i][j] = A[i][j];
  90. }
  91. }
  92.  
  93.  
  94. printf("\n\n A matriz U eh: \n\n\n");
  95.  
  96. for(i=1;i<=5;i++){
  97. for(j=1;j<=5;j++){
  98. printf("%f ", U[i][j]);
  99. }
  100. printf("\n\n");
  101. }
  102.  
  103. printf("\n\n\n\n");
  104.  
  105. printf("A matriz L eh: \n\n\n");
  106.  
  107. for(i=1;i<=5;i++){
  108. for(j=1;j<=5;j++){
  109. printf("%f ", L[i][j]);
  110. }
  111. printf("\n\n");
  112. }
  113.  
  114. printf("\n\n\n\n");
  115.  
  116.  
  117. //CÁLCULO DAS INCÓGNITAS: SABE-SE QUE LUX = R E QUE UX = Y, ASSIM LY=R
  118.  
  119. for(i=1;i<=5;i++){
  120. soma = 0;
  121. for(j=1; j<=(i-1); j++){
  122. soma = soma + L[i][j]*Y[j];
  123. }
  124. Y[i] = R[i] - soma;
  125. }
  126.  
  127. for (i=5; i>=1; i--){
  128. soma = 0;
  129. for(j=(i+1); j<=5; j++){
  130. soma = soma + U[i][j]*X[j];
  131. }
  132.  
  133. X[i] = (Y[i] - soma)/U[i][i];
  134. }
  135.  
  136. 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]);
  137.  
  138. return(0);
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement