2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Как решить Диафантово уравнение 3 переменых в целых числах?
Сообщение01.04.2024, 13:06 


15/02/19
9
$x^2+xy+y^2=z^2 (1)$

Я пробовал перебором в программе, проверяя являеться ли дискриманант $D=4z^2-3y^2 (2)$ квадратом целого числа.

код: [ скачать ] [ спрятать ]
Используется синтаксис Python
def Solution():
    A=[]
    nMaximum=100
    for x in range(1,nMaximum):
        dTemp1a=3*x**2
        for z in range(x+1, nMaximum):
            dDiscriminant=4*z**2-dTemp1a
            dTemp5=int(dDiscriminant**0.5)
            if dTemp5**2!=dDiscriminant:
                continue
            dTemp6=(-1*x+dTemp5)/2
            y=int(dTemp6)
            if not CheckIfExists(A, z):
                A.append([x,y,z])
    return A

def CheckIfExists(arr, z):
    bResult=False
    for s in arr:
        if s[2]==z:
            bResult=True
            break
    return bResult

a = Solution()
print(len(a))
print(a)

# [3, 5, 7], [5, 16, 19], [6, 10, 14], [7, 8, 13] ...
 


Можно ли уравнение (1) решить подобно решению Pell equation, см. формулы (35) и (36)
http://mathworld.wolfram.com/PellEquation.html ?

 Профиль  
                  
 
 Re: Как решить Диафантово уравнение 3 переменых в целых числах?
Сообщение01.04.2024, 14:19 
Заслуженный участник


07/08/23
1055
У вас ведь однородное уравнение. На него надо смотреть как на уравнение гладкой коники в проективной плоскости. То есть это задача об отыскании рациональных точек на гладкой кривой второго порядка.

Возьмём на кривой рациональную точку, скажем, $P = [0 : 1 : 1]$. Тогда можно построить биекцию между кривой и любой проективной прямой $l$, не проходящей через $P$, по формуле $Q \mapsto PQ \cap l$. Эта биекция переводит рациональные точки в рациональные и наоборот. Таким образом можно получить параметризации рациональных точек на кривой.

Сама точка $P$ переходит в пересечение своей касательной с $l$.

-- 01.04.2024, 14:20 --

То есть ваше уравнение проще, чем уравнение Петля, но чтобы получить параметризации именно целых решений, в конце придётся повозиться с делимостью. Это как описание всех целых пифагоровых троек.

 Профиль  
                  
 
 Re: Как решить Диафантово уравнение 3 переменых в целых числах?
Сообщение01.04.2024, 15:12 
Заслуженный участник
Аватара пользователя


21/11/12
1968
Санкт-Петербург
sh17
Два тождества Вам в помощь. $$x^2+xy+y^2=\dfrac{(x-y)^2+3(x+y)^2}{4} \ \qquar (2)$$
$$(a^2+3b^2)^2=(a^2-3b^2)^2+3(2ab)^2\ \ \ \qquar (3)$$ Последнее выражает примитивное решение в стиле Пифагоровых троек.

 Профиль  
                  
 
 Re: Как решить Диафантово уравнение 3 переменых в целых числах?
Сообщение01.04.2024, 19:05 


23/02/12
3338
С помощью замены переменных данное уравнение сводится к уравнению Пифагора. Целые его решения можно посмотреть здесь https://studfile.net/preview/5749780/page:3/
В данном случае замену переменных можно провести по формуле (1).

 Профиль  
                  
 
 Re: Как решить Диафантово уравнение 3 переменых в целых числах?
Сообщение01.04.2024, 20:46 


23/02/12
3338
vicvolf в сообщении #1635040 писал(а):
В данном случае замену переменных можно провести по формуле (1).
Извините, по формуле (2).

 Профиль  
                  
 
 Re: Как решить Диафантово уравнение 3 переменых в целых числах?
Сообщение02.04.2024, 14:03 


15/02/19
9
Спасибо всем !
Буду разбираться с Пифагоровыми тройками, но мне кажеться, что тоже надо будет перебором в программе их отыскивать.

 Профиль  
                  
 
 Re: Как решить Диафантово уравнение 3 переменых в целых числах?
Сообщение02.04.2024, 17:21 
Заслуженный участник
Аватара пользователя


21/11/12
1968
Санкт-Петербург
Взявшись за диофантовы уравнения, с Пифагоровыми тройками стоит разобраться вначале. Решение прячу в оффтопик, мало ли захочется подумать.

(Решение)

sh17 в сообщении #1635007 писал(а):
$x^2+xy+y^2=z^2 (1)$

$x=p(p-2q)r,$

$y=q(2p-q)r,$

$z=(p^2-pq+q^2)r,$

где $r$ — рациональный коэффициент (целый или дробный со знаменателем $=3$) такой, что $x,y,z$ целые; $p,q$ взаимно просты.
А если перебором, засылайте сразу КАК СТАТЬ ЗВЕЗДОЙ? Чего уж там.

 Профиль  
                  
 
 Re: Как решить Диафантово уравнение 3 переменых в целых числах?
Сообщение03.04.2024, 10:23 


26/08/11
2097
Все зависит от того, какая конкретная задача решается. Если нужно найти все решения в некотором интервале для одной из переменных, да еще и отсортированных, то класическая параметризация не сильно помогает, так что если надо решить для $0<x<y,\; z\le 100$ то програмка, не заморачиваясь оптимизацией - самое то. Но, sh17, у меня вопрос: что за проверка CheckIfExists и почему только для $z$?

Hint

 Профиль  
                  
 
 Re: Как решить Диафантово уравнение 3 переменых в целых числах?
Сообщение03.04.2024, 11:33 


15/02/19
9
Shadow, решение уравнения (1) это часть другой задачи, в которой $z< 30 \cdot 10^6$.
CheckIfExists... Я нашёл ошибку в своём коде. Спасибо Shadow !
код: [ скачать ] [ спрятать ]
Используется синтаксис Python
def Solution():
    A=[]
    nMaximum=100
    for x in range(1,nMaximum):
        dTemp1a=3*x**2
        for z in range(x+1, nMaximum):
            dDiscriminant=4*z**2-dTemp1a
            dTemp5=int(dDiscriminant**0.5)
            if dTemp5**2!=dDiscriminant:
                continue
            dTemp6=(-1*x+dTemp5)/2
            y=int(dTemp6)
            s=[x,y,z]
            s=sorted(s)
            if not s in A:
                A.append(s)
    return A

a = Solution()
print(len(a))
print(a)

# 42
# [[3, 5, 7], [5, 16, 19], [6, 10, 14], [7, 8, 13], [7, 33, 37],
#  [9, 15, 21], [9, 56, 61], [10, 32, 38], [11, 24, 31], [11, 85, 91], [12, 20, 28], [13, 35, 43], [14, 16, 26], [14, 66, 74], [15, 25, 35],
#  [15, 48, 57], [16, 39, 49], [17, 63, 73], [18, 30, 42], [19, 80, 91], [20, 64, 76], [21, 24, 39], [21, 35, 49], [22, 48, 62], [24, 40, 56],
#  [25, 80, 95], [26, 70, 86], [27, 45, 63], [28, 32, 52], [30, 50, 70], [32, 45, 67], [32, 78, 98], [33, 55, 77], [33, 72, 93], [35, 40, 65],
#  [36, 60, 84], [39, 65, 91], [40, 51, 79], [42, 48, 78], [42, 70, 98], [49, 56, 91], [55, 57, 97]]
 

Тогда для примера $z=91$ есть 4 решения, как в Hint
[11, 85, 91]
[19, 80, 91]
[39, 65, 91]
[49, 56, 91]

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group