2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему
 
 Любителям поэкспериментировать
Сообщение21.05.2023, 12:30 
Аватара пользователя


22/11/13
02/04/25
549
Приветствую всех любителей поэкспериментировать! Сегодня я решил представить вам трансформацию, с помощью которой можно получать кучу разнородных последовательностей из OEIS практически не прилагая при этом никаких усилий. Трансформация следующая: пусть
$$b(2^m(2n+1))=\sum\limits_{k=0}^{m}b(2^kn), b(0)=1$$
пусть также
$$s(n)=\sum\limits_{k=0}^{2^n-1}b(k)$$
Вот и все! Каркас готов. Следует отметить, что разложение числа на множители $2^m$ и $2n+1$ единственно (что по сути и так очевидно).

Что мы только что получили из ничего? Посмотрите на значения $s(n)$. Да это же числа Каталана (A000108)! Теперь добавим пару функций для экспериментального творчества:
$$b_1(2^m(2n+1))=\sum\limits_{k=0}^{m}f(m-k)b_1(2^kn), b_1(0)=1$$$$b_2(2^m(2n+1))=\sum\limits_{k=0}^{m}g(m,k)b_2(2^kn), b_2(0)=1$$
Все это опять-таки суммируем через $s(n)$. Что же мы будем иметь? Ну, например для $f(n)$:


Кроме того, для $g(n,m)$ будем иметь


Несмотря на то, что
$$\binom{n-1}{m}=\binom{n-1}{n-m-1}$$
значения почему-то получаются разные. Поэтому при проверке $\binom{n-q}{m}$ желательно отдельно прогонять $\binom{n-q}{n-m-q}$.

