EssayAI
Блог
Блог
Математика и алгоритмы

Уравнение Пелля: как найти фундаментальное решение

11 июня 2026Время чтения: 10 минут
#уравнение пелля#цепные дроби#теория чисел#диофантовы уравнения#непрерывные дроби

Уравнение Пелля x2−Dy2=1x^2 - D y^2 = 1 - одно из старейших диофантовых уравнений теории чисел: нужно найти целые xx и yy, при которых квадрат xx ровно на Dy2D y^2 превосходит квадрат, дающий единицу. Несмотря на простоту записи, оно имеет богатую структуру решений: если DD - целое положительное число и не точный квадрат, решений бесконечно много, а все они получаются из одного, наименьшего, по простой рекуррентной формуле. Ключ к этому наименьшему решению - цепная (непрерывная) дробь числа D\sqrt{D}. Ниже разберём, как её строить, как из неё вытащить первое решение и как затем эти решения растут почти взрывным образом. Чтобы сразу увидеть картину целиком, покрутите калькулятор ниже - он строит цепную дробь и график роста решений для любого DD из списка.

Что такое уравнение Пелля и почему x=1, y=0 не считается

Уравнение Пелля записывается как

x2−Dy2=1,x^2 - D y^2 = 1,

где DD - фиксированное натуральное число, не являющееся точным квадратом. Условие «не точный квадрат» существенно: если D=k2D = k^2, уравнение превращается в (x−ky)(x+ky)=1(x-ky)(x+ky) = 1, а такое диофантово уравнение имеет только тривиальные решения. Формальное решение x=1x = 1, y=0y = 0 существует для любого DD, но его не считают содержательным - интересны решения в натуральных числах, то есть с y≥1y \ge 1. Именно наименьшее такое решение (x1,y1)(x_1, y_1) называют фундаментальным: оно единственное среди «маленьких» пар и порождает все остальные.

Имя уравнение получило благодаря Джону Пеллю, хотя сам он к его изучению почти не причастен - Леонард Эйлер по ошибке приписал ему результаты, полученные другими математиками (в частности, Уильямом Броункером и индийскими математиками Брахмагуптой и Бхаскарой II на много веков раньше). Историческая случайность не помешала названию закрепиться.

Цепная дробь корня из D: как найти фундаментальное решение

Фундаментальное решение находят через разложение D\sqrt{D} в цепную (непрерывную) дробь. Для любого целого не-квадратного DD это разложение периодично и вычисляется по рекуррентному алгоритму:

a0=⌊D⌋,m0=0,d0=1,a_0 = \left\lfloor \sqrt{D} \right\rfloor, \qquad m_0 = 0, \quad d_0 = 1, mk+1=dkak−mk,dk+1=D−mk+12dk,ak+1=⌊a0+mk+1dk+1⌋.m_{k+1} = d_k a_k - m_k, \qquad d_{k+1} = \frac{D - m_{k+1}^2}{d_k}, \qquad a_{k+1} = \left\lfloor \frac{a_0 + m_{k+1}}{d_{k+1}} \right\rfloor.

Числа aka_k и есть неполные частные цепной дроби D=[a0; a1,a2,…]\sqrt{D} = [a_0;\, a_1, a_2, \ldots]; период заканчивается, как только очередное aka_k становится равным 2a02a_0. Дальше по этим неполным частным строят подходящие дроби hn/knh_n/k_n - стандартные числитель и знаменатель приближения:

h−1=1,h−2=0,k−1=0,k−2=1,h_{-1} = 1, \quad h_{-2} = 0, \qquad k_{-1} = 0, \quad k_{-2} = 1, hn=anhn−1+hn−2,kn=ankn−1+kn−2.h_n = a_n h_{n-1} + h_{n-2}, \qquad k_n = a_n k_{n-1} + k_{n-2}.
Счётчик шагов алгоритма цепной дроби для √2: на каждом шаге обновляются m, d, a и подходящая дробь hₙ/kₙ; когда hₙ² − 2kₙ² становится равно 1, золотая точка на ветви гиперболы фиксируется как фундаментальное решение (3, 2)

