Facebook
From Sweet Leech, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 347
  1. #define N 5
  2. #define MLI 30
  3.  
  4. double E = 0.0001;
  5.  
  6. void b(double alfa[N][N], double beta[N]);
  7. void c(double alfa[N][N], double beta[N]);
  8.  
  9. int main()
  10. {
  11.         double alfa[N][N], beta[N];
  12.         b(alfa, beta);
  13.         c(alfa, beta);
  14.  
  15. }
  16.  
  17. void b(double alfa[N][N], double beta[N])
  18. {
  19.         double A[N][N] = { { 10, 1, 1, 1, 2 }, { 3, 20, 4, 2, 1 }, { 5, 1, 40, 9, 5 }, { 3, 0, 1, 10, 1 }, { 6, 2, 1, 1, 20 } };
  20.         double B[N] = { 15, 30, 60, 15, 30 };
  21.  
  22.         for (int i = 0; i < N; i++)
  23.         {
  24.                 for (int j = 0; j < N; j++)
  25.                 {
  26.                         if (i == j)
  27.                         {
  28.                                 if (alfa[i][j] == 0)
  29.                                 {
  30.                                         std::cout << "Dzielenie przez ZERO/n";
  31.                                         system("Pause");
  32.                                         return;
  33.                                 }else{
  34.                                         beta[i] = B[i] / A[i][i];
  35.                                         alfa[i][j] = 0;
  36.                                 }
  37.                         }
  38.                         else if (A[i][i]!=0)
  39.                         {
  40.                                 alfa[i][j] = -A[i][j] / A[i][i];
  41.                         }
  42.                 }
  43.         }
  44.        
  45. }
  46.  
  47. void c(double alfa[N][N], double beta[N])
  48. {
  49.         int licznik_iteracji = 0;
  50.         double *Xnowy = beta;
  51.         double *Xstary;
  52.         double norma = 0;
  53.         do{
  54.                 Xstary = Xnowy;
  55.                 licznik_iteracji++;
  56.                 for (int i = 0; i < N; i++)
  57.                 {
  58.                         for (int j = 0; j < i-1; j++)
  59.                         {
  60.                                 Xnowy[i] += Xnowy[j] * alfa[i][j];
  61.                         }
  62.                         for (int j = i; j < N; j++)
  63.                         {
  64.                                 Xnowy[i] += alfa[i][j] * Xstary[j];
  65.                         }
  66.                         Xnowy[i] += Xstary[i];
  67.                         for (i = 0; i < N; i++)
  68.                         {
  69.                                 if (abs(Xnowy[i] - Xstary[i])>norma)
  70.                                 {
  71.                                         norma = abs(Xnowy[i] - Xstary[i]);
  72.                                 }
  73.                         }
  74.                 }
  75.         } while (norma > E && MLI < licznik_iteracji);
  76.  
  77.         for (int i = 0; i < N; i++)
  78.         {
  79.                 std::cout << "   " << Xnowy[i];
  80.         }
  81.  
  82.         std::cout << std::endl << "   " << licznik_iteracji << std::endl;

Replies to Untitled rss

Title Name Language When
Re: Untitled Big Wolf text 5 Years ago.