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
1196
У вас ведь однородное уравнение. На него надо смотреть как на уравнение гладкой коники в проективной плоскости. То есть это задача об отыскании рациональных точек на гладкой кривой второго порядка.

Возьмём на кривой рациональную точку, скажем, $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
3373
С помощью замены переменных данное уравнение сводится к уравнению Пифагора. Целые его решения можно посмотреть здесь https://studfile.net/preview/5749780/page:3/
В данном случае замену переменных можно провести по формуле (1).

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


23/02/12
3373
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
2111
Все зависит от того, какая конкретная задача решается. Если нужно найти все решения в некотором интервале для одной из переменных, да еще и отсортированных, то класическая параметризация не сильно помогает, так что если надо решить для $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 ] 

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



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

Сейчас этот форум просматривают: add314


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

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