- •Лабораторная работа №2 «Вычисление определенных интегралов и определенных интегралов специального вида.»
- •Содержание
- •6. Рекомендуемая литература 19
- •2.Общие теоретические сведения.
- •3.Примеры программной реализации рассмотренных методов
- •4.Задания для выполнения.
- •5.Контрольные вопросы.
- •6. Рекомендуемая литература
3.Примеры программной реализации рассмотренных методов
Метод Симпсона
01 cls
05 Print "Численное интегрирование по методу Симпсона"
10 Input "Введите нижний предел интегрирования A=",a
15 Input " Введите верхний предел интегрирования B=",b
20 Input " Введите число интервалов интегрирования M=",m
25 h=(b-a)/m: x=a:gosub 110: i=f
30 for j=1 to m step 2
35 x=a+j*h:gosub 110:if j<m then i=i+4*f
40 next j
60 for j=2 to m step 2
65 x=a+j*h: gosub 110:if j<m then i=i+2*f
70 next j
75 x=b: gosub 110: i=(i+f)*h/3
80 print " Значение интеграла i=";i
90 end
100 rem задание подынтегральной функции
110 f=sqr(2*x+1): return
Метод Боде
01 cls
05 Print "Численное интегрирование по методу Боде"
10 Input "Введите нижний предел интегрирования A=",a
15 Input " Введите верхний предел интегрирования B=",b
20 Input " Введите число интервалов интегрирования M=",m
25 h=(b-a)/m: e=h/4:x=a
30 gosub 110
35 i=7*f
40 for n=1 to m
45 x=x+e
50 gosub 110:i=i+32*f:x=x+e
55 gosub 110:i=i+12*f:x=x+e
60 gosub 110:i=i+32*f:x=x+e
65 gosub 110:i=i+14*f
70 next n
75 i=i-7*f: i=i*2*e/45
80 print " Значение интеграла i=";i
90 end
100 rem задание подынтегральной функции
110 f=sqr(2*x+1): return
Метод Уэддля
01 cls
05 Print "Численное интегрирование методом Уэддля"
10 Input "Введите нижний предел интегрирования A=",q
15 Input " Введите верхний предел интегрирования B=",b
20 Input " Введите число интервалов интегрирования M=",m
25 a=q:h=(b-a)/m:x=a:gosub 110
30 i=f:l=h/6
35 for e=1 to m
45 x=x+l:gosub 110:i=i+5*f
50 x=x+l:gosub 110:i=i+f
55 x=x+l:gosub 110:i=i+6*f
60 x=x+l:gosub 110:i=i+f
65 x=x+l:gosub 110:i=i+5*f
70 x=x+l:gosub 110:i=i+2*f
75 a=x
80 next e
85 i=(i-f)*3*l/10
90 print "i=";i
95 end
100 rem задание подынтегральной функции
110 f=sqr(2*x+1): return
Метод Чебышева
01 cls
05 Print "Численное интегрирование по методу Чебышева"
10 Input "Введите нижний предел интегрирования A=",q
15 Input " Введите верхний предел интегрирования B=",b
20 Input " Введите число интервалов интегрирования M=",m
25 a=q:t=sqr(2)/2:i=0:h=(b-a)/m
35 for e=1 to m
37 w=a+h:c=(w+a)/2:d=(w-a)/2:x=c-d*t
40 gosub 110:i=i+f:x=c
45 gosub 110:i=i+f:x=x+d*t
50 gosub 110:i=i+f:a=w
55 next e
85 i=i*h/3
90 print " Значение интеграла i=";i
95 end
100 rem задание подынтегральной функции
110 f=sqr(2*x+1): return
Метод Гаусса
01 cls
05 Print "Численное интегрирование по методу Гаусса"
10 Input "Введите нижний предел интегрирования A=",q
15 Input " Введите верхний предел интегрирования B=",b
20 Input " Введите число интервалов интегрирования M=",m
25 a=q:t=sqr(0.6):i=0:h=(b-a)/m
35 for e=1 to m
37 b1=a+h:c=(b1+a)/2:d=(b1-a)/2:x=c-d*t
40 gosub 110:y=d*5*f/9:i=i+y:x=c
45 gosub 110:y=d*8*f/9:i=i+y:x=c+d*t
50 gosub 110:y=d*5*f/9:i=i+y:a=b1
55 next e
90 print "i=";i
95 end
100 rem задание подынтегральной функции
110 f=sqr(2*x+1): return
Вычисление несобственного интеграла
01 cls
03 defdbl a-z
05 print " Вычисление несобственного интеграла с бесконечным верхним пределом с заданной точностью методом Гаусса"
10 input " введите нижний предел интегрирования a=",q
15 input " введите начальное приближение верхнего предела b0=",z
20 input " введите погрешность результата e=",n
25 m=1:k=0:b=z/2:t=sqr(0.6):u=0
30 b=b*2
35 m=m*2:a=q:i=0:h=(b-a)/m
40 for j=1 to m
45 c=a+h/2: d=h/2
50 e=d*5/9:l=d*8/9:d=d*t
55 x=c-d: gosub 150
60 i=i+e*f
65 x=c: gosub 150:
70 i=i+l*f
75 x=c+d: gosub 150
80 i=i+e*f
85 a=a+h
90 next j
95 l=k
100 k=i
105 if abs(i-l)>n*30 then goto 35
110 v=u:u=1
115 if abs(i-v)>n/2 then goto 30
120 print " Значение интеграла i=";i
130 end
140 rem задание подинтегральной функции
150 f=x*exp(-x): return
Вычисление двойного интеграла
Методом Симпсона
01 cls
03 defdbl a-z
05 print " Вычисление двойного интеграла по простой формуле Симпсона"
10 input "Введите пределы интегрирования a,b,c,d ",a,b,c,d
20 s=0:h=(b-a)/2:k=(d-c)/2
25 x=a:y=c: gosub 140
30 s=s+f
35 x=b: gosub 140
40 s=s+f
45 x=a:y=d:gosub 140: s=s+f
50 x=b:gosub 140:s=s+f
55 x=a+h:y=c:gosub 140:s=s+4*f
60 y=d:gosub 140:s=s+4*f
65 x=a:y=c+k:gosub 140:s=s+4*f
70 x=b:gosub 140:s=S+4*f
75 x=a+h:gosub 140:s=s+16*f
80 i=s*h*k/9
85 print " Значение интеграла i=";i
90 end
rem задание подынтегральной функции
140 1/(x*y):return
Методом Гаусса
01 cls
03 defdbl a-z
05 print " Вычисление двойного интеграла простым методом Гаусса"
10 s=0
15 input " Введите пределы интегрирования a,b,c,d ",a,b,c,d
20 o=(a+b)/2:p=(b-a)/2:q=(c+d)/2
25 r=(d-c)/2:k=sqr(1/3)
30 x=o+p*k:y=q+r*k:gosub 100
35 x=o-p*k:gosub 100
40 y=q-r*k: gosub 100
45 x=o+p*k:gosub 100
50 i=s*r*p
55 print " Значение интеграла i=";i
60 end
90 rem задание подынтегральной функции
100 f=1/(x*y):s=s+f:return
Методом Гаусса с повышенной точностью
01 cls
03 defdbl a-z
05 print " Вычисление двойного интеграла по методу Гаусса с повышенной точностью"
10 s=0
15 input " Введите пределы интегрирования a,b,c,d ",w,b,c,d
20 input " Введите количество интервалов разбиения m,n ",m,n
23 h=(b-w)/m:l=(d-c)/n:k=sqr(1/3)
25 for i=1 to n
27 q=(c+d)/2:r=l/2:a=w
29 for j=1 to m
32 b=a+h:o=(a+b)/2:p=h/2
30 x=o+p*k:y=q+r*k:gosub 100
35 x=o-p*k:gosub 100
40 y=q-r*k: gosub 100
45 x=o+p*k:gosub 100
50 a=b
55 next j
60 next i
65 i=s*h*l/4
70 print " Значение интеграла i=";i
75 end
90 rem задание подынтегральной функции
100 f=1/(x*y):s=s+f:return
Программы для методов прямоугольников и трапеций необходимо разработать самостоятельно на основе анализа приводимых выше примеров и рассмотренного ранее теоретического описания!
