Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Математические модели в транспортных системах-1

.pdf
Скачиваний:
0
Добавлен:
28.12.2025
Размер:
7.05 Mб
Скачать

Рассмотренные методы являются по сравнению с другими более простыми, но менее эффективными.

В качестве примера более эффективного (точного) метода рассмотрим метод НьютонаКотеса. Этот метод базируется на применении к каждому i-му из m отрезков разбиения следующей формулы:

S.i = h/840( ]rd(j) f(x(j))),

J=0

где x(j) = x(i) + j h / 6 ; x(i)= a + (i -1) h ;

d(0)= d(6)= 41;d(1)= d(5)= 216;d(2)= d(4)= 27;d(3)=272. Значение интеграла S находится суммированием значений S. :

m

S = E Si .

i=1

Вариант программной реализации алгоритма последнего метода приводится ниже. 10 REM МЕТОД НЬЮТОНА-КОТЕСА

15 CLS

 

20 INPUT"a";a

 

30

INPUT"b";b

 

40

INPUT"m";m

 

45

DIM d(6)

 

47

d(0)=41:d(1)=216:d(2)=27:d(3)=272:d(4)=27:d(5)=216:d(6)=82

50

h=(b-a)/m:E=h/6

 

70 FOR I=1 TO m

 

72

XT=a+(I-1)*h

 

75

FOR J=0 TO 6

 

80 X=XT+J*E:GOSUB 200

90

SI=SI+d(J)*F

 

100 NEXT J

 

110 NEXT I

 

130 SI=SI*H/840

 

140 PRINT"SI="SI:GOTO 300

200 F=

:RETURN

300 END

Ошибка вычисления значения интеграла зависит от величины h и производной k-го порядка от интегрируемой функции в точке, где она максимальна (для первых трех методов k=2 и для Ньютона-Котеса k=8).

2.1.4. Вычисление специальных функций

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

Значения специальных функций вычисляются в зависимости от их вида одним из следующих методов:

численным интегрированием; по реккурентным соотношениям; разложением в ряды;

21

на основе аппроксимаций.

Гамма-функция точно определяется по формуле

от

r(x) =

e t tx-1 dt, х>0.

 

t = 0

 

Для гамма-функции справедливы соотношения

 

Г(х+1)=х Г(х);

(*)

Г(1)= 1;

 

Г(0,5)=

л/Л;

 

r(n+1)= n!, n= 0,1,2,... ;

 

г(х) Г(-х) = -п /(х sin п x).

(**)

Рассчитывают с применением формулы Стирлинга или на основе аппроксимации.

Для x > -18 с погрешностью порядка 1Е-04 гамма-функция может быть вычислена на основе 20-кратного преобразования следующим образом:

1) z=21 + x;

 

2) по формуле Стирлинга r(z) ^ л/2 п /z e-z zz (1 ^

;

 

12z

3) последовательное уменьшение значения z на

единицу до значения х по формуле

r(z) = r(z+1)/ z .

 

Преобразование обеспечивает вычисления для отрицательн^хх чисел х и с высокой точностью при их мал^1х значениях.

Пример программной реализации метода:

cls: input "Введите x= ";x:z=x+21: b=x g=log(sqr(2*3.141592/z))-z+z*log(z)+log(1+1/12/z) for i = 1 to 20

b=b*(z-i) next i g=exp(g)/b

print "r("using"####.###";x;:print ")= "using"^.######^^^^";g end

Гамма-функция на основе коррекции формулы Стирлинга вычисляется по формуле

 

r(x) = л/2 п /x e"x xx

H(x) ,

где

x > 1.0;

 

 

H(x) = 1 + ]r1/(ai

x1) ,

 

i=1

 

где

a1= 12; a2= 288; a3= -139/51840; a4= 571/2488320.

 

При 0<x<1 значение Г(x) с целью повышения точности находится с использованием формулы (*)

Г(x) = Г(x+1)/x.

22

Если x<0, то гамма-функция вычисляется на основе формулы (**) как

Г(x) =-п/( z Г(z)sin nz) ,

где z=abs(x).

Ниже приведен пример программы на основе коррекции формулы Стирлинга:

cls:input "x";x

if x>1 then z=x:gosub pp:goto kon