Если длина периода ll чётна, фундаментальное решение - это как раз (hl−1,kl−1)(h_{l-1}, k_{l-1}). Если период нечётный, эта пара решает не исходное уравнение, а «соседнее» x2−Dy2=−1x^2 - D y^2 = -1, и нужно пройти период ещё раз: фундаментальное решение уравнения со знаком плюс тогда равно (h2l−1,k2l−1)(h_{2l-1}, k_{2l-1}).

Рекуррентная формула для всех решений

Как только найдено фундаментальное решение (x1,y1)(x_1, y_1), все остальные натуральные решения получаются простой рекуррентой:

xn+1=x1xn+Dy1yn,yn+1=x1yn+y1xn,x_{n+1} = x_1 x_n + D y_1 y_n, \qquad y_{n+1} = x_1 y_n + y_1 x_n,

с начальным условием (x1,y1)(x_1, y_1) на первом шаге. Удобно записывать это через алгебраическое число xn+ynDx_n + y_n \sqrt{D}: оказывается, что

xn+ynD=(x1+y1D) n.x_n + y_n \sqrt{D} = (x_1 + y_1 \sqrt{D})^{\,n}.

То есть каждое следующее решение получается умножением на одну и ту же «фундаментальную единицу» λ=x1+y1D\lambda = x_1 + y_1 \sqrt{D}. Например, для D=2D = 2 фундаментальное решение (3,2)(3, 2) даёт λ=3+22≈5,83\lambda = 3 + 2\sqrt{2} \approx 5{,}83, а последовательность решений выглядит так: (3,2)(3, 2), (17,12)(17, 12), (99,70)(99, 70), (577,408)(577, 408), (3363,2378)(3363, 2378) - каждая следующая пара примерно в 5,83 раза больше предыдущей.

Геометрия: гипербола и взрывной рост решений

Уравнение x2−Dy2=1x^2 - D y^2 = 1 на плоскости (x,y)(x, y) задаёт гиперболу с двумя ветвями; интересующая нас правая ветвь проходит через точку (1,0)(1, 0) и уходит вверх и вправо при y>0y > 0. Целочисленные решения - это узлы решётки Z2\mathbb{Z}^2, которые лежат ровно на этой кривой. Первое такое пересечение после тривиального (1,0)(1,0) и есть фундаментальное решение; все следующие лежат на той же ветви значительно дальше.

Логарифмический график роста решений уравнения Пелля для D=2: столбики xₙ и yₙ растут геометрически с шагом, отмеченным фигурной скобкой между n=1 и n=2 - это множитель фундаментальной единицы 3+2√2
Логарифмический график роста решений уравнения Пелля для D=2: столбики xₙ и yₙ растут геометрически с шагом, отмеченным фигурной скобкой между n=1 и n=2 - это множитель фундаментальной единицы 3+2√2

Именно поэтому решения растут так стремительно: на линейной шкале уже третье-четвёртое решение делает график бесполезным, а на логарифмической шкале рост выглядит как равномерная лестница - каждая ступенька соответствует умножению на λ\lambda. Это прямое следствие того, что λ>1\lambda > 1 - фундаментальная единица кольца Z[D]\mathbb{Z}[\sqrt{D}], и возведение её в степень nn геометрически растягивает решение вдоль ветви гиперболы.

Когда разрешимо уравнение x² - Dy² = -1

Смежное уравнение x2−Dy2=−1x^2 - D y^2 = -1 разрешимо в целых числах далеко не для всех DD: необходимое и достаточное условие (в терминах цепной дроби) - длина периода разложения D\sqrt{D} должна быть нечётной. Например, для D=2D = 2 период равен [1;2,2,2,…][1; 2, 2, 2, \ldots] длины 1 (нечётный), и уравнение x2−2y2=−1x^2 - 2y^2 = -1 имеет решение (1,1)(1, 1): действительно, 1−2=−11 - 2 = -1. Возведя соответствующую единицу в квадрат, (1+2)2=3+22(1 + \sqrt{2})^2 = 3 + 2\sqrt{2}, снова получаем фундаментальное решение (3,2)(3, 2) уравнения со знаком плюс.

