В чисельних методах, метод стрільби - це метод для розв'язку крайової задачі зведенням її до розв'язання задачі початкових значень. Розв'язок задачі початкових значень дає нам функцію, яка в залежності від цих початкових значень (додатково введених) буде повертати значення розв'язку на іншому кінці. Це дасть звичайне алгебраїчне рівняння, яке можна розв'язати якимось методом.

Для крайової задачі звичайного диференціального рівняння другого порядку, метод описується так:

Нехай

це крайова задача.

Нехай y(t; a) описує розв'язок задачі початкових значень:

Задамо функцію F(a) як різницю між y(t1; a) та заданим значенням на краю y1.

Якщо крайова задача має розв'язок, тоді F має корінь, і цей корінь - лише значення що дає розв'язок крайової задачі y(t).

Далі можна використовувати звичайні методи для знаходження коренів, наприклад метод дихотомії, чи метод Ньютона.

Лінійний метод стрільбиРедагувати

Крайова задача лінійна, якщо f має форму

 

В такому разі розв'язок крайової задачі зазвичай задає

 

де   - розв'язок задачі початкових значень:

 

та   її розв'язок:

 

Дивіться доведення для точних умов, при яких такий результат має місце.

Метод стрільби для системи звичайних диференційних рівнянь II порядкуРедагувати

Нехай дано систему (1) звичайних диференційних рівнянь II порядку виду:

 

Необхідно знайти розв’язок системи (1) на інтервалі x ∈ [x0;xn], який задовольняє граничні умови

 

Сутність методу - у зведенні граничної задачі до багаторазового розв'язання задачі Коші для заданої системи.

Припустимо, що

 

де a - довільне число. Підставимо припущене a в першу граничну умову (2)

 .

Тепер це співвідношення є рівнянням відносно однієї невідомої  . В результаті чисельного чи аналітичного його розв'язання, отримуємо

 .

Таким чином, сформульовано задачу Коші для системи диференційних рівнянь (1) з початковими умовами (3) і (5) в точці x0. Розв'язавши дану задачу, отримані з необхідною точністю значення функцій   підставимо в другу граничну умову (2):

 ,

яка не буде виконуватись через довільність обраного a. Співвідношення (6) можна розглядати як рівняння відносно змінної а. Значення а = а*, що є коренем цього рівняння, задовольняє усім граничним умовам (2). Отже, розв'язками поставленої задачі будуть функції  .

Для знаходження розв'язку а* рівняння (6) найчастіше використовують метод січних, алгоритм якого в конкретному випадку запишеться у вигляді:

 ,

де i - номер поточної ітерації.

ПрикладРедагувати

Хай дана така крайова задача[1]:

 

Задача початкових значень:

 

розв'язана для s = −1, −2, −3, ..., −100, і F(s) = w(1;s) − 1 була накреслена на першій ілюстрації. Досліджуючи графік F, ми бачимо, що є корені біля −8 та −36. Деякі траєкторії w(t;s) показані на другому малюнку.

Розв'язки проблеми початкових значень були обчислені алгоритмом LSODE, який реалізований в математичному пакеті GNU Octave.

Автори задачі стверджують що існує два розв'язки, які можуть бути знайденими алгебраїчними методами. Вони відповідають початковим умовам w′(0) = −8 та w′(0) = −35.9 (приблизно).

 
Функція F(s) = w(1;s) − 1.
 
Траєкторії w(t;s) для   що рівне −7, −8, −10, −36, та −40 (червоний, зелений, синій, голубий та рожевий кольори відповідно). Точка (1,1) позначена червоним ромбиком.

Див. такожРедагувати

ЛітератураРедагувати

  • Josef Stoer and Roland Bulirsch. Introduction to Numerical Analysis. New York: Springer-Verlag, 1980. (See Section 7.3.)
  • Мудров А.Е.. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль. Томск: МП"РАСКО", 1991. (Раздел 7.2)
  1. Stoer and Bulirsch (Section 7.3.1).

ПосиланняРедагувати