Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КМ_ЛР2_БУ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
187.9 Кб
Скачать

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]