Сначала старая (ей несколько лет уже)
Сколько в квадрате ребер? 4
Сколько в кубе ребер? 12
Сколько в кубе граней? 6
По какой формуле это можно посчитать?
Здесь я ввел следующие названия:
n-мерный гиперкуб:
- при n=0 - точка (на рисунке не изображена)
- при n=1 - отрезок (на рисунке первый)
- при n=2 - квадрат (второй)
- при n=3 - куб (третий)
m-мерный элемент:
- m=0 - вершина
- m=1 - сторона (ребро)
- m=2 - грань
Здесь применяется код Грея при обходе гиперкуба по вершинам. Направление обхода указано жирной стрелкой:
Для отрезка:
(0),
(1)
Для квадрата:
(0,0),
(1,0),
(1,1),
(0,1)
Для куба:
(0,0,0),
(1,0,0),
(1,1,0),
(0,1,0),
(0,1,1),
(1,1,1),
(1,0,1),
(0,0,1)
Здесь видно, что при обходе квадрата сначала меняется x1, то есть производится обход отрезка, потом меняется x2 (переход к другому отрезку), и другой отрезок обходится в обратном направлении. При обходе куба сначала обходится нижний квадрат (при x3=0), потом меняется x3, иобходится верхний квадрат (x3=1) в обратном направлении.
Обозначим количество вершин в n-мерном гиперкубе Dn=2n. Это очевидно, поскольку при переходе от n-1-мерного гиперкуба к n-мерному гиперкубу количество точек удваивается (n-мерный гиперкуб состоит из двух n-1-мерных гиперкубов, соединенных ребрами).
Это можно также записать в виде рекурсивной формулы (D0=1, Dn=2Dn-1)
Обозначим количество сторон в n-мерном гиперкубе Rn. Поскольку n-мерный гиперкуб состоит из двух n-1-мерных гиперкубов, соединенных ребрами, причем количество соединений равно количеству вершин в n-1-мерном гиперкубе, то R1=1, Rn=2Rn-1+Dn-1.
Для граней можно записать G2=1, Gn=2Gn-1+Rn-1.
Запишем несколько формул для ребер, разворачивая рекурсивную:
R1=1
R2=2+D1
R3=4+2D1+D2
R4=8+4D1+2D2+D3
Можно записать общую формулу в другом виде:
, так как D0=1.
Попробуем упростить формулу для ребер:
Теперь также для граней:
G2=1
G3=2+R2
G4=4+2R2+R3
Поменяем обозначения. Теперь Anm - количество m-мерных элементов в n-мерном гиперкубе.
Рекурсивная формула:
В общем преобразовывал я, преобразовывал, кое-что интуитивно, получил вот что:
Вот так вот случайно совпали обозначения, я такого не добивался, просто оставил мерность гиперкуба снизу, как и было, а мерность элемента поставил сверху.
Правда, мне не совсем понравилось то, что в эту формулу можно подставить только натуральные n и m, причем n>m. В общем, выразил факториалы через гамма-функции, получил это:
Вот теперь сюда мерности можно ставить какие угодно. Хоть дробные, хоть комплексные. Да, вот условия сушествования:
Полученный результат имеет не понятный пока физический смысл (ну, если количество этих элементов будет дробным, отрицательным или комплексным).
А вот следующая вещь (относительно недавно придумал):
Фактически все функции (логарифмы, тригонометрические и т.д.) можно выполнять над комплексными числами. А вот если взять сумму от a до b, то там комплексные числа могут быть только под знаком суммы, а вот a и b могут быть только целыми. Я это изменил.
Имеется интегральная сумма. Необходимо обобщить ее вычисление на случай дробного или комплексного количества слагаемых. (a и b могут быть комплексные). Раскладываем ф-ю в ряд Маклорена, меняем местами суммирование, а потом:
Да-да, так оно и будет, а кто не верит, вставьте в Maple 8 вот это и сравните
a:=1;
b:=5;
n:=2;
sum(i^n,i=a..b);
((1+b)^n*(1+2*b-n)+a^n*(1-2*a+n))/(2*(1+n))+evalf(int((coth(Pi*y)-1)*(((1+b)^2+y^2)^(n/2)*sin(n*arctan(y,b+1))-(a^2+y^2)^(n/2)*sin(n*arctan(y,a))),y=0..infinity));
А в Mathematica 5.0 вот так
n=2;
a=1;
b=5;
Print[Sum[i^n,{i,a,b}]];
((1+b)^n*(1+2*b-n)+a^n*(1-2*a+n))/(2*(1+n))+NIntegrate[(-1+Coth[Pi*y])*((-(a^2+y^2)^(n/2))*Sin[n*ArcTan[a,y]]+((1+b)^2+y^2)^(n/2)*Sin[n*ArcTan[1+b,y]]),{y,0,Infinity}]
и сравните то, что вывело суммирование обычным способом и то, что вывела вторая формула или поменяйте значения n, a, b.
В случае когда, например, a=8,b=5 Maple считает верно, а Mathematica нет
Если в Математике писать не NIntegrate, а Integrate, то в расчетах происходят ошибки
UPD.
Да, я знаю, что не со всеми функциями можно такое проделывать. Но со многими можно, а с остальными можно продумать какие-то частные случаи.