|
Если узловой вектор содержит множественные узлы, мы сталкиваемся с ситуацией 0/0, как будет видно позже. Таким образом, принимаем 0/0 равным 0. К счастью, это только для вычислений вручную. Для компьютерного представления существует эффективный алгоритм без такой проблемы. Кроме того, если ui - узел множественности k (т.e., ui = ui +1 =... = ui+k -1), то узловые интервалы [ ui, ui +1), [ ui +1, ui +2),..., [ ui+k -2, ui+k -1) не существуют, и в итоге Ni ,0(u), Ni +1,0(u),..., Ni+k -1,0(u) являются нулевыми функциями.
Возьмем узловой вектор U = { 0, 0, 0, 0.3, 0.5, 0.5, 0.6, 1, 1, 1 }. Таким образом, 0 и 1 множественности 3 (т.e., 0(3) и 1(3)), а 0.5 множественности 2 (т.e., 0.5(2)). Отсюда, m = 9 и значения узлов таковы:
u 0 | u 1 | u 2 | u 3 | u 4 | u 5 | u 6 | u 7 | u 8 | u 9 |
0.3 | 0.5 | 0.5 | 0.6 |
Вычислим Ni ,0(u). Заметьте, так как m = 9, а p = 0 (базисные функции 0 степени), получаем n = m - p - 1 = 8. Как видно из таблицы ниже, есть только четыре ненулевых базисных функции: N 2,0(u), N 3,0(u), N 5,0(u) и N 6,0(u).
Базисная Функция | Границы | Уравнение | Комментарии |
N 0,0(u) | все u | так как [ u 0, u 1) = [0,0) не существует | |
N 1,0(u) | все u | так как [ u 1, u 2) = [0,0) не существует | |
N 2,0(u) | [0, 0.3) | ||
N 3,0(u) | [0.3, 0.5) | ||
N 4,0(u) | все u | так как [ u 4, u 5) = [0.5,0.5) не существует | |
N 5,0(u) | [0.5, 0.6) | ||
N 6,0(u) | [0.6, 1) | ||
N 7,0(u) | все u | так как [ u 7, u 8) = [1,1) не существует | |
N 8,0(u) | все u | так как [ u 8, u 9) = [1,1) не существует |
Теперь перейдем к базисным функциям степени 1. Так как p равно 1, то n = m - p - 1 = 7. Следующая таблица показывает результат:
Базисная Функция | Границы | Уравнение |
N 0,1(u) | все u | |
N 1,1(u) | [0, 0.3) | 1 - (10/3) u |
N 2,1(u) | [0, 0.3) | (10/3) u |
[0.3, 0.5) | 2.5(1 - 2 u) | |
N 3,1(u) | [0.3, 0.5) | 5 u - 1.5 |
N 4,1(u) | [0.5, 0.6) | 6 - 10 u |
N 5,1(u) | [0.5, 0.6) | 10 u - 5 |
[0.6, 1) | 2.5(1 - u) | |
N 6,1(u) | [0.6, 1) | 2.5 u - 1.5 |
N 7,1(u) | все u |
Следующий рисунок показывает графики этих базисных функций.
Рассмотрим конкретные вычисления, скажем, N 1,1(u). Это рассчитывается по следующему выражению:
N 1,1(u) = (u - u 1) / (u 2 - u 1) N 1,0(u) + (u 3 - u) / (u 3 - u 2) N 2,0(u)
Подставляя u 1 = u 2 = 0 и u 3 = 0.3 в это уравнение, получим:
N 1,1(u) = (u /0) N 1,0(u) + (1 - (10/3) u) N 2,0(u)
Так как N 1,0(u) везде равно нулю, первый член становится равным 0/0 и поэтому, как мы приняли, равен нулю. Таким образом, только второй член влияет на результат. Так как N 2,0(u) равно 1 на [0,0.3), N 1,1(u) равно 1 - (10/3) u на [0,0.3).
Далее, вычислим все Ni ,2(u). Так как p = 2, имеем n = m - p - 1 = 6. Следующая таблица содержит все Ni ,2(u):
Базисная Функция | Границы | Уравнение |
N 0,2(u) | [0, 0.3) | (1 - (10/3) u)2 |
N 1,2(u) | [0, 0.3) | (20/3)(u - (8/3) u 2) |
[0.3, 0.5) | 2.5(1 - 2 u)2 | |
N 2,2(u) | [0, 0.3) | (20/3) u 2 |
[0.3, 0.5) | -3.75 + 25 u - 35 u 2 | |
N 3,2(u) | [0.3, 0.5) | (5 u - 1.5)2 |
[0.5, 0.6) | (6 - 10 u)2 | |
N 4,2(u) | [0.5, 0.6) | 20(-2 + 7 u - 6 u 2) |
[0.6, 1) | 5(1 - u)2 | |
N 5,2(u) | [0.5, 0.6) | 12.5(2 u - 1)2 |
[0.6, 1) | 2.5(-4 + 11.5 u - 7.5 u 2) | |
N 6,2(u) | [0.6, 1) | 2.5(9 - 30 u + 25 u 2) |
Следующий рисунок показывает все базисные функции степени 2.
Возьмем следующие типичные вычисления в качестве примера, скажем, N 3,2(u). Выражение для расчета такое:
N 3,2(u) = (u - u 3) / (u 5 - u 3) N 3,1(u) + (u 6 - u) / (u 6 - u 4) N 4,1(u)
Подставляя в u 3 = 0.3, u 4 = u 5 = 0.5 и u 6 = 0.6, имеем
N 3,2(u) = (5 u - 1.5) N 3,1(u) + (6 - 10 u) N 4,1(u)
Так как N 3,1(u) не равно нулю на [0.3, 0.5) и равно 5 u - 1.5, то первый член, (5 u - 1.5)2, является ненулевой частью N 3,2(u) на [0.3, 0.5). Так как N 4,1(u) не равно нулю на [0.5, 0.6) и равно 6 - 10 u, то второй член, (6 - 10 u)2, является ненулевой частью N 3,2(u) на [0.5, 0.6).
Давайте исследуем непрерывность в узле 0.5(2). Так как его множественность равна 2, а степень этих базисных функций равна 2, базисная функция N 3,2(u) является C 0-непрерывной в 0.5(2). Вот почему N 3,2(u) имеет острый угол в 0.5(2). Для узлов не на концах, скажем, в 0.3, C 1-непрерывность выдерживается, так как все они являются простыми.
Дата добавления: 2015-10-29; просмотров: 124 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Влияние Множественных УзлоFF | | | Кривые B-spline: Определение |