Пример_1
Методом стрельбы решить следующую первую краевую задачу для ОДУ второго порядка (точность ε = 0,01) с шагом h = 0,25 :
Решение.
Решим данную задачу методом Рунге – Кутта в Mathcad.
«Для решения краевой задачи в Mathcad имеется встроенная функция sbval, реализующая метод стрельбы и позволяющая свести краевую задачу к задаче Коши. Функция sbval имеет следующие параметры:
- v– вектор, содержащий начальные приближения для недостающих начальных условий;
- xmin, xmax – границы интервала, на котором ищется решение;
- D(x,y) – вектор–функция, содержащий правые части системы дифференциальных уравнений первого порядка, эквивалентной исходному уравнению, размер вектора n совпадает со степенью старшей производной дифференциального уравнения;
- load(xmin,v) – вектор–функция, элементы которой соответствуют n значениям функций на левой границе интервала. Часть этих значений известна, а для части заданы начальные приближения в векторе v. Их уточненные значения будут найдены в процессе вычисления;
- score(xmax,y) – вектор–функция, имеющая то же число элементов, что и v. Каждое значение является разностью между начальными значениями в конечной точке интервала и соответствующей оценки для решения. Этот вектор показывает, на сколько близко найденное решение к истинному»[5, 48 c.].
Для решения данной задачи в Mathcad необходимо выполнить следующие действия:
- Введем граничные условия: x1:=0 и x2:=1
- Так как данная задача сводится к решению двух дифференциальных уравнений первого порядка: y' = z и z' = -xz + ex, поэтому функция D имеет вид:
Рис. 2.10
- Задача Коши для дифференциального уравнения второго порядка содержит два начальных значения. Начальное приближение для недостающего значения задаем в векторе v, который в нашем случае состоит только из одного элемента: v0: = 0
- Зададим вектор – функции load и score, для этого необходимо ввести в позиции ввода рабочего аргумента выражения, описывающие данные функции:
Рис.2.11
- Вычислим функцию sbval. Для этого необходимо:
- Присвоить данную функцию переменной S.
- Выбрать меню «Вставить» - «функция» - категория «всё» - имя «sbval», нажать «ОК».
- Заполнить данную функцию следующим образом:
Рис. 2.12
- На панели инструментов найти кнопку - «инструменты некоторых знаков», затем на панели «Вычисления» выбрать знак равенства нажать Enter, в результате чего получим следующее (рис. 2.13):
Рис. 2.13
- Теперь, когда нам стало известно недостающее начальное условие в задаче Коши, можно воспользоваться функцией rkfixed (y, x1, x2, npoints, D), которая возвращает матрицу. Первый столбец этой матрицы содержит точки, в которых получено решение, а остальные столбцы – решения и его первые n - 1 производные.
- Зададим n: = 4
- Зададим вектор начальных значений:
Рис. 2.14 - Присвоим данную функцию переменной Z
- Выбрать меню «Вставить» - «функция» - категория «всё» - имя «sbval», нажать «ОК» или на панели инструментов выбрать .
- Заполнить данную функцию следующим образом:
Рис. 2.15
- На панели инструментов найти кнопку - «инструменты некоторых знаков», затем на панели «Вычисления» выбрать знак равенства нажать Enter, в результате чего получим следующее (рис.2.16):
Рис. 2.16
- Построим график функции Z в декартовой системе координат:
- Выбрать меню «Вставить» - «Графики» - «X-Y-зависимость» (выбрать нужный график), либо на панели инструментов выбрать и на панели «Графики» выбрать нужный тип графика – декартовый график и в появившемся шаблоне заполнить поля ввода данных (темные прямоугольники): имя переменной х по оси ОХ, имя функции f(x) по оси OY.
- В появившихся полях ввода ввести предельные значения для осей абсцисс и ординат.
- В итоге получаем (рис. 2.17):
Рис. 2.17
- Найдем угол стрельбы.
- Воспользуемся формулой:
- Подставим данные значения и выразим α:
0,448 = |
α * π |
→ α = |
0,448 * 180 |
= 25,669° |
180 |
π |
Таким образом, угол α равен 25,669°. На этом угле итерационная кривая имеет значение 1.
©Селянина Л.С.
|