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

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

..pdf
Скачиваний:
19
Добавлен:
15.11.2022
Размер:
2.39 Mб
Скачать

Относительная точность этого вычисления определяется как отношение разности между текущим значением S и его значением S1 на предыдущем цикле к значению S. На первой итерации значение этой точности всегда единично, поэтому оператор ветвления направляет алгоритм по направлению «нет», в котором удваивается число интервалов N, а значение параметра S переносится в параметр S1, и переменная S обнуляется. На последующих итерациях снова выполняются те же операции до тех пор, пока фактическая точность вычисления не достигнет заданного значения.

По методу трапеций (см. рис. 34, б) площадь подинтегральной фигуры заменяется суммой площадей трапеций. Площадь каждой трапеции равна произведению шага интегрирования Н на полусумму значений функции на каждом шаге интегрирования.

В этом случае величина шага интегрирования также вычисляется по формуле (30), а элементарная площадь подинтегральной трапеции равна

Si =

f (A) + f ( A + H )

.

(33)

2

 

 

 

Сумма всех элементарных площадей трапеций подинтегральной функции определяется по формуле

N

 

S = Si .

(34)

i=1

Алгоритм для вычисления определенного интеграла методом трапеций представлен на рис. 36.

Вотличие от предыдущего метода алгоритм этого способа

вцикле вычисляет сразу значение функции в двух точках: в начале и в конце диапазона приращения аргумента, а затем, умножая полусумму этих значений на параметр Н, определяет значение элементарной площади трапеции на данном участке приращения аргумента. Это значение площади сохраняется в переменной S, значение которой увеличивается на каждом цикле приращения аргумента.

91

начало

N, A, B, ε

S = 0; S1 = 0

H = (B A) / N

X = A

I = 1, N–1

S = S + f (X)

X = X + H

S = S H

T = (S S1) / S

да

T <= ε

S нет

конец

S1 = S; S = 0

N = 2* N

Рис. 35. Алгоритм интегрирования функции методом прямоугольника

92

начало

N, A, B, ε

S = 0; S1 = 0

H = (B A) / N

X = A

S1 = S; S = 0

F1 = f (X)

I = 1, N–1

X = X + H

F2 = f (X)

S = S + (F1 + F2)* H / 2

F1 = F2

 

 

 

 

 

 

 

 

 

 

 

 

 

T = (S S1) / S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

да

 

 

нет

 

 

 

 

 

 

 

 

 

 

 

T <=

ε

 

 

 

 

N = 2* N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

конец

Рис. 36. Алгоритм интегрирования функции методом трапеций

93

Во всем остальном этот алгоритм аналогичен алгоритму, применяющемуся в предыдущем методе, в том числе и по методу оценки точности полученного решения.

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

Корнем дифференциального уравнения называют такую функцию, дифференциал которой равен исходному уравнению. Решение дифференциального уравнения точным аналитическим методом не всегда возможно, а иногда бывает достаточно сложным. Это обстоятельство вызвало необходимость разработать приближенные методы решения дифференциального уравнения. Актуальность использования приближенных методов решения дифференциальных уравнений возросла с развитием вычислительной техники.

Для приближенного численного метода решения дифференциального уравнения существует несколько методов. Рассмотрим некоторые из них.

2.9.1. Принцип приближенного определения корней дифференциального уравнения методом Тейлора

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

y(xi ) = y(xi ) + yi' (x xi ) +

y ''

(x xi ) +

y'''

(x xi ) +

(35)

2!

3!

 

 

 

 

Если известно х0 как начальное значение аргумента искомого решения, то его последующие значения в поиске решения находятся по формуле

xi = x0 +i h ,

(36)

где h – шаг дискретного приращения аргумента.

94

С учетом уравнения (36) общее решение дифференциального уравнения по методу Тейлора можно представить как

y(x +1)

=y(x ) +h y'

(x ) +

h2

 

y''(x ) +

h3

y'''(x ) +

(37)

 

 

i

i

i

i

2!

i

3!

i

 

 

 

 

 

 

 

Чем больше значений ряда Тейлора будет присутствовать в выражении (37), тем точнее будет результат решения дифференциального уравнения. Однако решение дифференциальных уравнений этим методом сопряжено с трудностью определения производных, особенно высших порядков, поэтому этот метод малоприменим для численного определения корней дифференциального уравнения.

2.9.2. Принцип приближенного определения корней дифференциального уравнения методом Эйлера

Принцип приближенного определения корней дифференциального уравнения методом Эйлера рассмотрим на графике некоторой функции, представленном на рис. 37.

Рис. 37. Схема графического дифференцирования по методу Эйлера

95

