Лабораторная
 

Cанкт-Петербургский Государственный Электротехнический Университет

 

 

 

 

 

 

 

 

 

 

 

 

КАФЕДРА МОЭВМ

 

Отчет по лабораторной работе N9

вариант N4

 

 

 

 

 

 

 

 

 

 

 

 

 

Преподаватель :            Титов М.С.

Студент :            Виноградов К. Ю.

Группа        :            6361

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Санкт-Петербург

д/ММ/гг

1. Задание:

Составить программу, вычисляющую заданный интеграл по формуле Гусса.

 

 

2. Теоретическая часть:

В квадратурной формуле Гаусса

узлы и коэффициенты подобраны так, чтобы формула была точна для всех многочленов степени . Для приближенного вычисления интеграла по конечному отрезку выполняется замена переменной ; тогда квадратурная формула Гаусса принимает вид [2,8,12]

,

где ; - узлы квадратурной формулы Гаусса; - гауссовы коэффициенты .

Если подынтегральная функция достаточно гладкая, то формула Гаусса обеспечивает очень высокую точность при небольшом числе узлов.

В лабораторной работе No9 требуется, используя квадратурную формулу Гаусса наивысшего порядка точности, вычислить приближенное значение заданного интеграла.

Интеграл предлагается вычислить по квадратурной формуле Гаусса с восемью узлами:

, ;

,;

,;

,.

3. Порядок выполнения лабораторной работы No9.

  1. Составить программу-функцию для вычисления интеграла по формуле Гаусса.

  2. Составить программу-функцию для вычисления значений подынтегральной функции.

  3. Составить головную программу, содержащую обращение к вычислительным процедурам и осуществляющую печать результатов.

  4. Результаты работы оформить в виде краткого отчета, содержащего характеристику используемого метода вычислений, его точности и полученное значение интеграла.

 

4. Текст программы:

 

//Программа для вычисления интеграла на отрезке [1;2] по формуле Гаусса.

// Программа написана ст. гр. 6311 Виноградовым Константином

#include<conio.h>

#include<math.h>

 

const double t[8]= {

-0.9602898986,

    -0.79666648,

-0.52553242,

-0.18343464,

0.18343464,

0.52553242,

0.79666648,

0.9602898986

};

const double c[8]= {

0.10122854,

0.22238104,

0.31370664,

    0.36268378,

        0.36268378,

        0.31370664,

        0.22238104,

        0.10122854

                    };

const float a=1;

const float b=2;

 

double func(double x)

    {

    return (1/(x*x)*exp(-2*x));

    }

 

main()

    {

    clrscr();

    double answer=0;

    for(int k=0;k<8;k++)

    { answer+=c[k]*func((b+a)/2+((b-a)/2)*t[k]);

    cprintf( %10.6f ,answer);

    };

    cprintf( Žв¡¥в > %10.6f,answer*(b-a)/2);

    if(!getch()) getch();

    return 0;

 

    }

 

 

 

 

5. Результаты работы программы:

 

Программа вычисляет интеграл на отр.[1;2]

С помощью данной программы были получены следующие результаты :

Значение интеграла по формулам: