оші (2) обраним методом і отримуємо послідовність значень функції? n +2,? n +3,? n +4 і т.д. Процес обчислень припиняємо при виконанні умови. Тоді в якості? Вуст беремо останнє обчислене значення? I і tуст = ti. p> Рішення диференціальних рівнянь методом Ейлера.
Нехай задано диференціальне рівняння першого порядку або y = F (x, y)
На інтервалі [x0, xn] розіб'ємо на n частин і отримаємо X0, ..., Xn.
Xi = X0 + (i-1) h або Xi = Xi-1 + h1, де.
Відповідне значення y1 = y * (xi), де y * (xi) - наближене значення диференціального рівняння.
Для отримання чисельного рішення диференціального рівняння рівняння замінюється рівняннями щодо значень функції y * (x). Ці рівняння називають різницевими. Найпростіші різницеві рівняння для заданого диференціального рівняння мають вигляд. br/>В
yi +1- yi = h * F (x, y)
yi +1 = yi + h * F (x, y) - формула Ейлера.
Алгоритм методу Ейлера.
) Введення вихідних даних (x0, xn, n, y0).
2)
) x [0] = x0; y [0] = y0.
) Для i = 1, n
.1.) x [i] = x [i-1] + h;
.2) y [i] = y [i-1] + h * f (x [i-1], y [i-1]);
) Для i = 0, n
.1) Висновок x [i], y [i].
3. Алгоритм розв'язання задачі
1. Вводимо вихідні дані
a1, a2, b1, b2, Mc, J, n, dt, epsilon;
. wopr: = (a2-a1)/(b1 + b2); tn: = 0; wn: = 0; wk: = wopr;
Вирішуємо диференціальне рівняння з використанням процедури EILER
3. EILER (n, wn, wk, tn, fun1, w, t)
Записуємо в файл RESULTS.RES отриману табличну залежність w (t) на проміжку 0 <= w <= wopr;
4. Для i = 1 ... n +1
.1. writeln (t [i], w [i], Md [i]);
Записуємо в файл RESULTS.RES topr і wopr
5. writeln (topr, wopr);
. i: = n +2;
Визначаємо функцію w (t) на проміжку w> = wopr з використанням циклу з постусловіем
7. repeat
.1. t [i]: = t [i-1] + dt;
.2. w [i]: = w [i-1] + dt * fun2 (w [i-1]);
.3. m: = i; i: = i +1; abs (w [i-1] - w [i]) <= epsilon;
Записуємо в файл RESULTS.RES отриману табличну залежність w (t) на проміжку w> = wopr
8. Для i = n +2 ... m (t [i], w [i], Md [i]). br/>
Записуємо в файл результатів tyst, wyst, Mdyst.
. writeln (tyst, wyst, Mdyst).
Алгоритм процедури EILER
1. t [1]: = tn; t [n +1]: = tk; v [1]: = vn; h: = (t [n +1] - t [1])/n;
. Для i = 2 ... n +1
...