ВУЗ:
Составители:
15
0
X
1
X
1−i
X
i
X
1+i
X
1−N
X
N
X
X
Y
Рисунок 2. К индексации массива точек.
В данном случае массив
i
Y является функцией от массива
i
X , поэтому
при построении составной кривой через узловые точки
),(
ii
yx мы будем
моделировать не параметрическую, а функциональную зависимость
)(xyy
=
.
На отрезке
[]
1
;
+ii
XX полиномиальный сегмент можно представить в
таком каноническом виде:
3
3
2
210
ˆˆˆˆ
)( xaxaxaaxP
iiiii
⋅+⋅+⋅+=
. Но для целей,
которые мы преследуем, такой вид кубического полинома усложнит
вычисления. Для дальнейшей работы более предпочтительна следующая
запись полинома:
3
3
2
210
)()()()(
iiiiiiii
xxaxxaxxaaxP −⋅+−⋅+−⋅+=
. Следует
понимать, что оба представления кубического полинома на данном отрезке
абсолютно идентичны. Путем трудоемких арифметических преобразований
всегда можно придти от одного вида к другому.
Введем массив
iii
XXh
−
=
+1
, где 1..0
−
=
Ni . Тогда на отрезке
[
]
1
;
+ii
XX
полиномиальный i-тый сегмент
)(xP
i
можно представить в виде:
2
3
3
2
2
210
)()()()(
⎟
⎟
⎠
⎞
⎜
⎜
⎝
⎛
⋅−⋅+
⎟
⎟
⎠
⎞
⎜
⎜
⎝
⎛
⋅−⋅+⋅−⋅+=
i
i
ii
i
i
ii
i
i
iiii
h
h
xxa
h
h
xxa
h
h
xxaaxP
.
Первая производная полинома по
x
-
2
321
)(3)(2)(
iiiiii
xxaxxaaxP −⋅+−⋅+=
′
. Рассмотрим значения полинома и его
производной на концах отрезка
[
]
1
;
+ii
XX , это позволит нам определить
коэффициенты полинома:
2
3211
3
3
2
2101
1
1
0
32
iiiiii
iiiiiiii
i
ii
ii
i
hahaaY
hahahaaY
Xx
aY
aY
Xx
⋅+⋅+=
′
⋅+⋅+⋅+=
′
=
=
′
=
=
+
+
+
. Таким образом, все
коэффициенты полинома
3210
,,,
iiii
aaaa можно выразить через значения
11
,,,
++
′′
iiii
YYYY . Подстановка значений коэффициентов позволяет преобразовать
15 Y X X 0 X1 X i −1 Xi X i +1 X N −1 X N Рисунок 2. К индексации массива точек. В данном случае массив Yi является функцией от массива X i , поэтому при построении составной кривой через узловые точки ( xi , yi ) мы будем моделировать не параметрическую, а функциональную зависимость y = y (x) . На отрезке [X i ; X i +1 ] полиномиальный сегмент можно представить в таком каноническом виде: Pi ( x) = aˆ i 0 + aˆ i1 ⋅ x + aˆ i 2 ⋅ x 2 + aˆ i 3 ⋅ x 3 . Но для целей, которые мы преследуем, такой вид кубического полинома усложнит вычисления. Для дальнейшей работы более предпочтительна следующая запись полинома: Pi ( x) = ai 0 + ai1 ⋅ ( x − xi ) + ai 2 ⋅ ( x − xi ) 2 + ai 3 ⋅ ( x − xi ) 3 . Следует понимать, что оба представления кубического полинома на данном отрезке абсолютно идентичны. Путем трудоемких арифметических преобразований всегда можно придти от одного вида к другому. Введем массив hi = X i +1 − X i , где i = 0..N − 1 . Тогда на отрезке [X i ; X i +1 ] полиномиальный i-тый сегмент Pi (x) можно представить в виде: 2 2 h ⎛h ⎞ ⎛h ⎞ Pi ( x) = ai 0 + ai1 ⋅ ( x − xi ) ⋅ i + ai 2 ⋅ ( x − xi ) 2 ⋅ ⎜⎜ i ⎟⎟ + ai 3 ⋅ ( x − xi ) 3 ⋅ ⎜⎜ i ⎟⎟ . hi ⎝ hi ⎠ ⎝ hi ⎠ Первая производная полинома по x - Pi′( x) = ai1 + 2ai 2 ⋅ ( x − xi ) + 3ai 3 ⋅ ( x − xi ) . Рассмотрим значения полинома и его 2 производной на концах отрезка [X i ; X i +1 ] , это позволит нам определить x = Xi Yi = ai 0 Yi′ = ai1 коэффициенты полинома: x = X i +1 . Таким образом, все Yi′+1 = ai 0 + ai1 ⋅ hi + ai 2 ⋅ hi + ai 3 ⋅ hi 2 3 Yi′+1 = ai1 + 2ai 2 ⋅ hi + 3ai 3 ⋅ hi 2 коэффициенты полинома ai 0 , ai1 , ai 2 , ai 3 можно выразить через значения Yi , Yi +1 , Yi′, Yi′+1 . Подстановка значений коэффициентов позволяет преобразовать
Страницы
- « первая
- ‹ предыдущая
- …
- 13
- 14
- 15
- 16
- 17
- …
- следующая ›
- последняя »