Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. void afficheMat(float *m, int n){
  6. float *i;
  7. /*pour calculer quand une ligne finis*/
  8. int c;
  9. for(i=m,c=0;i<m+n*n;i++,c++){
  10. if(c && !(c%n))
  11. printf("\n\n");
  12. else if(c)
  13. printf(" ");
  14.  
  15. printf("%15.7e", *i);
  16. }
  17. printf("\n----------------------------------------------------------------------------------------------------------------------------------------------------------------\n");
  18. }
  19.  
  20.  
  21. void gaussSansPivot(float *a, float *b, int n){
  22. float aux, aux2;
  23. int i;
  24. for(i=0;i<n-1;i++){
  25. aux=a[i*n+i];
  26. int k;
  27. for(k=i+1;k<n;k++){
  28. a[i*n + k]/=aux;
  29. }
  30. b[i]/=aux;
  31. for(k=i+1;k<n;k++){
  32. aux2=a[k*n + i];
  33. int j;
  34. for(j=i+1;j<n;j++)
  35. a[k*n+j] -= aux2 * a[i*n+j];
  36. b[k]-=aux2*b[i];
  37. }
  38. }
  39.  
  40. b[n-1] /= a[n*n -1];
  41.  
  42. for(i=n-2; i>=0;i--){
  43. aux=b[i];
  44. int k;
  45. for(k=i+1;k<n;k++)
  46. aux-= a[i*n + k] * b[k];
  47. b[i]=aux;
  48. }
  49. }
  50.  
  51. void main() {
  52. //int n;
  53. //printf("n: \n");
  54. //scanf("%d", &n);
  55. int i;
  56. float b[4]={11.11,10.67,12.41,10.52};
  57. float a[16]={2.5,1.5,1.7,2.5,1.7,1.8,2.2,1.8,2.0,1.2,2.5,3.0,2.1,1.2,2.2,1.5};
  58. gaussSansPivot(a,b,4);
  59. for(i=0;i<4;i++) printf("%15.7e",b[i]);
  60. printf("\n");
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement