Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / ЧМ. 7варик / ЛР5. 7 варик.odt
Скачиваний:
7
Добавлен:
18.10.2025
Размер:
626.56 Кб
Скачать

4.4. Содержание отчета

  1. Индивидуальное задание.

  2. Решение ОДУ аналитическим методом.

  3. Создать в сценарии функцию для вычисления решения y(x) на отрезке [a;b] с шагом , и записать его в табл. 4-2.

  4. Создать в сценарии функцию для вычисления решения ОДУ методом Эйлера - в точках отрезка [a;b] с шагом h0, и записанные в табл. 4-2.

  5. Вычислить значения погрешностей для , , , записать в табл. 4-2.

  6. Создать в сценарии функцию для вычисления решения ОДУ методом Рунге-Кутта 4-го порядка с шагом h0 и записать его в табл. 4-2

  7. Вычислить значения погрешностей , , и записать их в табл. 4-2.

  8. Решить ОДУ, с использованием функции пакета Scilabode (ys(xi)), и записать его в табл. 4-2.

  9. Построить график решений, полученных решений с использованием аналитического метода, метода Эйлера, метода Рунге-Кутта в одной системе координат.

Все решения в итоге должны быть оформлены в виде табл. 4-2.

Таблица4-2

xi

ys(xi)

4.5. Ход работы

Задание для численного решения обыкновенных дифференциальных уравнений:

  • дифференциальное уравнение y' = x2 y + y;

  • интервал [0,0.6];

  • начальные условия x0=0, y0=1;

  • шаг интегрирования h0=0.2.

Точное аналитическое решение заданного дифференциального уравнения

Найдем точное аналитическое решение заданного дифференциального уравнения (решение y=y(x))методом разделения переменных. Для этого запишем уравнение в виде dy/y = ((x^3)/3+x)dx и проинтегрируем с учетом начальных условий. Получим y = exp((x^3)/3+1).

Значения точного решения ОДУ y = exp((x^3)/3+1)

Вычислим в сценарии значения полученного решения y(xi) на отрезке [0;0.6] с шагом изменения аргумента h=0.2:

xi

y(xi)

0

1

0.2

1.22466

0.4

1.52399

0.6

1.95814

Численное решение заданного ОДУ методом Эйлера

Вычислим в сценарии значения численного решение ОДУ методом Эйлера (yЭ(x)) в точках отрезка [0;0.6] с шагом h=0.2. Для этого ОДУ записывают в виде y’=f(x,y) . Общая формула для определения очередного значения функции по методу Эйлера имеет вид yi+1=yi+hf(xi,yi), где i=0,n, n=b-a/h:

xi

yЭ(xi)

0

1

0.2

1.2

0.4

1.44960

0.6

1.78590

Значения погрешностей Ei = |y(xi)-yЭ(xi)|

Вычислим в сценарии значения погрешностей Ei = |y(xi)-yЭ(xi)| для xi = x0 + h*i,i=0,n, n=b-a/h:

xi

Ei

0

0

0.2

0.02466

0.4

0.07439

0.6

0.17224

Результаты решения ОДУ методом Рунге-Кутта 4-го порядка, дополненным методом автоматического выбора шага, обеспечивающим точность 10-4

Вычислим в программе значения численного решения ОДУ с точностью 10-4, и получим решение в точках отрезка [0;1.2]с шагом h=0.4 (ypk(x)) методом Рунге-Кутта 4-го порядка, используя формулы:

Код программы

import numpy as np def f(x, y): return x**2 * y + y def runge_kutta(f, x0, y0, h, n): x = np.zeros(n+1) y = np.zeros(n+1) x[0] = x0 y[0] = y0 for i in range(n): k1 = h * f(x[i], y[i]) k2 = h * f(x[i] + h/2, y[i] + k1/2) k3 = h * f(x[i] + h/2, y[i] + k2/2) k4 = h * f(x[i] + h, y[i] + k3) y[i+1] = y[i] + (k1 + 2*k2 + 2*k3 + k4) / 6 x[i+1] = x[i] + h return x, y x, y = runge_kutta(f, 0, -2, 0.4, 3) print(y[-1])

В нашем случае получены следующие значения.

xi

ypk(x)

0

1.

0.2

1.2246613962666668

0.4

1.5239834618635302

0.6

1.9581246946004922

Значения погрешностей i = |y(xi)-ypk(xi)|

Вычислим в сценарии значения погрешностей i = |y(xi)-ypk(xi)|, i = 0, n:

xi

0

0

0.2

0.000001

0.4

0.000007

0.6

0.000016

Все решения, полученные выше, сведем в табл. результатов 4-2:

xi

y(xi)

Ei

0

1

1

0

1.

0

0.2

1.22466

1.2

0.02466

1.224661

0.000001

0.4

1.52399

1.44960

0.07439

1.523983

0.000007

0.6

1.95814

1.78590

0.17224

1.958124

0.000016

y(xi)– аналитическое решение ОДУ,

yЭ(xi) - решение ОДУ, полученное методом Эйлера, Ei = |y(xi)-yЭ(xi)|,

ypk(xi)- решение ОДУ методом Рунге-Кутты 4-го порядка, ∆i = |y(xi)-ypk(xi)|.

Рисунок 1 — Аналитическое решение, Метод Эйлера и Метод Рунге-Кутты

Рисунок 2 — Аналитическое решение, Метод Эйлера и Метод Рунге-Кутты

Соседние файлы в папке ЧМ. 7варик