Численное моделирование эволюционных задач.

Преподаватель: Бобков Владимер Васильевич

Какая - то задача, кот.связана с процессом эволюции, отслеживанием процесса эволюции

Главный Вопрос : как математической эволюционной задаче поставить в соответствие численную модификацию - вычислетельные методы
предметный области не рассматриваются.

эволюционная задача
нет строгово определения
1. Задача, которая описывает процесс, развивающийся во времени
2. ДУ, которое содержит только первые производные по времени.
очень мало условий - только одно начальное условие и есть много условий
типичные примеры:
задача Коши для системы ОДУ

Чем неприятно? Если мы хотим отследить эволюцию x, то мало дополнительных условий - в отличие от краевой задачи "второй конец" свободен, не закреплён.
Эта "простая" задача для численного моделирования более сложная. То, что важно в ДУ нужно не потерять на этапе приближения.
Сделали шаг - то, что до этого забыли, продолжаем. Но если чуть-чуть отклонились - стали на другое решение. Если нет асимпотической устойчисовсти, то ошибка не исправляется, а накапливается.
Нужно так провести замену исходной задачи, чтобы наиболее важное не пропало. А что это важное? - большой вопрос.
Если бы были граничные условия - была бы проверка в конце. Но у нас только начальное.

Пример:

Точное решение:

Эту схему исправить легко, но реальные могут быть сложны.

Традиционно извесные вещи

Даже неявные схемы сохраняют предельное положение только тогда, когда рассчинаты _точно _ (а их точно не считают --  по 2 - 3 итерации).

Фундамент

Есть исходная эволюционная задача. Предполагаем, что решение сущестует и единственно.
Задача: создать численную модель, пригоную для анализа этой задачи.
Превый вопрос: вопрос о том, какие источники ошибок и какие составляющие ошибок приближённого решения.

Основные источники и составные части погрешностей и способы их математического описания.

Есть точное решение, и есть приближённое решение, полученное с "отягчающими обстоятельствами".
Погрешность - разность между точным и приближённым решениями.
Пусть есть одно уравнение.
u'[x] = f[x, u[x]], u[t] = y; (* Система ОДУ. Решение существует и единственно. *)
Численный метод:
]; (* p - приближение к производной *)
Погрешности
1. Неустранимая - та, которая зависит только от погрешности начальных условий (несовершенство датчиков)
Неустранимые ошибки уже не удалишь. Они следуют законам дифференциального уравнения.
(* если df/du<0, то траектории сближаются; =0 - параллельны; >0 - расходятся *)
Всё может быть описано на языке неустранимой погрешности.
Неустранимыми также считают погрешности в других входных данных (помимо начального условия)
Каждый шаг допускается некоторая ошибка. На следующем шаге она рассматривается как неустранимая.
2. Вычислительная - погрешность округления. Разрядная сетка ограничена.
будем уделять им мало внимания
нельзя делить на числа, близкие к нулю
нельзя вычитать числа близкие , чтобы главное значение не исчезло и точность не уменьшилась.
нельзя проводить рекурсивные процедуры, умножая на числа больше 1 (или соответствующие матрицы)
(* вероятностные методы широко используются в оценке вычислительных методов. Воеводин. *)
3. погрешность замены исходной задачи - наша основная тема. Ту задачу, которая нам не по силам заменяют берущейся  - основной источник ошибок.
Та часть погрешности, которая зависит только от апроксимации (замены) называют погрешность метода.
Чем же оценить эту погрешность (замены)?
Limit[p[t,τ,u,u[t+τ]]  , τ->0] = f[t, u] для любого решения u (* необходимое условие *)
Подставим точное решение в модель.: ; r - невязка.
это опосредованное описание точности решения
хороша она тем, что можно выяснить её порядок малости

Если r -> 0 (при τ -> 0) стремится со скоростью , то решение будет стремиться с
Если метод явный, то - невязка равна неточности решение.
маленькая невязка - маленькая ошибка
недостатки
нужно знать ξ и u''[t]
для неявного метода невязка не отражает точность решения
Конкретный пример:
Пусть есть набор уравнений:
1. (* неустойчивость *)
2. (* асимптотическая устойчивость *)
3. u'[x]=0.2x (* устойчивое (но не асимпотически) *)
Начальные условия: u[0]=0.01 (* для всех *)
Точное решение (для всех):
Метод: неявный метод Эйлера:
Невязка:
Пусть τ=0.01. Невязка: -0.00001.
Локальная ошибка: (* даже на первом шаге неточность большая (хотя невязка маленькая) *)
; ; (* для первого уравнения *)
Для τ<0.01 будет более-менее OK. А для τ>0.01 будет как во втором, устойчивом уравнении ⇒ _существенное_ искажение (на самом деле расходится, а по модели сходится). А по невязке всё выглядит нормально.

Другой, альтернативный метод оценивания замены.

Задача решается на отрезке t<=x<=t+τ
Введём понятие производной разностного метода.
Свяжем с нашей моделью функцию непрерывного аргумента:
y[x]=y+(x-t)p[t,(x-t),y,y[x]]=y+(x-t)q[x,y[x]]

Продифференцируем её:

Поставим в соответствие нашему исследуемому методу дифференциальное уравнение:
y'[x]=φ[x,y[x]]

Это похоже на наше исходное уравнение u'[x]=f[x, u[x]]

Применим к той нашей задаче:
будет расходимость (когда x=0.01)
наше решение непрерывно, а тут уже при t=0.01 разрыв производной.

Можно говорить о невязке....

y'[x] = φ[x, y[x]] - приближённое дифференциальное уравнение.
u'[x] = f[x, u[x]] - точное дифференциальное уранение

r[x]=f[x,u[x]]-φ[x,u[x]] - невязка точного ....
ρ[x]=f[x,y[x]]-φ[x,y[x]] - невязка приближённого решения. Она может быть просто вычислена.

Опасности остаются. Но теперь они видны (нули в знаменателях)
ρ[x] - главная часть производной локальной погрешности.

Пример:Возьмём задачу
u'[x]=A u[x]. Пусть A - симметричная, чтобы был базис и собственные вектора.

(рисунок) E=E(λ,τ)  Для уже плохо.
Теперь для неявного:

пока что мы только более грамотно опывасали пределы методов....

<offtopic>Пример: уравнение A u==f. Есть единственное решение.
Если A разложить на .
. Пока всё нормально
Но когда берут - уже fail. (оно делалось чисто в расчёте на малый шаг. И слишком малым он может показаться даже для машины. Делать акцент на малость шага преподаватель не рекомендует. С бесконечно малым шагом бесконечно далеко не уйдёшь.</offtopic>

Представление в виде последовательности задач

Нельзя и пойти задом наперёд? Описывая ... некоторой дифференциальной задачей. Сделать апроксимирующие задачи, решения которых приближаются к нашей, и которые решать легко (численно).
Как мы проведём на шаге апроксимацию?
Нужно предложить такие задачи вида y'[x]=φ[x,y[x]]
1. легко и надёжно решать
2. можно построить последовательность задач чтобы решения сходились к решению нашей задачи (на шаг).
Проблема не в том, что много считать, а что нужно надёжно считать.
невязка: ρ[x]=f[x,y[x]]-y'[x];
неточность: ε'[x]=ρ[x]+f[x,y[x]+ε[x]]-f[x,y[x]]; ε[t]=0.
Простейший пример:
; . Если процесс сойдётся, то будет то, что нужно. Если процес сходится, то z'[x]=f[x,z[x]].
; Получилась теорема Пикара. Условие сходимости извесно.
Почему он не используется? 1. Медленно сходится, 2. Вычислительная сложность
u'[x]=A u[x]; A=A<0; ;

Спектральные значения:
;
;  q - гармоники
Решение - линейная комбинация гармоник матрицы A.

Чтобы соблюжадлся порядок выгорания нармоник,

Если в таком методе взять слишком большое τ, то будет стремиться к +∞ или -∞ (в зависимости от чётности p) (при p=∞ всё сходится чётко).
А если шаг τ слишком маленький, то из-за недостаточной машинной точности младшие гармоники "зависнут", не будут выгорать.
(* все гармоники у нас в решении в сумме - неточность будет в обоих случаях *)
Из-за этого процесс Пикара не очень используется.
(* усиленная асимптотическая монотонность - спектральная монотонность (не только нельзя выгорать медленнее самой медленной, но и для всех остальных должен быть такая же очерёдность выгорания)*)

Простым штрихом улучшаем метод Пикара.

Цена: отказ от независимости

u'[x]=f[x,u[x]]; ставиться в соответствие y'[x]=φ[x,y[x]].
Последовательность φ[x]
; - это обычный процесс. Но плохо: нарушаются требования: нужно брать мелкий шаг - плохо. Ещё один недостаток: на кажом шаге всё решение строится заново. Хотелось бы получить прибл. решение, а потом поправки-поправки (всё уменьшающиеся).

Модифициуем чтобы можно было уточнять.
Будем считать, что y'[x]=φ[x,y[x]] - неизвестная присутствует и в правой части.
Для начала выберем другое начальное приближение: . Как выбрать A и ? Разложим по Тейлору:, .

- решение этого уровнения:

Какова погрешность такой замены?

. Е ещё . И ещё получили .
Значит . - получился метод решения первого порядка точности.

Он допускает реализацию, метод явный, СЛАУ решать не нужно. Нужно чтобы было и чтобы удобно было матричную экспоненту вычислять.

Далее: мы не будет по-обычному приближаться к решению, а как-то по-другому уточнять (решая ).
Считаем, что уже имеем, будем искать поправки.

Опишем сам процесс приближений :

Преимущества :
1. Не нужно решать СНЛАУ - многие законы  теряются если приближённо
2. Нет тех проблем, которые мы описывали
3. Сходимость : если сходится, то туда, куда нам нужно. Правила когда сходится определены.

Основная проблемы :
1. хороший способ матричной экспоненты
2. хорошая решалка СТЛОД.

...

Предположения:
1. Гладкость исходного уравнения
2. Теория .... .... специализированные методы их решения

1. Эта задача - специфический неявный метод с первым порядком точности.
2. Сходимость как у метода Пикара

Замечание : если встретится  , то имея точное решение для постоянного случая (с ) можно без бесконечного приближения, в один шаг перейти к решению переменного :
;

(опять упирается в проблему матричной экспоненты)

Итак, теперь на первом приближении у нас уже 2 порядка точности

На каждом рекурсионном приближении получаем + 2 порядка точности.

Опишем этот уточнённый процесс дифференциальных привязок :

Основное преимущество : точность повышается на 2 порядка на каждом шаге (а не на один), при этом поправки δ ... .. и вместо ρ, которое всё равно нужно считать просто экспонента.

Проблемы и требования к явным и неявным методам

(* телефон преподавателя: 2027684 *)

Характерные проблемы традиционных численных методов.
На примере явного и неявного Эйлера

u'[x] = A u[x] + a; u[t] = y
Законы/требования:
1. единственное положение равновесия: (если невырождена) .

2. Спектральная монотонность: Если

(* absciss: lambda. Goal: to be between 0 and 1 (for λ<0), prefferably near the red line. Wrong sign - epic fail.*) (* ордината: множитель перехода *)

3'. Проблема подвисания медленных  гармоник (уже рассматривалось: слишком малый шаг, малая лямбда => произведение ниже машинной точности. Вместо мизерного изменения получаем вообле отсутствие изменений).

Проблема жёсткости : в неявных лучше. Если точность большая - проблема подвисания. Точность маленькая - расходимости.

4. Ещё одна проблема неявного эйлера: λ<0, вроде как-бы всё хорошо. На графике гипербола почти приближает экспоненту. Рассмотрим ошибку . Ошибка, вроде, маленькая.  Если , то ошибка вроде равна нулю. Если τ→∞, то ε тоже →0. Но по пути экстремум. При этом

... .. Почему бы не отказаться от лишней устойчивости (в том числе опасной ложной устойчивости) для получения чего-то полезного.

Рассмотрим ещё проблему неоднородности. В конце же нужно иметь .

Утверждение : если стою на стационаре, то после шага нужно чтобы на стационаре и остался.

Кроме сохражения положения равновесия ещё будет выполняться свойство дифференциальной согласованности :
(u')[x]=A(u')[x];

Реализация этого метода

Излишняя устойчивость пропадёт, появится спектральная монотонность,
Хотим монотонность по E, нужно следать монотонность и по , так как как выбрал , так и ..........
Exp[A z]≈I++...+
; μ≥Norm[A]. Правее μ не должно быть собственных значений.

(*при любом τ, поднимая m, можно получить сколь угодно точное решение. И наоборот, завфиксировав m, можно уменьшать τ. Полезные свойства будут соблюдаться. *)

(*Вопросы, литература - потом будут*)

Created with Wolfram Mathematica 7.0