2014 dxdy logo

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

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




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


16/08/19
124
Дано уравнение вида
$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
1162
Решения вашего второго уравнения - это тройки Маркова. У них есть какие-то обобщения, но я сомневаюсь, что ваше первое уравнение в общем виде так же хорошо исследовано.

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


16/08/19
124
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
124
Я написал тест, который вычисляет первые 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