Решение обратной задачи аналитической геометрии. Теория R-функций

Навеяно недавним постом о построении различных картинок с помощью кривой Гильберта. Будет немного теории и немного картинок.

Немного теории


Компьютерный век породил теорию R-функций — функций с «логическим зарядом», возникшую на стыке дискретного и непрерывного анализов, использующую аппарат булевой алгебры, который органически присущ и ЭВМ. На основе теории R-функций была решена обратная задача аналитической геометрии, появилась возможность строить в виде элементарной функции уравнение границы сложного объекта, и притом такое уравнение, которое обладало бы необходимыми дифференциальными свойствами. В. Л. Рвачев с помощью конструктивного аппарата теории R-функций разработал единый подход к проблеме построения координатных последовательностей для основных вариационных и проекционных методов. К настоящему времени метод R-функций был применен для решения большого числа задач электродинамики, механики деформируемого твердого тела, теории пластин и оболочек, гидродинамики и магнитной гидродинамики, теплофизики и др.

Определение R-функций и основные системы R-функций

Обозначим .

Если назвать булевым знаком величины , то можно дать такое определение R-функций: функция называется R-функцией, если булевый знак этой функции равен булевой функции булевых знаков аргументов . Любую булеву функцию можно представить через (в конъюнктивной и дизъюнктивной нормальных формах). Этот факт означает, что система является полной системой булевых функций (то есть множество H-реализуемых функций (M(Н)) есть множество всех булевых функций).
Рассмотрим функции:



Функции первой колонки — это R-функции. Любую непрерывную функцию любого числа аргументов можно отнести к одной из этих колонок. Какой признак отделяет R-функции от не R-функций, представленных во второй колонке?
Человек, не имеющий предварительного знакомства с R-функциями, вряд ли сможет отгадать «тайну R-функций». Между тем, этот признак очень прост: R-функции обладают тем свойством, что задание знаков аргументов однозначно определяет знак R-функции. И в этом их гениальность. Для это свойство очевидно. Для того, чтобы доказать его справедливость для , рассмотрим прямоугольный треугольник со сторонами . Если , то модули можно не писать, и тогда сумма катетов больше гипотенузы: . Если имеют разные знаки, то есть разность катетов, и тогда . Если отрицательны, то тем более . Знаки такие же, как и у , а знак такой же, как у . Это очевидно. Таким образом, для этих функций можно составить таблицу знаков.
- - - - - +
- - + + - +
- + - + - -
- + + - - -
+ - - + - -
+ - + - - -
+ + - - + +
+ + + + + +

Если в этой таблице заменить "–" на «0», а "+" на «1», то получим таблицы трех булевых функций. Например, функции соответствует конъюнкция , функции соответствует булева функция .

Наиболее распространенной и исторически первой является такая система R-функций:


Собственно пример

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


Немного картинок


Аппарат R-функций позволят строить объекты показанные ниже, при этом мы всегда знаем точное (аналитическое) выражение для каждого геометрического объекта, и собственно можем не терять точность на приближенном описании геометрии объекта.

А вот и программка, которая умеет визуализировать и решать задачки с помощью R-функций

Источник: Рвачев В.Л. Теория R-функций и некоторые ее приложения
Поделиться публикацией
Комментарии 43
    +1
    Это всё прекрасно. Только я мораль чутка не понял. Чем они так хороши-то, R-функции? С помощью них предлагается строить модели, являющиеся множеством точек, для которых некоторая R-функция, например, положительна?
    А эту фразу я вообще не понял:
    можем не терять точность на приближенном описании геометрии объекта.

    Можете пояснить?
      0
      R-функции хороши тем, что мы можем построить аналитическое выражение для любого объекта (в трех или двумерном пространстве). Т.е. проще говоря — можно описывать что угодно. Например, можно знать f(x,y,z) например самолета. А зная функцию можно решать вариационные задачи, при чем точность на приближении описания объекта (например аппроксимировании поверхности как в МКЭ) не теряется
        0
        аналитическое выражение для геометрии объекта?
        МКЭ все таки к физическому а не геометрическому моделированию относится.
        Или R функции вы предлагаете в качестве методов решения краевых задач?
          0
          Да, конечно. Речь идет о решении краевых задач
      0
      Добавьте, пожалуйста, ссылок на источники.
        +1
        У вас S_2(t) не определена в нуле. И вообще, как-то все описание нематематично.
          0
          да, недочет, исправлю. Описание приведено чтобы ознакомить с методом R-функций. Вообще, моя первая статья) спасибо большое за комментарии!
            +6
            Самый большой недочет — непонятно о чем речь. Да, ясны определения, да вы вроде написали, как это используют, но все как-то очень расплывчато.
            И вообще, говоря «мы можем построить аналитическое выражение для любого объекта (в трех или двумерном пространстве)», вы определенно обманываете. Я могу придумать неизмеримый обьект, вы точно не сможете аналитически его представить.
            Да и потом, если вы представляете обьект в виде комбинации R-функций, то его можно представить и без них. В чем же тогда преимущество? Не ясен смысл всего этого.
            Приведите пример такого обьекта, который только с помощью R-функций можно описать — тогда все встанет на свои места.
              +3
              Приведите пример неизмеримого объекта. Точно знаю, что сейчас R-функции используют для раскроя материалов. Понимаете, дело не в том что ТОЛЬКО с помощью метода R-функций. Суть в удобстве и выразительности.

              Например вы хотите построить уравнение скажем пешки)

              Для этого выберем такие опорные функции:



              где 1 — объект, полученный при вращении параболы вокруг Oz,
              2 — цилиндр осью которого является ось Oz,
              3 — слой, параллельный плоскости xOy,
              4 — сфера,
              5 — эллипсоид

              Легко понять, чтобы получить пешку нужно слепить такой предикат:


              В результате получаем:



                +2
                т. е. можно интерпретировать процесс рассуждения/построения так: говорите «хочу построить основание пешки. Для этого возьму цилиндр, обрежу его снизу плоскостью и оставлю только ту часть, которая является общей для объекта, полученного при вращении параболы вокруг Oz. Далее объединяю это основание с неким объектом, который в свою очередь представляет объединение сферы и эллипсоида». На выходе получаю f(x,y,z), с которым могу решать задачи теплопроводности (нагревание, остывание пешки), механики (скручивание, разрыв) и т. д.
                  0
                  То есть фактически метод есть разбиение большой и сложной функции на чуть менее большие и сложные?
                    0
                    не совсем. Тут более глубокая суть. Это как конструктор. Но только вы оперируете природной булевой алгеброй и привычными всем функциями, описывающими уравнения. Главная особенность — все прозрачно, легко и понятно.
                      0
                      Это как конструктор.

                      То есть все-таки просто разбиваем на простые функции?

                        +1
                        Не поймите неправильно, просто вы говорите «Тут более глубокая суть», но чем она глубже, чем просто разбиение на простые составляющие не обьясняете.
                          0
                          Я же говорю, да, фактически разбиение. Но разбиение такое, что позволяет природно (используя булеву алгебру) строить сложные объекты из простых. В этом суть. Просто можно же конструировать, собирать, используя какие-то искусственно введенные аппараты.
            0
            И еще, в плане стиля статья, честно скажу, отвратительна.
            Вы сначала долго говорите про R-функции, приводите 2 столбца, говорите, что левый — такие, правый не такие, и только ближе к середине статьи даете определение. Считай, приходится перечитывать первую половину статьи еще раз — уже знач, о чем речь. Нельзя говорить об обьекте, не дав его определение заранее.
              0
              Добавлю, что после таблицы написано: «Функции первой колонки — это R-функции.», в связи с чем возникает ощущение, что это и есть определение, то есть только эти функции таковыми названы.
                0
                ок, перенесу определение выше
                0
                Все жалуются на какие-то непонятки, а я вот что хочу узнать: поскольку R-функции не являются чем-то сверхестесственным, а всего лишь сужением дифференциируемых, должна быть какая-то теорема, оправдывающая определение.

                В целом, напоминает гиперразвитую выпуклую геометрию – а конкретно, построение выпуклых многогранников пересечением опорных полупространств афинных функционалов. Спасибо за статью
                  +1
                  Нееет, это не сужение дифференциируемых. В том смысле что существуют недифференциируемые R-функции.
                  Да хоть \x -> if x <= 0 then -1 else 1. Вполне себе R-функция, но не то что дифференциируемостью, тут и непрерывностью не пахнет.
                    +1
                    ну то что вы написали не является R-функцией. А так под определение можно подогнать конечно любую. Но в статье написано про одну из стандартных систем R-функций, которые являются и дифференцируемыми и непрерывными. Я могу привести пример других систем R-функций, которые обладают всеми хорошими свойствами
                      +1
                      Стоп-стоп, как это не является? Поясните, пожалуйста.
                        0
                        ну а какую булеву функцию вы поставите в соответствие? Возможно ~, но тогда постройте полную систему)
                      0
                      Ага, виноват. И все-таки, ткнете в обоснование определения? Я не нашел вашей книжки, но нашел «Рвачев — Геометрические приложение алгебры логики» (отличная, судя по всему, книжка). Я ее пролистал, но глобальной теоремы не увидел. Неясно, почему мы требуем суръекцию множества R-функций на булевы.
                        0
                        О, пардон. Вопросы адресовал автору по невнимательности, но буду признателен за ответы.
                    +1
                    То есть границы всё равно должны быть аналитически описаны?
                      0
                      Что вы имеете ввиду? В смысле того что я должен помимо области для построения фигуры знать уравнение границы для каждого примитива?
                        0
                        Ну вот ваш пример с пешкой — почему вы выбрали именно такие опорные области?
                          0
                          на самом деле вариант построения с пешкой не единственен в плане выбора опорных. Для построения я руководствовался тем что видел — вот есть какое то основание, которое могу получить вращение параболы вокруг Oz. И вот возьму сверху к нему прилеплю эллипсоид и сферу. Вот в принципе и вся логика выбора именно таких опорных.
                            0
                            Я пониманию что не единственный ;) Я к тому, что применяются всё-таки некоторые неформальные рассуждения?
                              0
                              да, как видите применяются. Но это больше для понимания построения
                        +1
                        Например вам нужно построить ГО, состоящий из объектов различной размерности (например вам нужно знать уравнение границы полукруга)

                        Хотим построить уравнение жука:



                        Для этого выберем такие опорные функции:



                        и изобразим нашу омегу:

                        0
                        Спасибо автору. Хорошо иногда размять мозги вникая в определения =)
                        Никогда прежде не сталкивался с R-функциями.

                        Меня, как математика по образованию смутило ваше определение:
                        Функция f(x1..xm) называется R-функцией, если булевый знак этой функции равен булевой функции булевых знаков аргументов x1..xm.

                        Булевых функций, как я понимаю много. Это — целый класс.
                        Поэтому, я бы сформулировал так:
                        Функция f называется R-функцией, если существует такая булева функция, что…
                        Т.е. главные признак — существование такой булевой функции.

                        Википедия со мной согласна ;)

                        хотя там, почему-то, вместо булевых знаков используется sign.

                          0
                          определение приведено из источника, непосредственно создателя R-функций. Хотя я с вами согласен )
                            +2
                            Не сочтите меня говнюком, но я нашел, где можно почитать
                            Рвачев В.Л. Теория R-функций и некоторые ее приложения
                            там, на 101 странице дано определение R-отображения, как раз через существование.
                            вот скрин:


                            A определение R-функции дано на 111 странице, но уже через R-Отображения.
                              0
                              да, спасибо. Вот только хотел ответить ckald примерно этой же ссылкой). Просто такое определение для более узкого круга людей)
                          0
                          Спасибо за статью, очень интересно, однако вам определенно стоит поработать над стилем.

                          1. Так в чем же заключается обратная задача аналитической геометрии? Насколько я понял из Википедии — в построении по картинке уравнения, точки решений которого составят исходный рисунок. Конечно, очевидно, что аппарат R-функций очень удобен для большинства встречающихся в технике конктрукций, но существует ли соответствующий формальный алгоритм?

                          Посмотреть указанную в конце статьи программку не могу — к сожалению, у меня нет Windows.

                          2. Для генерации картинок-формул удобно использовать сервисы из обзора habrahabr.ru/blogs/latex/100938/ — намного более качественные изображения получаются.
                            0
                            огромное спасибо! В силу того что есть определенный интерес к R-функциям, скоро опубликую уже более детальную статью с более подробным описанием и алгоритмами.
                            0
                            Круто осозновать, что есть ученый с твоей фамилией ;)
                              0
                              А каково практическое применение этому?
                              Хорошо, мы можем получить описание сложной геометрической формы в виде функции положительной внутри, отрицательной снаружи и нулевой на границе. Потому о любой точке мы можем сказать где она расположена, и даже дать оценку как далеко она от границе по модулю значения этой функции. Ну и какие задачи это позволяет решать?
                              Какие сведения об объекте можно извлечь из этой функции?
                              Нет, конечно можно и картинку нарисовать, и еще много чего сделать, но ведь это «подметать плац лопатами», потому что все эти задачи решаются гораздо более эффективно другими методами.

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

                                0
                                все дело в том что используя метод R-функций вы получаете точное уравнение области, без каких либо приближений. Далее вариационным методом можно решить любую задачу… RFM, в разработке которой я принимаю участие, например потеря точности решения происходит лишь при интегрировании. На самом деле используя атомарные функции можно добиться максимально низкой потери точности решения
                                  0
                                  Вы что ли решаете задачу формально, а не численно?
                                  Иными словами ваша R-функция представляет собой формулу, а не некую процедуру вычисления ее значения в заданной точке.
                                    0
                                    да, именно я получаю некую f(x,y,z) (для трехмерного случая) в аналитическом виде

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое