Крест не очень хорошо себя ведет. Рекомендую расщепление с ресаксацией для этой задачи - т.е. так же как у вас, но на каждом шаге по времени делается два "прохода" - один по пространственной переменной и второй по пространственной переменной . Там обычные прогонки одномерные можно использовать - все очень хорошо работает. Думаю здесь есть -
Это уже не релаксация (как я понимаю), а схема переменных направлений. Или, что то же -- метод дробных шагов.
Схема абсолютно устойчива -- в линейном случае. В нелинейном -- честно, не в курсе. Но надежда умирает последней.