Вычисление интеграла функции f(x), используя квадратурную формулу Гаусса

Автор: Пользователь скрыл имя, 16 Мая 2012 в 14:18, курсовая работа

Описание работы

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

Содержание

1. Введение. …………………………………………………………….. 3
2. Теоретическая часть. ………………………………………………... 4
3. Практическая часть. ………………………………………………… 7
3.1 Используемые данные. …………………………………………….. 7
3.2 Программный код. …………………………………………………. 7
3.3 Блок схема. …………………………………………………………. 12
4. Заключение. …………………………………………………………. 14
5. Приложение А. ……………………………………………………… 15

Работа содержит 1 файл

Курсовая работа по ОАЯПРГ Тимофеев С.О..doc

— 174.00 Кб (Скачать)

!x-коэффициенты для вычисления узлов (фиксированые точки на отрезке !разбиения) из файла koeff.txt             

!Выходные данные(все real) :                                                                                                                             

!int-значение интеграла.                                                                                                 

subroutine GSF1(a,b,int)                    

real  a,b

real pogr

real s,f,c(6),x(6),z(6),int

integer i

open (1,file='koeff.txt')

open (2,file='vesa.txt')

do i=1,6

read(1,*),x(i)

read(2,*),c(i)

enddo

s=0

do i=1,6

z(i)=a+(b-a)*x(i)   

s=(c(i)*f1(z(i))+s)

int=(b-a)*s

enddo

close(1)

close(2)

end

subroutine GSF2(a,b,int)                    

real  a,b

real s,f,c(6),x(6),z(6),int

integer i

open (1,file='koeff.txt')

open (2,file='vesa.txt')

do i=1,6

read(1,*),x(i)

read(2,*),c(i)

enddo

s=0

do i=1,6

z(i)=a+(b-a)*x(i)

s=(c(i)*f2(z(i))+s)

int=(b-a)*s

enddo

close(1)

close(2)

end

 

subroutine GSF3(a,b,int)                    

real  a,b

real s,f,c(6),x(6),z(6),int

integer i

open (1,file='koeff.txt')

open (2,file='vesa.txt')

do i=1,6

read(1,*),x(i)

read(2,*),c(i)

enddo

s=0

do i=1,6

z(i)=a+(b-a)*x(i)

s=(c(i)*f3(z(i))+s)

int=(b-a)*s

enddo

close(1)

close(2)

end

 

subroutine GSF4(a,b,int)                    

real a,b

real s,f,c(6),x(6),z(6),int

integer i

open (1,file='koeff.txt')

open (2,file='vesa.txt')

do i=1,6

read(1,*),x(i)

read(2,*),c(i)

enddo

s=0

do i=1,6

z(i)=a+(b-a)*x(i)

s=(c(i)*f4(z(i))+s)

int=(b-a)*s

enddo

close(1)

close(2)

end

 

 

!Подпрограммы CHE             

!Назначение:                                                                                                                             

!Приближенное вычисление интеграла функции, при помощи квадратурной

!формулы Чебышева,с колличеством узлов - 6. При расчете погрешности для     !метода !Гаусса, буду использовать истинное значение интеграла вычесленное !методом !Чебышева.

!Обращение:                                                                                                                                                         

!Call CHE1(a,b,ist) или Call CHE2(a,b,st) или Call CHE3(a,b,ist)                                         

! * Входные данные (все real):                                                                                                               

! * a-нижняя граница интегрирования                                                                                                               

! * b-верхняя граница интегрирования                                                                                                 

! * F-интегрируемая функция                                                                                                                             

! * x-узлы из файла                                                                                                                                           

! * Выходные данные(все real) :                                                                                                               

! * integr-значение интеграла.                                                                                                               

! Значения узлов взяты из таблицы узлов и записаны в файл koeff.txt.                                                                                   

subroutine CHE1(a,b,ist)

real ist, s, f

real a,b

integer i

real z(6), x(6)

open (100,file='koeffChe.txt')

s=0

do i=1,6

read(100,*),x(i)

enddo

do i=1,6

z(i)=(a+b)/2+((b-a)/2)*x(i)

s=(f1(z(i))+s)

ist=((a-b)/6)*s

enddo

close(100)

end

subroutine CHE2(a,b,ist)

real ist, s, f

real a,b

integer i

real z(6), x(6)

open (100,file='koeffChe.txt')

s=0

do i=1,6

read(100,*),x(i)

enddo

do i=1,6

z(i)=(a+b)/2+((b-a)/2)*x(i)

s=(f2(z(i))+s)

ist=((b-a)/6)*s

enddo

close(100)

end

subroutine CHE3(a,b,ist)

real ist, s, f

real a,b

integer i

real z(6), x(6)

open (100,file='koeffChe.txt')

s=0

do i=1,6

read(100,*),x(i)

enddo

do i=1,6

z(i)=(a+b)/2+((b-a)/2)*x(i)

s=(f3(z(i))+s)

ist=((b-a)/6)*s

enddo

close(100)

end

subroutine CHE4(a,b,ist)

real ist, s, f

real a,b

integer i

real z(6), x(6)

open (100,file='koeffChe.txt')

s=0

do i=1,6

read(100,*),x(i)

enddo

do i=1,6

z(i)=(a+b)/2+((b-a)/2)*x(i)

s=(f4(z(i))+s)

ist=((b-a)/6)*s

enddo

close(100)

end

 

 

 

 

 

 

 

 

3.3 Блок схема.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

             

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5. Заключение.

Мне удалось написать полностью рабочую программу, для вычисления определенных интегралов, при помощи квадратурной формулы Гаусса.              Я убедился, что вычисление интегралов при помощи квадратурной формулы Гаусса дает не большую погрешность, и возможно осуществить интегрирование даже, если верхняя граница интегрирования меньше чем нижняя. Для того чтобы убедиться в правильности данного метода, я воспользовался квадратурной формулой Чебышева, и как оказалось значения интегралов для четырех функций которые я выбрал по этим двум методам сходятся с точностью до сотых.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение A.

 

14

 



Информация о работе Вычисление интеграла функции f(x), используя квадратурную формулу Гаусса