if x>0 then z=x+1:gosub pp:g3=g3/x:goto kon if x<=-1 then z=abs(x):gosub pp:goto 10

if x<0 then z=abs(x)+1:gosub pp:z=abs(x):g3=g3/007A

10 g3=-3.141592/z/sin(3.141592*z)/g3 goto kon

pp: h=1+1/12/z+1/(288*z^2)-139/(51840*z^3)+571/(2488320*z^4) g3= sqr(2*3.141592/z)*exp(-z)*z^z*h

return kon:

print "Г("using"####.###";x;:print ")= "using"^.######^^^^";g3 end

На основе аппроксимации определение Г(z+1) для значений z от 0 до 1 может производиться с использованием степенного полинома

8

r ( z + 1) = 1 + E b. zi10

i=1

где b1= -57719165, b2= 98820589, b3= -89705694, b4= 91820688, b5= -75670408, b6= 48219934, b7= -19352782, b8=3586835.

Для расчета гамма-функции по аппроксимации необходимо вычислить гамма-функцию от абсолютной величины дробной части заданного аргумента и затем на основе использования выражения (*) и, при необходимости, выражения (**) найти значение гамма-функции исходного числа.

Для

вычислений интегральной функции нормального закона

распределения

(рисунок 2.4) применяются численное интегрирование или аппроксимации.

 

Для

вычисления F(x) = у с точностью 0,0001 на основе численного

интегрирования

интервал интегрирования необходимо принимать от а-3,9а до х,

 

где x - значение аргумента;

 

a и а - параметры функций нормального закона распределения: a = xм ; а = s, xм -оценка математического ожидания случайной величины;

s - оценка среднеквадратического отклонения случайной величины.

Вычисление значения интегральной функции нормального распределения F(x) = у на основе аппроксимации возможно по следующему алгоритму:

1) z = (х- a)/ а ,

2)P(abs(z)) = 1 - ( 1 + EEci z1 )-1 6 /2, i=1

23

Программа сортировки по методу Шелла

10 'СОРТИРОВКА SHELL

20 DEFINT I-M: INPUT "M";M:DIM A(M)

25 FOR I=1 TO M:READ A(I):NEXT I

30 D=1

35 D=D*2

40 IF D<=M THEN 35

45 D=INT((D-1)/2)

50 IF D=0 THEN 90

55 K=M-D

60 FOR I=1 TO K

65 J=I

70 L=J+D

75 IF A(L)>=A(J) THEN 88

80 X=A(J):A(J)=A(L):A(L)=X:J=J-D

85 IF J>0 THEN 70

88 NEXT I

89 GOTO 45

90 FOR I=1 TO M:PRINT A(I):NEXT I

95 DATA 44,12,15,4,8,79,11,14,78,22,33,2,1,4,5,7,8,6,1,4,5,6

100END

2.2.Стохастические модели

2.2.1. Исследование распределения случайных величин

Случайная (стохастическая) величина может быть одной двух видов - дискретная или непрерывная.

Распределение случайных величин подчиняется определенным закономерностям, называемым законами распределения. Примерами законов распределения являются:

для дискретных - биномиальный, отрицательный биномиальный, Пуассона, гипергеометрический, Паскаля и его частный случай геометрический (Фарри), дискретный равномерный;

для непрерывных - нормальный, логарифмически нормальный, экспоненциальный (показательный), равномерный, Эрланга, Релея, Вейбулла.

Для практических целей находят применение кроме базовых законов распределения их усеченные и сдвинутые (со смещением) варианты.

Усеченные варианты законов распределения ограничивают интервал варьирования случайной величины слева или справа или слева и справа. Если функция распределения базового (неусеченного) закона имеет вид

x

F(x) = f(x) dx,

то функции усеченного варианта этого же закона представляют следующие выражения

f у ( x » = t T F ^ T F : f ( x » ;

 

 

1

f

F( x ) - F

 

Р у ( x )

= - —

f ( x )

d x = , ^

J

п р и x н < x < x в ,

у

1 - F н

- F вxX„

1 - F н

- F в

 

 

F

н =

f(x)

dx ; Fв =

f(x)

dx ,

 

 

 

-ад

 

 

 

28