В 1959 году окончил среднюю школу № 1 в Ряжске Рязанской области.
В 1964 году окончил механико-математический факультет МГУ по кафедре вычислительной математики, в 1967 году — аспирантуру там же. Получил направление в Институт кибернетики АН УССР и переехал в Киев. Работал в институте с 1968 по 1969 год, младший научный сотрудник.
В 1969 году защитил диссертацию на соискание учёной степени кандидат физико-математических наук, тема диссертации: «Об устойчивости многослойных разностных схем» , научный руководитель А. А. Самарский.
В 1969 году перешёл в Институт прикладной математики АН СССР, младший научный сотрудник, с 1976 года — старший научный сотрудник.
С 1970 года преподавал в Московском государственном университете (до 1986 года — по совместительству).
В 1980 году защитил докторскую диссертацию «Устойчивость несамосопряженных разностных схем» , с 1986 года — профессор МГУ.
В 2008 году возглавил кафедру вычислительных методов факультета вычислительной математики и кибернетики МГУ.