Решение Краевых задач

В краевой задаче (BVP) цель состоит в том, чтобы найти решение обыкновенного дифференциального уравнения (ODE), которое также удовлетворяет определенным заданным граничным условиям. Граничные условия задают отношение между значениями решения в двух или больше местах в интервале интегрирования. В самом простом случае граничные условия применяются вначале и конец (или контуры) интервала.

Решатели MATLAB® BVP bvp4c и bvp5c спроектированы, чтобы обработать системы ОДУ формы

y'=f(x,y)

где:

  • x является независимой переменной

  • y является зависимой переменной

  • y ′ представляет производную y относительно x, также записанного как dy/dx

Граничные условия

В самом простом случае 2D точки BVP решение ОДУ найдено через определенный интервал [a, b], и должно удовлетворить граничным условиям

g(y(a),y(b))=0.

Чтобы задать граничные условия для данного BVP, вы должны:

  • Запишите функцию формы res = bcfun(ya,yb), или используйте форму res = bcfun(ya,yb,p) если существуют неизвестные включенные параметры. Вы предоставляете эту функцию к решателю как второй входной параметр. Функция возвращает res, который является остаточным значением решения, за пределами указывают. Например, если y(a) = 1 и y(b) = 0, то функция граничного условия

    function res = bcfun(ya,yb)
    res = [ya(1)-1
           yb(1)];
    end

  • В исходном предположении для решения первые и последние точки в mesh задают точки, в которых осуществляются граничные условия. Для вышеупомянутых граничных условий можно задать bvpinit(linspace(a,b,5),yinit) осуществлять граничные условия в a и b.

Решатели BVP в MATLAB также могут разместить другие типы проблем, которые имеют:

  • Неизвестные параметры p

  • Сингулярность в решениях

  • Многоточечные условия (внутренние контуры, которые разделяют интервал интегрирования на несколько областей),

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

Исходное предположение решения

В отличие от задач с начальными значениями, краевая задача может иметь:

  • Никакое решение

  • Конечное число решений

  • Бесконечно много решений

Важная часть процесса решения BVP обеспечивает предположение для требуемого решения. Качество этого предположения может быть очень важным для производительности решателя и даже для успешного расчета.

Используйте bvpinit функция, чтобы создать структуру для исходного предположения решения. Решатели bvp4c и bvp5c примите эту структуру как третий входной параметр.

Создание хорошего исходного предположения для решения является больше искусством, чем наука. Однако некоторые общие руководящие принципы включают:

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

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

  • Рассмотрите размещение точек mesh (x-координаты исходного предположения решения). Решатели BVP адаптируют эти точки во время процесса решения, таким образом, вы не должны задавать слишком много точек mesh. Лучшая практика состоит в том, чтобы задать несколько точек mesh, помещенных рядом, где решение изменяется быстро.

  • Если существует известное, простое решение на меньшем интервале, то используйте его в качестве исходного предположения на большем интервале. Часто можно решить задачу как серию относительно более простых проблем, практика вызвала продолжение. С продолжением серия простых проблем соединяется при помощи решения одной проблемы как исходное предположение, чтобы решить следующую задачу.

Нахождение неизвестных параметров

Часто BVPs включают неизвестные параметры p, которые должны быть определены как часть решения задачи. ОДУ и граничные условия становятся

y'=f(x,y,p)g(y(a),y(b),p)=0

В этом случае граничные условия должны быть достаточными, чтобы определить значения параметров p.

Необходимо предоставить решателю исходное предположение для любых неизвестных параметров. Когда вы вызываете bvpinit создать структуру solinit, задайте исходное предположение как вектор в третьем входном параметре parameters.

solinit = bvpinit(x,v,parameters)

Кроме того, функции odefun и bcfun это кодирует уравнения ОДУ, и граничные условия должны каждый иметь третий аргумент.

dydx = odefun(x,y,parameters)
res = bcfun(ya,yb,parameters)

При решении дифференциальных уравнений решатель настраивает значение неизвестных параметров, чтобы удовлетворить граничным условиям. Решатель возвращает окончательные значения этих неизвестных параметров в sol.parameters.

Сингулярный BVPs

bvp4c и bvp5c может решить класс сингулярного BVPs формы

y=1xSy+f(x,y),0=g(y(0),y(b)).

Решатели могут также разместить неизвестные параметры для проблем формы

y=1xSy+f(x,y,p),0=g(y(0),y(b),p).

Сингулярные проблемы должны быть созданы через определенный интервал [0, b] с b> 0. Используйте bvpset передать постоянный матричный S решателю как значение 'SingularTerm' опция. Граничные условия в x = 0 должны быть сопоставимы с необходимым условием для сглаженного решения, Sy (0) = 0. Исходное предположение решения также должно удовлетворить этому условию.

Когда вы решаете сингулярный BVP, решатель требует что ваш функциональный odefun(x,y) возвратите только значение f (x, y) термин в уравнении. Термин, включающий S, обработан решателем отдельно с помощью 'SingularTerm' опция.

Выбор решателя BVP

MATLAB включает решатели bvp4c и bvp5c решить BVPs. В большинстве случаев можно использовать решатели взаимозаменяемо. Основным различием между решателями является тот bvp4c реализует формулу четвертого порядка, в то время как bvp5c реализует формулу пятого порядка.

bvp5c функция используется точно как bvp4c, за исключением значения ошибочных допусков между этими двумя решателями. Если S (x) аппроксимирует решение y(x), bvp4c управляет невязкой |S ′ (x) – f (x, S (x)) |. Этот подход косвенно управляет истинной погрешностью |y (x) – S (x) |. Используйте bvp5c управлять истинной погрешностью непосредственно.

РешательОписание

bvp4c

bvp4c код конечной разности, который реализует 3-этапную формулу Lobatto IIIa. Это - формула словосочетания, и полином словосочетания предоставляет решение C1-continuous, которое является четвертым порядком, точным однородно в интервале интегрирования. Поймайте в сети выбор, и контроль ошибок основаны на невязке непрерывного решения.

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

bvp5c

bvp5c код конечной разности, который реализует четырехэтапную формулу Lobatto IIIa. Это - формула словосочетания, и полином словосочетания предоставляет решение C1-continuous, которое является пятым порядком, точным однородно в [a, b]. Формула реализована как неявная формула Рунге-Кутта. bvp5c решает алгебраические уравнения непосредственно, тогда как bvp4c использует аналитическую конденсацию. bvp4c обрабатывает неизвестные параметры непосредственно, в то время как bvp5c увеличивает систему с тривиальными дифференциальными уравнениями для неизвестных параметров.

Оценка решения

Методы коллокации реализованы в bvp4c и bvp5c произведите решения C1-continuous на интервале интегрирования [a, b]. Можно оценить приближенное решение, S (x), в любой точке в [a, b] использование функции помощника deval и структура sol возвращенный решателем. Например, чтобы оценить решение sol в сетке точек xint, используйте команду

Sxint = deval(sol,xint)

deval функция векторизована. Для векторного xint, iстолбец th Sxint аппроксимирует решение y(xint(i)).

Примеры BVP и файлы

Несколько доступных файлов в качестве примера служат превосходными начальными точками для наиболее распространенных проблем BVP. Чтобы легко исследовать и запустить примеры, просто используйте приложение Дифференциальных уравнений В качестве примера. Чтобы запустить это приложение, ввести

odeexamples
Чтобы открыть отдельный файл в качестве примера для редактирования, ввести
edit exampleFileName.m
Чтобы запустить пример, ввести
exampleFileName

Эта таблица содержит список доступных файлов в качестве примера BVP, а также решатели и опции, которые они используют.

Файл в качестве примера

Используемый решательЗаданные опции

Описание

Ссылка в качестве примера

emdenbvp

bvp4c или bvp5c

  • 'SingularTerm'

Уравнение Эмдена, сингулярный BVP

Решите BVP с сингулярным термином

fsbvp

bvp4c или bvp5c

Falkner-Skan BVP на бесконечном интервале

Проверьте непротиворечивость BVP Используя продолжение

mat4bvp

bvp4c или bvp5c

Четвертая собственная функция уравнения Мэтью

Решите BVP неизвестным параметром

rcbvp

bvp4c и bvp5c

  • 'FJacobian'

  • 'AbsTol'

  • 'RelTol'

  • 'Stats'

Примером, сравнивающим ошибки, управляет bvp4c и bvp5c

Сравните bvp4c и bvp5c Решатели (bvp4c)

Сравните bvp4c и bvp5c Решатели (bvp5c)

shockbvp

bvp4c или bvp5c

  • 'FJacobian'

  • 'BCJacobian'

  • 'Vectorized'

Решение с ударным слоем рядом x = 0

Решите BVP Используя продолжение

twobvp

bvp4c

BVP точно с двумя решениями

Решите BVP с двумя решениями

threebvp

bvp4c или bvp5c

Краевая задача с тремя точками

Решите BVP с несколькими граничными условиями

Ссылки

[1] Ascher, U., Р. Мэттейдж и Р. Рассел. “Числовое Решение Краевых задач для Обыкновенных дифференциальных уравнений”. Филадельфия, PA: SIAM, 1995, p. 372.

[2] Шемпин, L.F., и Дж. Кирженка. "Решатель BVP на основе остаточного управления и PSE MATLAB". Математика Сделки ACM. Softw. Издание 27, Номер 3, 2001, стр 299–316.

[3] Шемпин, L.F., М.В. Рейчелт и Дж. Кирженка. "Решая Краевые задачи для Обыкновенных дифференциальных уравнений в MATLAB с bvp4c". MATLAB File Exchange, 2004.

[4] Шемпин, L.F., и Дж. Кирженка. "Решатель BVP, который Невязка Средств управления и Ошибка". Дж. Нумер. Анальный. Ind . Прикладная Математика. Издание 3 (1-2), 2008, стр 27–41.

Смотрите также

| | | | |