А вот для D=3D = 3 период равен [1;1,2,1,2,…][1; 1, 2, 1, 2, \ldots] длины 2 (чётный), и уравнение x2−3y2=−1x^2 - 3y^2 = -1 решений не имеет вовсе - сколько бы целых x,yx, y ни перебирали, левая часть никогда не станет −1-1. Проверить это перебором несложно: x2−3y2x^2 - 3y^2 при малых значениях принимает значения −2,1,−3,6,…-2, 1, -3, 6, \ldots, но никогда −1-1.

Пример решения типовой задачи

Найдём фундаментальное решение для D=7D = 7. Строим цепную дробь по алгоритму: a0=⌊7⌋=2a_0 = \lfloor\sqrt{7}\rfloor = 2, дальше последовательно получаем a1=1a_1 = 1, a2=1a_2 = 1, a3=1a_3 = 1, a4=4=2a0a_4 = 4 = 2a_0 - период [1,1,1,4][1, 1, 1, 4] длины 4 (чётный). Строим подходящие дроби по рекурренте hn=anhn−1+hn−2h_n = a_n h_{n-1} + h_{n-2}:

h0=2, k0=1(2/1),h1=3, k1=1(3/1),h2=5, k2=2(5/2),h3=8, k3=3(8/3).\begin{aligned} h_0 &= 2,\ k_0 = 1 \quad (2/1),\\ h_1 &= 3,\ k_1 = 1 \quad (3/1),\\ h_2 &= 5,\ k_2 = 2 \quad (5/2),\\ h_3 &= 8,\ k_3 = 3 \quad (8/3). \end{aligned}

Период чётной длины 4, поэтому фундаментальное решение - это как раз пара с индексом l−1=3l - 1 = 3: (x1,y1)=(8,3)(x_1, y_1) = (8, 3). Проверяем: 82−7⋅32=64−63=18^2 - 7 \cdot 3^2 = 64 - 63 = 1 - верно. Следующее решение находим по рекурренте:

x2=8⋅8+7⋅3⋅3=64+63=127,y2=8⋅3+3⋅8=24+24=48.x_2 = 8 \cdot 8 + 7 \cdot 3 \cdot 3 = 64 + 63 = 127, \qquad y_2 = 8 \cdot 3 + 3 \cdot 8 = 24 + 24 = 48.

Проверка: 1272−7⋅482=16129−16128=1127^2 - 7 \cdot 48^2 = 16129 - 16128 = 1. Оба решения можно свериться прямо в калькуляторе выше, выбрав D=7D = 7.

Где уравнение Пелля встречается на практике

Помимо чистой теории чисел, уравнение Пелля даёт наилучшие рациональные приближения иррационального D\sqrt{D}: дроби hn/knh_n / k_n, из которых берётся фундаментальное решение, приближают корень с ошибкой порядка 1/kn21/k_n^2 - лучше, чем почти любая другая дробь с тем же знаменателем. В алгебраической теории чисел решения уравнения Пелля - это в точности единицы кольца целых чисел Z[D]\mathbb{Z}[\sqrt{D}], то есть элементы с обратным того же вида; это делает уравнение Пелля частным случаем более общей задачи об обратимых элементах числовых полей. Есть у задачи и неожиданная связь с вычислительной сложностью: классические алгоритмы поиска фундаментального решения работают экспоненциально долго от числа цифр ответа (само решение для некоторых DD может содержать сотни знаков, как в знаменитой задаче Архимеда о быках), тогда как квантовый алгоритм Халлгрена решает уравнение Пелля за полиномиальное время - это одна из причин, почему задачу изучают и в контексте криптографии.

Частые ошибки

  • Перебор вместо цепной дроби. Для больших DD прямой перебор y=1,2,3,…y = 1, 2, 3, \ldots в поиске целого xx работает крайне медленно - фундаментальное решение может быть огромным даже для небольшого DD. Правильный путь - алгоритм цепной дроби.
  • Путаница чётности периода. Если период нечётный, найденная подходящая дробь (hl−1,kl−1)(h_{l-1}, k_{l-1}) решает уравнение x2−Dy2=−1x^2 - Dy^2 = -1, а не +1+1 - нужно пройти период дважды.
  • Забытое условие «не точный квадрат». Если DD - точный квадрат, уравнение имеет только тривиальные решения (x,±1⋅0)(x, \pm1 \cdot 0), и вся техника цепных дробей неприменима.
  • Неверная рекуррента для следующих решений. Формулу xn+1=x1xn+Dy1ynx_{n+1} = x_1 x_n + D y_1 y_n иногда путают со знаком или коэффициентом при DD - стоит сразу проверять равенство xn+12−Dyn+12=1x_{n+1}^2 - D y_{n+1}^2 = 1.
  • Игнорирование отрицательных и нулевых решений. Уравнение симметрично относительно знаков xx и yy, но содержательными считают только решения в натуральных числах - остальные получаются из них сменой знака.

