Метод решения системы диофантовых уравнений
Добрый день!
Как и обещал в первой своей статье, я хочу ознакомить Вас с одним из методов решения системы диофантовых уравнений. Цель статьи ознакомить остальных читателей с этой методикой и донести её в более или менее понятном виде.
Рассмотрим систему из двух диофантовых уравнений
и
Найдем все возможные решения первого уравнения. Как, спросите Вы? Наверняка есть разные методики, но я поделюсь в одной из следующих статей, как бы я решал подобную задачу. А сейчас просто примем что общее решение имеет вид
Как проверить что я не лгу?
Достаточно вспомнить матричное исчисление и умножить вектор значений нашего первого диофантового уравнения(без свободного члена) на матрицу всех коэффициентов.
получили в результате значение свободного члена, а следовательно вычисления правильные
Следующим этапом мы подставим наше общее решение
во второе уравнение
Процедура такая же: умножаем вектор из коэффициентов второго уравнения на общее решение первого
получаем вот такой результат
то есть мы получили уравнение вида
С правой стороны второго диофантового уравнения как был свободный член равный -335, так и остался, то есть наше окончательное решение на этом этапе имеет вид
Или перенеся свободные члены в правую сторону получим
Итак, мы получили очередное диофантовое уравнение. Давайте найдем его общее решение и проверим его на истинность.
то есть общее решение имеет вид
А теперь делаем обратное преобразование(пусть так называется). То есть в систему
Мы вместо неизвестных x подставляем то, что получилось на последнем этапе
В матричном исчислении это решается умножением одной матрицы на другую.
Но с первой матрицей надо сделать определенную процедуру: убрать (временно) последний столбец с свободными членами, так как этот параметр не участвует в умножении, и будет пользоваться позднее.
Результат умножения двух матриц порождает
матрицу
Последний столбец это свободные члены этой системы.
Учтем тот столбец который временно удаляли, перед умножением и сложим их
наш окончательный ответ в виде матрицы
Проверим?
Векторное произведение коэффициентов первого уравнения и матрицы
а векторное произведение коэффициентов второго уравнения и матрицы
Как видим, результат совпадает с свободным членом каждого из уравнений.
Таким образом общее решение имеет вид
где m,p,q — могут принимать любые целые значения
Таким незамысловатым способом можно решать и более сложные линейные диофантовые уравнения. По следам этого алгоритма создан калькулятор правда, этот калькулятор очень не любит когда вместо значений в коэффициентах первого уравнения начальной системы встречаются нули. Но это проблема конкретной моей реализации этого алгоритма.
В следующей теме я расскажу как создавать диофантовые уравнения по матрице общего решения. Задача в общем то банальна и делается в одно действие, но вдруг кто то не знает.
Буду благодарен за замечания, отзывы и предложения.