Нестабильность во время NDSolving волнового уравнения

Я пытаюсь использовать NDSolve для решения волновых уравнений, чтобы проверить, проще и/или быстрее использовать его вместо моих старых характеристик eq. осуществление способа.

Я получаю большую нестабильность, которую не получаю с помощью метода характеристик, и поскольку это простые уравнения, интересно, что не так... (надеюсь, не физический аспект проблемы...)

ans = Flatten@NDSolve[{
u[t, x]*D[d[t, x], x] + d[t, x]*D[u[t, x], x] + D[d[t, x], t] == 0,
D[d[t, x], x] + u[t, x]/9.8*D[u[t, x], x] + 
 1/9.8*D[u[t, x], t] + 0.0001 u[t, x]*Abs[u[t, x]] == 0,
u[0, x] == 0,
d[0, x] == 3 + x/1000*1,
u[t, 0] == 0,
u[t, 1000] == 0
},
d, {t, 0, 1000}, {x, 0, 1000}, DependentVariables -> {u, d}
]

Animate[Plot[(d /. ans)[t, x], {x, 0, 1000}, 
        PlotRange -> {{0, 1000}, {0, 6}}], {t, 0, 1000}
]

enter image description here

Может ли кто-то помочь мне?

EDIT:

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

simulation

Красный: NDsolve ; Синий: метод «ручных» характеристик;

нажмите F5 (обновить браузер), чтобы перезапустить анимацию с t = 0 .

(xx scale - количество точек, которое я использовал с моим «ручным» методом, где каждая точка представляет 20 единицы NDSolve /физическая шкала)

Воспроизведение с помощью NDSolve выборки сетки, визуализирует совершенно разные эффекты колебаний. Есть ли у кого-либо метод для обеспечения правильной интеграции?

-121--1504402- Задать несколько системных свойств Командная строка Java Есть ли более простой способ указать несколько системных свойств в командной строке для программы Java, чем иметь несколько операторов -D? Попытка избежать этого: java -jar -DNAME = «myName» -...

Есть ли более простой способ указать несколько свойств системы в командной строке для Java-программы, чем иметь несколько операторов -D?

Пытаясь избежать этого:

 java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar

Я думал, что видел пример, когда кто-то использовал один -D и некоторые цитируемые последовательности после этого, но я не могу найти пример снова.

60
задан Captain Man 2 November 2015 в 20:28
поделиться