--PAGE_BREAK--
Модифицированный метод Эйлера
Рассмотрим дифференциальное уравнение (2.5.1) y/=f(x,y) с начальным условием y(x0)=y0. Разобьем наш участок интегрирования на n равных частей. На малом участинтегральную кривую заменим прямой линией.
Рис.1 Метод Эйлера в графическом видa
Получаем точку Мк(хк, ук). Через Мк проводим касательную: у=ук=f(xk,yk)(x-xk). Делим отрезок (хк, хк1) пополам:
xNk/=xk+h/2=xk+1/2 (2.5.6)
yNk/=yk+f(xk,yk)h/2=yk+yk+1/2
Получаем точку Nk/. В этой точке строим следующую касательную:
y(xk+1/2)=f(xk+1/2, yk+1/2)=αk (2.5.7)
Из точки Мк проводим прямую с угловым коэффициентом αк и определяем точку пересечения этой прямой с прямой Хк1. Получаем точку Мк/. В качестве ук+1 принимаем ординату точки Мк/. Тогда:
ук+1=ук+αкh
xk+1=xk+h
(2.5.8) αk=f(xk+h/2, yk+f(xk,Yk)h/2)
yk=yk-1+f(xk-1,yk-1)h
(2.5.8)-рекурентные формулы метода Эйлера.
Сначала вычисляют вспомогательные значения искомой функции ук+1/2 в точках хк+1/2, затем находят значение правой части уравнения (11) в средней точке y/k+1/2=f(xk+1/2, yk+1/2) и определяют ук+1.
Для оценки погрешности в точке хк проводят вычисления ук с шагом h, затем с шагом 2h и берут 1/3 разницы этих значений:
| ук*-у(хк)|=1/3(yk*-yk), (2.5.9)
где у(х)-точное решение дифференциального уравнения.
Таким образом, методом Эйлера можно решать уравнения любых порядков. Например, чтобы решить уравнение второго порядка y//=f(y/,y,x) c начальными условиями y/(x0)=y/0, y(x0)=y0, выполняется замена:
y/=z (2.5.10)
z/=f(x,y,z)
Тем самым преобразуются начальные условия: y(x0)=y0, z(x0)=z0, z0=y/0. (2.5.12)
3.Описание алгоритмов решения задачи
3.1.Описание переменных.
Наименование
Тип
Описание
Входные данные
Xi
double
Начальное значение (x) интервала вычисления
Xkon
double
Конечное значение (x) интервала вычисления
n
integer
Количество шагов
Yi
double
Начальное значение y
kx
double
Коэффициент при переменой x
ky
double
Коэффициент при переменной y
Выходные данные
h
double
Фиксированное приращение аргумента (x)
res
double
Расчётное значение уравнение y’=F(x,y) в точке (x)
Промежуточные
i
integer
Счётчик цикла
Yprom
double
Промежуточное значение y в точке Xprom
Xprom
double
Промежуточное значение x при h/2
a
double
Решение уравнения в точках f(Xprom,Yprom)
f1
double
Функция f(x,y)
3.2. Блок- схема главного модуля
3.3 Описание алгоритма главной программы.
Номер блока
Описание
1
Ввод начального и конечного значений интервала вычисления уравнения, количество шагов, начальное значение у, а также коэффициенты при kxи ky.
2
Вычисление фиксированного приращения аргумента х
3
Цикл с шагом 1 и конечным значением не превышающим количество шагов, который высчитывает значение yна определённом интервале
4
Функция для расчёта уравнения вида y’=f(x,y);
5
Вывод результатов на интервале X
3.4 Блок-схема функции “func”.
3.5 Описание блок- схемы функции “func”.
Номер
блока
Описание
1
Вычисление: функции f1 с подстановкой начальных значений; промежуточных значений Yprom и Xprom, значения aдля вычисления f(Xprom,Yprom) и расчёт результатов функции и переход на следующий шаг.
2
Приращение аргумента xна h
3
Вывод результатов уравнения и интервала
продолжение
--PAGE_BREAK--