n=10
b=3.14
call tint
call Out
write(1,'(I8,a,f20.15,a,f20.15)') n,';',rintegr,
*';',(b-a)/n
end if
rintegr=0.0
end
program main
implicit real*8 (a-h,o-z)
common /int/ rintegr,a,b,isig,n
!real*8 rintegr
isig=0
rintegr=0D00
call vvod
1 print *,'Chose the action: 1- vvod n, 2- malost, 3 -exit'
read *,j
if (j.eq.1) then
call trapec
goto 1
else
if(j.eq.2) then
call mal
end if
endif
end
subroutine mal
implicit real*8 (a-h,o-z)
common /int/ rintegr,a,b,isig,n
!real*8 rintegr
open(1,file='out.csv',status='old')
do i=0,16
n=2**i
call tint
write(*,'(I8,f20.15)')n,rintegr
write(1,'(I8,a,f20.15,a,f20.15)') n,';',rintegr,
*';',(b-a)/n
rintegr=0D00
end do
pause
close(1)
end
Вывод.
1. Для трех методов интегрирования было проведено практическое исследование порядка точности на полиномах:
Порядок точности k методов трапеций, гаусса 2, гаусса 4 соответственно 2, 4, 8. По таблицам видно, что для всех методов программа точно считает интегралы от полиномов степени m≤k-1; отношение погрешностей показывает насколько уменьшается погрешность при уменьшении шага разбиения в 2 раза и соответствует выведенному аналитически -- 4, 16, 256.
2. Порядок малости для трех методов был исследован на двух сильно осциллирующих функциях, заполнена соответствующая таблица, для каждой строки также рассчитана оценка возможности применения методов Рунге и Ричардсона. По таблице видно, что область возможности применения для метода трапеций соответствует середине диапазона отрезков разбиения: в начале и конце методы Рунге и Ричардсона не работают, так как в начале шаг разбиения оказывается достаточно большим, а в конце слишком маленьким. Также видно, что при увеличении порядка точности метода интегрирования уменьшается область применения. По этим исследованиям можно сделать вывод, что данная программа дает возможность, не зная точного значения интеграла, получить его с точностью до n верных значащих цифр: в области возможности применения Рунге и Ричардсона по Рунге получаем абсолютную погрешность и определяем количество верных цифр, делим абсолютную погрешность на приближенное значение, получаем относительную погрешность и количество верных значащих цифр.
3. Исследование влияния длины слова. При увеличении длины слова для всех методов интегрирования область возможности применения методов Рунге и Ричардсона увеличивается, что увеличивает возможность получить больше верных значащих цифр. То есть более выгодным для использования методов численного интегрирования является реализация программы с двойной точностью.
4. Исследование на неравномерных сетках. Была исследована одна функция на промежутках сгущения в области её экстремумов, быстрого роста и постоянства. Для всех методов интегрирования наименьшая погрешность при одинаковом количестве отрезков достигается при сгущении сетки в области быстрого роста функции по сравнению с остальными случаями, причем при увеличении порядка точности метода разница погрешностей при различных вариантах сгущения уменьшается. Значение погрешности при сгущении сетки в местах быстрого роста меньше, чем на равномерной сетке, а в области экстремумов погрешность больше, чем на равномерной для всех методов. Также было замечено на примере метода трапеций, что при существенно разном количестве отрезков разбиения(5000 и 41 соответственно) при сгущении сетки в области экстремумов и быстрого роста функции достигнута приблизительно одинаковая погрешность. Таким образом, наилучшие результаты дает сгущение сетки в местах быстрого роста функции.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.