2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Квадратный трехчлен
Сообщение05.11.2024, 15:32 


16/08/19
120
Дано уравнение вида
$ax^2 + by^2 + cz^2 = dxyz$
Здесь a,b,c,d - натуральные коэффициенты
x, y, z - переменные, также в натуральных числах

Вопрос такой:
Существует ли формулы для нахождения корней таких уравнений ?

Я попробовал методом перебора найти корни уравнения
$x^2 + y^2 + z^2 = 3xyz$
Перебор здесь например в диапазоне до миллиона уже не работает

 Профиль  
                  
 
 Re: Квадратный трехчлен
Сообщение05.11.2024, 17:10 
Заслуженный участник


07/08/23
1084
Решения вашего второго уравнения - это тройки Маркова. У них есть какие-то обобщения, но я сомневаюсь, что ваше первое уравнение в общем виде так же хорошо исследовано.

 Профиль  
                  
 
 Re: Квадратный трехчлен
Сообщение05.11.2024, 19:03 


16/08/19
120
dgwuqtj в сообщении #1660723 писал(а):
Решения вашего второго уравнения - это тройки Маркова. У них есть какие-то обобщения, но я сомневаюсь, что ваше первое уравнение в общем виде так же хорошо исследовано.


И вроде для второго уравнения, для d > 3, решений нет

Вот тут есть рекурсивный алгоритм, как утверждает его автор, получения всех троек для второго уравнения:
https://habr.com/ru/companies/itglobalc ... es/767612/

 Профиль  
                  
 
 Re: Квадратный трехчлен
Сообщение06.11.2024, 07:56 


16/08/05
1153
Пусть $p,q,r$ натуральные, тогда исходное уравнение можно пробовать решать так:

$$(x,y,z)=(b p^2 + c q^2,pr,qr)$$

при условии, что существуют решения уравнения $a b p^2 + a c q^2 + r^2 = d p q r^2$, которое можно переиначить как Пелль/Туе

$$(2 a b p - d q r^2)^2 - (d^2 r^4 - 4 a^2 b c) q^2 = - 4 a b r^2$$

Задавая фиксированный $r$ ищем пару $p,q$.

Например для (a,b,c,d)=(3,5,7,11) получаются

(p,q,r) = (691142822,59515726,4)
(x,y,z) = (2413186853499767952,2764571288,238062904)

(p,q,r) = (68776658968064908708178,5922499171001726539894,4)
(x,y,z) = (23896676069061129132706411260961842722835117072,275106635872259634832712,23689996684006906159576)

(p,q,r) = (68645,3760,5)
(x,y,z) = (23659643325,343225,18800)

(p,q,r) = (475,8,9)
(x,y,z) = (1128573,4275,72)

 Профиль  
                  
 
 Re: Квадратный трехчлен
Сообщение06.11.2024, 14:13 


16/08/19
120
Я написал тест, который вычисляет первые 20 уровней дерева марковских троек, всего чуть более 2 миллионов троек
Питон у меня при этом отожрал 8 гигов памяти и полторы минуты времени
Там можно еще пооптимизировать рекурсию:

(Оффтоп)

Код:
from datetime import datetime, timedelta

def find(t):
    t1 = [0,0,0]
    t2 = [0,0,0]
    t1[0] = t[0]
    t1[1] = t[2]
    t1[2] = t[1]
    t2[0] = t[2]
    t2[1] = t[1]
    t2[2] = t[0]
    t12 = 3*t1[0]*t1[1]-t1[2]
    t1[2]=t12
    t1.sort()
    t22 = 3*t2[0]*t2[1]-t2[2]
    t2[2]=t22
    t2.sort()
    triples = []
    triples.append(t1)
    triples.append(t2)
    return triples

start = datetime.now()


count = 0
count2 = 0
t = [1,2,5]
triples = find(t)
_triples2 = []
while True:
    for t in triples:
        _triples = find(t)
        #sum1 = t[0]**2 +  t[1]**2 +  t[2]**2
        #sum2 = 3*t[0]*t[1]*t[2]
        #if sum1 == sum2:
            #print('%s² + %s² + %s²' % (t[0],t[1],t[2]))
        count2 += 1
        for _t in _triples:
            _triples2.append(_t)
    triples = [*_triples2]
    _triples2 = []
    count += 1   
    print(count)   
    if count >= 20:
        break

print(count2)
end  = datetime.now()
diff = (end - start).seconds
print(diff)


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

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



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

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


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

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