Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
навчальний посібник.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

9.6. Розв’язок крєвої задачі

Нехай, необхідно знайти розв’язок диференціального рівняння при умові і .

При значеннях параметрів ; .

Для розв’язку краєвої задачі є вбудована функція sbval, що реалізує метод стрільб та дозволяє звести краєву задачу до задачі Коші. Функція sbval має наступні параметри:

  • v– вектор, що містить початкові наближення для недостающих початкових умов;

  • xmin, xmax – границі інтервалу, на якому шукаються розв’язки;

  • D(x,y) – вектор-функція, що містить праві частини системи диференціальних рівнянь першого порядку, що еквівалентні вихідному рівнянню, розмір вектора n співпадає з степеню старшої похідної диференціального рівняння;

  • load(xmin,v) – вектор-функція, елементи якої відповідають n значенням функцій на лівій границі інтервалу. Частина цих значень відома, а для частини задані початкові наближення у векторі v. Їх уточнені значення будуть знайдені в процесі обчислення;

  • score(xmax,y) – вектор-функція, що має ту ж кількість елементів, що і v. Кожне значення є різницею між початковими значеннями в кінцевій точці інтервалу і відповідній оцінці для розв’язку. Цей вектор показує, на скільки близько знайдений розв’язок до істинного.

Наша задача зводиться до системи двох диференціальних рівнянь першого порядку:

Тому функція D має вигляд рис.8.6.

Рис.9.6. Матриця похідних

Задача Коші для диференціального рівняння другого порядку містить дві початкових умови. Нам відомо тільки одну. Початкове наближення для недостающего значення задаємо у векторі v, який в нашому випадку складається тільки з одного елементу. Не дивлячись на це, індекс 0 повинен бути обов’язково вказаний, щоб підкреслити векторний характер цієї величини. На лівій границі інтервалу нам відоме значення y( ) і задано початкове наближення для ( ).

Рис.9.7. Пошук невідомої початкової умови

Це значення записане у v0. Задаємо вектор – функцію load. Її нульовий елемент – початкове значення для , перший – для .

Тепер, коли нам стало відома початкова умова в задачі Коші, можна скористатись, наприклад, функцією rkfixed.

Рис.9.8. Знаходження результатів методом Рунге-Кутти

9.7. Розв’язок звичайних диференціальних рівнянь в Mathcad

Починаючи з версії Mathсad 2000 запропоновано новий спосіб для розв’язку звичайних диференціальних рівнянь, розв’язаних відносно старшої похідної. Для цих цілей служить вже відомий нам блок given разом з функцією odesolve (x, b[кількість кроків]), яка знаходить розв’язок диференціального рівняння при заданих початкових умовах і кінці інтервалу інтегрування b. Диференціальне рівняння разом з початковими або граничними умовами записується в блоці given. Похідні можна позначати як штрихами (Ctrl+F7), так і з допомогою знака похідної панелі Calculus.

Приклад використання функції для розв’язку задачі Коші приведений нижче.

Рис.9.9. Розв’язок диференціального рівняння другого порядку з допомогою функції odesolve

Зверніть увагу, в заданій функції явно заданий аргумент. Функція odesolve має три аргументи. Перший аргумент – незалежна змінна, другий – границя інтервалу, на якому шукається розв’язок, останній аргумент – крок, з яким шукається розв’язок. Останній аргумент можна не вказувати.