Начальное значение функции y = f(x) в точке x0, y0 заранее известно как начальное условие. Если провести через эту точку касательную к функции y = f(x), то все точки, лежащие на ней, будут производными этой функции. Поэтому производная в

точке приращения аргумента (x0+h) будет равна

 

y1 = y0 + h · y’,

(38)

где y’ − производная в точке (x0+h).

 

Однако в точке (x0, y0) производная функции равна ее на-

чальному значению, т.е. y’ = f(x0, y0), поэтому

 

y1 = y0 + h · f(x0, y0),

(39)

и аналогично в точке (x0 + h, y1)

 

y2 = y1 + h · f(x0 + h, y1).

(40)

Точки y1 и y2 являются производными функции y = f(x) с отклонениями ε1 и ε2 от истинного значения результата. При этом с увеличением аргумента это отклонение увеличивается, так как ε1 < ε2.

Для уменьшения величины этой ошибки Эйлер усовершенствовал этот метод.

2.9.3. Принцип приближенного определения корней дифференциального уравнения усовершенствованным методом Эйлера

Графическая интерпретация усовершенствованного метода Эйлера представлена на рис. 38.

По этому методу Эйлер предложил угол между двумя смежными направлениями производных (например L1 и L2) делить пополам, и в этом направлении проводить луч L3, который затем параллельно перенести в начальную точку (x0, y0) и продлить до пересечения с ординатой x0+h. Точку этого пересечения принять за искомый результат y2 на интервале очередного приращения аргумента.

96

Рис. 38. Схема графического дифференцирования по усовершенствованному методу Эйлера

Величина отклонения ε2 этого результата намного меньше первоначальной ошибки ε1. Для дальнейшего повышения точности определения корней дифференциального уравнения Эйлер модифицировал и этот метод.

2.9.4. Принцип приближенного определения корней дифференциального уравнения модифицированным методом Эйлера

Графическая интерпретация модифицированного метода Эйлера представлена на рис. 39.

Суть модифицированного метода Эйлера состоит в том, что в этом случае диапазон приращения аргумента делится пополам и производная L2 вычисляется в точке А, находящейся на пересечении ординаты (x0+h)/2 с лучом производной L1. После этого из точки (x0, y0) параллельно лучу L2 проводим до пересечения с ординатой (x0+h) луч L3. Точка этого пересечения принимается за искомый результат y2 на интервале очеред-

97

ного приращения аргумента. Величина ошибки ε2 при этом минимальна.

Рис. 39. Схема графического дифференцирования по модифицированному методу Эйлера

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

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

по методу Рунге – Кутта

Рунге и Кутт представили модифицированный метод Эйлера системой следующих уравнений:

98

y

 

 

= y

 

+

h

(k

 

+2k

 

 

+2k

 

+k

 

),

i+1

i

 

 

 

1

2

3

4

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

k1 = f (xi , yi ),

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

= f (x

 

+

 

h

, y

 

+k

 

h

),

 

 

 

 

2

i

 

 

i

1 2

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

k

 

 

= f (x

 

+

h

 

, y

 

+k

 

 

h

),

 

 

 

 

3

i

 

i

2 2

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

k4

= f (xi +h, yi +hk3 ).

 

 

 

 

(41)

(42)

(43)

(44)

(45)

В этой системе уравнение (42) описывает направление луча L1 из точки начального отсчета, соответственно уравнение

(43)– это луч L2, проведенный из точки (x0+h), а уравнение

(44)– это перенесенное а точку А направление луча L2. И наконец уравнение (45) – это направление L3, проведенное из точки начального отсчета.

Алгоритм вычисления корней дифференциального уравнения по методу Рунге – Кутта представлен на рис. 40. После запуска этого алгоритма происходит ввод следующих исходных данных:

X0 − начальное значение аргумента; Y0 − начальное значение результата; Xk − конечное значение аргумента; Kp − кратность вывода результата;

N − порядок дифференциального уравнения.

После ввода исходных данных параметрам X и Y присваи-

ваются начальные значения, затем вводится параметр Zi, в котором сохраняется значение корня, полученного на предыдущей итерации. Первоначально оно равно начальному значению Y. Одновременно вводится параметр К, которому присваивается нулевое значение. С помощью этого параметра регулируется кратность вывода результата. После этих присвоений алгоритм обращается к подпрограмме «RGK», структура которой показана на рис. 41.

99

начало

X0, Xk, Y0, N, Kp

X = X0; Y= Y0; Zi = Yi ; K = 0

PGK

K = K + 1

да

K = Kp

нет

X, Y

 

 

 

 

 

 

 

 

K = 0

 

 

 

 

 

 

нет

X > Xk

да

конец

Рис. 40. Алгоритм Рунге – Кутта вычисления корней дифференциального уравнения

100

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