Ворд формат по образцу сбрасывается при прокрутке. Как пользоваться кнопкой Word - формат по образцу? Стили и форматирование

Как мы выяснили в предыдущих уроках, даже взятые за основу примитивы позволяют путем ряда нехитрых манипуляций создавать разные трехмерные тела — от абстрактных объектов до полностью реальных моделей. Еще большие перспективы открываются при использовании в качестве исходных объектов форм (Shapes), которые представляют собой набор двумерных или трехмерных кривых. Формы объединяют два типа объектов — Splines (Сплайны) и NURBS Curves (Кривые NURBS). Рассмотрим в этом уроке сплайны, так как они популярнее и чаще используются в моделировании. Однако мы изучим только самые простые приемы работы со сплайнами, а вопросы сплайнового моделирования оставим для следующих уроков.

Что такое сплайны

Сплайны (Spline — кусочно-полиномиальная функция) — это двумерные геометрические объекты, которые совершенно самостоятельны и могут служить основой для построения более сложных трехмерных тел. Внешне сплайны представляют собой разнообразные линии, форма линии определяется типом вершин, через которые она проходит. Сплайнами могут быть как простейшие геометрические фигуры: прямоугольники, звезды, эллипсы и пр., так и сложные ломаные или кривые, а также контуры текстовых символов.

Основными элементами сплайнов являются вершины (Vertex ) и сегменты (Segment ). Вершинами называют точки, расположенные на сплайне, при этом первая вершина, обозначающая начало сплайна, отмечается квадратиком белого цвета. Под сегментом принято понимать участок линии сплайна, ограниченный двумя соседними вершинами, — сегменты могут быть как прямо-, так и криволинейными отрезками. Вершины сплайна различаются по типу, от которого зависит степень кривизны прилегающих к данным вершинам сегментов сплайна. Всего выделяют четыре типы вершин (рис. 1):

  1. Corner (Угловая) — вершина, в которой сплайн имеет излом, а примыкающие к ней сегменты лишены кривизны.
  2. Smooth (Сглаженная) — вершина, через которую кривая сплайна проводится с плавным изгибом, а кривизна прилегающих к вершине сегментов одинакова с обеих сторон.
  3. Bezier (Безье) — вершина, напоминающая сглаженную и отличающаяся от нее возможностью управления степенью кривизны обоих сегментов. Последнее осуществляется благодаря наличию в вершине касательных векторов, ограниченных на концах маркерами в виде квадратиков зеленого цвета и называемых ручками Безье. Перемещая ручки Безье, можно изменять направление, в соответствии с которым сегменты сплайна входят в вершину и выходят из нее, а изменяя расстояние от маркеров до вершины — регулировать степень кривизны сегментов сплайна. У вершин данного типа ручки Безье связаны между собой, и перемещение одной из них автоматически вызывает перемещение второй.
  4. Bezier Corner (Безье угловая) — вершина, имеющая касательные векторы, позволяющие управлять степенью кривизны сегментов, однако, в отличие от вершин Bezier, у вершин Bezier Corner касательные векторы не связаны друг с другом и перемещение одного из маркеров не зависит от перемещения другого.

Сегменты также различаются по типу: Curve (Кривая) или Line (Линия). Выбрав типа Curve, можно получить криволинейные сегменты, если вершины являются гладкими или имеют тип Безье, в случае же угловых вершин даже при установке типа Curve сегмент останется линейным. Выбор типа Line приводит к игнорированию типа вершин, в результате чего сегмент данного типа всегда выглядит линейным.

Создание сплайнов

Вначале мы поэкспериментируем с простейшими сплайнами, представляющими собой обычные геометрические фигуры. Активизируйте категорию объектов Shapes (Формы) командной панели Create (Создание), в списке разновидностей объектов укажите тип Splines (Сплайны). Это приведет к появлению на панели группы инструментов, соответствующих типам сплайнов (рис. 2). Для построения стандартных сплайнов используются инструменты Rectangle (Прямоугольник), Circle (Окружность), Ellipse (Эллипс), Arc (Дуга), Donut (Кольцо), NGon (N-угольник), Star (Звезда), Text (Текст), Helix (Спираль) и Section (Сечение). Их построение аналогично созданию примитивов, а расположение вершин и характер любого из названных объектов устанавливаются параметрами в момент создания в панели Create (Создание), а позже — в панели Modify (Изменение). Инструмент Line (Линия) предназначен для создания сплайнов нестандартного вида и работает несколько иначе.

Геометрические фигуры

Для примера попробуйте создать несколько стандартных сплайнов в виде геометрических фигур, например многоугольник, звезду и спираль, как показано на рис. 3. Попробуйте провести рендеринг, выбрав команду Rendering=>Renderer и щелкнув на кнопке Render . Подробно с данным процессом мы познакомимся позднее, а пока просто поясним, что рендеринг обычно проводится на заключительном этапе работы, он необходим для визуализации созданной модели и его основная задача — сделать модель максимально приближенной к действительности. Проведя рендеринг, никакого изображения в открывшемся окне вы не увидите — дело в том, что по умолчанию сплайны не рендеризируются. Для того чтобы сделать их видимыми во время рендеринга выделите первый сплайн, активизируйте панель Modify (Изменение) и в свитке Rendring Renderable (Визуализируемый). Аналогичную операцию проведите в отношении двух других сплайнов и вновь выполните рендеринг — сплайны станут видимыми (рис. 4).

Пока все сплайны имеют одинаковую толщину, что несложно исправить, изменив у каждого из них в свитке Rendring (Рендеринг) значение параметра Thickness (Толщина). Обратите внимание на свиток Parameters (Параметры), в котором определяются основные параметры каждого типа сплайнов: размеры, число вершин и пр. Для тренировки увеличьте толщину каждого из сплайнов, измените число вершин у многоугольника и звезды и увеличьте количество витков на спирали, например так, как показано на рис. 5, 6 и 7. Обратите внимание, что в окнах проекций отразились все изменения, кроме увеличения толщины сплайнов, которая осталась прежней, — ничего страшного, все так и должно быть, поскольку по умолчанию опция Display Render Mesh (Показать визуализируемый каркас) отключена. Убедиться в том, что толщина реально изменилась, можно проведя рендеринг (рис. 8) или просто включив данный флажок. Поэкспериментируйте с прочими параметрами сплайнов, поперемещайте их относительно друг друга и попытайтесь на их основе создать единую композицию, например такую, как продемонстрирована на рис. 9.

Текст

Для создания текста перезагрузите файл командой File=>Reset (Файл=>Сбросить), на панели Create (Создание) вновь выберите тип Splines (Сплайны) и активизируйте инструмент Text (Текст). В открывшемся свитке параметров создания сплайна введите нужный текст, выберите шрифт и установите его параметры (рис. 10). Затем щелкните в одном из окон проекций — это приведет к появлению фрагмента текста (рис. 11).

Перед проведением рендеринга переместите текст так, чтобы он весь оказался в поле зрения, активизируйте панель Modify (Изменение), в свитке Rendring (Рендеринг) установите флажок Renderable Thickness (Толщина), например до 10. Проведите рендеринг и убедитесь, что даже такие простые манипуляции позволяют получить интересный вариант трехмерного текста (рис. 12).

Линии

Создавая предыдущие виды сплайнов, мы не обращали внимание на вершины и сегменты — более того, даже не вспоминали про разные типы вершин. Со сплайнами-линиями все обстоит иначе — в зависимости от особенностей построения кривой они будут дополняться вершинами разного типа. Щелчки левой кнопкой в окне проекции при выбранном инструменте Line (Линия) будут приводить к появлению новой угловой точки (Corner ), а перемещение мыши при нажатой левой кнопке — к появлению вершины Безье (Bezier ). Данный принцип создания вершин установлен по умолчанию, и при необходимости его можно изменить в свитке Creation Method (Метод Создания) на панели Create (Изменение) — рис. 13. Для этого достаточно сменить положение переключателей Initial Type (Тип вершин при щелчке) и Drag Type (Тип вершин при перетаскивании). Отметим, что в большинстве случаев не стоит менять методы создания вершин (чтобы не путаться) — гораздо удобнее взять за основу устанавливаемый по умолчанию принцип и вначале создавать контуры только с угловыми вершинами, а затем изменять тип у тех вершин, у которых это необходимо сделать.

Щелчок правой кнопкой приводит к завершению рисования сплайна из линий. При попытке поставить вершину в месте нахождения начальной точки сплайна на экране появляется вопрос «Close Spline? » («Закрыть сплайн?») — утвердительный ответ приведет к получению замкнутого контура, в противном случае контур окажется разорванным и его граничные вершины можно будет независимо перемещать.

Теоретически существует и второй метод создания сплайна из линий — режим Keyboard Entry (Ввод с клавиатуры), который предполагает ввод координат (X, Y и Z) каждой из вершин вручную с клавиатуры (рис. 14). Непосредственное добавление каждой новой вершины осуществляется кнопкой Add Point (Добавить вершину), кнопка Finish (Закончить) позволяет закончить создание сплайна, а кнопка Close (Замкнуть) создает сегмент, соединяющий первую вершину с последней.

Чтобы закрепить навыки работы со сплайнами-линиями, попробуйте создать сплайн, представленный на рис. 15, и сохраните его на диске — в дальнейшем мы превратим его в рюмку. Обратите внимание, что данный сплайн содержит только угловые вершины. Удобнее всего начинать создание контура с правой нижней вершины (на контуре она отмечена белым квадратиком) и, учитывая, что большинство сегментов соединяются друг с другом под прямым углом, удерживать нажатой при построении данных фрагментов контура клавишу Shift (это обеспечит формирование идеальных углов).

Составные сплайновые формы

Два типа стандартных сплайновых форм — Donut (Кольцо) и Text (Текст) — принципиально отличаются от всех остальных типов сплайнов тем, что содержат более одного сплайна в форме и потому относятся к составным формам. Кольцо содержит два круговых сплайна. Число простых сплайнов, составляющих текстовый объект, как минимум совпадает с числом входящих в него букв, а может быть и больше, если в тексте присутствуют буквы, состоящие из нескольких сплайнов. Основным преимуществом составного сплайна по сравнению с обычным сплайном является возможность выполнять операции сразу над всеми частями сплайновой формы одновременно, что быстрее и удобнее. Но дело не только в этом — к составным формам приходится прибегать и в других случаях, например при необходимости проведения в отношении сплайнов булевой операции.

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

Попробуем создать имитацию простой решетки в виде составного сплайна — такие решетки сплошь и рядом используют при создании разнообразных ограждений. Для начала создайте сплайн типа Rectangle (рис. 17), а затем перейдите в режим создания составной формы, отключив флажок Start New Shape (Начать новую форму). Добавьте к прямоугольнику дугу инструментом Arc (рис. 18). Обратите внимание, что для совмещения концов дуги с контуром прямоугольника удобнее воспользоваться ручным изменением параметров From (От) и To (В), определяющих начальную и конечную точки дуги. Не включая флажка Start New Shape , дополните форму серией линий примерно как на рис. 19.

Рис. 19. Появление группы линий

Щелкните на свободной части любого окна проекций, чтобы снять выделение с решетки, а затем выделите ее инструментом Select Object (Выделение объекта) — решетка выделится вся целиком, что говорит о ее единстве. Это позволит настроить параметры сразу для всех входящих в форму сплайнов, что очень удобно. Активируйте панель Modify (Изменение), в свитке Rendring (Рендеринг) установите флажок Renderable (Визуализируемый) и увеличьте значение параметра Thickness (Толщина). Проведите рендеринг — возможно, полученная решетка будет иметь примерно такой вид, как на рис. 20. Однако решетка получилась неидеальной, поскольку разбить дугу на одинаковое число сегментов на глаз проблематично. Для подобных целей лучше использовать возможности автоматического разбиения сегментов на заданное число равных частей, но это предполагает редактирование формы на уровне подобъектов, поэтому к вопросу создания решетки мы еще вернемся.

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

Редактирование сплайнов

Сплайны могут редактироваться на двух уровнях — на уровне параметрической формы и на уровне подобъектов: вершин, сегментов, а также сплайнов, если речь идет о составном сплайне.

Редактирование на уровне параметрической формы, или объекта, осуществляется обычным образом при активировании панели Modify (Изменение) и позволяет присоединять к сплайну другие сплайны и изменять ряд параметров сплайна, заданных при его создании (рис. 21).

Редактирование сплайнов на уровне подобъектов позволяет превратить даже самый простой сплайн в сложный объект практически любой конфигурации, так как число доступных преобразований не идет ни в какое сравнение с перечнем возможностей при редактировании на уровне объекта в целом (рис. 22). Чтобы сплайн можно было редактировать на уровне подобъектов, он должен быть преобразован в объект типа Editable Spline (Редактируемый сплайн) при помощи команды Convert To=>Convert to Editable Spline (Конвертировать в=>Конвертировать в редактируемый сплайн). Такой объект перестает быть параметрическим — его уже нельзя будет редактировать на уровне параметров, изменяя ширину, высоту, радиус и пр., но зато он может модифицироваться на уровне вершин и сегментов.

Выбор нужного уровня подобъектов осуществляется щелчком по соответствующей кнопке в свитке Selection панели Modify . Для выбора самих подобъектов используются обычные инструменты выделения: Select Object (Выделить объект), Select and Move (Выделить и передвинуть), Select and Scale (Выделить и масштабировать), Select and Rotate (Выделить и повернуть) и Selection Region (Форма области выделения) для выделения областей определенной формы. При необходимости последовательного выделения нескольких объектов при выделении удерживают нажатой клавишу Ctrl .

Основные инструменты изменения геометрии подобъектов: вершин (Vertex ), сегментов (Segment ) и сплайнов в целом (Spline ) — находятся в свитке Geometry (Редактировать геометрию), который становится доступным при активировании панели Modify (Изменение). Управление типом подобъектов осуществляется через контекстное меню.

Изменение типа подобъектов

На практике чаще всего приходится менять типы вершин, выбирая нужный тип из четырех возможных: Corner (Угловая), Smooth (Сглаженная), Bezier (Безье) и Bezier Corner (Безье угловая). Гораздо реже требуется изменять типы сегментов или сплайнов — здесь есть всего два варианта: Curve (Кривая) и Line (Линия). Смена типа производится через контекстное меню, вызываемое при нажатии правой кнопки на выделенных объектах, при этом текущий тип всегда отмечен галочкой, а для его изменения достаточно выбрать любой другой тип подобъекта.

Для примера инструментом Line (Линия) создайте ломаную из двух отрезков (рис. 23), прощелкав левой кнопкой мыши все три ее вершины, — обратите внимание, что в обычном режиме вершины ломаной не выделены специальными значками. Перейдите в режим редактирования вершин — это приведет к отображению на ломаной трех ее вершин: точка начала окажется отмеченной белым квадратиком, а две другие точки — крестиками (рис. 24). Щелкните на средней вершине правой кнопкой мыши и увидите в открывшемся контекстном меню галочку у слова Corner (рис. 25) — это доказывает, что вершина действительно угловая. Измените тип данной вершины на Bezier (Безье) — вид контура тут же изменится (рис. 26).

Редактирование на уровне вершин

При редактировании на уровне вершин наибольший интерес в свитке Geometry (Редактировать геометрию) представляют следующие операции:

  • Refine (Уточнить) — позволяет добавлять дополнительные вершины без изменения контура сплайна, что может потребоваться для последующего разрыва сплайна в данной точке;
  • Break (Разбить) — позволяет разорвать контур в любой выделенной вершине, при этом образуются две совпадающие, но все же раздельные вершины;
  • Insert (Вставить) — дает возможность вставить вершину в любой точке сплайна, сразу же переместить ее и продолжить добавление новых вершин;
  • Delete (Удалить) — используется для удаления выделенных вершин;
  • Weld (Слить) — отвечает за объединение двух выделенных концевых или совпадающих вершин в одну с учетом значения параметра Weld Threshold (Порог слияния), задающего расстояние, при котором совпадающие вершины будут объединяться;
  • Fuse (Приблизить) — позволяет приблизить выделенные точки друг к другу, применение данной операции полезно перед свариванием вершин при помощи операции Weld;
  • Connect (Соединить) — осуществляет соединение двух вершин на концах разомкнутого сплайна отрезком прямой;
  • Fillet (Скруглить) — позволяет скруглять любые углы;
  • Chamfer (Фаска) — отвечает за снятие прямой фаски с любого угла.

Для примера создайте сплайн в виде звезды (рис. 27). Чтобы получить доступ к редактированию вершин, превратите его в редактируемый сплайн, щелкнув правой кнопкой мыши на сплайне и выбрав команду Convert To=>Convert to Editable Spline (Конвертировать в=>Конвертировать в редактируемый сплайн). Последовательно при нажатой клавише Ctrl выделите все внешние вершины звезды, а затем щелкните на кнопке Fillet и скруглите вершины так, чтобы звезда превратилась в цветок (рис. 28). Выделите все внутренние вершины и сведите их в одну точку, щелкнув на кнопке Fuse, а затем объедините при помощи операции Weld (рис. 29). И напоследок попробуйте сделать лепестки более округлыми при помощи операции Fillet (рис. 30). Полученный результат показан на рис. 31.

А теперь более сложное задание: откройте ранее созданный файл с заготовкой для рюмки. Перейдите в режим редактирования вершин, активизировав панель Modify (Изменение) и щелкнув на кнопке Vertex (Вершины). Масштабируйте изображение, а затем проверьте, все ли вершины находятся на своих местах, и при необходимости переместите ту или иную вершину инструментом Select and Move (Выделить и переместить) так, чтобы все сегменты находились относительно друг друга под нужными углами.

Выделите указанную на рис. 32 вершину и измените ее тип на Bezier Corner (Безье угловая), указав его в контекстном меню. Измените степень кривизны прилегающего к данной вершине сегмента примерно так, как показано на рис. 33. Выделите указанную на рис. 34 вершину и скруглите соответствующий угол, щелкнув на кнопке Fillet (Скруглить) и постепенно изменяя значение параметра в поле соответствующего счетчика или перемещая вершину мышью (рис. 35). Аналогичным образом скруглите угол при вышерасположенной вершине (рис. 36). Превратите указанную на рис. 37 вершину в вершину типа Bezier Corner (Безье угловая), а затем измените кривизну прилегающих к вершине сегментов в соответствии с рис. 38.

Добавьте к контуру дополнительную вершину, нажав в свитке Geometry (Геометрия) на кнопке Refine (Уточнить) и щелкнув в том месте контура, где должна появиться новая вершина (рис. 39). Обратите внимание, что в режиме добавления точек к контуру при попадании мыши на контур вид курсора меняется — в это время и следует щелкать. Щелкните еще раз на кнопке Refine для перехода в обычный режим редактирования. Превратите указанную на рис. 40 точку в угловую Безье, а затем измените кривизну прилегающего к точке сегмента (рис. 41).

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

Примените к построенному сплайну модификатор Lathe (Вращение), для чего выполните из главного меню команду Modifiers=>Patch/Spline Editing=>Lathe (Модификаторы=>Редактирование патчей/сплайнов=>Вращение). Обратите внимание, что список Modifier List пополнился строкой Lathe . Для настройки варианта вращения в группе Align (Выравнивание) свитка Parameters (Параметры) щелкните на кнопке Max (Максимум), в группе Output (Вывод) выберите вариант Patch (Патч), в группе Direction (Направление оси) выберите вариант Y (рис. 42). Перейдите в проекцию Perspective и, не снимая выделения с объекта в свитке Parameters (Параметры), включите флажок Flip Normals (Нормальный поворот) — вы увидите примерно такую же рюмку, как показана на рис. 43.

Редактирование на уровне сегментов

Редактирование сплайнов на уровне сегментов позволяет:

  • разбивать сплайн на отдельные части — операция Break (Разбить);
  • добавлять новые вершины к существующим сегментам — операция Refine (Уточнить);
  • отделять сегменты, преобразуя их в самостоятельные формы, — Detach (Отделить);
  • удалять сегменты — операция Delete (Удалить);
  • добавлять указанное количество вершин на выделенном сегменте, разбивая его при этом на равные части, — операция Divide (Разделить).

Чтобы потренироваться в редактировании на уровне сегментов, вернемся к решетке и попробуем смоделировать ее снова — с учетом выявленных ошибок. Для этого вновь создайте сплайн-прямоугольник и дополните его дугой (рис. 44). Перейдите в режим редактирования сегментов, выделите показанный на рис. 45 сегмент. Затем щелкните на кнопке Divide (Разделить), предварительно указав в находящемся рядом с кнопкой поле число добавляемых вершин (рис. 46). Аналогичную операцию выполните в отношении левой стороны прямоугольника и для каждого из сегментов дуги (рис. 47).

Включите привязку к вершинам — это обеспечит в дальнейшем идеальное совпадение вершин при добавлении новых сплайнов. Для этого щелкните в основной панели инструментов правой кнопкой на инструменте Snaps Toggle (Переключатель привязки), на вкладке Snaps (Привязки) включите флажок Vertex (Вершины), а затем левой кнопкой вновь щелкните на Snaps Toggle для активации режима. Перейдите в режим редактирования вершин и включите опцию добавления линий, щелкнув на кнопке Greate Line (Создать линию). Отличие данного инструмента от инструмента Line (Линия) состоит в том, что новые линии будут автоматически добавляться к редактируемому сплайну. Начинайте создавать нужные линии. Обратите внимание, что при приближении к вершине маркер мыши превращается в голубой крестик (рис. 48). Готовая решетка представлена на рис. 49 — расстояние между прутьями решетки теперь одинаковое, а вершины совпадают с границами решетки. Чтобы основание решетки было толще, чем отдельные прутья, разбейте форму на два отдельных сплайна: рамку и прутья решетки. Перейдите в режим редактирования сегментов, выделите сегменты рамки и щелкните на кнопке Detach (Отделить) — выделенные сегменты превратятся в самостоятельные объекты. Затем выделите рамку и установите для нее одну толщину, а для прутьев — другую, проведите рендеринг. Полученная в итоге решетка показана на рис. 50.

Редактирование на уровне сплайнов

Редактирование на уровне сплайнов позволяет:

  • объединять сплайны — операция Attach (Присоединить);
  • создавать вдоль сплайнов контуры указанной ширины — операция Outline (Контур);
  • зеркально отражать сплайны по вертикали, горизонтали или по диагонали — операция Mirror (Отражение);
  • менять местами у сплайнов начальную и конечную точки — операция Reverse (Перевернуть);
  • применять к сплайнам различные модификаторы, выполнять над сплайнами булевы операции — операция Boolean (Булевые) и пр.

Чтобы разобраться в нюансах редактирования форм на уровне сплайнов, попробуем создать модель оконной рамы. Для начала создайте сплайн-прямоугольник, конвертируйте его в редактируемый сплайн (команда Convert To=>Convert to Editable Spline — Конвертировать в=>Конвертировать в редактируемый сплайн). Перейдите в режим редактирования сплайнов и для имитации толщины рамы создайте вокруг контура обводку, щелкнув на кнопке Outline (Контур), с параметрами смещения порядка 5-10 (рис. 51). Внутренние перегородки окна создайте в виде сплайнов-линий и дополните их точно такими же контурами (рис. 52). Обратите внимание, что фрагменты рамы находят друг на друга — это необходимое условие для проведения булевых операций (подробно мы рассмотрим их в одном из следующих уроков, а пока ограничимся одним экспериментом). Проведите рендеринг, включив необходимые параметры, и увидите, что пока рама выглядит совсем не так, как хотелось бы, — все наезжающие друг на друга контуры видны (рис. 53).

Теперь нужно объединить отдельные сплайны в единую форму. Выделите саму раму, перейдите в режим редактирования сплайнов, щелкните на кнопке Attach (Присоединить), а затем сначала на одной внутренней перекладине, а затем на второй — форма станет единой. В режиме редактирования сплайнов выделите внутреннюю часть рамы (рис. 54), активизируйте кнопку Subtraction (Исключение), щелкните на кнопке Boolean (Булевые), а затем по горизонтальной перемычке. Это приведет к объединению рамы с горизонтальной перекладиной (рис. 55). Вновь выделите внутреннюю часть рамы и выполните те же самые действия, указав вместо горизонтальной перегородки вертикальную, проведите рендеринг и получите уже единый оконный блок (рис. 56).

Рис. 55. Результат первой булевой операции

И напоследок попробуем создать заготовку для трехмерного логотипа Windows. Инструментом Arc создайте дугу (рис. 57), сделайте копию дуги и разместите ее чуть выше (рис. 58). Конвертируйте любую из дуг в редактируемый сплайн и перейдите в режим редактирования вершин. Активируйте кнопку Attach (Присоединить) и укажите в качестве присоединяемой вторую дугу — в результате дуги станут отдельными сплайнами единой формы (рис. 59). Соедините начальные и конечные точки обеих дуг. Для этого в режиме редактирования вершин щелкните на кнопке Connect (Соединить), установите мышь на первую вершину, нажмите левую кнопку и, не отпуская ее, протяните отрезок ко второй вершине. Затем ту же самую операцию проведите для двух других вершин (рис. 60).

Примените ко всей форме модификатор Extrude (Выдавливание), выбрав из главного меню команду Modifiers=>Mesh Editing=>Extrude (Модификаторы=>Редактирование сеток=>Выдавливание) и экспериментальным путем подобрав нужное значение параметра Amount. Результатом станет объемная выпуклая поверхность, как на рис. 61. Обратите внимание, что список Modifier List пополнился строкой Extrude . Сделайте копию данной формы и разместите обе формы как показано на рис. 62. Попеременно работая инструментами Select and Move (Выделить и передвинуть) и Select and Rotate (Выделить и повернуть), измените положение клонированной поверхности в соответствии с рис. 63. Сделайте копию обеих поверхностей и расположите все четыре поверхности так, как они размещаются на логотипе Windows . По окончании подберите цвета — результат показан на рис. 64.

Более того, кривая, описывающая деформацию гибкой линейки, зафиксированной в отдельных точках, является сплайном. Итак, имеется физическая модель сплайн-функции (или, наоборот, сплайн-функция является математической моделью гибкой линейки). Интуитивный подход к использованию кусочных функций в задачах аппроксимации встречался в математике в течение длительного времени. Физической моделью, называемой механической аналогией сплайна, является многоопорная балка , не испытывающая внешней нагрузки, а деформации которой вызваны внутренними реакциями на заданные смещения опор в фиксированные узлы. Математически данная модель описывается дифференциальным уравнением деформации балки и является многоточечной краевой задачей, для решения которой был применён известный в то время сеточный метод, который получил решение именно в таком виде, называемом сегодня сплайном. Но, как отмечает советский учёный Николай Корнейчук , вторжение сплайнов в теорию приближения произошло из-за задачи интерполяции, благодаря их хорошим вычислительным и аппроксимативным свойствам. Сплайны обладают исключительно хорошими аппроксимативными свойствами, универсальностью и обеспечивают простоту реализации вычислительных алгоритмов, полученных на их основе. При этом алгоритмы построения сплайнов совпадают с алгоритмом метода конечных элементов , который является основным промышленным методом прочностного анализа в системах автоматизированного проектирования (САПР).

Теория интерполяции сплайнами и сам термин сплайн ведут свой отсчёт со статьи Исаака Шонберга (англ. Isaac Jacob Schoenberg ) 1946 года . Особенно интенсивное её развитие произошло в 50-70 годы. В настоящее время традиционной прикладной сферой использования интерполяционных сплайнов стали САПР. Однако потенциальные возможности сплайнов значительно шире, чем просто описание некоторых кривых. В реальном мире большое количество физических процессов по самой своей природе являются сплайнами. В механике это деформация гибкой пластины или стержня, зафиксированных в отдельных точках; траектория движения тела, если сила, действующая на него меняется ступенчато (траектория искусственного космического объекта с активными и инерционными отрезками движения, траектория движения самолёта при ступенчатом изменении тяги двигателей и изменении профиля крыла и т. д.). В термодинамике это теплообмен в стержне, составленном из фрагментов с различной теплопередачей. В химии - диффузия через слои различных веществ. В электричестве - распространение электромагнитных полей через разнородные среды. То есть сплайн не выдуманная математическая абстракция , а во многих случаях он является решением дифференциальных уравнений, описывающих вполне реальные физические процессы.

Рассмотрение сплайнов начнём с определения алгебраического сплайна. Функция , определённая и непрерывная на отрезке [ a , b ] {\displaystyle } , называется полиномиальным сплайном порядка m {\displaystyle m} с узлами x j ∈ (a ≤ x 0 < . . . < x n ≤ b) {\displaystyle x_{j}\in (a\leq x_{0}<..., если на каждом из отрезков [ x j − 1 , x j) {\displaystyle (3) {\displaystyle \left[{\begin{array}{*{20}{c}}{{P_{j}}({t_{j}})=f({t_{j}})}\\{{P_{j}}({t_{j-1}})=f({t_{j-1}})}\\{{{P"}_{j}}({t_{j}})=f"({t_{j}})}\\{{{P"}_{j}}({t_{j-1}})=f"({t_{j-1}})}\\\end{array}}\right]\qquad (3)}

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

Для полиномов чётных степеней при сборке системы (3):

  • остаётся неопределённой производная в одном из концов отрезка;
  • и условие равенства производных (гладкости кривой) не будет выполняться,

поэтому для полинома 2-й степени невозможно достичь равенства 1-й производной в точках стыка, а для 4-й степени - 2-й производной и т. д. Для построения сплайнов с чётными степенями искусственно добавляют дополнительные условия, чтобы сформировать систему уравнений, подобную (3). Если производные полинома сплайна определяются так же, как соответствующие производные интерполируемой функции, сплайн называется эрмитовым .

P j (n) (t j) = f n (t j) , P j (n) (f j − 1) = f n (t j − 1) (4) {\displaystyle P_{j}^{(n)}({t_{j}})={f^{n}}({t_{j}}),\qquad P_{j}^{(n)}({f_{j-1}})={f^{n}}({t_{j-1}})\qquad (4)}

Существуют локальные методы построения сплайнов Бесселя и Акими, B - сплайны [ ] . В основном, когда речь идёт о сплайнах, то имеют в виду сплайны, построенные из алгебраических полиномов. Именно к ним относится приведённое выше определение. Именно эти сплайны являются наиболее изученными. Однако, сплайн может состоять из фрагментов функций любого класса. В [ ] рассмотрено построение таких сплайнов и исследуются их свойства. Автор [кто? ] не даёт общего определения построенных сплайнов. Очевидно, что для любых классов функций, из которых состоит сплайн, приведённое в начале статьи определение не совсем подходит. Например, если сплайн состоит из отрезков экспоненты, то понятие дефекта сплайна теряет смысл. Хотя количество непрерывных производных останется важной характеристикой. Построение сплайна, фрагментами которого являются разрывные функции (рациональные функции, функции Паде), несколько выходит за рамки сплайновой идеи, поскольку одним из основных преимуществ сплайнов является их гладкость. Если произвольно расширять такие конструкции, то стираются различия сплайнов от кусковых функций. Другим преимуществом сплайнов является эффективность вычислений. Чрезмерное усложнение фрагментов существенно снижает преимущество сплайнов перед классическими функциями.

Для сплайнов характерны следующие признаки: сплайн состоит из фрагментов - функций одного класса, которые отличаются только своими параметрами, на соседние фрагменты в точках стыковки накладываются определённые условия, которые сводятся к непрерывности значений и некоторых первых производных. Сплайны - направление прикладной математики, которое интенсивно развивается. В Интернете содержится обширная библиография по сплайнам (Spline bibliography database (SBD)).

Классификация сплайнов

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

Назначение сплайнов . По назначению можно выделить три основные группы сплайнов: «интерполяционные сплайны» или «функциональные сплайны» - проходящие точно через заданные точки, «сглаживающие сплайны» - проходящие через заданные точки с учётом погрешностей их определения; «корреляционные сплайны» - проходящие через корреляционное множество точек и отображающие его генеральную зависимость (тренд, регрессию). Интерполяционные и функциональные сплайны используют в задачах геометрического моделирования, например, задания обводов корпусов водных и воздушных судов. Сглаживающие сплайны используют чаще всего для описания зависимостей физических экспериментов с известной погрешностью измерений. Корреляционные сплайны используют в качестве нелинейных графиков регрессии, простейшими из которых можно считать описание зависимости ступенчатой и кусочно-линейной функцией (сплайнами нулевой и первой степени).

Вид фрагментов сплайна . То, что сплайн состоит из фрагментов одинакового вида, является одним из ключевых признаков, что отличает его от других кусковых функций. Однако существуют комбинированные сплайны, состоящие из фрагментов различных сплайнов.

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

Экспоненциальные сплайны. Если гибкую металлическую линейку, зафиксированную в узлах, натянуть, то решением дифференциального уравнения будет не алгебраический полином, а экспонента . Поэтому такие сплайны называют также напряжёнными . Экспонента описывает многие физические процессы в динамических системах. Недостатком является трудоёмкость расчёта.

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

Тригонометрическими являются сплайны, фрагменты которых описываются тригонометрическими полиномами . Имеют достаточно сложные расчётные выражения. Более пятидесяти различных по виду фрагментов сплайнов описаны в работах Б. А. Попова.

Также существуют рациональные сплайны и сплайны Паде. Их особенностью является возможность разрыва производных на фрагментах, при непрерывности в узлах. М. Ансерме строит фракциональные сплайны, где фрагменты заданы с помощью гамма-функции.

Целесообразность применения фрагментов определённого вида основана на конкретных условиях задачи и ограничениях реализации. Как правило, основное требование - это достижение заданной точности интерполяции при приемлемых затратах времени и ресурсов на реализацию. Удачный выбор фрагментов, который соответствует характеру процесса, позволяет сократить время вычислений и требуемый объём памяти.

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

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

Условия стыковки фрагментов . Ещё один важный признак, что отличает сплайны. Когда идёт речь о сплайнах, как правило, считают, что фрагменты стыкуются гладко. То есть обеспечивается непрерывность значений и первой производной. Понятие дефекта сплайна связано с числом непрерывных производных, которые имеет функция-фрагмент определённого вида и числом производных, непрерывность которых гарантирована в узлах. Экспонента , синусоида имеют бесконечное число производных. Для них это понятие не имеет смысла. Поэтому удобнее говорить прямо о числе производных, непрерывность которых гарантирована в узлах сплайна. Практически речь идёт о непрерывности значений и первой, максимум второй производной. Разрыв второй и высших производных визуально не заметно, поэтому учитывается редко. Понятно, что первая производная в точках стыка может задаваться по-разному. Наиболее распространены два приёма. Значение первой производной выбирается так, чтобы обеспечить непрерывность второй (глобальные кубические сплайны минимального дефекта). Первая производная равняется первой производной интерполируемой функции (возможно приближённо) в эрмитовых сплайнах.

Краевые условия . Имеется 4 типа классических краевых условий и ряд неклассических. Если сплайны имеют ограниченное число фрагментов, то, естественно, у них отсутствуют крайние фрагменты слева и справа, поэтому крайние узлы не с чем стыковать. Исключением являются лишь периодические сплайны, которые имеют естественное продолжение (3-й тип классических краевых условий). Иногда естественными называют краевые условия с нулевой производной, хотя никаких оснований считать их более естественными, чем другие, нет, но для кубического сплайна естественные (натуральные) краевые условия являются частным случаем 2-го типа классических краевых условий, задающего вторые производные на краях сплайна. В этом случае приравнивание вторых производных к нулю высвобождает края металлической линейки от нагружения изгибающим моментом, что естественным образом и происходило бы при прикладывании её к фиксированным (заданным) узлам в физическом пространстве. В 1-м типе классических краевых условий задают первые производные (касательные) на краях сплайна; во 2-м типе - задают вторые производные (кривизну); 3-й тип используется для интерполяции замкнутых или периодических линий и заключается в стыковке крайних фрагментов сплайна; 4-й тип используется когда на краях сплайна неизвестны ни первая, ни вторая производные и заключается в стыковке соседних пар крайних фрагментов (1-го со 2-м и последнего с предпоследним) по третьим производным, что на практике реализуется в проведении по узлам пар соседних крайних фрагментов функции, аналогичной одному фрагменту сплайна (у полиномиального сплайна - полинома той же степени, что и фрагмент сплайна). Используются различные комбинации краевых условий, которые сводятся к данным 4-м типам классических условий. В случае, если краевые условия нельзя свести к этим четырём типам, как, например, изменение на паре соседних крайних фрагментах сплайна его третьей производной по линейному (афинному) закону, предложенное в работах Снигирева В. Ф., то такие условия называют неклассическим вариантом краевых условий. Далее приведены некоторые варианты, сводящиеся к классическим краевым условиям. Если сплайн имеет фрагменты одинаковой ширины, считают недостающие фрагменты той же ширины. Другой вариант - это считать недостающие фрагменты продлёнными в бесконечность. Преимущество такого подхода в возможности экстраполяции . Можно считать ширину фрагментов нулевой. Расчётные выражения получают предельными переходами. Если взглянуть на краевые условия с точки зрения формирования сплайна из базисных функций, то они сводятся к продолжению соответствующих локальных базисных функций. Ширина соседних фрагментов влияет на их форму. А простое обрезание часто приводит к осцилляции и росту погрешности на краях. Важное значение краевые условия имеют при обработке изображений и в задачах с экстраполяцией.

Дополнительные ограничения . Они чаще всего касаются производных в узлах. Иногда они вытекают из физики процесса. Условия: неотъемлемость значений, равенство моментов, площадей, условия нормирования. Дополнительные условия иногда упрощают анализ свойств сплайнов, но могут серьёзно затруднять построение и затраты реализации.

Сетка точек интерполяции. Может существенно влиять на эффективность расчётов. Важны случаи равномерной сетки и равномерной сетки, с расстоянием между точками, кратным расстоянию между узлами сплайна. Нахождение сетки точек интерполяции (интерполяционных узлов) является задачей параметризации, о которой уже сказано в разделе «Ширина фрагментов».

Локальные свойства базисных функций . Сплайн можно представить как сумму взвешенных базисных сплайнов. Существенным является ширина этих базисных функций. Так, в глобальных сплайнах базисные сплайны ненулевые на всём отрезке интерполяции. Хотя стоит заметить, что с определённой точностью (достаточной для многих технических расчётов) их можно считать локальными. У локальных сплайнов ширина базисных функций невелика (четыре фрагмента у кубических эрмитовых сплайнов). Это существенно влияет на эффективность расчётов и затраты реализации.

Форма представления . Функции, задающие фрагменты сплайна, как правило, зависят от множества параметров, благодаря которым они меняют свою форму. Значения параметров на каждом из фрагментов индивидуальны. Эти параметры могут задавать конкретный сплайн. Для полиномиальных сплайнов это полиномиальные коэффициенты. Так, сплайн можно представить множеством параметров функций на каждом из фрагментов. Назовем это представление пофрагментным. Такое представление является наглядным, часто имеет явный физический смысл. Но число параметров является чрезмерным. Так, для кубического сплайна необходимо иметь 4 * (r-1) параметров (r - число узлов сплайна). Данное представление получается в результате неопределённого интегрирования фрагмента исходного сплайнового дифференциального уравнения и называется аналогичной кусочно-полиномиальной формой (pp-формой) по аналогии с полиномиальными сплайнами. Для явного выражения коэффициентов через уже известные значения координат узловых точек, применяют разложение аналогичной кусочно-полиномиальной формы на базисные функции путём подстановки её в краевые условия Эрмита (граничные условия фрагмента сплайна, условия интерполирования и опирания на производные). В результате получается базисная форма (B-форма) сплайна. Такое представление сплайна является значительно более компактным и записывается через базисные сплайн-функции в виде:

S (x) = ∑ j = 1 r a j B j (x) {\displaystyle S(x)=\sum \limits _{j=1}^{r}{{a_{j}}{B_{j}}(x)}} ,

где B j (x) {\displaystyle {B_{j}}(x)} - базисные сплайн-функции (как правило локальные), a j {\displaystyle a_{j}} - числовые коэффициенты, задающие вес базисных функций при формировании сплайна, физическим смыслом которых являются обобщённые (линейные и угловые) перемещения металлической линейки в узлах. Число параметров, задающих сплайн, равно числу узлов сплайна. Между параметрами функции на фрагменте и коэффициентами полинома-сплайна существует зависимость, что позволяет с одними коэффициентами находить другие, хотя формулы могут иметь достаточно сложный вид.

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

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

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

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

К особым сплайнам можно отнести многомерный ортогональный нормированный сплайн, описывающий нелинейную модель искусственного нейрона (сплайн-модель Хакимова). используемый для моделирования зависимости функции от совокупности множества аргументов.

См. также

Примечания

  • Вершинин В. В., Завьялов Ю. С, Павлов Н. Н. Экстремальные свойства сплайнов и задача сглаживания. - Новосибирск: Наука, 1988, УДК 519.651
  • Роженко Александр Иосифович. Теория и алгоритмы вариационной сплайн-аппроксимации : Дис. … д-ра физ.-мат. наук: 01.01.07: Новосибирск, 2003 231 c. РГБ ОД, 71:05-1/136
  • Шикин Е. В., Плис Л. И. Кривые и поверхности на экране компьютера. Руководство по сплайнам для пользователей. - М.: ДИАЛОГ-МИФИ, 1996. - 240 с. ISBN 5-86404-080-0 , УДК 681.3 Ш57
  • Хакимов Б.В. Моделирование корреляционных зависимостей сплайнами на примерах в геологии и экологии. - СПб. : Нева, 2003. - 144 с. - ISBN 5-211-04588-2 .
  • Павленко Алексей Петрович. Применение обобщённых решений для проектирования балочных элементов конструкций самолёта и формирования функциональных сплайнов : Дис. … канд. техн. наук: 05.07.02, 05.13.18 Казань, 2007. 185 РГБ ОД, 61 07-5/5391
  • Сплайн (англ. spline – планка, рейка) – функция, область определения которой разбита на конечное число отрезков, на каждом из которых сплайн совпадает с некоторой алгебраической функцией. Максимальная степень использованных функций (обычно это полиномы) называется степенью сплайна. Разность между степенью сплайна и гладкостью его очертания (отсутствие разрывов по координатам, по первой и второй производным) называется дефектом сплайна. Например, непрерывная ломаная из отрезков прямых есть сплайн степени 1 и дефекта 1 (в точках сопряжения отрезков сплайна происходит разрыв первой производной – гладкость нарушается).

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

    При сплайн-интерполяции, показанной на рис. 2.8, исходная функция заменена отрезками кубических парабол, проходящих через четыре смежные узловые точки. Коэффициенты парабол рассчитываются так, чтобы в точках сопряжения фрагментов сплайна совпадали координаты, а также первая и вторая производные (дефект сплайна равен нулю).

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

    Расчет сплайна обычно сводится к решению системы линейных уравнений.

    2.4. Аппроксимация

    Широко распространенной задачей обработки и моделирования данных является представление их совокупности некоторой функцией f (x ). Задача аппроксимации заключается в получении параметров этой функции, таких, чтобы функция приближала «облако» исходных точек с наименьшейсреднеквадратичной погрешностью . В основе аппроксимации обычно лежит метод наименьших квадратов.

    2.4.1. Полиномиальная аппроксимация

    Полином – выражение вида: у =а 0 +а 1 Чх +а 2 Чх 2 +...+а n Чx n

    В каждой из n точек, для которых известны значения x i и y i , найдем сумму квадратов отклонений вычисленных и измеренных значений

    Для того чтобы отыскать наилучшее приближение, необходимо найти минимум этой функции для переменных: а о, а 1 , а 2 , ..., а n .

    Решение : продифференцируем функцию f по каждой из этих переменных и приравняем производную нулю. После несложных преобразований получим систему линейных уравнений. Решив эту систему, можно найти неизвестные коэффициенты полинома а о, а 1 , а 2 , ..., а n .


    Коэффициенты при неизвестных Свободный
    a n ... a 2 a o член
    ...
    ...
    ... ... .... ..... ....
    ... N

    Пример полиномиальной аппроксимации данных представлен на рис. 2.10.

    Рис. 2.10 Полиномиальная аппроксимация

    2.4.2. Линейная аппроксимация

    Частным, но и наиболее востребованным случаем полиномиальной аппроксимации является линейная аппроксимация. При линейной аппроксимации функция y (x ) описывает отрезок прямой и имеет вид y (x ) = a + bx (рис. 2.11).

    Рис. 2.11. Линейная аппроксимация

    2.4.3. Метод наименьших квадратов для произвольной функции

    Функция y (x ) может быть представлена произвольной дифференцируемой функцией (рис. 2.12). На практике не рекомендуется использовать функции со степенями выше 4-6 – погрешности реализации при этом сильно возрастают.

    Рис. 2.12. Аппроксимация произвольными функциями

    2.5. Сглаживание данных

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

    При этом вычисляется множество Z =z 1 ,z 2 ,...z n сглаженных значений функции f (x ,y ), заданной множествами значений аргумента X =x 1 ,x 2 ,...x n и Y =y 1 ,y 2 ,...y n соответствующих значений функции.

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

    Рис. 2.13. Сглаживание данных

    При k = 3 – по каждым трем последовательным точкам (x j -2 ,y j -2),(x j -1 ,y j -1), (x j ,y j) для j =3,...n строится последовательность многочленов первой степени W j (x )=m j x +b j , дающих в этих точках наименьшее отклонение от заданных в смысле наименьших квадратов.

    Определение коэффициентов m j и b j многочлена W j (x ) производится методом наименьших квадратов.

    Искомые сглаженные значения z j = W j (x ) = m j x + b j вычисляются по формуле:

    2.6. Экстраполяция данных (предсказание)

    При экстраполяции по ряду заданных точек рассчитывается некоторое число N последующих точек.

    На рис. 2.14 сплошной линией показан график функции, описывающий положение заданных точек, пунктирной – предсказание (экстраполяция графика) .

    Рис. 2.14. Экстраполяция данных

    2.7. Численное дифференцирование

    Геометрическая интерполяция первой производной – она равна тангенсу угла наклона касательной.

    При вычислении производной функции , заданной таблицей – нужно определить значения функции y слева и справа на равном расстоянии от того значения x , для которого мы хотим подсчитать величину производной, и разделить их разность на h (практически это сводится к приближенному определения тангенса угла наклона касательной, чем меньше h , тем точнее результат (рис. 2.15):


    Рис. 2.15. Численное дифференцирование

    .

    Значения можно найти интерполяцией.

    2.8. Вычисление определенного интеграла

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

    Простой и вместе с тем хороший способ состоит в следующем: участок интегрирования разбивается на несколько равных малых интервалов. Интеграл по каждому малому интервалу приближенно считаем равным произведению длины интервала на среднее значение подынтегральной функции в его начале и конце. Этот способ называется методом трапеций , потому что получается такой результат, как если бы в каждом малом интервале дуга графика заменяется ее хордой, а площадь под этой дугой (величина интеграла) заменяется площадью получившейся трапеции с вертикальными основаниями (рис. 2.16).

    Рис. 2.16. Метод трапеций

    Соответствующая формула имеет вид:

    где для краткости обозначено .

    Еще более эффективную формулу можно получить, если кривую на малом интервале заменить параболой, т.е. графиком квадратичной зависимости.

    Разделим участок интегрирования от x = a до x = b на четное число равных интервалов. Границы интервалов: . Длину интервала обозначим h , так что .

    Эта формула называется формулой Симпсона . Преимущества формулы Симпсона по сравнению с формулой трапеций особенно сказывается при увеличении числа n интервалов разбиения. Можно показать, что при этом ошибка формулы трапеций убывает обратно пропорционально n 2 , а ошибка формулы Симпсона – обратно пропорционально n 4 .

    2.9. Численное решение дифференциальных уравнений

    Дифференциальное уравнение первого порядка : ,

    где y – неизвестная функция от x .

    Обычно считается, что это уравнение разрешимо относительно производной, т.е. имеет вид: . Для решения уравнения необходимо задание начальных условий: x = x 0 и y = y 0 .

    Если уравнение имеет вид и заданы начальные условия x =x 0 и y =y 0 , то, подставляя значения x 0 и y 0 в функцию , мы найдем величину производной в точке x 0: .

    Значение функции: , где Dx – малое приращение x .

    Отсюда значение функции y 1 = y (x 1) = ,

    где x 1 = x 0 + Dx .

    Теперь, принимая точку (x 1 ,y 1) за исходную, можно точно таким же образом получить точку y 2 = y (x 2) = , где x 2 = x 1 + Dx . Таким образом, шаг за шагом, можно последовательно вычислять значения функции для различных x .

    Примером дифференциального уравнения первого порядка является основное уравнение движения поезда: , где - удельная равнодействующая сила, зависящая от скорости.

    Построение кривой скорости движения поезда в функции пройденного пути производится на основе графического или аналитического интегрирования основного уравнения движения поезда:

    , где – удельная равнодействующая сила. (1)

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

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

    В основе метода ломаных Эйлера лежит идея графического построения решения дифференциального уравнения. Этот метод дает одновременно и способ нахождения искомой функции в численной (табличной) форме.

    Идея метода заключается в том, что на малом промежутке изменения независимой переменной интегральная кривая дифференциального уравнения заменяется отрезком прямой (касательной) .

    Отсюда , и процесс можно повторить для промежутка и т.д. Число h является шагом таблицы.

    Рабочая формула для определения значений y по методу Эйлера имеет вид , где

    Геометрическая интегральная кривая заменяется ломаной, называемой ломаной Эйлера (рис. 2.17).

    Метод Эйлера обладает малой точностью, к тому же погрешность каждого нового шага, вообще говоря, систематически возрастает. Наиболее приемлемым для практики методом оценки точности является в данном случае метод двойного счета – с шагом h и с шагом h/ 2. Совпадение десятичных знаков в полученных двумя способами результатах дает естественные основания считать их верными. Ошибка метода пропорциональна h 2 . Существуют различные уточнения метода Эйлера, повышающие его точность так, что ошибка метода становится пропорциональной h 3 .

    Рис. 2.17. Интегральная кривая и ломаная Эйлера

    На рис. 2.18 показана кривая скорости, построенная в полном соответствии с вычислительной схемой метода Эйлера.

    Рис. 2.18. Предполагаемая схема построения кривой скорости

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

    На рис. 2.19 показана кривая скорости, построенная в соответствии с фактически реализуемым алгоритмом.

    Рис. 2.19. Фактическая схема построения кривой скорости

    Как видно, построение совпадает лишь на первом шаге, а на следующих – принципы построения кривой различаются. Фактическая погрешность построения во втором случае не только меньше, чем в первом, но и имеет явную тенденцию к дальнейшему уменьшению.

    Причиной такого несоответствия является, вероятно, следующее.

    При построении кривой скорости основное уравнение движения поезда приводится к виду

    или (2)

    Данное уравнение отличается от уравнения 1, для решения которого, собственно, и предназначен метод Эйлера. При этом, производная (тангенс угла наклона касательной в геометрической интерпретации) не может быть определена изначально, а вычисляется путем подбора приращения единственной независимой переменной V . Функциональная зависимость величины производной от пути S не входит в правую часть уравнения 2. Это константа, зависящая от приведенного уклона под поездом и изменяющаяся лишь при его изменении, сохраняя все признаки именно константы.

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

    Основное уравнение движения поезда можно интегрировать только по скорости – единственной действительно независимой переменной, входящей в его состав, а метод Эйлера предполагает интегрирование по пути.

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

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

    Современный уровень развития вычислительной технике снимает практически все ограничения для повышения точности тягового расчета в этом ее понимании.

    Точность построения кривой скорости существенно зависит от шага интегрировании – препятствий для уменьшения шага сейчас не существует.

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

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

    Все эти алгоритмы легко реализуемы в современных условиях.

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

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

    На рис. 2.20 приведены графики приращений пути и скорости, полученные при построении кривой путем аналитического интегрирования основного уравнения движения поезда по времени ( мин) на площадке с разгоном поезда до установившейся скорости.

    Именно такой подход реализован в известной программе тяговых расчетов «ЭРА-ТЭП» – типовой программе ОАО РЖД (Анисимов В.А., ДВГУПС).

    Рис. 2.20. Кривая скорости (а) и графики приращений пути и скорости в функции пройденного пути (б)

    2.10. Моделирование рельефа местности

    Конечным итогом инженерно-геодезических и инженерно-геологических изысканий в настоящее время является цифровая модель местности .

    Цифровая модель местности (ЦММ) – множество, элементами которого является топографо-геодезическая информация о местности. Она включает в себя:

    Метрическую информацию – геодезические пространственные координаты характерных точек рельефа и ситуации;

    Синтаксическую информацию для описания связей между точками – границы зданий, лесов, пашен, водоемов, дороги, водораздельные и водосливные линии, направления скатов между характерными точками на склонах и т.п.;

    Семантическую информацию, характеризующая свойства объектов – технические параметры инженерных сооружений, геологическая характеристика грунтов, данные о деревьях в лесных массивах и т.п.;

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

    Общую информацию – название участка, система координат и высот, номенклатура.

    Топографическая ЦММ характеризует ситуацию и рельеф местности. Она состоит из цифровой модели рельефа местности (ЦМР) и цифровой модели контуров (ситуации) местности (ЦМК). Кроме этого ЦММ может дополняться моделью специального инженерного назначения (ЦМИ).

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

    Рис. 2.21. Электронная карта на основе ЦММ полученной по данным лазерного сканирования

    При решении инженерно-геодезических задач на ЭВМ применяют математическую интерпретацию цифровых моделей. Ее называют математической моделью местности (МММ).

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

    Исходными данными для создания цифровых моделей местности являются результаты топографической съемки, данные о геологии и гидрографии местности.

    Цифровая модель рельефа местности (ЦМР) представляет собой массив координат съемочных точек X ,Y ,H .

    Математическая модель рельефа (ММР) объединяет цифровую модель рельефа и методы аппроксимации точек съемки и интерполяции поверхности земли между ними.

    Существует большое число типов ЦМР и ММР, каждая из которых отличается способом аппроксимации рельефа, моделируемого сетью точек съемки и правилами аппроксимации точек съемки и интерполяции – порядка вычисления отметки H точки, заданной координатами X,Y в общем случае, то есть когда данная точка не совпадает ни с одной из точек съемки.

    Возможна линейная и сплайновая интерполяция отметок.

    По цифровой модели рельефа можно получить продольный профиль земли по любому назначенному направлению (рис. 2.22).

    Рис. 2.22. Цифровая модель рельефа и продольный профиль земли по заданному направлению

    Наиболее распространенной является триангуляционная модель рельефа местности (TIN ) с линейной интерполяцией отметок.

    Суть модели TIN в ее наименовании – «Нерегулярная треугольная сеть» (в английском оригинале – Triangulated Irregular Network ). В своем пространственном выражении это сеть треугольников с высотными отметками в узлах, что позволяет представить моделируемую поверхность как многогранную (рис. 2.23).

    Рис. 2.23. Пример триангуляции

    Впервые задача построения триангуляционной модели была поставлена в 1934 г. в работе советского математика Б.Н. Делоне.

    Для понимания метода триангуляции Делоне необходимо ввести несколько определений.

    Определение 1. Триангуляцией называется планарный граф, все внутренние области которого являются треугольниками (рис. 2.23).

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

    Определение 3. Триангуляция называется оптимальной, если сумма длин всех рёбер минимальна среди всех возможных триангуляций, построенных на тех же исходных точках (при этом внутрь окружности, описанной вокруг любого построенного треугольника, не попадает ни одна из заданных точек триангуляции) (рис. 2.24).

    Рис. 2.24. Триангуляция Делоне

    Все известные в настоящее время системы автоматизированного проектирования (САПР) поддерживают функцию создания TIN .

    2.11. Моделирование продольного профиля и плана при реконструкции железных дорог

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

    При реконструкции железных дорог исходными данными для расчетов являются результаты съемки существующего пути в плане и продольном профиле.

    Цифровая модель продольного профиля (рис. 2.25) позволяет использовать оптимизационные и интерактивные методы проектирования, получить отметки головки рельса между точками съемки. За ось абсцисс всегда принимается ось пути.

    Рис. 2.25. Моделирование продольного профиля железных дорог

    Проектные отметки продольного профиля вычисляются с учетом наличия вертикальных кривых, устраиваемых в местах переломов проектной линии при достижении разностью уклонов сопрягаемых элементов определенной величины, точнее, если поправка от вертикальной кривой превышает 0,01 м и алгебраическая разность уклонов , где R V - радиус вертикальной кривой (рис. 2.26).

    Рис. 2.26. Вертикальная кривая, расчетная схема

    В общем случае проектная отметка определяется по следующему алгоритму:

    Отметка перелома профиля;

    - уклон j -го элемента профиля;

    - разность уклонов, ‰;

    если , то поправка не вводится, иначе

    - отметка в расчетной точке без учета вертикальной кривой;

    тангенс вертикальной кривой;

    если поправка не вводится - точка лежит за пределами вертикальной кривой), иначе

    - поправка от вертикальной кривой;

    если то иначе

    Выполнение такого расчета в автоматическом режиме предполагает наличие цифровой модели продольного профиля. При расчетах «вручную» такая модель (расчетная схема) также неявно создается.

    Моделирование плана позволяет произвести расчет параметров его элементов – прямых, круговых и переходных кривых.

    Модель плана существующего пути в прямоугольной системе координат (рис. 2.27) предполагает использование и аналогичной координатной модели плана проектного пути (рис. 2.28). Работа с такими моделями «вручную» настолько трудоемка, что до появления ЭВМ такой подход не использовался.

    Рис. 2.27. Координатная модель плана существующего пути

    Рис. 2.28. Координатная модель плана проектного пути

    Для расчетов (массовых и трудоемких) применялись модели плана (существующего и проектного путей) в криволинейной системе координат, где за ось абсцисс принималась ось существующего пути.

    Применялись два типа моделей – угловая диаграмма и график кривизны (стрел).

    Использование этих моделей (ценой некоторых допущений и упрощений) позволяет выполнять расчеты параметров элементов плана «вручную», применяя, в том числе, простые и удобные графоаналитические методы.

    На угловой диаграмме (рис. 2.29) по оси ординат откладываются углы поворота кривой.

    На прямых – угол постоянный,

    На круговых кривых – изменяется линейно,

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

    Рис. 2.29. Угловая диаграмма

    Для придания оси пути правильного геометрического очертания необходимо выполнить сдвиги (рихтовки) его оси на некоторую величину, определяемую расчетом.

    При использовании угловых диаграмм величина сдвига:

    , где U g , U v – углы поворота проектной и существующей оси пути в функции расстояния от начала съемки (угловые диаграммы), S - расстояние от начала съемки до расчетной точки.

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

    На графике кривизны (стрел) (рис. 2.30) по оси ординат откладывается кривизна пути (стрелы изгиба). Кривизна – величина обратная радиусу . Стрела (рис. 2.31), f – расстояние от оси пути до хорды определенной длины a , (обычно, 20 м). График кривизны отличается от графика стрел тем, что кривизна определяется в точке, а стрела на хорде. Различия проявляются только в зонах перехода с прямой на переходную кривую и с переходной кривой на круговую кривую.

    Рис. 2.30. График кривизны (стрел)

    Рис. 3.31. Измерение стрел изгиба

    Если стрелу измерять в миллиметрах, то при а = 20 м: .

    Для проектного пути, укладываемого в правильное геометрическое положение:

    На прямых – кривизна (стрела) равна нулю,

    На круговых кривых – кривизна (стрела) постоянна,

    На переходных кривых - кривизна (стрела) изменяется линейно.

    Сдвиг , где: K g , K v – кривизна оси пути в проектном и существующем положениях в функции расстояния от начала участка съемки, s ; S – расстояние от начала участка до расчетной точки.

    Двойной интеграл вычисляется путем двойного суммирования площадей графика кривизны (стрел).

    3. МАТЕМАТИЧЕСКИЕ МЕТОДЫ

    3.1. Реализация численной модели на ЭВМ

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

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

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

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

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

    Говоря о «конкретной проектной задаче» необходимо строго определить ее формальные характеристики в отношении, например, выбора управляемых переменных, целевой функции задачи, системы ограничений, накладываемых на управляемые переменные.

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

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

    Исходные положения:

    Постановка задачи и предположения о рациональном подходе к ее решению;

    Дополнительная информация об исходных данных (числовая область, вид числового материала и др.);

    Характеристики вычислительной техники (быстродействие, память и др.);

    Представление данных, точность, округление и др.

    Требования:

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

    Степень универсальности (должна ли решаться единственная задача, или требуется универсальное программное обеспечение относительно допустимого набора данных);

    Минимизация стоимости (времени счета).

    Эти условия частично перекрывают друг друга (противоречат) и поэтому при попытке их удовлетворения стараются добиваться определенного оптимума. Для этого используют ряд правил определяемых здравым смыслом и предшествующим вычислительным опытом.

    Основой для выбора метода является принцип непосредственного приложения : нужно выбрать по возможности метод, который решает именно поставленную задачу, а не ведет к решению через некоторые подзадачи. «Математически элегантные» решения зачастую являются непросматриваемыми относительно распространения погрешностей и устойчивости, неблагоприятными численно.

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

    3.2. Целевая функция. Ограничения

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



    
    Top