Что я предлагаю вам? Присваивайте все, что душе угодно функциям $f(n)$ и $g(n,m)$ и проверяйте есть ли результат в OEIS (ну и делитесь им в этой теме). Вот простенькая программка на PARI/GP:
Код:
f(n)=n
g(n,m)=binomial(n,m)
s1(n)=my(v, v1); v=vector(2^n,i,0); v[1]=1; for(i=1,#v-1,my(A=valuation(i,2), B=i\2^(A+1)); v[i+1]=sum(j=0,A,f(A-j)*v[2^j*B+1])); v1=[1]; for(i=1,n,v1=concat(v1,sum(j=0,2^i-1,v[j+1]))); v1
s2(n)=my(v, v1); v=vector(2^n,i,0); v[1]=1; for(i=1,#v-1,my(A=valuation(i,2), B=i\2^(A+1)); v[i+1]=sum(j=0,A,g(A,j)*v[2^j*B+1])); v1=[1]; for(i=1,n,v1=concat(v1,sum(j=0,2^i-1,v[j+1]))); v1
x=s1(15)
print(x)

В зависимости от используемой функции оставляйте x=s1(15) для $f(n)$ и меняйте на x=s2(15) для $g(n,m)$. Если вы еще никогда не работали с PARI/GP, то никогда не поздно этому научиться (хотя учиться особо не придется: даже без знания специальных функций для некоторых популярных чисел последние всегда можно будет посчитать написав отдельную функцию). Я не спец по PARI/GP, но можете задавать вопросы, на самые простые вероятно отвечу.

На этом все отнюдь не заканчивается, а только начинается. В следующей теме я расскажу как можно применить информацию о наличии соответствия $s(n)$ одной из имеющихся в OEIS последовательностей если у последней имеется относительно простая комбинаторная интерпретация.

Ну и напоследок небольшой челлендж. Попробуйте найти функцию $g(n,m)$, такую, что
$$s_2(n)=\sum\limits_{k=0}^{2^n-1}b_2(k)=\sum\limits_{k=0}^{n}g(n,k)$$

 Профиль  
                  
 
 Re: Любителям поэкспериментировать
Сообщение21.05.2023, 17:58 
Аватара пользователя


22/11/13
02/04/25
549
Уверен, последовательностей найдется куча. Стоит только начать. Вот еще несколько по горячим следам для $g(n,m)$:


 Профиль  
                  
 
 Re: Любителям поэкспериментировать
Сообщение22.05.2023, 14:49 
Аватара пользователя


22/11/13
02/04/25
549
Каким-то образом я пришел к идее обратной трансформации: если известно $s(n)$, то как вычислить $f(n)$? Здесь мне пригодились дополнительные значения
$$s(n,m)=\sum\limits_{k=0}^{2^n-1}b(2^mk)$$
Опытным путем было установлено, что
$$s(n,m) = s(n+1,m-1) - \sum\limits_{k=0}^{m-1}f(m-k-1)s(n,k)$$
Т.е. если мы знаем $s(n,0)$, то можем найти все значения $s(n,m)$ для любого $m>0$. Важно: работает только для возрастающих последовательностей $s(n,0)$ у которых $s(0,0)=1$. Исходя из этих условий мы без проблем можем задавать $s(0,m)=1$.

По сути для вычисления $f(n)$ нам достаточно знать $s(1,n)$ и все предыдущие значения $f(n)$:
$$f(n)=s(1,n)-1-\sum\limits_{k=0}^{n-1}f(k)$$

Отсюда мы также учимся вычислять $s(n,0)$ без суммирования $b(k)$:
$$s(n,m)=s(n-1,m+1)+\sum\limits_{k=0}^{m}f(m-k)s(n-1,k), s(0,m)=1$$

Если сохранять значения в массивы, то скорость счета увеличивается в разы. Данные результаты неоптимальны при вычислении отдельных значений, но для получения списка $n$ первых значений $f(n)$ или $s(n,0)$ они крайне полезны.

Теперь вы можете получать больше значений $s_1(n)$:
Код:
f(n)=n
s1(n)=my(v, v1); v=vector(n+1,i,1); v1=v; v2=vector(n+1,i,0); v2[1]=1; for(i=1,n,for(j=1,n-i+1,v1[j]=v[j+1]+sum(k=1,j,f(j-k)*v[k])); v=v1; v2[i+1]=v[1];); v2
w=s1(50)
print(w)

Кроме того, вы можете выбрать любую последовательность в энциклопедии (обязательно возрастающую и с первым членом равным единице!), скопировать несколько первых членов и вставить в следующую программку:
Код:
w=[1, 2, 3, 5, 7, 11, 15, 22, 30, 42, 56, 77, 101, 135, 176, 231, 297, 385, 490, 627, 792, 1002, 1255, 1575, 1958, 2436, 3010, 3718, 4565, 5604, 6842, 8349, 10143, 12310, 14883, 17977, 21637, 26015, 31185, 37338, 44583, 53174, 63261, 75175, 89134, 105558, 124754, 147273, 173525]
f(n)=my(A=w, B=[A,[1]], v); v=vector(n+1,i,0); v[1]=A[2]-A[1]; for(i=2,n+1,B=vector(i+1,j,if(j==1,B[1],vector(i-j+2,k,if(j==i+1,1,if(k<i-j+2,B[j][k]))))); for(j=2,i,B[j][i-j+2]=B[j-1][i-j+3]-sum(k=1,j-1,v[j-k]*B[k][i-j+2])); v[i]=B[i][2]-sum(j=1,i-1,v[j])-1); v
w1=f(#w-2)
print(w1)

Она выполнит обратную трансформацию, т.е. вернет вам $f(n)$, наличие которой вы можете проверить в энциклопедии. Если результат окажется положительным, помещайте исходную и результирующую последовательность в этой теме.

В приведенном выше примере мы берем за $s(n,0)$ последовательность A000041 и получаем гипотезу, что $f(n)$ это A176950, члены которой умножены на $(-1)^n$.

Ну а я пока продолжу работу над обратной трансформацией для $g(n,m)$. Жду ваших постов!

 Профиль  
                  
 
 Re: Любителям поэкспериментировать
Сообщение22.05.2023, 15:08 


05/09/16
12155
У меня такое чувство, что вы нашли золотую жилу типа такой: берем формулу арифметической прогрессии например $a_i=k+ni$ и для разных комбинаци $k$ и $n$ получаем бесконечное количество последовательностей :mrgreen: Или я неправильно понял?

 Профиль  
                  
 
 Re: Любителям поэкспериментировать
Сообщение22.05.2023, 15:16 
Аватара пользователя


22/11/13
02/04/25
549
wrest в сообщении #1594760 писал(а):
У меня такое чувство, что вы нашли золотую жилу типа такой: берем формулу арифметической прогрессии например $a_i=k+ni$ и для разных комбинаци $k$ и $n$ получаем бесконечное количество последовательностей :mrgreen: Или я неправильно понял?

Ради интереса можете понаводить мышкой на номера последовательностей из энциклопедии и примерно оценить насколько интересна приведенная мною трансформация. Лично мне она кажется достаточно интересной. Может быть кто-нибудь даже возьмется ее изучать и тогда экспериментальная математика превратится в настоящую.

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

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



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

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


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

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