Advertisement
machkovskitomche

gsl_matrix 2k16/2k17 Ikolok termin1

Apr 7th, 2019
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.64 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<gsl/gsl_matrix.h>
  4. #include<gsl/gsl_vector.h>
  5. #include<gsl/gsl_rng.h>
  6. #include<time.h>
  7.  
  8. int main()
  9. {
  10.     int N,i,j,k,l;
  11.     gsl_matrix *m;
  12.     gsl_vector *v1;
  13.     printf("Vnesi ja dolzinata na vektorot N:\t");
  14.     scanf("%d",&N);
  15.     v1=gsl_vector_alloc(N);
  16.     for(k=0;k<N;k++)
  17.     {
  18.         printf("Vnesete gi elementite na vektorot: \n");
  19.         int broj;
  20.         scanf("%d",&broj);
  21.         gsl_vector_set(v1,k,broj);
  22.     }
  23.     m=gsl_matrix_calloc(N,N);
  24.     gsl_rng *r;
  25.     gsl_rng_env_setup();
  26.     r=gsl_rng_alloc(gsl_rng_default());
  27.     gsl_rng_set(r,time(0));
  28.     for(i=0;i<N;i++)
  29.     {
  30.         for(j=0;j<N;j++)
  31.         {
  32.             for(k=0;k<N;k++)
  33.             int br=0;
  34.             if(i==j)
  35.                 {
  36.                     gsl_matrix_set(m,i,j,gsl_vector_get(v1,k+br));
  37.                 }
  38.             for(l=0;l<N;l++)
  39.                 {
  40.                     if(i==j && l>i && l>j)
  41.                         {
  42.                             double u=gsl_rng_uniform(r);
  43.                             int broj=(int)(u*1000)+(gsl_vector_get(v1,k));
  44.                             gsl_matrix_set(m,i,l,broj);
  45.                         }
  46.            
  47.                 }
  48.                             if(i>j)
  49.                                 {
  50.                                     break;
  51.                                 }
  52.         }
  53.     }
  54. gsl_rng_free(r);
  55.     printf("Novata matrica e: \n");
  56.       for(i=0;i<N;i++)
  57.     {
  58.         for(j=0;j<N;j++)
  59.         {
  60.             printf("%g",gsl_matrix_get(m,i,j));
  61.         }
  62.     }
  63.     gsl_matrix_free(m);
  64.     gsl_matrix_free(v1);
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement