2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
 
 Re: Не более пяти решений
Сообщение14.04.2020, 22:43 
Заслуженный участник


20/08/14
11867
Россия, Москва
nnosipov
Досчиталось до 2млрд. Файл прикрепляю (см. UPD). Всего найдено 330 пятёрок. Шестёрки и семёрка все были здесь выше, новых нет.
UPD. Обновлено.

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение14.04.2020, 22:55 
Заслуженный участник


20/12/10
9110
Dmitriy40
Спасибо. Интересный эксперимент, подобных результатов еще не было.

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение14.04.2020, 23:13 


21/05/16
4292
Аделаида
Хм, очень неравномерно оно идет. До миллиарда 282 пятерки, 4 шестерки, 1 семерка, а от миллиарда до двух - 48 пятерок, 1 шестерка, 0 семерок.

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение14.04.2020, 23:58 
Заслуженный участник


20/08/14
11867
Россия, Москва
Количество решений длиной 5 вполне хорошо ложится на кривую $N_5(H)=2.78788974 H^{0.2228374}$, средняя ошибка $4.2\%$.
Запустил в 4 потока, без переделок, надеюсь завтра к вечеру досчитает до 10млрд.

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение15.04.2020, 08:24 
Заслуженный участник


20/12/10
9110
Dmitriy40 в сообщении #1454640 писал(а):
Запустил в 4 потока, без переделок, надеюсь завтра к вечеру досчитает до 10млрд.
В работах по классическим (с двумя неизвестными) диофантовым уравнениям мне встречались компьютерные эксперименты, где решались сто тысяч или максимум миллион уравнений. Так что своеобразный рекорд уже будет поставлен.

Вообще, вот такие 1-параметрические семейства диофантовых уравнений, как в этой теме, иногда удается полностью исследовать. Вот реальный пример: topic134089.html Родился он абсолютно случайно: мне захотелось опробовать один алгоритм на быстродействие, и я от балды написал этот тестовый пример. Мой студент запрограммировал алгоритм и начал считать. Через некоторое время он мне сообщил, что, наверное, в программе ошибка, поскольку она перестала выдавать нетривиальные решения. К счастью, удалось доказать, что все в порядке, просто уравнение таким случайно оказалось. Вот это уравнение: $$xy^2+(Hx^2+1)y+x^4+1=0.$$Но стоит здесь чуть-чуть изменить левую часть и написать, например, так $$xy^2+(Hx+1)y+x^4+1=0$$как все летит в тартарары и опять наступает полный хаос.

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение15.04.2020, 15:44 
Заслуженный участник


20/08/14
11867
Россия, Москва

(Мой интерес)

Надо наверное пояснить, мне интересна не математическая сторона задачи, а программисткая: как реализовать решение уравнений, как корни быстро вычислять, как воспользоваться векторными возможностями, и как всё это уложить в процессорные команды (на языках высокого уровня не интересно, там всё относительно просто и давно известно).
Математику же я понимаю откровенно плохо, на уровне средней школы, здесь её хватает лишь чтобы решать уравнение относительно разных переменных и подстановок и пытаться получить вменяемые ограничения на перебор. Что Вы уже за меня сделали. Общие методы решения диофантовых уравнений за гранью понимания. И как-то не особо тянет разбираться.
Я тут думаю как бы прикрутить вычисление квадратного корня из плавающего числа, ведь это можно делать очень быстро (500млн/с для double и 1000млн/с для single, только корня, сопутствующие операции замедлят вычисления раза в 3), но вот точность аргумента лишь 53/23 бита и в этом засада, получаются лишь 27/12 старших битов результата из 31, а запустить метод Герона мешает отсутствие векторных команд деления целых чисел. Вот и думаю как досчитывать младшие биты, снова поразрядным взвешиванием (одновременно 8 корней) или ещё как ... И стоит ли тогда вообще заморачиваться аппаратным корнем или делать поразрядное взвешивание с самого начала, всех 32 битов результата. Или вычислять в плавающей точке младшие биты через производную и потом комбинировать два числа в один результат (и будет ли здесь нужная точность) ... Или в ряд разложить (если это отличается от предыдущего пункта) ... И во что всё это выльется по скорости. Интересно, и где-нибудь потом ещё пригодится, но задачка на хорошо подумать, несколько дней.

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение15.04.2020, 16:55 
Заслуженный участник


20/12/10
9110

(Оффтоп)

Если считать те же 10 миллиардов, то можно попробовать аналитически поточнее оценить дискриминант и надеяться, что 53 бит все же хватит. Грубая оценка: $2^{53} \approx 10^{16} \approx H^{3/2}$ при $H=10^{10}$.

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение15.04.2020, 17:59 
Заслуженный участник


20/08/14
11867
Россия, Москва
nnosipov
Не, 10млрд не интересно, они и так за пару суток точно посчитаются в 4-х доступных потоках (сейчас завершено на 71%, досчитается часам к двум ночи мск). Программу писать дольше. Надеюсь Вам не нужно много раз это дело пересчитывать. ;-)

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение15.04.2020, 18:24 
Заслуженный участник


20/12/10
9110
Dmitriy40 в сообщении #1454830 писал(а):
Надеюсь Вам не нужно много раз это дело пересчитывать.
Нет, это я просто так заметил.

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение15.04.2020, 20:29 


16/08/05
1153
nnosipov в сообщении #1454667 писал(а):
$$xy^2+(Hx+1)y+x^4+1=0$$

(Оффтоп)

Это уравнение можно переписать в гипереллиптическую форму

$((2 y + H) x + 1)^2 = 1 + 2 (H - 2) x + H^2 x^2 - 4 x^5$

и получить решения в пределах некоторой "высоты" при помощи hyperellratpoints в pari/gp.

Решения для H=-10000..10000:
H = -9844 [[0, -1], [206, 8857]]
H = -9260 [[0, -1], [-21, -1]]
H = -8866 [[0, -1], [43, 8857]]
H = -8848 [[0, -1], [-43, 8857]]
H = -7999 [[0, -1], [-20, -1]]
H = -7870 [[0, -1], [-206, 8857]]
H = -6858 [[0, -1], [-19, -1]]
H = -6473 [[0, -1], [-216, -1297]]
H = -5831 [[0, -1], [-18, -1]]
H = -4912 [[0, -1], [-17, -1]]
H = -4095 [[0, -1], [-16, -1]]
H = -3374 [[0, -1], [-15, -1]]
H = -2743 [[0, -1], [-14, -1]]
H = -2494 [[0, -1], [-125, -626]]
H = -2196 [[0, -1], [-13, -1]]
H = -1727 [[0, -1], [-12, -1]]
H = -1330 [[0, -1], [-11, -1]]
H = -1258 [[0, -1], [67, 937]]
H = -999 [[0, -1], [-10, -1]]
H = -940 [[0, -1], [14, 937]]
H = -934 [[0, -1], [-14, 937]]
H = -763 [[0, -1], [-64, -257]]
H = -728 [[0, -1], [-9, -1]]
H = -616 [[0, -1], [-67, 937]]
H = -592 [[0, -1], [43, 386]]
H = -511 [[0, -1], [-8, -1]]
H = -388 [[0, -1], [9, 386]]
H = -384 [[0, -1], [-9, 386]]
H = -342 [[0, -1], [-7, -1]]
H = -215 [[0, -1], [-6, -1]]
H = -180 [[0, -1], [-43, 386]]
H = -158 [[0, -1], [-27, -82]]
H = -124 [[0, -1], [-5, -1]]
H = -108 [[0, -1], [14, 41]]
H = -63 [[0, -1], [-4, -1]]
H = -60 [[0, -1], [9, 17]]
H = -42 [[0, -1], [3, 41]]
H = -40 [[0, -1], [-3, 41]]
H = -26 [[0, -1], [-3, -1]]
H = -18 [[0, -1], [2, 17]]
H = -16 [[0, -1], [-2, 17], [3, 2]]
H = -13 [[0, -1], [-8, -17]]
H = -10 [[0, -1], [2, 1]]
H = -7 [[0, -1], [-2, -1]]
H = -4 [[0, -1], [1, 2], [1, 1]]
H = 0 [[0, -1], [-1, -1], [-1, 2]]
H = 2 [[0, -1], [-1, -2], [-1, 1], [1, -1], [1, -2]]
H = 8 [[0, -1], [-2, 1]]
H = 9 [[0, -1], [2, -1]]
H = 12 [[0, -1], [-3, 2]]
H = 17 [[0, -1], [-2, -17], [2, -17]]
H = 26 [[0, -1], [-14, 41], [-9, 17]]
H = 28 [[0, -1], [3, -1]]
H = 47 [[0, -1], [8, -17]]
H = 65 [[0, -1], [4, -1]]
H = 82 [[0, -1], [-3, -82], [3, -82]]
H = 126 [[0, -1], [5, -1]]
H = 129 [[0, -1], [-30, -241]]
H = 217 [[0, -1], [6, -1]]
H = 239 [[0, -1], [-8, -241]]
H = 243 [[0, -1], [8, -241]]
H = 257 [[0, -1], [-4, -257], [4, -257]]
H = 322 [[0, -1], [27, -82]]
H = 344 [[0, -1], [7, -1]]
H = 353 [[0, -1], [30, -241]]
H = 513 [[0, -1], [8, -1]]
H = 626 [[0, -1], [-5, -626], [5, -626]]
H = 730 [[0, -1], [9, -1]]
H = 1001 [[0, -1], [10, -1]]
H = 1277 [[0, -1], [64, -257]]
H = 1297 [[0, -1], [-6, -1297], [6, -1297]]
H = 1332 [[0, -1], [11, -1]]
H = 1729 [[0, -1], [12, -1]]
H = 2198 [[0, -1], [13, -1]]
H = 2402 [[0, -1], [-7, -2402], [7, -2402]]
H = 2745 [[0, -1], [14, -1]]
H = 2943 [[0, -1], [-112, -3361]]
H = 3353 [[0, -1], [-30, -3361]]
H = 3369 [[0, -1], [30, -3361]]
H = 3376 [[0, -1], [15, -1]]
H = 3746 [[0, -1], [125, -626]]
H = 3779 [[0, -1], [112, -3361]]
H = 4097 [[0, -1], [-8, -4097], [8, -4097], [16, -1]]
H = 4348 [[0, -1], [-240, -6481]]
H = 4914 [[0, -1], [17, -1]]
H = 5833 [[0, -1], [18, -1]]
H = 6478 [[0, -1], [-27, -6481]]
H = 6484 [[0, -1], [27, -6481]]
H = 6562 [[0, -1], [-9, -6562], [9, -6562]]
H = 6860 [[0, -1], [19, -1]]
H = 8001 [[0, -1], [20, -1]]
H = 8614 [[0, -1], [240, -6481]]
H = 9067 [[0, -1], [216, -1297]]
H = 9262 [[0, -1], [21, -1]]
time = 1h, 19min, 7,111 ms.


