Автор: Пользователь скрыл имя, 16 Мая 2012 в 14:18, курсовая работа
В своей курсовой работе автор использует для численного интегрирования квадратурную формулу Гаусса.
Цель работы написать правильно рабочую программу для вычисления четырех функций, а так же проанализировать точность метода.
1. Введение. …………………………………………………………….. 3
2. Теоретическая часть. ………………………………………………... 4
3. Практическая часть. ………………………………………………… 7
3.1 Используемые данные. …………………………………………….. 7
3.2 Программный код. …………………………………………………. 7
3.3 Блок схема. …………………………………………………………. 12
4. Заключение. …………………………………………………………. 14
5. Приложение А. ……………………………………………………… 15
!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), используя квадратурную формулу Гаусса