Обновить

Комментарии 33

Когда дойдёте до дуальных чисел - не забудьте рассказать, почему коллега Фробениус их числами не считает)

Тоже увлекаюсь изобретением новых чисел, но - по-взрослому) Таких, о которых упоминания в википедии нет. Например - "Фибоначчионы", по аналогии с комплексными и дуальными, но с правилом  ф^2=ф+1 (здесь ф это мнимая единица). Тогда (a+ф*b)*(c+ф*d)=(a*c+b*d)+ф*(b*c+a*d+b*d). А своё название они получили исходя из наблюдения, что, например,  (3+5*ф)*(8+13*ф)=89+144*ф

Но практического применения я им не нашёл, поэтому дальше исследовать этот вопрос и тем более писать статью, неинтересно.

Другие, дробно-рациональные и расширенные дуальные числа - наоборот, решают конкретную проблему деления на ноль, возникающую в задаче барицентрической интерполяции. И там тоже наоборот - много интересного, в частности, связь с функцией синуса и гармонического числа - но для хабра это уже слишком круто, а в серьёзный математический журнал писать я пока не готов, и тем более на английском. Черновик показывал близким, не самым глупым людям - никто ничего не понял. Ну значит моё время ещё не пришло)

Рассмотрим и ваши "Фибоначчионы" тоже, но в матричном представлении.

Узнаю апологета матричных вычислений) Но конечно - только двумя руками за, особенно, если вы сможете извлечь таким образом больше, чем я смог извлечь чисто алгебраическими методами. В частности, функции экспоненты и логарифма. Для дробных значений, естественно.

Интересно, так далеко я, конечно, не лез. Матричный формализм делает эту задачу чисто технической, переводя акцент на задачу сходимости соответствующих формальных сумм. Впрочем, хоть я и физик, мне оказались ближе не матрицы, а подход геометрической алгебры Клиффорда, в которых трансцендентные функции определяются достаточно изящно и имеют зримый смысл. Однако "Фибоначчионы" классическими методами Клиффорда не описать, поскольку мнимые единицы не "единичны".

Так это ж самое интересное - обобщённые формулы, аналитические продолжения и неожиданные соотношения. Следующий очевидный шаг - это определить деление, что можно сделать через решение системы уравнений и получается

\frac{a+ \phi b}{c+ \phi d}=\frac{a (c+d)-b d}{c^2+c d-d^2}+ \phi \frac{b c-a d}{c^2+c d-d^2}

По этой формуле (которой в Википедии нет) можно двигаться по числам Фибоначчи (и кстати Люка тоже) уже и назад, а заодно и точно знать, когда результат будет целым.

Аналогичным образом можно и квадратный корень поискать, для одного из я нашёл формулу

 \sqrt{a+\phi b}= \frac{\Phi ^2 \sqrt{a-\frac{b}{\Phi }}+\sqrt{a+b \Phi }}{\Phi  (2 \Phi -1)}+\phi\frac{  \left(\sqrt{a+b \Phi }-\sqrt{a-\frac{b}{\Phi }}\right)}{2 \Phi -1}

где \Phi это золотое сечение. Возможно это связано с тем, что равенство \Phi^2=\Phi+1также имеет быть? Какая формула для второго корня? А их точно только не больше двух? Так много вопросов и так мало ответов, на поиски которых можно угробить остаток жизни.

Если Вы рассматриваете расширение над вещественными числами R, то многочлен Ф^2=Ф+1 имеет корни, а значит есть делители нуля и проблемы с делением.

Делители нуля есть, но проблем с делением я не вижу. Я не понимаю, почему -1+1=0 это норм, а -1*1=0 - это ужас-ужас. Более того - именно делителя нуля в дуальных числах позволили мне решить проблему с делением на ноль в барицентрической интерполяции.

Причем тут ужас? Просто формулы деления пригодны не для всех элементов. Есть необратимые элементы

Деление там было определено не для получения обратного элемента, а для движения в обратную сторону по числам Фибоначчи. Соответственно, и рассматривать имеет смысл не всё множество возможных сочетаний, а только подмножество соответствующих рекуррентному соотношению Люка.

Фибоначчионы - это же кольцо вычетов из многочленов P[x]/(x^2 - x - 1), нет?

Если речь идёт о числах, то ими могут быть расширения Q или Z решениями этого квадратного уравнения.

Если над R, то получаем алгебру изоморфную декартовому произведению R×R (сложение и умножение по-компонентное)

Над R не интересно, в нём уже есть золотое сечение.

Дух Николя Бурбаки чую здесь я.

Нет скорее арифметики Пеано.

В арифметике Пеано тоже довольно трудно определить вычитание.

И даже более точно, это дух Алонзо Чёрча и его нумералов в чистом лямбда-счислении.

