Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.DOC
Скачиваний:
9
Добавлен:
01.05.2014
Размер:
89.09 Кб
Скачать

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

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

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

вариант N4

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

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

Группа : 6361

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

1. Задание:

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

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

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

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

,

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

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

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

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

, ;

,;

,;

,.

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

  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\n\r",answer);

};

cprintf(" ЋвўҐв > %10.6f",answer*(b-a)/2);

if(!getch()) getch();

return 0;

}

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

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

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

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