gp-код:
Код:
hyph()=
{
forstep(H=-10^4, 10^4, 1,
  V= [[0,-1]];
  S= hyperellratpoints(1 + 2*(H - 2)*'x + H^2*'x^2 - 4*'x^5, 10^6);
  for(i=1, #S,
   x= S[i][1];
   if(x&x==floor(x),
    z= S[i][2];
    y= ((z-1)/x-H)/2;
    if(y==floor(y),
     V= concat(V, [[x,y]])
    )
   )
  );
  if(#V>1, print("H = "H"    "V))
)
};

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение15.04.2020, 20:47 
Заслуженный участник


20/12/10
9110
dmd
Это уравнение в некотором смысле решается: можно описать все тройки $(x,y,H)$ целых чисел, ему удовлетворяющих. Но описание не слишком удобное для того, чтобы потом анализировать, какие пары $(x,y)$ бывают при заданном $H$ (в частности, непросто выяснить, сколько таких пар).

За опыты с гиперэллиптическими кривыми спасибо, можно будет заодно проверить, все ли решения на самом деле находит pari/gp (здесь опять тот случай, когда есть элементарный алгоритм решения, который при фиксированном $H$ находит все решения).

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение16.04.2020, 03:56 
Заслуженный участник


20/08/14
11867
Россия, Москва
nnosipov
Досчиталось до 10млрд. Файл в архиве выложил в облако (сюда прикреплять архивы не дают). UPD. Обновлено.
Новых шестёрок и длиннее не найдено.
Замечено что почти все решения имеют в своём составе значения $x=\pm 1$, не имеющие таких $x$ отфильтрованы в отдельный файл. Туда попала одна из пяти известных шестёрок. :-(
Был запущен поиск только таких решений, с $x=\pm 1$ и нечётными $H$, до 1.7трлн (дальше я не уверен в точности вычислений, лень добавлять runtime проверки), всё найденное в отдельном файле. Новых ни шестёрок ни семёрок ни длиннее всё равно не обнаружено (а была надежда, была).
В отдельный файл отфильтрованы решения с $|x|>m=1+\lfloor\sqrt[4]{|H|}\rfloor$ (т.е. найденные лишь циклом по $k$).

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение16.04.2020, 06:51 
Заслуженный участник


20/12/10
9110
Dmitriy40
Большое спасибо за интересный статистический материал! Если соберусь про это где-нибудь написать, обязательно упомяну Ваш вклад. Надо подумать вообще о смысле подобных статистических экспериментов, может быть, они ценны сами по себе.

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение16.04.2020, 07:03 


21/05/16
4292
Аделаида
kotenok gav в сообщении #1454637 писал(а):
Хм, очень неравномерно оно идет. До миллиарда 282 пятерки, 4 шестерки, 1 семерка, а от миллиарда до двух - 48 пятерок, 1 шестерка, 0 семерок.

От двух миллиардов до десяти - 110 пятерок, 0 шестрок, 0 семерок.

 Профиль  
                  
 
 Re: Не более пяти решений
Сообщение16.04.2020, 15:48 
Заслуженный участник


20/08/14
11867
Россия, Москва
Интересны три вопроса:
1. Будут ли ещё встречаться решения без $x=\pm 1$. Последнее было на 344млн из 10млрд, по статистике должны были и ещё появиться, однако нету. Посчитать ещё 10млрд нечётных $H$, что ли ...
Тут ещё странное наблюдение, правда лишь для $|H|>10^7$, насколько оно адекватно далее 10млрд тоже вопрос: три корня из всех имеют одинаковый $y=\lceil\sqrt{|H|}\rceil$, а сумма двух $x$ в них даёт третий $x$. Подставив условие на $y$ в исходное уравнение получим кубическое уравнение по $x$, которое должно иметь ровно три корня, может это можно как-то аналитически использовать для получения таких $H$, позволяющих это ... Например производная должна иметь ровно два корня, т.е. строго положительный дискриминант.

2. Каково распределение по $H$ решений с большими $x$. Точнее какие $H$ для них перебирать. Все при решения $|H|>210$ имеют корни формы $y=\pm 2x \pm 1$, но вот как из этого получить $H$ пока не придумал, квадраты не точные выходят. Похоже точной формулы и нет, проверять надо интервал $x=t-1 \ldots t+1, \; H=-2(t-1)^2 \ldots -2(t+1)^2, \; t \in \mathbb{N}$. Но это условие (на $H$) бессмысленно так как слишком широко и перекрывает вообще все $H$ и можно пользоваться лишь обратным, проверять не все $x$, а лишь $x=\sqrt{|H|/2}-1 \ldots \sqrt{|H|/2}+1$, что уже легче, можно попробовать.
И вопрос бесконечна ли серия таких решений.

3. Ну и конечно почему больше нет решений длиннее 5. Ведь для пятёрок есть минимум одна бесконечная серия.

-- 16.04.2020, 15:50 --

kotenok gav
С довольно большой вероятностью найдены все пятёрки и до 1.7трлн, не думаю что там встретятся пятёрки без корней $x=\pm 1$. Но как это проверить пока думаю (см. выше вопрос 1).

-- 16.04.2020, 15:53 --

nnosipov
ИМХО статистика полезна чтобы посмотреть на поведение решений и попытаться оформить это аналитически, не сама по себе. Не всегда аппроксимацию видно по младшим/первым решениям, даже до десятков и сотен миллионов, вон например первый вопрос.

-- 16.04.2020, 16:18 --

Похоже много решений можно искать решая кубическое по $x$ уравнение при известных $H,y$. Аналитически лень, можно как-то искать корень между двумя экстремумами (нулями производной), потом делить многочлен на найденный корень и решать уже квадратное уравнение. Тут похоже перебора ни по $x$ ни по $y$ вообще не нужно, за исключением решения кубического уравнения, которое решать видимо лучше методом Ньютона или аналогичным или банальным делением отрезка по $x$ пополам.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 117 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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