И Лорана Шварца

А натуральные числа мы откуда взяли?)

Натуральные числа вводятся через палочки (аксиомы пеано).

Ну я-то это знаю, а в статье этого не хватает. Построение натуральных чисел намного интереснее, чем построение целых из натуральных.

Натуральные числа в "построении" не нуждаются. Нетривиально было придумать аксиомы, но натуральные числа очевидны буквально детсадовцу, они буквально соответствуют кучкам с палочками.

А индукция насколько очевидна детсадовцу?

Вы кажется путаете математическую интуицию и строгий вывод. Индукция - самый очевидный прием мышления, основан на повторении предыдущего опыта.

Сама математика формально (на базе теории множеств) была переписана только в 19 веке, до этого алгебру, тригонометрию и начала анализа вывели "на пальцах", используя актуальную бесконечность и другие нестрогие штуки.

Актуальная бесконечность - как раз вполне понятное детсадовцу понятие, например чит на "бесконечные патроны" в игре. Имеется в виду именно актуальная бесконечность, потому что если зарядить автомат "потеницально бесконечной" обоймой, то вставка патрона займет бесконечное время, и он стрелять не будет (шутка про аксиому выбора умышленная).

Этот чит именно что прорпотенциальную бесконечность, иначе автомат мог бы выстрелить за раз бесконечное число патронов, что детсадовец даже представить не сможет.

Ну а отрицательные числа в аксиоматике пеано вводятся так же просто как и натуральные, без введения куда более сложных конструкций в виде пар и их классов эквивалентности.

Статье очень не хватает описания применённого трюка на уровне идеи (не уверен, что готов "предложить" - т.е. сформулировать его, но статья явно станет лучше).

Если не понимать что происходит - то читать крайне тяжело, т.к. изложение постоянно перепрыгивает с "чисел и равенств" к "классам и эквивалентности" (да даже понимая что происходит проверить формальную корректность крайне муторно).

В целом довольно похоже на построение множеств чисел в арифметике пеано та вычислительном базисе частично-рекурсивных ф-ий, где однажды определив вычитание мы не вводим ф-ию "минус", а просто тащим уменьшаемое и разность в виде пары.

П.С.

А приведённая ниже часть - несомненно кокетство. Эту теорию, даже на приличных инженерных-компьютерных факультетах (например моей группе в НИУ ВШЭ) не давали. Подозреваю давали только математика.

Предупреждение! Первые две статьи достаточно техничные. Они нужны для полноты изложения и носят дидактический характер, полезный для того, чтобы приобщить маткружковцев к духу математики. Однако особых открытий они в себе не таят.

Вы правы, технические детали загромоздили общий смысл подхода, который состоит в повышении "качества" числовых систем от полугруппы к кольцу, от кольца к полю с помощью простого расширения примитивных систем. Я изложу эту мысль более точно в следующем материале, поскольку дальше планирую перейти от числовых систем к геометрическим алгебрам Клиффорда, очень красивым и полезным.

Посмотрел ваши статьи.
С интересом подписался.

Ещё камешки и палочки можно записать как 7 x+ 3 y или 3 y+7 x, неважно. Если хотим добавить ещё пару камешков, то 7 x+ 3 y +2 x=9 x+3 y. Чтобы узнать количество предметов, нужно положить x=y=1. Чтобы узнать общий вес, нужно вместо 1 задать вес для каждого типа предмета. Но это же и так все знают)

==три палочки ~ три камня== “Кучка каких-то объектов эквивалентна кучке других объектов, если каждому объекту из первой кучки можно поставить в пару единственный объект из второй кучки”

Суть в том, что пытаемся определить числа, неявно их же используем. В частности, “единственный” уже предполагает знание единицы.

Если цитировать учебник по логике Колмогорова (скрин), то использование эквивалентности суть использование отношения (один к одному), т.е использование (неявное) единицы, которую только собираемся определить

#ТЕОРИЯ
#ПРЕДИКАТ И КВАНТОР СУЩЕСТВОВАНИЯ
#РАВНОЧИСЛЕННОСТЬ
#РЕАЛИЗАЦИЯ СЧЕТА


########################################################################
print("\n________________________ТЕОРИЯ_______________________________")

print(""" 
Законы логики используют True, False.

False == (not True) and True

т.е. само False выразимо так и никак иначе (если соблюдать требование, 
чтобы в определяющей части не было терминов определяемого)
 
Можно переписать и так: False == (A != A) and (A == A)
т.е. (дословно) "Ложь равна тому, что не равно и равно себе"

=> без False мир невыразим полно.
=> само False выразимо через самоотрицание (всегда ложную формулу)

Без False не выразить НОЛЬ элемента в множестве. Пусть имеем множество 
и требуется определить есть ли элемент b в таком множестве. Тогда для 
каждого элемента множества проверяем (Xi == b). Если каждое сравнение 
False - элемента b нет в множестве.

 ##################################################################
 # Пусть имеем множество {a, b}. О каждом элементе можно сказать, # 
 # что он один. На основании чего? На основании того, что у них   # 
 # есть общее. И оно единственно: каждый элемент равен себе.      #
 ##################################################################
 
Имеем: a - одно, b - одно (единица - свойство чего-либо равняться себе)

Между понятиями один и первый нет разницы. 
Но оно есть между понятиями один и второй.

Второй - то, что равно себе && не равно (как элемент) первому (элементу)
т.е предыдущему. Объединение первого и второго даст понятие два.

=> Чтобы выразить натуральные числа, достаточно оперировать понятиями 
(равно, не). Число ноль необходимым образом определяется через всегда 
ложную формулу.

В школах учат с понимания числа один: яблоко - одно, карандаш - один, 
и т.д. На множестве примеров у детей формируется правило выделения 
ОБЩЕГО в РАЗНОМ.

Немыслимо, чтобы в школах учили с понимания нуля.
Когда в трактовках математики ноль определяется через пустое множество, 
а затем единица определяется через ноль, то математика попросту 
игнорирует тот факт, что само пустое множество определяется как 
(нет ни ОДНОГО элемента), содержащим уже понятие единицы 
(пусть и с отрицанием)
""")


########################################################################
print("\n____________ПРЕДИКАТ И КВАНТОР СУЩЕСТВОВАНИЯ_________________")

print(
""""
(один или более одного) заменяется на (существует или существуют)
как пример, в множестве {2, 3, 4}
    существует четное число или существуют четные числа
 => Тогда это и логично, и с точки зрения языка правильно
""")

def exists(M):
    for num in M:
        if num % 2 == 0: 
            return True
    return False

M = {2, 3, 4}
print("\n M =", M, "\n")

print(" квантор существования (один или более одного)", exists(M))
print(" существует или существуют четные числа в М", exists(M), "\n")

for x in M:
    if x % 2 == 0:
        print(" предикат .. здесь", x, "- четно")
    else: 
        print(" предикат .. здесь", x, "- не четно")


########################################################################
print("\n______________________РАВНОЧИСЛЕННОСТЬ_______________________")

print("""\nКак сказать для множеств, что они равномощны,
не употребляя слова c "один", включая взаимно-ОДНОзначно?
Выделяем в каждом элементе свойство (равняться себе)
Тогда равночисленно: (a==a) == (e==e)
              (равное_себе) == (равное_себе)""")

print("""\n    На этом основании:""")
def iseq(m1, m2):
    s1=[]; s2=[]
    for x in m1:
        s1.append(x==x)
    for x in m2:
        s2.append(x==x)

    if s1 == s2:
        return "равномощны"
    else:
        return "не равномощны"


a="a"; b="b"; c="c"; m1 = {a,b,c}
e="e"; r="r"; p="p"; m2 = {e,r,p}; m3 = {e,r}

print("Множества", iseq(m1, m2), ":", m1, m2) # равномощны
print("Множества", iseq(m1, m3), ":", m1, m3) # не равномощны
print("Множества", iseq({a,(b,c)}, {e,r}), ":", {a,(b,c)}, {e,r})# ==

print("""
Часто приходится читать: множества равномощны, когда состоят из одного 
и того же числа элементов (пример Фреге: каждой тарелке однозначно 
отнесен нож .. и каждому ножу однозначно отнесена тарелка )

Критика: но само употребление (из одного и того же числа элементов) уже 
использует понятие единицы. Иногда прячут ВЗАИМНО-однозначно под 
словом биекция.

Общая ПРОБЛЕМА таких определений в невозможности выразить количественные
отношения (хоть и неявного) без использования единицы.
т.е. они определяют числа через их же (уже используя единицу)
""")

########################################################################
print("\n_____________________РЕАЛИЗАЦИЯ СЧЕТА________________________")

#код взят из @XAITALKS #выложил Alex Bur
add = lambda a, b: (lambda f: f(f, a, b))(lambda self, a, b: a \
      if b == False else self(self, a ^ b, (a & b) << True))
print("7 + 1 =", add(7, 1)) # выведет 8
print("""
Работает с 0 (False) и 1 (True) в битовом представлении, полностью 
имитируя сложение столбиком. Числа ноль и один выражены как 
"неравное себе" и "равное себе"

Формировать ряд чисел 0->1->10->11->100 значит использовать СЛЕДОВАНИЕ 
(различаться с каждым предыдущим), что здесь и реализовано.
""")

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации