Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void afficheMat(float *m, int n){
- float *i;
- /*pour calculer quand une ligne finis*/
- int c;
- for(i=m,c=0;i<m+n*n;i++,c++){
- if(c && !(c%n))
- printf("\n\n");
- else if(c)
- printf(" ");
- printf("%15.7e", *i);
- }
- printf("\n----------------------------------------------------------------------------------------------------------------------------------------------------------------\n");
- }
- void gaussSansPivot(float *a, float *b, int n){
- float aux, aux2;
- int i;
- for(i=0;i<n-1;i++){
- aux=a[i*n+i];
- int k;
- for(k=i+1;k<n;k++){
- a[i*n + k]/=aux;
- }
- b[i]/=aux;
- for(k=i+1;k<n;k++){
- aux2=a[k*n + i];
- int j;
- for(j=i+1;j<n;j++)
- a[k*n+j] -= aux2 * a[i*n+j];
- b[k]-=aux2*b[i];
- }
- }
- b[n-1] /= a[n*n -1];
- for(i=n-2; i>=0;i--){
- aux=b[i];
- int k;
- for(k=i+1;k<n;k++)
- aux-= a[i*n + k] * b[k];
- b[i]=aux;
- }
- }
- void main() {
- //int n;
- //printf("n: \n");
- //scanf("%d", &n);
- int i;
- float b[4]={11.11,10.67,12.41,10.52};
- 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};
- gaussSansPivot(a,b,4);
- for(i=0;i<4;i++) printf("%15.7e",b[i]);
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement