2014 dxdy logo

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

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




 
 Алгоритм криволинейно-непрерывной аппроксимации
Сообщение30.06.2011, 11:57 
Аватара пользователя
Здравствуйте, уважаемые участники форума.
Мне необходимо разработать алгоритм и написать программу, обеспечивающую криволинейно-непрерывную аппроксимацию полиномом сложного контура, заданного множеством точек:
Изображение

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

Условие криволинейной непрерывности означает, что в точке сопряжения двух сплайнов значения первой и второй производных для обоих сплайнов соответственно равны:
Изображение

Аппроксимация реализуется через приближение полиномами 3-й и 5-й степени:
$y=C_0+C_1\cdot x+C_2\cdot x^2+C_3\cdot x^3$
и/или
$y=C_0+C_1\cdot x+C_2\cdot x^2+C_3\cdot x^3+C_4\cdot x^4+C_5\cdot x^5$

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

 
 
 
 Re: Алгоритм криволинейно-непрерывной аппроксимации
Сообщение30.06.2011, 14:32 
Destin в сообщении #463660 писал(а):
...по сплайнам и по криволинейной непрерывности...

Замечание по терминологии.
Под построением сплайна обычно понимается кусочно-полиномиальная аппроксимация с условиями непрерывности производных в точках сшивания кусков. То есть то, что Вы называете "криволинейной непрерывностью" - это часть определения сплайна. В Вашем случае Вы хотите строить сплайн 3-й степени с дефектом 1 или сплайн 5-й степени с дефектом 3.

Литература годится любая, но лучше - практически ориентированная, например:
- Шикин Е.В., Плис А.И. Кривые и поверхности на экране компьютера. Руководство по сплайнам для пользователей. М. Диалог. 1996
- Карл де Бор. Практическое руководство по сплайнам. Радио и связь. 1985
- Василенко В.А. Сплайн-функции: теория, алгоритмы, программы. Новосибирск. Наука (СО). 1983

Теория:
- Алберг Дж., Нильсон Э., Уолш Дж. Теория сплайнов и ее приложения. М. Мир. 1972
- Стечкин С. Б., Субботин Ю. Н. Сплайны в вычислительной математике. М. Наука. 1976

 
 
 
 Re: Алгоритм криволинейно-непрерывной аппроксимации
Сообщение01.07.2011, 11:50 
Аватара пользователя
Yuri Gendelman в сообщении #463701 писал(а):
Замечание по терминологии.
Под построением сплайна обычно понимается кусочно-полиномиальная аппроксимация с условиями непрерывности производных в точках сшивания кусков. То есть то, что Вы называете "криволинейной непрерывностью" - это часть определения сплайна. В Вашем случае Вы хотите строить сплайн 3-й степени с дефектом 1 или сплайн 5-й степени с дефектом 3.

Все правильно, просто определение "криволинейная непрерывность" $-$ это калька с английского. "curvature continuity". В зарубежной литературе также различают "тангенциальную непрерывность" $-$ "tangential continuity" и "прерывность" $-$ "discontinuity" Мне так кажется удобным, но не важно.

Основная проблема для меня состоит в том, как оптимально уложить аппроксимированные сплайны в поле допуска.
На данный момент я пока имею дело с двухмерной системой координат, т. е. аппроксимируемый контур лежит в плоскости.
Система управления станка предоставляет мне следующие возможности:
  1. Я могу определить сплайн как зависимость координаты $y$ от координаты $x$
  2. Наоборот, как зависимость координаты $x$ от координаты $y$
  3. Как зависимость обоих координат $x$ и $y$ от некоторого параметра $t$

Вопрос:
Если предшествующий сплайн у меня определен как зависимость $y$ от $x,$ а последующий я хочу определить как зависимость $x$ от $y,$ то, если я правильно понимаю, производная первого порядка для второго сплайна будет рассчитываться по формуле:
$f'_2(x_{start})=\frac{1}{f'_1(x_{end})},$
а как будет рассчитываться производная второго порядка для второго сплайна? Будет ли она просто равна производной второго порядка первого сплайна или существует формула для ее расчета?

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group