Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум к Главе 3 - s5.doc
Скачиваний:
4
Добавлен:
19.11.2019
Размер:
608.26 Кб
Скачать

Лабораторная работа 3.5. Численное интегрирование

Задание.

Задан интеграл

; – полином третьей степени.

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

2. Требуется вычислить заданный интеграл на ЭВМ по стандартной подпрограмме QATR, а также одним (или всеми) из численных методов (прямоугольников, трапеций, Симпсона) по указанию преподавателя.

Варианты задания.

,

где ;

– номер группы; – номер студента по журналу.

Пример выполнения лабораторной работы.

Вычислить

, где .

Ручной счет.

; .

Метод прямоугольников.

Имеем: , , .

Дальнейший расчет сведен в табличную форму (см. таблицу Л3.5.1).

Таблица Л3.5.1. Вычисление интеграла методом прямоугольников.

1

0.375

0.713

2

1.125

–0.283

3

1.875

–3.951

4

2.625

–12.822

На основании данных, приведенных в таблице Л3.4.1, вычисляем:

,

откуда .

Метод трапеций.

Имеем: , , .

Дальнейший расчет сведен в табличную форму (см. таблицу Л3.5.2).

Таблица Л3.5.2. Вычисление интеграла методом трапеций.

0

0.0

1.0

1

0.75

0.391

2

1.5

–1.625

3

2.25

–7.578

4

3.0

–20.0

На основании данных, приведенных в таблице Л3.4.1, вычисляем:

,

откуда .

Метод Симпсона.

Имеем: , , .

Дальнейший расчет сведен в табличную форму (см. таблицу Л3.5.3).

Таблица Л3.5.3. Вычисление интеграла методом Симпсона.

0

0.0

1.0

1

0.75

0.391

2

1.5

–1.625

3

2.25

–7.578

4

3.0

–20.0

На основании данных, приведенных в таблице Л3.4.1, вычисляем:

,

откуда .

Выполнение работы на ЭВМ.

Пример программы на Фортране:

program lab_3_5 ! Требуется подключить файл

real(4), external :: p,pr,tr,simps ! qatr.for содержащий

real(4), dimension(20) :: r ! подпрограмму QATR из

real(4) :: a,b,eps,sq ! математической библиотеки

integer(4) :: n,nmax,ier ! SSP

print *,’ Vvedite a,b,eps,nmax’

read *, a,b,eps,nmax

print 1, aintegr(a,b,eps,nmax,n,pr,p),n

print 2, aintegr(a,b,eps,nmax,n,tr,p),n

print 3, aintegr(a,b,eps,nmax,n,simps,p),n

call qatr(a,b,eps,20,p,sq,ier,r)

print 4, sq

1 format(1x,’Metod pryamougolnikov: integral=’,f10.3,3x,’n=’,i6)

2 format(1x,’Metod trapetsiy: integral=’,f10.3,3x,’n=’,i6)

3 format(1x,’Metod Simpsona: integral=’,f10.3,3x,’n=’,i6)

4 format(1x,’S/p QATR: integral=’,f10.3)

end

! Подпрограмма вычисления интеграла одним из трех методов

function aintegr(a,b,eps,nmax,n,sint,f)

external f

real(4) :: a,b,s1,s2,f,eps,aintegr

integer(4) :: n,nmax

n=4

s1=sint(a,b,f,n)

1 n=2*n

s2=sint(a,b,f,n)

if(abs(s2-s1)<eps.or.n>nmax) goto2

s1=s2

goto 1

2 aintegr=s2

end

! Подпрограмма вычисления интеграла по формуле прямоугольников

function pr(a,b,f,n)

real(4) :: a,b,h,x,s,pr,f

integer(4) :: n

h=(b-a)/n; x=a+h/2; s=0.

do i=1,n

s=s+f(x); x=x+h

end do

pr=h*s

end

! Подпрограмма вычисления интеграла по формуле трапеций

function tr(a,b,f,n)

real(4) :: a,b,h,x,s,tr,f

integer(4) :: n

h=(b-a)/n; x=a; s=(f(a)+f(b))/2

do i=2,n

x=x+h; s=s+f(x)

end do

tr=h*s

end

! Подпрограмма вычисления интеграла по формуле Симпсона

function simps(a,b,f,n)

real(4) :: a,b,h,x,s,simps,f

integer(4) :: n,z

h=(b-a)/n; x=a+h; s=f(a)+f(b); z=1

do i=2,n

s=s+(3+z)*f(x); z=-z; x=x+h

end do

simps=h/3*s

end

! Подпрограмма вычисления подынтегральной функции

function p(x)

real(4) :: x,p

p=1-x+x**2-x**3

end

Результаты расчета:

Metod pryamougolnikov: integral= -12.750 n= 256

Metod trapetsiy: integral= -12.750 n= 256

Metod Simpsona: integral= -12.750 n= 8

S/p QATR: integral= -12.750

По тексту программы необходимо сделать ряд пояснений и замечаний.

1. В приведенной программе реализованы все три рассматриваемые в настоящем курсе формулы численного интегрирования:

  • п/п PR – вычисление интеграла по формуле прямоугольников;

  • п/п TR – вычисление интеграла по формуле трапеций;

  • п/п SIMPS – вычисление интеграла по формуле Симпсона.

2. При выполнении задания необходимо составить программу лишь для одного (или всех) из этих методов, указанного преподавателем.

3. Переменная (в программе – nmax) определяет количество отрезков, на которые делится интервал интегрирования для вычисления интеграла с заданной точностью. При этом значение n последовательно удваивается до тех пор, пока изменение приближенного значения интеграла не станет меньше заданного малого числа (в программе – eps), значение которого вводится. При расчете было принято: nmax=1000, eps=0.001.

4. К данной программе необходимо подключить стандартную подпрограмму QATR.