Алгоритм метода Эйлера для системы уравненийx0, xk – концы интервала; h – шаг интегрирования. Начальные условия: при x=x0, y1=y01, y2=y02, y3=y03.
2) Метод Рунге-Кутта: Является наиболее распространенным методом решения обыкновенных дифференциальных уравнений. Существуют разностные схемы разного порядка точности, построенные на основе этого метода. Приведем расчетные формулы метода Рунге-Кутта.
; Метод явный одношаговый. Имеет погрешность на шаге- ,а значит- глобальную погрешность - . Метод Рунге-Кутта требует на каждом шаге четырехкратного вычисления правой части уравнения, но это окупается повышенной точностью, что дает возможность проводить расчет с более крупным шагом.
Далее переходим в редактор Visual Basic (Сервис – Макрос – Редактор Visual Basic, Вставка – Модуль) и набираем программы по приведенным алгоритмам: Листинг программ
Function f(x, y) f = x + Cos(y / Sqr(10)) End Function
Sub metod_Eilera() x = 0.6 xk = 1.6 y = 0.8 h = 0.1 i = 2 Do y = y + h * f(x, y) x = x + h With Worksheets("Лист1") .Cells(i, 1).Value = x .Cells(i, 2).Value = y End With i = i + 1 Loop While x < xk End Sub
Sub metod_Runge() x = 0.6 xk = 1.6 y = 0.8 h = 0.1 i = 2 Do k0 = f(x, y) * h k1 = f(x + h / 2, y + k0 / 2) * h k2 = f(x + h / 2, y + k1 / 2) * h k3 = f(x + h, y + k2) * h y = y + (k0 + 2 * k1 + 2 * k2 + k3) / 6 x = x + h With Worksheets("Лист1") .Cells(i, 4).Value = x .Cells(i, 5).Value = y End With i = i + 1 Loop While x < xk End Sub
|