Matlab  |  Mathcad  |  Maple  |  Mathematica  |  Statistica  |  Другие пакеты
Internet-класс  |  Примеры  |  Методики  |  Банк задач  |  Консультации & Форум  |  Download  |  Ссылки  |  Конкурсы
 
Лабораторная работа на тему: “Решение двухточечных краевых задач методом стрельбы”
М.Г. Семененко

Вернуться на страницу <Методические разработки>

Архив разработки ZIP-архив лабораторной работы (25 Кб, Mathematica, Mathcad, Word)

 

Цель работы: научиться решать краевые задачи для обыкновенных дифференциальных уравнений методом стрельбы с применением пакетов прикладных программ Mathematica и MathCad.

 

Теоретическое введение

На практике часто возникает необходимость решения двухточечных краевых задач (когда дополнительные условия на решение налагаются в точках на концах отрезка). Такие задачи, например, возникают при рассмотрении стационарных уравнений типа “реакция-диффузия” или стационарных уравнений теплопроводности.

Наиболее развитые системы имеют опции для решения двухточечных краевых задач, но их возможности часто ограничены. Например, система Mathematica решает не все типы линейных задач и не решает задачи нелинейные.

Рассмотрим один из распространенных способов решения двухточечных краевых задач, в том числе нелинейных, называемый методом стрельбы.

Будем рассматривать данный метод на примере решения уравнения второго порядка, предварительно представив его в виде системы уравнений первого порядка. Это рассмотрение является достаточно общим, поскольку уравнение любого порядка можно свести к системе уравнений первого порядка. Итак, пусть дана краевая задача

у'' + x2y +2 = 0; (1)

y(-1) = 0; y(1) = 0. (1')

Представим данную задачу в виде системы уравнений первого порядка:

Далее сведем данную задачу к задаче Коши, введя параметр a , равный неизвестному значению f (-1). Для того, чтобы найти a , при котором выполнено граничное условие в точке х = 1, добавим еще два уравнения, продифференцировав исходную систему по параметру a . Для этого введем еще две переменные . В итоге получим систему ОДУ:

(3)

Решив данную систему с фиксированным параметром a , мы получим значение у(2), вообще говоря, отличающееся от истинного. Для корректировки параметра a рассчитываем его новое значение по формуле

.

Здесь y(1)calc - полученное в результате расчета значение у(1). Затем снова решаем систему (3) и т.д. Процесс расчета продолжается до тех пор, пока не будет выполнено условие | a new - a old | < e , где e - заранее заданная точность расчета.

В файле Example_1 (ZIP-архив лабораторной работы - архив файла) показано решение задачи (1)-(1’) в системе Mathematica.

При решении задачи методом стрельбы краевая задача сводится к решению задачи Коши, причем недостающие начальные значения задаются вектором параметров, значения которых и находятся “пристрелкой”. В MathCad для того, чтобы найти этот вектор, имеется опция sbval(v,x1,x2,D,l,s) и bvalfit(v,x1,x2,xf,D,l1,l2,s). Здесь v - вектор “недостающих” начальных условий; х1,х2 - начальная и конечная точки отрезка, на котором ищется решение; D - вектор производных; l - векторная функция начальных значений; “недостающие” начальные значения задаются компонентами вектора v; s - вектор разностей между вычисленными и точными значениями функций на конце отрезка. Опция bvalfit решает двухточечную краевую задачу, используя промежуточную точку xf интервала решения. Применение этого метода будет особенно успешным, когда производная имеет разрыв внутри отрезка интегрирования.

В файле Example_2 (ZIP-архив лабораторной работы - архив файла) рассмотрено применение функции sbval (v, x1, x2, D, l, s) для решения краевой задачи (1)-(1'). Здесь v - вектор неизвестных начальных значений, x1, x2 - начальное и конечное значение интервала поиска решения, D - векторная функция, содержащая первые производные (правую часть системы дифференциальных уравнений), l - векторная функция, содержащая неизвестные значения в начальной точке, s - векторная функция, содержащая неизвестные значения в конечной точке. Для того, чтобы привести задачу (1)-(1') к задаче Коши, нам необходимо значение y’(-1). Таким образом, вектор v будет иметь одно значение, которое задается произвольно. Поскольку порядок дифференциального уравнения равен 2, вектор производных содержит две компоненты, причем выражение для второй производной находится из дифференциального уравнения. Вектор l содержит начальное значение у, равное 0, и начальное значение y’, которое задано значением v0. Так как на конце отрезка задано только одно значение y(1)=0, s задается скалярной величиной у0 (вектор у содержит значение функции у0 и значения производных y1 (y’), y2 (y'') и т.д.

Вектор S содержит “недостающее” начальное условие у'(1) = 2.142. После определения недостающих начальных условий можно решать задачу Коши, используя какую-либо подходящую опцию (в данном случае - rkfixed). Показан также график полученного решения и для контроля выведено значение у(1).

 

Задание

Используя пакеты прикладных программ Mathematica и MathCad, решить краевые задачи на заданном отрезке. Вывести график полученного решения.

  1. х2y ''- xy'= 3x3 ; y(1) = 2, y(2) = 9,  [1, 2].
  2. х2y'' + xy'- y = x2 ; y(1) = 1.333, y' (3) = 3,  [1, 3].
  3. y''+ xy'+ y = 2xy(0) = 1, y(1) = 0,   [0, 1].
  4. y'' + ychx = 0 ; y(0) = 0, y(2.2) = 1,  [0, 2.2].
  5. y'' + (x - 1)y'+ 3.125y = 4x ; y(0) = 1, y(1) = 1.368,  [0, 1].
  6. х2y'' - 2y = 0 ;  y(1)-2y'(1) = 0, y(2) = 4.5,  [1, 2].
  7. y'' + x2y = -2 ; y(-1) = 0, y(1) = 0,   [-1, 1].
  8. -y'' + x2y = (p 2/4 + x2)cos(p x/2) ; y(0) = 1,   y(1) = 0,  [0, 1].

 

В начало

Вернуться на страницу <Методические разработки>

Карта сайта | На первую страницу | Поиск |О проекте |Сотрудничество |
Exponenta Pro | Matlab.ru

Наши баннеры


Copyright © 2000-2003. Компания SoftLine. Все права защищены.

Дата последнего обновления информации на сайте: 15.04.03
Сайт начал работу 1.09.00

www.softline.ru

Призы для подписчиков научно-практического журнала: Exponenta Pro. Математика в приложениях