FAQ

Всегда ли уравнение Пелля имеет решения? Да, если DD - натуральное число и не точный квадрат, уравнение x2−Dy2=1x^2 - Dy^2 = 1 всегда имеет бесконечно много целых решений; это доказывается через теорему Дирихле о приближении и принцип ящиков применительно к цепной дроби D\sqrt{D}.

Как быстро растут решения уравнения Пелля? Геометрически: каждое следующее решение получается из предыдущего умножением на фундаментальную единицу λ=x1+y1D\lambda = x_1 + y_1\sqrt{D}, поэтому уже пятое-шестое решение может быть на порядки больше первого.

Чем уравнение Пелля отличается от обобщённого уравнения Пелля? Классическое уравнение - это x2−Dy2=1x^2 - Dy^2 = 1; обобщённое допускает произвольную правую часть x2−Dy2=Nx^2 - Dy^2 = N и требует более тонкого анализа: решений может не быть вовсе, а если есть, они разбиваются на несколько классов.

Коротко

Уравнение Пелля x2−Dy2=1x^2 - Dy^2 = 1 для целого не-квадратного DD всегда имеет бесконечно много решений, а найти их все можно из одного, фундаментального. Фундаментальное решение (x1,y1)(x_1, y_1) находится через периодическую цепную дробь D\sqrt{D} и подходящие дроби, а все остальные решения получаются рекуррентой xn+1=x1xn+Dy1ynx_{n+1} = x_1 x_n + Dy_1 y_n, yn+1=x1yn+y1xny_{n+1} = x_1 y_n + y_1 x_n, что эквивалентно возведению фундаментальной единицы x1+y1Dx_1 + y_1\sqrt{D} в степень. Уравнение со знаком минус x2−Dy2=−1x^2 - Dy^2 = -1 разрешимо ровно тогда, когда период цепной дроби D\sqrt{D} нечётен.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также

Постоянная Миллса: константа, печатающая простые

Постоянная Миллса: константа, печатающая простые

Постоянная Миллса A такая, что floor(A^3^n) всегда простое. Разбираем теорему Миллса 1947 года, первые миллсовы простые, значение константы и в чём подвох формулы.

19 июня 20267 минут
Числа Серпинского: что это и накрывающий набор

Числа Серпинского: что это и накрывающий набор

Числа Серпинского простыми словами: что такое число Серпинского, почему 78557 наименьшее, как накрывающий набор простых делает k умножить 2 в степени n плюс 1 составным при любом n.

11 июня 20268 минут
Гипотеза ABC: что такое rad и качество тройки

Гипотеза ABC: что такое rad и качество тройки

Гипотеза ABC простыми словами: формула rad(n), показатель качества q = log(c)/log(rad(abc)), примеры хороших ABC-троек и их связь с теоремой Ферма и IUT Мотидзуки.

11 июня 20268 минут
Общительные числа: что это и как найти цикл s(n)

Общительные числа: что это и как найти цикл s(n)

Общительные числа простыми словами: что такое цикл суммы делителей s(n), чем они отличаются от совершенных и дружественных, как найти цикл и где ошибаются студенты.

11 июня 20268 минут
Последовательность Туэ-Морса: определение и свойства

Последовательность Туэ-Морса: определение и свойства

Последовательность Туэ-Морса: определение через двоичную запись и через подстановку, формула для t(n), первые члены, свойства непериодичности и кубсвободности, применение в справедливом дележе.

11 июня 20267 минут
Квадратичный закон взаимности: золотая теорема Гаусса

Квадратичный закон взаимности: золотая теорема Гаусса

Квадратичный закон взаимности Гаусса для символов Лежандра: точная формулировка, два дополнения, восемь доказательств, обобщения Якоби, Эйзенштейна и Артина, алгоритм вычисления.

7 марта 20268 минут