Это результат числовой нестабильности, поэтому любая небольшая ошибка каждого вашего шага будет экспоненциально расти до бесконечности.
Имитируемое PDE - 1D Уравнение конвекции .Схема конечных разностей, которую вы используете, - это FTCS для прямого времени-центрированного пространства (т.е. вы используете следующее время и текущее время для оценки разницы во времени и используете левое и правое пространство для оценки разницы в пространстве). FTCS всегда нестабильна при решении уравнений конвекции.
Если вы хотите получить стабильные решения, для условий c<0
вы можете попробовать FTFS (использовать текущее пространствои правое пространство, а не левое и правое).Таким образом, ваша матрица А должна выглядеть следующим образом:
A=eye(N)-(c*(dt/dx))*((diag(ones(N-1,1),1)-diag(ones(N,1),0)));
(Если вы не используете это уравнение, просто измените то, что вы хотите использовать)
Кроме того, чтобы сделать FTFS стабильной, вы должны убедиться: abs(c*dt/dx)<1
верно.Измените dt и dx, если это не так.
По-видимому, если c> 0, вы должны использовать FTBS для Forward-time-Backward-Space.
Для получения дополнительной информации вы можете получить доступ клюбые книги о численном решении PDE.
Надежды на помощь.