Основная проблема - это длина временного шага. Если вы посмотрите на дифференциальное уравнение, цифры станут нестабильными для a>0.5
. В переводе для вас это означает, что примерно N > 190
. Я получу красивую картинку, если увеличу ваше N
до такого значения.
Однако я думаю, что где-то меняются местами оси времени и пространства (если вы попытаетесь интерпретировать график, то, то есть граничные условия и ожидаемое затухание профиля с течением времени). Я не могу сейчас понять, почему.
Изменить : Фактически, вы меняете местами T
и X
, когда вы делаете meshgrid
. Это должно работать:
N = 200
...
...
T, X = np.meshgrid(tspan, xspan)
...
surf = ax.plot_surface(T, X, U, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
...
ax.set_xlabel('Time')
ax.set_ylabel('Space')