Отчёт лабораторная работа численные методы 6. 1 Постановка задачи
Скачать 76.8 Kb.
|
2 1 Постановка задачиВ рамках данной лабораторной работы необходимо решить задачу Коши на сетке с постоянным шагом. 1.1 Описание параметров.Входные параметры: input – имя файла исходных данных; f – имя процедуры – функции с двумя параметрами (функция f вычисляет значение правой части уравнения 𝑦′ = 𝑓(𝑥, 𝑦), 𝑥 ∈ [𝐴, 𝐵]). Выходные параметры: output - имя файла выходных данных; Icod - выходная переменная – код завершения подпрограммы, принимающая следующие значения: Icod = 0 – нет ошибки, решение получено; Icod = 2 – ошибка входных данных. Структура файла исходных данных: Отдельно в каждой строке - значения Aи B. Структура выходного файла: Первая и вторая строки – x - координата точки интегрирования и полученное приближенное значение в этой точке. 2 Метод решенияПусть на отрезке [𝑥0, 𝑥0 + 𝑋] требуется найти численное решение задачи Коши 𝑦′ = 𝑓(𝑥, 𝑦) (1) 0 {𝑦(𝑥 ) = 𝑦0 (2) на сетке узлов 𝑥0 < 𝑥1 < 𝑥2 < ⋯ < 𝑥𝑁 < 𝑥0 + 𝑋 (3) 2.1 Метод Рунге-Кутта второго порядкаВ данной работе рассмотрен следующий метод второго порядка: 𝑦 = 𝑦 + 1 (𝐾 + 𝐾 ) (121) 1 0 2 1 3 𝐾1 = ℎ𝑓(𝑥0, 𝑦0), ℎ ℎ 𝐾2 = ℎ𝑓 (𝑥0 + 2 , 𝑦0 + 2 𝐾1), 𝐾3 = ℎ𝑓(𝑥0 + ℎ, 𝑦0 − ℎ𝐾1 + 2ℎ𝐾2) Расчетная формула при условии, что 𝑦′ = 𝑓(𝑥) 0 {𝑦(𝑥 ) = 𝑦 0 то есть правая часть уравнения (1) зависит только от 𝑥, принимает вид ℎ 𝑦1 = 𝑦0 + 2 (𝑓0 + 𝑓(𝑥0 + ℎ)) 3 АлгоритмПрочитать входные данные. Проверить входные данные: если A > B, то вывести ошибку Icod = 2 о неточных входных данных. Посчитать начальный шаг ℎ = B−A 10 Запустить цикл до определенного количества повторений. При каждой итерации: получить значение 𝑦1 в точке 𝑥0 + ℎ с постоянным шагом; записать в выходной файл значение 𝑥0 и полученное приближенное значение в этой точке. запомнить результат приближенного значения в предыдущей точке и прибавить к 𝑥0 шаг h. После последней итерации выйти из цикла и завершить программу. Тест №1Возьмем функцию 4 Тестирование𝑦 = 𝑥3, 𝑥 ∈ [0, 2] 𝑦′ = 3𝑥2 {𝑦(2) = 8 Входные данные: 0 2 Выходной файл: Тест №2Возьмем функцию 𝑦 = 6𝑥3, 𝑥 ∈ [0, 4] 𝑦′ = 18𝑥2 { 𝑦(0) = 0 Входные данные: 0 4 Выходной файл: Тест №3Изменим предыдущий пример таким образом, чтобы выдавалась ошибка входных данных. Для этого поменяем границы отрезка местами, чтобы 𝐴 > 𝐵. Возьмем функцию 𝑦 = 6𝑥3, 𝑥 ∈ [0, 4] 𝑦′ = 18𝑥2 { 𝑦(0) = 0 Входные данные: 4 0 Выходной файл: Тест №4Возьмем функцию 𝑦 = 𝑥, 𝑥 ∈ [0, 2] 𝑦′ = 1 {𝑦(0) = 0 Входные данные: 0 2 Выходной файл: |