Нахождение определенного интнеграла методом Гаусса - C (СИ)

Узнай цену своей работы

Формулировка задачи:

нужно написать прогу для нахождения определенного интнеграла методом гаусса

Решение задачи: «Нахождение определенного интнеграла методом Гаусса»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. int i, j, k, z, p;
  5. float a[5][5], b[5][5];
  6. float koef, e, e1, e2, e3, y;
  7. float x[5], x1[5];
  8.  
  9. int main()
  10. {
  11.     e=0.001;
  12.     printf("vvedit` koeficienty\n");
  13.     for (i=1; i<=3; i++)
  14.     for (j=1; j<=4; j++)
  15.         scanf ("%f", &a[i][j]);
  16.     for (i=1; i<=3; i++)
  17.     for (j=1; j<=4; j++)
  18.           b[i][j]=a[i][j];
  19.     printf ("vuberit` metod:\n 1-gauss\n 2-zeidel\n");
  20.         scanf ("%i", &z);
  21.       if (z==1)
  22.         {
  23.         for (p=1; p<=2; p++)
  24.             for (i=p+1; i<=3; i++)
  25.                {  koef=-a[i][p]/a[p][p];
  26.                 for (j=p;j<=4; j++)
  27.                 a[i][j]=a[i][j]+koef*a[p][j];
  28.  
  29.                }
  30.             for (i=3;i>=1; i--)
  31.             {
  32.             x[i]=a[i][4];
  33.             for (j=3; j>=1;j--)
  34.                 if(i==j)
  35.                 x[i]=x[i]/a[i][j];
  36.                 else x[i]=x[i]-a[i][j]*x[j];
  37.  
  38.             }
  39.  
  40.         for (i=1; i<=3; i++)
  41.             printf("%f\n\n", x[i]);
  42.        }
  43.         else
  44.         {   for (i=1; i<=3; i++)
  45.             { a[i][4]=0;
  46.             for (j=1; j<=3; j++)
  47.                 a[i][4]=a[i][4]+b[j][i]*b[j][4];
  48.             }
  49.             for (i=1; i<=3; i++)
  50.             for (j=1; j<=3; j++)
  51.             { a[i][j]=0;
  52.                for (k=1; k<=3; k++)
  53.                  a[i][j]=a[i][j]+b[j][k]*b[k][i];
  54.             }
  55.             for (i=1; i<=3; i++)
  56.             x1[i]=a[i][4]/a[i][i];
  57.       do
  58.             {
  59.         for (i=1; i<=3; i++)
  60.              {   x[i]=x1[i];
  61.             x1[1]=(a[1][4]-a[1][2]*x[2]-a[1][3]*x[3])/a[1][1];  e1=fabs(x1[1]-x[1]);
  62.             x1[2]=(a[2][4]-a[2][1]*x1[1]-a[2][3]*x[3])/a[2][2];  e2=fabs(x1[2]-x[2]);
  63.             x1[3]=(a[3][4]-a[3][1]*x1[1]-a[3][2]*x1[2])/a[3][3];  e3=fabs(x1[3]-x[3]);
  64.              }
  65.             }
  66.             while ((e1>e)&&(e2>e)&&(e3>e));
  67.  
  68.            for (i=1; i<=3; i++)
  69.             printf("%f\n\n", x[i]);
  70.         }
  71. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы