Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.39 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <malloc.h>
  4. #define N = 3
  5. void razn (double *m1, double *m2, double *m3)
  6. {
  7.      int l;
  8.      for (l = 0 ; l<N ;l++)
  9.      m3[l] = m1[l] - m2[l];
  10.      return;
  11.  }
  12.  
  13. void zvezda(double **m1, double *m2, double *m3)
  14. {
  15.      int i, j;
  16.      double s;
  17.      for (i=0; i<N; i++)
  18.      {
  19.          s=0;
  20.          for (j=0;j<N;j++)
  21.            s = s + m1[i][j]*m2[j];
  22.          m3[i] = s;
  23.      }
  24.      return;
  25.  }
  26.  void shag(double **m1, double *m2,double *m3, double *m4)
  27.  {
  28.   int i, j;
  29.   double s1=0, s2=0;
  30.   for (i=1; i<N; i++)
  31.     s1 = s1 + m1[0][i]*m3[i];
  32.   m2[0] = (m4[0] - s1)/m1[0][0];
  33.   for (i=1; i<(N-1); i++)
  34.   {
  35.       s1=0;
  36.       s2=0;
  37.       for (j=0; j<i; j++)
  38.         s1 = s1+ m1[i][j]*m2[j];
  39.       for (j=i+1; j<N; j++)
  40.         s2 = s2 + m1[i][j]*m3[j];
  41.       if (m1[i][i]!=0)
  42.         m2[i] = (m4[i]- s1 - s2)/m1[i][i];
  43.       else
  44.         printf ("\n error");
  45.     }
  46.   s2 = 0;
  47.   for (i=0; i<(N-1); i++)
  48.     s2 = s2+ m1[N-1][i]*m2[i];
  49.   m2[N-1] = (m4[N-1] - s2)/a[N-1][N-1];
  50.   return;    
  51.   }
  52.  int main ()
  53. {
  54.  
  55.         int i,j;
  56.  
  57.         double **A;
  58.         double *b, *xk1, *r, *xk, *t, *e;
  59.         double c, sum, help, bam;
  60. A = (double **) malloc (N * sizeof(double));
  61.  for(i = 0; i < N; i++)
  62.  A[i] = (double *) malloc (N * sizeof(double));
  63. b = (double *) malloc (N * sizeof(double));
  64. xk1 = (double *) malloc (N * sizeof(double));
  65. r = (double *) malloc (N * sizeof(double));
  66. xk = (double *) malloc (N * sizeof(double));
  67. t = (double *) malloc (N * sizeof(double));
  68. e = (double *) malloc (N * sizeof(double));
  69.  
  70. for (i=0; i<N; i++)
  71. {
  72. for (j=0; j<N; j++)
  73. scanf (" %lf ", &A[i][j]);
  74.  
  75. }
  76.  
  77. for (i=0; i<N; i++)
  78. scanf (" %lf ", &b[i]);
  79.  
  80. for (i=0; i<N; i++)
  81. scanf (" %lf ", &xk[i]);
  82.  
  83.  
  84.  
  85. for (i=0; i<N; i++)
  86. {
  87.     e[i] = 0;
  88.     t[i] = 0;
  89. }
  90.  
  91.  
  92. zvezda(A, xk, t);
  93. razn (t,b, r);
  94. bam = 1;
  95.  for (i=0; i<N; i++)
  96.  {
  97.      if  (r[i] = e[i])
  98.      bam = bam*1.0;
  99.      else
  100.      bam = bam*0.0;
  101.  }
  102.  
  103. while (bam != 1.0)
  104. {
  105.       shag(A, xk1, xk, b);
  106.       for (i=0; i<N; i++)
  107.       xk[i] = xk1[i];
  108.       for (i=0; i<N; i++)
  109.       t[i] = e[i];
  110.       zvezda (A, xk1, t);
  111.       razn (t,b, r);
  112.       bam = 1;
  113.       for (i=0; i<N; i++)
  114.  {
  115.      if  (r[i] = e[i])
  116.      bam = bam*1.0;
  117.      else
  118.      bam = bam*0.0;
  119.  }
  120.  
  121. }
  122. printf ("\n sha budet otvet \n");
  123. for (i=0; i<N; i++)
  124. printf (" %lf ", xk[i]);
  125.  
  126.  
  127. return (0);
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement