Построил численный метод решения уравнения

, основанный на алгоритме быстрого преобразования Фурье. Краевые условия подбираю так, чтобы воспроизвести решение типа "кинка". На краях по

получаются значительные осцилляции, растущие со временем, которые можно уменьшить сужая шаг по времени, но в то же время для наблюдения процесса в том же временном диапазоне (он должен быть таким, чтобы было заметным перемещение кинка), приходится увеличивать число точек по времени, что заставляет компьютер думать очень долго. Можно ли по-другому избавиться от таких осцилляций? Например, как можно видоизменить уравнение, чтобы решение почти не изменилось, но солитон бежал бысрее?