ВУЗ:
Составители:
§ 3. Программирование методов Рунге-Кутта при решении систем ОДУ. 17
§ 3. Программирование методов Рунге-Кутта при решении
систем ОДУ.
Рассмотрим вопросы, связанные с программной реализацией q-
стадийного метода Рунге-Кутта, предназначенного для решения про-
извольной задачи Коши для системы ОДУ, имея в виду рассмотрен-
ные выше методы с постоянным шагом интегрирования h; при этом
будем предполагать, что число уравнений n и число узлов N тако-
вы, что в памяти ЭВМ свободно можно разместить матрицу размера
(N + 1) × n.
Выберем идентификатор RKq для обозначения имени этой про-
граммы (функции). Какие параметры мы должны передать этой про-
грамме, а какие получить в качестве результата ее выполнения? По-
скольку мы ведем речь о задаче вида
u
′
(t) = f(t, u(t)), t ∈ (a, b], u(a) = u
a
,
где f : R × R
n
→ R
n
— заданная вектор функция, u
a
∈ R
n
— задан-
ный вектор, а a, b — заданные числа, то задача определяется только
4-мя данными
f, a, b, u
a
,
или 3-мя, если a, b упаковать, например, в массив ab, длины 2. Яс-
но, что эти данные надо обязательно передать каким-либо образом
RKq. Кроме того метод Рунге-Кутта определяется параметром N
(h = (b − a)/N); его тоже необходимо передать RKq. Будем считать
(это общепринято), что f в свою очередь реализуется в виде програм-
мы (функции); она должна иметь 2 входных параметра (t, y), y ∈ R
n
,
t ∈ R, и один выходной — значение вектор-функции f — массив
длины n.
1)
Метод Рунге-Кутта генерирует векторы y
i
длины n, которые яв-
ляются приближениями к u(t
i
) = (u
1
(t
i
), . . . , u
n
(t
i
)), i = 0, 1, . . . , N.
Будем считать, что эти вектора сохраняются в матрице Y , размера
(N + 1) × n, i-тая строка которого равна y
i
.
2)
Будем считать также,
что массив T = (t
0
, t
1
, . . . , t
N
) используется для хранения сетки.
1)
В зависимости от выбранного языка программирования, возможно как RKq, так и f , необ-
ходимо передавать также параметр n — размерность задачи. Далее мы будем предполагать, что
имеется функция numel(), которая для одномерного массива возвращает число его элементов.
2)
тогда j-тый столбец Y содержит приближение к j-той компоненте решения u
j
(t) в точках
сетки.
§ 3. Программирование методов Рунге-Кутта при решении систем ОДУ. 17 § 3. Программирование методов Рунге-Кутта при решении систем ОДУ. Рассмотрим вопросы, связанные с программной реализацией q- стадийного метода Рунге-Кутта, предназначенного для решения про- извольной задачи Коши для системы ОДУ, имея в виду рассмотрен- ные выше методы с постоянным шагом интегрирования h; при этом будем предполагать, что число уравнений n и число узлов N тако- вы, что в памяти ЭВМ свободно можно разместить матрицу размера (N + 1) × n. Выберем идентификатор RKq для обозначения имени этой про- граммы (функции). Какие параметры мы должны передать этой про- грамме, а какие получить в качестве результата ее выполнения? По- скольку мы ведем речь о задаче вида u′ (t) = f (t, u(t)), t ∈ (a, b], u(a) = ua , где f : R × Rn → Rn — заданная вектор функция, ua ∈ Rn — задан- ный вектор, а a, b — заданные числа, то задача определяется только 4-мя данными f, a, b, ua , или 3-мя, если a, b упаковать, например, в массив ab, длины 2. Яс- но, что эти данные надо обязательно передать каким-либо образом RKq. Кроме того метод Рунге-Кутта определяется параметром N (h = (b − a)/N ); его тоже необходимо передать RKq. Будем считать (это общепринято), что f в свою очередь реализуется в виде програм- мы (функции); она должна иметь 2 входных параметра (t, y), y ∈ Rn , t ∈ R, и один выходной — значение вектор-функции f — массив длины n.1) Метод Рунге-Кутта генерирует векторы yi длины n, которые яв- ляются приближениями к u(ti ) = (u1 (ti ), . . . , un (ti )), i = 0, 1, . . . , N . Будем считать, что эти вектора сохраняются в матрице Y , размера (N + 1) × n, i-тая строка которого равна yi .2) Будем считать также, что массив T = (t0 , t1 , . . . , tN ) используется для хранения сетки. 1) В зависимости от выбранного языка программирования, возможно как RKq, так и f , необ- ходимо передавать также параметр n — размерность задачи. Далее мы будем предполагать, что имеется функция numel(), которая для одномерного массива возвращает число его элементов. 2) тогда j-тый столбец Y содержит приближение к j-той компоненте решения uj (t) в точках сетки.
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »