Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Curves.doc
Скачиваний:
51
Добавлен:
01.09.2019
Размер:
4.51 Mб
Скачать

Влияние Степени и Количества Контрольных Точек

Следующие рисунки показывают аппрокимирующие кривые с 10 исходными точками (n=9) для различных степеней и с разным количеством контр. точек. Для всех кривых параметры получены по центростремительному методу

4 точки

5 точек

6 точек

6 (может, 7 ?) точек

степень 2

степень 3

степень 4

степень 5

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

Нужно ли использовать высокие степени и много контр. точек? Ответ - нет, потому что цель использования аппроксимации в том, чтобы использовать меньше контр. точек, чем в глобальной интерполяции. Если количество контр. точек увеличить до числа исходных точек, то с тем же успехом можно использовать глобальную интерполяцию!

Почему Этот Метод Глобальный?

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

Пару Слов О Решении (NTN).P = Q

Эффективный способ решения (NTN).P = Q - это так называемое LU-разложение (LU-декомпозиция). И хотя есть другие хорошие методы, но этот пригодится в расчетах аппрокимации поверхностей.

Для простоты примем M = NTN и система линейных уравнений станет M.P = Q. Метод LU-разложения вначале "раскладывает" матрицу M на M = L.U, где L и U это соответственно нижнетреугольная и верхнетреугольная матрицы. Говоря точнее, если M - это матрица размера n×n, то и L, и U также размера n×n следующего вида:

В нижнетреугольной матрице L нули во всех ячейках выше ее диагонали, а в верхнетреугольной U - ниже. Если LU-разложение M = L.U найдено, то исходное уравнение становится (L.U).P = Q. Это уравнение можно переписать как L.(U.P) = Q. Затем, так как L и Q известны, то, решая L.x = Q, получим U.P = x. Далее, раз U и x известны, то находим P из U.P = x и получим искомый результат. В этом случае исходная задача нахождения P из M.P = Q раскладывается на два шага:

  1. Находим x из L.x = Q

  2. Находим P из U.P = x

Сами по себе эти два шага очень просты. Возьмем первый шаг. Разворачивая L.x = Q, имеем:

Это уранение равноценно следующему:

Сразу имеем значение x1 = q1/l11. Подставляем его во второе уравнение, находим x2 = (q2 - l11x1)/l22. И так далее, тут нефиг делать.

Возьмем второе векторное уравнение U.P = x. Его матричная форма показана ниже:

Это уравнение равноценно следующему:

Здесь все наоборот - идем с конца, тут тоже все просто.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]