\(\newcommand{\footnotename}{footnote}\)
\(\def \LWRfootnote {1}\)
\(\newcommand {\footnote }[2][\LWRfootnote ]{{}^{\mathrm {#1}}}\)
\(\newcommand {\footnotemark }[1][\LWRfootnote ]{{}^{\mathrm {#1}}}\)
\(\newcommand \ensuremath [1]{#1}\)
\(\newcommand {\LWRframebox }[2][]{\fbox {#2}} \newcommand {\framebox }[1][]{\LWRframebox } \)
\(\newcommand {\setlength }[2]{}\)
\(\newcommand {\addtolength }[2]{}\)
\(\newcommand {\setcounter }[2]{}\)
\(\newcommand {\addtocounter }[2]{}\)
\(\newcommand {\cline }[1]{}\)
\(\newcommand {\directlua }[1]{\text {(directlua)}}\)
\(\newcommand {\luatexdirectlua }[1]{\text {(directlua)}}\)
\(\newcommand {\protect }{}\)
\(\def \LWRabsorbnumber #1 {}\)
\(\def \LWRabsorbquotenumber "#1 {}\)
\(\def \mathchar {\ifnextchar "\LWRabsorbquotenumber \LWRabsorbnumber }\)
\(\def \mathcode #1={\mathchar }\)
\(\let \delcode \mathcode \)
\(\let \delimiter \mathchar \)
\(\let \LWRref \ref \)
\(\renewcommand {\ref }{\ifstar \LWRref \LWRref }\)
\(\newcommand {\intertext }[1]{\text {#1}\notag \\}\)
\(\newcommand {\mathllap }[2][]{{#1#2}}\)
\(\newcommand {\mathrlap }[2][]{{#1#2}}\)
\(\newcommand {\mathclap }[2][]{{#1#2}}\)
\(\newcommand {\mathmbox }[1]{#1}\)
\(\newcommand {\clap }[1]{#1}\)
\(\newcommand {\LWRmathmakebox }[2][]{#2}\)
\(\newcommand {\mathmakebox }[1][]{\LWRmathmakebox }\)
\(\newcommand {\cramped }[2][]{{#1#2}}\)
\(\newcommand {\crampedllap }[2][]{{#1#2}}\)
\(\newcommand {\crampedrlap }[2][]{{#1#2}}\)
\(\newcommand {\crampedclap }[2][]{{#1#2}}\)
\(\newenvironment {crampedsubarray}[1]{}{}\)
\(\newcommand {\crampedsubstack }{}\)
\(\newcommand {\smashoperator }[2][]{#2\limits }\)
\(\newcommand {\adjustlimits }{}\)
\(\newcommand {\SwapAboveDisplaySkip }{}\)
\(\require {extpfeil}\)
\(\Newextarrow \xleftrightarrow {10,10}{0x2194}\)
\(\Newextarrow \xLeftarrow {10,10}{0x21d0}\)
\(\Newextarrow \xhookleftarrow {10,10}{0x21a9}\)
\(\Newextarrow \xmapsto {10,10}{0x21a6}\)
\(\Newextarrow \xRightarrow {10,10}{0x21d2}\)
\(\Newextarrow \xLeftrightarrow {10,10}{0x21d4}\)
\(\Newextarrow \xhookrightarrow {10,10}{0x21aa}\)
\(\Newextarrow \xrightharpoondown {10,10}{0x21c1}\)
\(\Newextarrow \xleftharpoondown {10,10}{0x21bd}\)
\(\Newextarrow \xrightleftharpoons {10,10}{0x21cc}\)
\(\Newextarrow \xrightharpoonup {10,10}{0x21c0}\)
\(\Newextarrow \xleftharpoonup {10,10}{0x21bc}\)
\(\Newextarrow \xleftrightharpoons {10,10}{0x21cb}\)
\(\newcommand {\LWRdounderbracket }[3]{\underset {#3}{\underline {#1}}}\)
\(\newcommand {\LWRunderbracket }[2][]{\LWRdounderbracket {#2}}\)
\(\newcommand {\underbracket }[1][]{\LWRunderbracket }\)
\(\newcommand {\LWRdooverbracket }[3]{\overset {#3}{\overline {#1}}}\)
\(\newcommand {\LWRoverbracket }[2][]{\LWRdooverbracket {#2}}\)
\(\newcommand {\overbracket }[1][]{\LWRoverbracket }\)
\(\newcommand {\LATEXunderbrace }[1]{\underbrace {#1}}\)
\(\newcommand {\LATEXoverbrace }[1]{\overbrace {#1}}\)
\(\newenvironment {matrix*}[1][]{\begin {matrix}}{\end {matrix}}\)
\(\newenvironment {pmatrix*}[1][]{\begin {pmatrix}}{\end {pmatrix}}\)
\(\newenvironment {bmatrix*}[1][]{\begin {bmatrix}}{\end {bmatrix}}\)
\(\newenvironment {Bmatrix*}[1][]{\begin {Bmatrix}}{\end {Bmatrix}}\)
\(\newenvironment {vmatrix*}[1][]{\begin {vmatrix}}{\end {vmatrix}}\)
\(\newenvironment {Vmatrix*}[1][]{\begin {Vmatrix}}{\end {Vmatrix}}\)
\(\newenvironment {smallmatrix*}[1][]{\begin {matrix}}{\end {matrix}}\)
\(\newenvironment {psmallmatrix*}[1][]{\begin {pmatrix}}{\end {pmatrix}}\)
\(\newenvironment {bsmallmatrix*}[1][]{\begin {bmatrix}}{\end {bmatrix}}\)
\(\newenvironment {Bsmallmatrix*}[1][]{\begin {Bmatrix}}{\end {Bmatrix}}\)
\(\newenvironment {vsmallmatrix*}[1][]{\begin {vmatrix}}{\end {vmatrix}}\)
\(\newenvironment {Vsmallmatrix*}[1][]{\begin {Vmatrix}}{\end {Vmatrix}}\)
\(\newenvironment {psmallmatrix}[1][]{\begin {pmatrix}}{\end {pmatrix}}\)
\(\newenvironment {bsmallmatrix}[1][]{\begin {bmatrix}}{\end {bmatrix}}\)
\(\newenvironment {Bsmallmatrix}[1][]{\begin {Bmatrix}}{\end {Bmatrix}}\)
\(\newenvironment {vsmallmatrix}[1][]{\begin {vmatrix}}{\end {vmatrix}}\)
\(\newenvironment {Vsmallmatrix}[1][]{\begin {Vmatrix}}{\end {Vmatrix}}\)
\(\newcommand {\LWRmultlined }[1][]{\begin {multline*}}\)
\(\newenvironment {multlined}[1][]{\LWRmultlined }{\end {multline*}}\)
\(\let \LWRorigshoveleft \shoveleft \)
\(\renewcommand {\shoveleft }[1][]{\LWRorigshoveleft }\)
\(\let \LWRorigshoveright \shoveright \)
\(\renewcommand {\shoveright }[1][]{\LWRorigshoveright }\)
\(\newenvironment {dcases}{\begin {cases}}{\end {cases}}\)
\(\newenvironment {dcases*}{\begin {cases}}{\end {cases}}\)
\(\newenvironment {rcases}{\begin {cases}}{\end {cases}}\)
\(\newenvironment {rcases*}{\begin {cases}}{\end {cases}}\)
\(\newenvironment {drcases}{\begin {cases}}{\end {cases}}\)
\(\newenvironment {drcases*}{\begin {cases}}{\end {cases}}\)
\(\newenvironment {cases*}{\begin {cases}}{\end {cases}}\)
\(\newcommand {\MoveEqLeft }[1][]{}\)
\(\def \LWRAboxed #1!|!{\fbox {\(#1\)}&\fbox {\(#2\)}} \newcommand {\Aboxed }[1]{\LWRAboxed #1&&!|!} \)
\( \newcommand {\LWRABLines }[1][\Updownarrow ]{#1 \notag \\}\newcommand {\ArrowBetweenLines }{\ifstar \LWRABLines \LWRABLines } \)
\(\newcommand {\shortintertext }[1]{\text {#1}\notag \\}\)
\(\newcommand {\vdotswithin }[1]{\hspace {.5em}\vdots }\)
\(\newcommand {\LWRshortvdotswithinstar }[1]{\vdots \hspace {.5em} & \\}\)
\(\newcommand {\LWRshortvdotswithinnostar }[1]{& \hspace {.5em}\vdots \\}\)
\(\newcommand {\shortvdotswithin }{\ifstar \LWRshortvdotswithinstar \LWRshortvdotswithinnostar }\)
\(\newcommand {\MTFlushSpaceAbove }{}\)
\(\newcommand {\MTFlushSpaceBelow }{\\}\)
\(\newcommand \lparen {(}\)
\(\newcommand \rparen {)}\)
\(\newcommand {\ordinarycolon }{:}\)
\(\newcommand {\vcentcolon }{\mathrel {\mathop \ordinarycolon }}\)
\(\newcommand \dblcolon {\vcentcolon \vcentcolon }\)
\(\newcommand \coloneqq {\vcentcolon =}\)
\(\newcommand \Coloneqq {\dblcolon =}\)
\(\newcommand \coloneq {\vcentcolon {-}}\)
\(\newcommand \Coloneq {\dblcolon {-}}\)
\(\newcommand \eqqcolon {=\vcentcolon }\)
\(\newcommand \Eqqcolon {=\dblcolon }\)
\(\newcommand \eqcolon {\mathrel {-}\vcentcolon }\)
\(\newcommand \Eqcolon {\mathrel {-}\dblcolon }\)
\(\newcommand \colonapprox {\vcentcolon \approx }\)
\(\newcommand \Colonapprox {\dblcolon \approx }\)
\(\newcommand \colonsim {\vcentcolon \sim }\)
\(\newcommand \Colonsim {\dblcolon \sim }\)
\(\newcommand {\nuparrow }{\mathrel {\cancel {\uparrow }}}\)
\(\newcommand {\ndownarrow }{\mathrel {\cancel {\downarrow }}}\)
\(\newcommand {\bigtimes }{\mathop {\Large \times }\limits }\)
\(\newcommand {\prescript }[3]{{}^{#1}_{#2}#3}\)
\(\newenvironment {lgathered}{\begin {gathered}}{\end {gathered}}\)
\(\newenvironment {rgathered}{\begin {gathered}}{\end {gathered}}\)
\(\newcommand {\splitfrac }[2]{{}^{#1}_{#2}}\)
\(\let \splitdfrac \splitfrac \)
\(\newcommand {\LWRoverlaysymbols }[2]{\mathord {\smash {\mathop {#2\strut }\limits ^{\smash {\lower 3ex{#1}}}}\strut }}\)
\(\newcommand{\alphaup}{\unicode{x03B1}}\)
\(\newcommand{\betaup}{\unicode{x03B2}}\)
\(\newcommand{\gammaup}{\unicode{x03B3}}\)
\(\newcommand{\digammaup}{\unicode{x03DD}}\)
\(\newcommand{\deltaup}{\unicode{x03B4}}\)
\(\newcommand{\epsilonup}{\unicode{x03F5}}\)
\(\newcommand{\varepsilonup}{\unicode{x03B5}}\)
\(\newcommand{\zetaup}{\unicode{x03B6}}\)
\(\newcommand{\etaup}{\unicode{x03B7}}\)
\(\newcommand{\thetaup}{\unicode{x03B8}}\)
\(\newcommand{\varthetaup}{\unicode{x03D1}}\)
\(\newcommand{\iotaup}{\unicode{x03B9}}\)
\(\newcommand{\kappaup}{\unicode{x03BA}}\)
\(\newcommand{\varkappaup}{\unicode{x03F0}}\)
\(\newcommand{\lambdaup}{\unicode{x03BB}}\)
\(\newcommand{\muup}{\unicode{x03BC}}\)
\(\newcommand{\nuup}{\unicode{x03BD}}\)
\(\newcommand{\xiup}{\unicode{x03BE}}\)
\(\newcommand{\omicronup}{\unicode{x03BF}}\)
\(\newcommand{\piup}{\unicode{x03C0}}\)
\(\newcommand{\varpiup}{\unicode{x03D6}}\)
\(\newcommand{\rhoup}{\unicode{x03C1}}\)
\(\newcommand{\varrhoup}{\unicode{x03F1}}\)
\(\newcommand{\sigmaup}{\unicode{x03C3}}\)
\(\newcommand{\varsigmaup}{\unicode{x03C2}}\)
\(\newcommand{\tauup}{\unicode{x03C4}}\)
\(\newcommand{\upsilonup}{\unicode{x03C5}}\)
\(\newcommand{\phiup}{\unicode{x03D5}}\)
\(\newcommand{\varphiup}{\unicode{x03C6}}\)
\(\newcommand{\chiup}{\unicode{x03C7}}\)
\(\newcommand{\psiup}{\unicode{x03C8}}\)
\(\newcommand{\omegaup}{\unicode{x03C9}}\)
\(\newcommand{\Alphaup}{\unicode{x0391}}\)
\(\newcommand{\Betaup}{\unicode{x0392}}\)
\(\newcommand{\Gammaup}{\unicode{x0393}}\)
\(\newcommand{\Digammaup}{\unicode{x03DC}}\)
\(\newcommand{\Deltaup}{\unicode{x0394}}\)
\(\newcommand{\Epsilonup}{\unicode{x0395}}\)
\(\newcommand{\Zetaup}{\unicode{x0396}}\)
\(\newcommand{\Etaup}{\unicode{x0397}}\)
\(\newcommand{\Thetaup}{\unicode{x0398}}\)
\(\newcommand{\Varthetaup}{\unicode{x03F4}}\)
\(\newcommand{\Iotaup}{\unicode{x0399}}\)
\(\newcommand{\Kappaup}{\unicode{x039A}}\)
\(\newcommand{\Lambdaup}{\unicode{x039B}}\)
\(\newcommand{\Muup}{\unicode{x039C}}\)
\(\newcommand{\Nuup}{\unicode{x039D}}\)
\(\newcommand{\Xiup}{\unicode{x039E}}\)
\(\newcommand{\Omicronup}{\unicode{x039F}}\)
\(\newcommand{\Piup}{\unicode{x03A0}}\)
\(\newcommand{\Varpiup}{\unicode{x03D6}}\)
\(\newcommand{\Rhoup}{\unicode{x03A1}}\)
\(\newcommand{\Sigmaup}{\unicode{x03A3}}\)
\(\newcommand{\Tauup}{\unicode{x03A4}}\)
\(\newcommand{\Upsilonup}{\unicode{x03A5}}\)
\(\newcommand{\Phiup}{\unicode{x03A6}}\)
\(\newcommand{\Chiup}{\unicode{x03A7}}\)
\(\newcommand{\Psiup}{\unicode{x03A8}}\)
\(\newcommand{\Omegaup}{\unicode{x03A9}}\)
\(\newcommand{\alphait}{\unicode{x1D6FC}}\)
\(\newcommand{\betait}{\unicode{x1D6FD}}\)
\(\newcommand{\gammait}{\unicode{x1D6FE}}\)
\(\newcommand{\digammait}{\mathit{\unicode{x03DD}}}\)
\(\newcommand{\deltait}{\unicode{x1D6FF}}\)
\(\newcommand{\epsilonit}{\unicode{x1D716}}\)
\(\newcommand{\varepsilonit}{\unicode{x1D700}}\)
\(\newcommand{\zetait}{\unicode{x1D701}}\)
\(\newcommand{\etait}{\unicode{x1D702}}\)
\(\newcommand{\thetait}{\unicode{x1D703}}\)
\(\newcommand{\varthetait}{\unicode{x1D717}}\)
\(\newcommand{\iotait}{\unicode{x1D704}}\)
\(\newcommand{\kappait}{\unicode{x1D705}}\)
\(\newcommand{\varkappait}{\unicode{x1D718}}\)
\(\newcommand{\lambdait}{\unicode{x1D706}}\)
\(\newcommand{\muit}{\unicode{x1D707}}\)
\(\newcommand{\nuit}{\unicode{x1D708}}\)
\(\newcommand{\xiit}{\unicode{x1D709}}\)
\(\newcommand{\omicronit}{\unicode{x1D70A}}\)
\(\newcommand{\piit}{\unicode{x1D70B}}\)
\(\newcommand{\varpiit}{\unicode{x1D71B}}\)
\(\newcommand{\rhoit}{\unicode{x1D70C}}\)
\(\newcommand{\varrhoit}{\unicode{x1D71A}}\)
\(\newcommand{\sigmait}{\unicode{x1D70E}}\)
\(\newcommand{\varsigmait}{\unicode{x1D70D}}\)
\(\newcommand{\tauit}{\unicode{x1D70F}}\)
\(\newcommand{\upsilonit}{\unicode{x1D710}}\)
\(\newcommand{\phiit}{\unicode{x1D719}}\)
\(\newcommand{\varphiit}{\unicode{x1D711}}\)
\(\newcommand{\chiit}{\unicode{x1D712}}\)
\(\newcommand{\psiit}{\unicode{x1D713}}\)
\(\newcommand{\omegait}{\unicode{x1D714}}\)
\(\newcommand{\Alphait}{\unicode{x1D6E2}}\)
\(\newcommand{\Betait}{\unicode{x1D6E3}}\)
\(\newcommand{\Gammait}{\unicode{x1D6E4}}\)
\(\newcommand{\Digammait}{\mathit{\unicode{x03DC}}}\)
\(\newcommand{\Deltait}{\unicode{x1D6E5}}\)
\(\newcommand{\Epsilonit}{\unicode{x1D6E6}}\)
\(\newcommand{\Zetait}{\unicode{x1D6E7}}\)
\(\newcommand{\Etait}{\unicode{x1D6E8}}\)
\(\newcommand{\Thetait}{\unicode{x1D6E9}}\)
\(\newcommand{\Varthetait}{\unicode{x1D6F3}}\)
\(\newcommand{\Iotait}{\unicode{x1D6EA}}\)
\(\newcommand{\Kappait}{\unicode{x1D6EB}}\)
\(\newcommand{\Lambdait}{\unicode{x1D6EC}}\)
\(\newcommand{\Muit}{\unicode{x1D6ED}}\)
\(\newcommand{\Nuit}{\unicode{x1D6EE}}\)
\(\newcommand{\Xiit}{\unicode{x1D6EF}}\)
\(\newcommand{\Omicronit}{\unicode{x1D6F0}}\)
\(\newcommand{\Piit}{\unicode{x1D6F1}}\)
\(\newcommand{\Rhoit}{\unicode{x1D6F2}}\)
\(\newcommand{\Sigmait}{\unicode{x1D6F4}}\)
\(\newcommand{\Tauit}{\unicode{x1D6F5}}\)
\(\newcommand{\Upsilonit}{\unicode{x1D6F6}}\)
\(\newcommand{\Phiit}{\unicode{x1D6F7}}\)
\(\newcommand{\Chiit}{\unicode{x1D6F8}}\)
\(\newcommand{\Psiit}{\unicode{x1D6F9}}\)
\(\newcommand{\Omegait}{\unicode{x1D6FA}}\)
\(\let \digammaup \Digammaup \)
\(\renewcommand {\digammait }{\mathit {\digammaup }}\)
\(\newcommand {\smallin }{\unicode {x220A}}\)
\(\newcommand {\smallowns }{\unicode {x220D}}\)
\(\newcommand {\notsmallin }{\LWRoverlaysymbols {/}{\unicode {x220A}}}\)
\(\newcommand {\notsmallowns }{\LWRoverlaysymbols {/}{\unicode {x220D}}}\)
\(\newcommand {\rightangle }{\unicode {x221F}}\)
\(\newcommand {\intclockwise }{\unicode {x2231}}\)
\(\newcommand {\ointclockwise }{\unicode {x2232}}\)
\(\newcommand {\ointctrclockwise }{\unicode {x2233}}\)
\(\newcommand {\oiint }{\unicode {x222F}}\)
\(\newcommand {\oiiint }{\unicode {x2230}}\)
\(\newcommand {\ddag }{\unicode {x2021}}\)
\(\newcommand {\P }{\unicode {x00B6}}\)
\(\newcommand {\copyright }{\unicode {x00A9}}\)
\(\newcommand {\dag }{\unicode {x2020}}\)
\(\newcommand {\pounds }{\unicode {x00A3}}\)
\(\newcommand {\iddots }{\unicode {x22F0}}\)
\(\newcommand {\utimes }{\overline {\times }}\)
\(\newcommand {\dtimes }{\underline {\times }}\)
\(\newcommand {\udtimes }{\overline {\underline {\times }}}\)
\(\newcommand {\leftwave }{\left \{}\)
\(\newcommand {\rightwave }{\right \}}\)
\(\newcommand {\toprule }[1][]{\hline }\)
\(\let \midrule \toprule \)
\(\let \bottomrule \toprule \)
\(\newcommand {\cmidrule }[2][]{}\)
\(\newcommand {\morecmidrules }{}\)
\(\newcommand {\specialrule }[3]{\hline }\)
\(\newcommand {\addlinespace }[1][]{}\)
\(\newcommand {\LWRsubmultirow }[2][]{#2}\)
\(\newcommand {\LWRmultirow }[2][]{\LWRsubmultirow }\)
\(\newcommand {\multirow }[2][]{\LWRmultirow }\)
\(\newcommand {\mrowcell }{}\)
\(\newcommand {\mcolrowcell }{}\)
\(\newcommand {\STneed }[1]{}\)
\( \newcommand {\multicolumn }[3]{#3}\)
\(\newcommand {\tothe }[1]{^{#1}}\)
\(\newcommand {\raiseto }[2]{{#2}^{#1}}\)
\(\newcommand {\ang }[2][]{(\mathrm {#2})\degree }\)
\(\newcommand {\num }[2][]{\mathrm {#2}}\)
\(\newcommand {\si }[2][]{\mathrm {#2}}\)
\(\newcommand {\LWRSI }[2][]{\mathrm {#1\LWRSInumber \,#2}}\)
\(\newcommand {\SI }[2][]{\def \LWRSInumber {#2}\LWRSI }\)
\(\newcommand {\numlist }[2][]{\mathrm {#2}}\)
\(\newcommand {\numrange }[3][]{\mathrm {#2\,\unicode {x2013}\,#3}}\)
\(\newcommand {\SIlist }[3][]{\mathrm {#2\,#3}}\)
\(\newcommand {\SIrange }[4][]{\mathrm {#2\,#4\,\unicode {x2013}\,#3\,#4}}\)
\(\newcommand {\tablenum }[2][]{\mathrm {#2}}\)
\(\newcommand {\ampere }{\mathrm {A}}\)
\(\newcommand {\candela }{\mathrm {cd}}\)
\(\newcommand {\kelvin }{\mathrm {K}}\)
\(\newcommand {\kilogram }{\mathrm {kg}}\)
\(\newcommand {\metre }{\mathrm {m}}\)
\(\newcommand {\mole }{\mathrm {mol}}\)
\(\newcommand {\second }{\mathrm {s}}\)
\(\newcommand {\becquerel }{\mathrm {Bq}}\)
\(\newcommand {\degreeCelsius }{\unicode {x2103}}\)
\(\newcommand {\coulomb }{\mathrm {C}}\)
\(\newcommand {\farad }{\mathrm {F}}\)
\(\newcommand {\gray }{\mathrm {Gy}}\)
\(\newcommand {\hertz }{\mathrm {Hz}}\)
\(\newcommand {\henry }{\mathrm {H}}\)
\(\newcommand {\joule }{\mathrm {J}}\)
\(\newcommand {\katal }{\mathrm {kat}}\)
\(\newcommand {\lumen }{\mathrm {lm}}\)
\(\newcommand {\lux }{\mathrm {lx}}\)
\(\newcommand {\newton }{\mathrm {N}}\)
\(\newcommand {\ohm }{\mathrm {\Omega }}\)
\(\newcommand {\pascal }{\mathrm {Pa}}\)
\(\newcommand {\radian }{\mathrm {rad}}\)
\(\newcommand {\siemens }{\mathrm {S}}\)
\(\newcommand {\sievert }{\mathrm {Sv}}\)
\(\newcommand {\steradian }{\mathrm {sr}}\)
\(\newcommand {\tesla }{\mathrm {T}}\)
\(\newcommand {\volt }{\mathrm {V}}\)
\(\newcommand {\watt }{\mathrm {W}}\)
\(\newcommand {\weber }{\mathrm {Wb}}\)
\(\newcommand {\day }{\mathrm {d}}\)
\(\newcommand {\degree }{\mathrm {^\circ }}\)
\(\newcommand {\hectare }{\mathrm {ha}}\)
\(\newcommand {\hour }{\mathrm {h}}\)
\(\newcommand {\litre }{\mathrm {l}}\)
\(\newcommand {\liter }{\mathrm {L}}\)
\(\newcommand {\arcminute }{^\prime }\)
\(\newcommand {\minute }{\mathrm {min}}\)
\(\newcommand {\arcsecond }{^{\prime \prime }}\)
\(\newcommand {\tonne }{\mathrm {t}}\)
\(\newcommand {\astronomicalunit }{au}\)
\(\newcommand {\atomicmassunit }{u}\)
\(\newcommand {\bohr }{\mathit {a}_0}\)
\(\newcommand {\clight }{\mathit {c}_0}\)
\(\newcommand {\dalton }{\mathrm {D}_\mathrm {a}}\)
\(\newcommand {\electronmass }{\mathit {m}_{\mathrm {e}}}\)
\(\newcommand {\electronvolt }{\mathrm {eV}}\)
\(\newcommand {\elementarycharge }{\mathit {e}}\)
\(\newcommand {\hartree }{\mathit {E}_{\mathrm {h}}}\)
\(\newcommand {\planckbar }{\mathit {\unicode {x210F}}}\)
\(\newcommand {\angstrom }{\mathrm {\unicode {x212B}}}\)
\(\let \LWRorigbar \bar \)
\(\newcommand {\bar }{\mathrm {bar}}\)
\(\newcommand {\barn }{\mathrm {b}}\)
\(\newcommand {\bel }{\mathrm {B}}\)
\(\newcommand {\decibel }{\mathrm {dB}}\)
\(\newcommand {\knot }{\mathrm {kn}}\)
\(\newcommand {\mmHg }{\mathrm {mmHg}}\)
\(\newcommand {\nauticalmile }{\mathrm {M}}\)
\(\newcommand {\neper }{\mathrm {Np}}\)
\(\newcommand {\yocto }{\mathrm {y}}\)
\(\newcommand {\zepto }{\mathrm {z}}\)
\(\newcommand {\atto }{\mathrm {a}}\)
\(\newcommand {\femto }{\mathrm {f}}\)
\(\newcommand {\pico }{\mathrm {p}}\)
\(\newcommand {\nano }{\mathrm {n}}\)
\(\newcommand {\micro }{\mathrm {\unicode {x00B5}}}\)
\(\newcommand {\milli }{\mathrm {m}}\)
\(\newcommand {\centi }{\mathrm {c}}\)
\(\newcommand {\deci }{\mathrm {d}}\)
\(\newcommand {\deca }{\mathrm {da}}\)
\(\newcommand {\hecto }{\mathrm {h}}\)
\(\newcommand {\kilo }{\mathrm {k}}\)
\(\newcommand {\mega }{\mathrm {M}}\)
\(\newcommand {\giga }{\mathrm {G}}\)
\(\newcommand {\tera }{\mathrm {T}}\)
\(\newcommand {\peta }{\mathrm {P}}\)
\(\newcommand {\exa }{\mathrm {E}}\)
\(\newcommand {\zetta }{\mathrm {Z}}\)
\(\newcommand {\yotta }{\mathrm {Y}}\)
\(\newcommand {\percent }{\mathrm {\%}}\)
\(\newcommand {\meter }{\mathrm {m}}\)
\(\newcommand {\metre }{\mathrm {m}}\)
\(\newcommand {\gram }{\mathrm {g}}\)
\(\newcommand {\kg }{\kilo \gram }\)
\(\newcommand {\of }[1]{_{\mathrm {#1}}}\)
\(\newcommand {\squared }{^2}\)
\(\newcommand {\square }[1]{\mathrm {#1}^2}\)
\(\newcommand {\cubed }{^3}\)
\(\newcommand {\cubic }[1]{\mathrm {#1}^3}\)
\(\newcommand {\per }{/}\)
\(\newcommand {\celsius }{\unicode {x2103}}\)
\(\newcommand {\fg }{\femto \gram }\)
\(\newcommand {\pg }{\pico \gram }\)
\(\newcommand {\ng }{\nano \gram }\)
\(\newcommand {\ug }{\micro \gram }\)
\(\newcommand {\mg }{\milli \gram }\)
\(\newcommand {\g }{\gram }\)
\(\newcommand {\kg }{\kilo \gram }\)
\(\newcommand {\amu }{\mathrm {u}}\)
\(\newcommand {\nm }{\nano \metre }\)
\(\newcommand {\um }{\micro \metre }\)
\(\newcommand {\mm }{\milli \metre }\)
\(\newcommand {\cm }{\centi \metre }\)
\(\newcommand {\dm }{\deci \metre }\)
\(\newcommand {\m }{\metre }\)
\(\newcommand {\km }{\kilo \metre }\)
\(\newcommand {\as }{\atto \second }\)
\(\newcommand {\fs }{\femto \second }\)
\(\newcommand {\ps }{\pico \second }\)
\(\newcommand {\ns }{\nano \second }\)
\(\newcommand {\us }{\micro \second }\)
\(\newcommand {\ms }{\milli \second }\)
\(\newcommand {\s }{\second }\)
\(\newcommand {\fmol }{\femto \mol }\)
\(\newcommand {\pmol }{\pico \mol }\)
\(\newcommand {\nmol }{\nano \mol }\)
\(\newcommand {\umol }{\micro \mol }\)
\(\newcommand {\mmol }{\milli \mol }\)
\(\newcommand {\mol }{\mol }\)
\(\newcommand {\kmol }{\kilo \mol }\)
\(\newcommand {\pA }{\pico \ampere }\)
\(\newcommand {\nA }{\nano \ampere }\)
\(\newcommand {\uA }{\micro \ampere }\)
\(\newcommand {\mA }{\milli \ampere }\)
\(\newcommand {\A }{\ampere }\)
\(\newcommand {\kA }{\kilo \ampere }\)
\(\newcommand {\ul }{\micro \litre }\)
\(\newcommand {\ml }{\milli \litre }\)
\(\newcommand {\l }{\litre }\)
\(\newcommand {\hl }{\hecto \litre }\)
\(\newcommand {\uL }{\micro \liter }\)
\(\newcommand {\mL }{\milli \liter }\)
\(\newcommand {\L }{\liter }\)
\(\newcommand {\hL }{\hecto \liter }\)
\(\newcommand {\mHz }{\milli \hertz }\)
\(\newcommand {\Hz }{\hertz }\)
\(\newcommand {\kHz }{\kilo \hertz }\)
\(\newcommand {\MHz }{\mega \hertz }\)
\(\newcommand {\GHz }{\giga \hertz }\)
\(\newcommand {\THz }{\tera \hertz }\)
\(\newcommand {\mN }{\milli \newton }\)
\(\newcommand {\N }{\newton }\)
\(\newcommand {\kN }{\kilo \newton }\)
\(\newcommand {\MN }{\mega \newton }\)
\(\newcommand {\Pa }{\pascal }\)
\(\newcommand {\kPa }{\kilo \pascal }\)
\(\newcommand {\MPa }{\mega \pascal }\)
\(\newcommand {\GPa }{\giga \pascal }\)
\(\newcommand {\mohm }{\milli \ohm }\)
\(\newcommand {\kohm }{\kilo \ohm }\)
\(\newcommand {\Mohm }{\mega \ohm }\)
\(\newcommand {\pV }{\pico \volt }\)
\(\newcommand {\nV }{\nano \volt }\)
\(\newcommand {\uV }{\micro \volt }\)
\(\newcommand {\mV }{\milli \volt }\)
\(\newcommand {\V }{\volt }\)
\(\newcommand {\kV }{\kilo \volt }\)
\(\newcommand {\W }{\watt }\)
\(\newcommand {\uW }{\micro \watt }\)
\(\newcommand {\mW }{\milli \watt }\)
\(\newcommand {\kW }{\kilo \watt }\)
\(\newcommand {\MW }{\mega \watt }\)
\(\newcommand {\GW }{\giga \watt }\)
\(\newcommand {\J }{\joule }\)
\(\newcommand {\uJ }{\micro \joule }\)
\(\newcommand {\mJ }{\milli \joule }\)
\(\newcommand {\kJ }{\kilo \joule }\)
\(\newcommand {\eV }{\electronvolt }\)
\(\newcommand {\meV }{\milli \electronvolt }\)
\(\newcommand {\keV }{\kilo \electronvolt }\)
\(\newcommand {\MeV }{\mega \electronvolt }\)
\(\newcommand {\GeV }{\giga \electronvolt }\)
\(\newcommand {\TeV }{\tera \electronvolt }\)
\(\newcommand {\kWh }{\kilo \watt \hour }\)
\(\newcommand {\F }{\farad }\)
\(\newcommand {\fF }{\femto \farad }\)
\(\newcommand {\pF }{\pico \farad }\)
\(\newcommand {\K }{\mathrm {K}}\)
\(\newcommand {\dB }{\mathrm {dB}}\)
\(\newcommand {\kibi }{\mathrm {Ki}}\)
\(\newcommand {\mebi }{\mathrm {Mi}}\)
\(\newcommand {\gibi }{\mathrm {Gi}}\)
\(\newcommand {\tebi }{\mathrm {Ti}}\)
\(\newcommand {\pebi }{\mathrm {Pi}}\)
\(\newcommand {\exbi }{\mathrm {Ei}}\)
\(\newcommand {\zebi }{\mathrm {Zi}}\)
\(\newcommand {\yobi }{\mathrm {Yi}}\)
\(\require {mhchem}\)
\(\require {cancel}\)
\(\newcommand {\fint }{âĺŊ}\)
\(\newcommand {\hdots }{\cdots }\)
\(\newcommand {\mathnormal }[1]{#1}\)
\(\newcommand {\vecs }[2]{\vec {#1}_{#2}}\)
\(\renewcommand {\O }{\ensuremath {\mathcal {O}}}\)
\(\renewcommand {\P }{\ensuremath {\mathbb {P}}}\)
\(\renewcommand {\i }{\ensuremath {\mathrm {i}}}\)
\(\newcommand {\area }{\ensuremath {\mathrm {area}}}\)
\(\newcommand {\name }[1]{\textsc {#1}}\)
\(\newcommand {\smallpmatrix }[1]{\left (\begin {smallmatrix}#1\end {smallmatrix}\right )}\)
\(\newcommand {\matlab }{{\fontfamily {bch}\scshape \selectfont {}Matlab}}\)
\(\newcommand {\innerproduct }[1]{\left \langle {#1}\right \rangle }\)
\(\newcommand {\norm }[1]{\left \Vert {#1}\right \Vert }\)
\(\renewcommand {\natural }{\mathbb {N}}\)
\(\newcommand {\integer }{\mathbb {Z}}\)
\(\newcommand {\rational }{\mathbb {Q}}\)
\(\newcommand {\real }{\mathbb {R}}\)
\(\newcommand {\complex }{\mathbb {C}}\)
\(\renewcommand {\d }{\mathop {}\!\mathrm {d}}\)
\(\newcommand {\dr }{\d {}r}\)
\(\newcommand {\ds }{\d {}s}\)
\(\newcommand {\dt }{\d {}t}\)
\(\newcommand {\du }{\d {}u}\)
\(\newcommand {\dv }{\d {}v}\)
\(\newcommand {\dw }{\d {}w}\)
\(\newcommand {\dx }{\d {}x}\)
\(\newcommand {\dy }{\d {}y}\)
\(\newcommand {\dz }{\d {}z}\)
\(\newcommand {\dsigma }{\d {}\sigma }\)
\(\newcommand {\dphi }{\d {}\phi }\)
\(\newcommand {\dvarphi }{\d {}\varphi }\)
\(\newcommand {\dtau }{\d {}\tau }\)
\(\newcommand {\dxi }{\d {}\xi }\)
\(\newcommand {\dtheta }{\d {}\theta }\)
\(\newcommand {\tp }{\mathrm {T}}\)
Kontrollpolygon
Bézier-Kurve: Eine Bézier-Kurve \(p\) vom Grad \(\le n\) in \(\real ^d\) besitzt eine
Parametrisierung mit Bernstein-Polynomen
\(\seteqnumber{0}{}{0}\)
\begin{align*}
p(t) := \sum _{k=0}^n c_k b_k^n(t),\quad t \in [0, 1].
\end{align*}
Die Koeffizienten \(c_k = (c_{k,1}, \dotsc , c_{k,d})\) können in einer \(((n + 1) \times d)\)-Matrix \(C\) kombiniert werden. Sie heißen Kontrollpunkte und
formen das Kontrollpolygon \(c\) für \(p\).
Beispiel (lineare und quadratische Bézier-Parametrisierung): Eine lineare Bézier-Parametrisierung \(p(t) = c_0 b_0^1(t) + c_1 b_1^1(t) = c_0 (1 - t) + c_1 t\) stellt die
Strecke \([c_0, c_1]\) dar. Der Punkt \(p(t)\) teilt dabei die Strecke im Verhältnis \(t : (1 - t)\).
Wenn die Kontrollpunkte nicht auf einer Gerade liegen, dann beschreibt eine quadratische Bézier-Parametrisierung \(p = \sum _{k=0}^2 c_k b_k^2\) ein Parabelstück. Das sieht man am einfachsten, wenn man zur
Monom-Darstellung übergeht: \(p(t) = (c_0 - 2c_1 + c_2)t^2 + (-2c_0 + 2c_1)t + c_0\). Für eine quadratische Kurve ist der Koeffizient von \(t^2\) nicht Null und parallel zur Symmetrieachse der
Parabel.
Eigenschaften von Bézier-Kurven
Eigenschaften von Bézier-Kurven: Die Form einer Bézier-Kurve, parametrisiert durch
\(p = \sum _{k=0}^n c_k b_k^n\), wird qualitativ durch ihr Kontrollpolygon \(c\) modelliert. Genauer gilt:
\(p(t)\) liegt in der konvexen Hülle von \(c_0, \dotsc , c_n\)
\(p(0) = c_0\) und \(p(1) = c_n\)
\(p’(0) = n(c_1 - c_0)\) und \(p’(1) = n(c_n - c_{n-1})\)
Die letzten beiden Eigenschaften werden auch Endpunktinterpolation bezeichnet, da das Kontrollpolygon tangential zur Bézier-Kurve ist, was sehr nützlich für
Design-Zwecke ist.
Beispiel (Bounding-Boxes): Eine wichtige Anwendung der Konvexhüllen-Eigenschaft ist die Konstruktion von Bounding-Boxes. Die konvexe Hülle der
Kontrollpunkte \(c_0, \dotsc , c_n \in \real ^d\) ist in der Box \([c_1^-, c_1^+] \times \dotsb \times [c_d^-, c_d^+]\) enthalten, wobei \(c_\nu ^- := \min _{k=0,\dotsc ,n} c_{k,\nu }\) und \(c_\nu ^+ :=
\max _{k=0,\dotsc ,n} c_{k,\nu }\).
Bounding-Boxes werden öfters in numerischen Algorithmen gebraucht. Ein typisches Beispiel ist die Bestimmung von Kurvenschnittpunkten. Bounding-Boxes zu schneiden ist ein schneller Test, ob Bézier-Kurven
Schnittpunkte haben können.
Algorithmus von de Casteljau
Algorithmus von de Casteljau: Ein Punkt \(p(t) = \sum _{k=0}^n c_k b_k^n(t)\), \(t \in [0, 1]\), auf einer Bézier-Kurve kann durch aufeinanderfolgendes Teilen der Kanten des
Kontrollpolygons im Verhältnis \(t : (1 - t)\) bestimmt werden.
Die Berechnungen können in einem dreieckigen Schema angeordnet werden. Der Punkt \(p(t)\) wird in \(n\) Schritten bestimmt. In jedem Schritt werden Konvexkombinationen von benachbarten Kontrollpunkten
berechnet:
\(\seteqnumber{0}{}{0}\)
\begin{align*}
p_k^m := (1 - t) p_k^{m-1} + t p_{k+1}^{m-1}
\end{align*}
mit \(p_k^0 := c_k\) und \(p_0^n = p(t)\).
\(\seteqnumber{0}{}{0}\)
\begin{align*}
\begin{array}{ccccccccccccc} p_0^0 & & & & p_1^0 & & \dots & & p_{n-1}^0 & & & & p_n^0\\ & \searrow & & \swarrow & &
\searrow & & \swarrow & & \searrow & & \swarrow \\ & & p_0^1 & & & & \dots & & & & p_{n-1}^1\\ & & & \searrow &
& & & & & \swarrow \\ & & & & & & \vdots & & \\ & & & & & {}_{1-t}\searrow & & \swarrow _{t\hspace {4mm}}\\
& & & & & & p_0^n \end {array}
\end{align*}
Differentiation von Bézier-Kurven
Ableitung einer Bézier-Kurve: Die Parametrisierung \(p = \sum _{k=0}^n c_k b_k^n\) einer Bézier-Kurve wird abgeleitet, indem Differenzen zwischen benachbarten Kontrollpunkten
gebildet werden:
\(\seteqnumber{0}{}{0}\)
\begin{align*}
p’ = n \sum _{k=0}^{n-1} (\Delta c_k) b_k^{n-1}\quad \text {mit}\quad \Delta c_k := c_{k+1} - c_k.
\end{align*}
Die \(m\)-te Ableitung parametrisiert eine Bézier-Kurve vom Grad \(\le n - m\) mit Kontrollpunkten
\(\seteqnumber{0}{}{0}\)
\begin{align*}
\frac {n!}{(n - m)!} \Delta ^m c_k,\quad k = 0, \dotsc , n - m.
\end{align*}
Insbesondere sind
\(\seteqnumber{0}{}{0}\)
\begin{align*}
\binom {n}{m} \Delta ^m c_0,\quad \binom {n}{m} \Delta ^m c_{n-m},\quad m = 0, \dotsc , n,
\end{align*}
die Taylor-Koeffizienten von \(p\) an den Endpunkten, d. h. \(p(t) = \sum _{m=0}^n \binom {n}{m} (\Delta ^m c_0) t^m\) und
\(p(t) = \sum _{m=0}^n \binom {n}{m} (\Delta ^m c_{n-m}) (1 - t)^m\)
Beispiel (Entfernung eines Punktes zu einer Bézier-Kurve): Ein zu einem Punkt \(q\) nächster Punkt \(p(t) = \sum _{k=0}^n c_k b_k^n(t)\) einer Bézier-Kurve ist einer
der Endpunkte (\(t = 0\) oder \(t = 1\)) oder erfüllt die Orthogonalitätsbedingung \(\varphi (t) = \innerproduct {q - p(t), p’(t)} = 0\). Darum müssen für eine numerische
Lösung nur die Nullstellen des Polynoms \(\varphi \) bestimmt werden. Das Polynom \(\varphi \) hat Grad \(\le 2n - 1\). Weil eine direkte, allgemeine Bestimmung von \(\varphi (t)\) zu aufwändig
wäre, benutzt man polynomiale Interpolation. Zuerst errechnet man die Kontrollpunkte \(n \Delta c_k\) von \(p’\). Dann wertet man \(p(t)\) und \(p’(t)\) an \(2n\) Stellen aus, z. B. an \(t_\ell = \ell
/(2n - 1)\), \(\ell = 0, \dotsc , 2n - 1\). Die Werte \(\varphi (t_\ell ) = \sum _{\nu =1}^d (q_\nu - p_\nu (t_\ell )) p_\nu ’(t_\ell )\) lassen sich leicht bestimmen. Durch sie kann man die Koeffizienten von
\(\varphi \) durch Interpolation errechnen.
Krümmung von Bézier-Kurven
Krümmung: Der Krümmungsvektor einer Kurve ist die Ableitung des normierten Tangentialvektors. Die Länge des Krümmungsvektors
beschreibt die Krümmung \(\kappa \). Im dreidimensionalen Raum gilt für eine durch \(r(t)\) regulär parametrisierte Kurve
\(\seteqnumber{0}{}{0}\)
\begin{align*}
\kappa (t) = \frac {\norm {r’(t) \times r’’(t)}}{\norm {r’(t)}^3}.
\end{align*}
Krümmung einer Bézier-Kurve: Die Krümmungen \(\kappa \) an den Endpunkten einer Bézier-Kurve, die durch \(p = \sum _{k=0}^n c_k b_k^n\) parametrisiert
wird, hat die folgende geometrische Interpretation. Wenn \(p’(0) \not = 0\) und \(p’(1) \not = 0\) gilt, dann ist
\(\seteqnumber{0}{}{0}\)
\begin{align*}
\kappa (0) = \frac {2(n - 1)}{n} \frac {\area [c_0, c_1, c_2]}{|c_1 - c_0|^3},\quad \kappa (1) = \frac {2(n - 1)}{n} \frac {\area [c_n, c_{n-1}, c_{n-2}]}{|c_{n-1} - c_n|^3},
\end{align*}
wobei \([a_0, a_1, a_2]\) das durch \(a_0, a_1, a_2\) bestimmte Dreieck bezeichnet und \(|v|\) die Länge des Vektors \(v\) ist.
Beispiel (glattes Anfügen von Bézier-Kurven): Bézier-Kurven gehen glatt ineinander über, wenn die Kontrollpunkte richtig gewählt werden. Seien dazu
\(p^\pm \) zwei reguläre Parametrisierungen mit einem gemeinsamen Endpunkt \(c_n^- = p^-(1) = p^+(0) = c_0^+\) gegeben. Stetige Differenzierbarkeit ist äquivalent zu Stetigkeit des
Einheits-Tangentenvektors \(p’/|p’|\). Aufgrund der Ableitungsformel ist dies der Fall, wenn
\(\seteqnumber{0}{}{0}\)
\begin{align*}
c_1^+ - c_0^+ = \delta (c_n^- - c_{n-1}^-)
\end{align*}
für ein \(\delta > 0\).
Für zweifache stetige Differenzierbarkeit müssen zusätzlich die Krümmungen mit dem Kehrwert des Krümmungsradius \(r\) übereinstimmen, also \(\kappa ^-(1) =
1/r = \kappa ^+(0)\). Mit der Formel für Krümmung von Bézier-Kurven ist diese Bedingung äquivalent zu
\(\seteqnumber{0}{}{0}\)
\begin{align*}
\delta ^3 \area [c_{n-2}^-, c_{n-1}^-, c_n^-] = \area [c_0^+, c_1^+, c_2^+],
\end{align*}
wobei \(\delta \) obiges Verhältnis der Längen der Tangentenvektoren ist.
Subdivision von Bézier-Kurven
Subdivision einer Bézier-Kurve: Eine Bézier-Kurve, die durch \(p(t) = \sum _{k=0}^n c_k b_k^n(t)\),
\(t \in [0, 1]\), parametrisiert wird, kann mithilfe des Algorithmus von de Casteljau in zwei Bézier-Kurven aufgespalten werden, die zu den Teilintervallen \([0, s]\) und \([s, 1]\) gehören. Die ersten und letzten
Kontrollpunkte \(p_0^m\) und \(p_{n-m}^m\), die beim \(m\)-ten de-Casteljau-Schritt erzeugt werden, ergeben die Kontrollpunkte des linken bzw. rechten Kurvensegments:
\(\seteqnumber{0}{}{0}\)
\begin{align*}
p^{\text {left}}(t) := p(st) &= \sum _{m=0}^n p_0^m b_m^n(t),\\ p^{\text {right}}(t) := p(s + (1 - s)t) &= \sum _{m=0}^n p_m^{n-m} b_m^n(t).
\end{align*}
Daher gehören die linken und rechten Kontrollpunkte zur linken bzw. rechten Diagonale des Schemas von de Casteljau.
Beispiel (Subdivision am Mittelpunkt): Die Subdivision am Mittelpunkt \(s = 1/2\) ist am gebräulichsten und findet ihre Anwendungen z. B. in der Computergrafik. Im quadratischen Fall ergibt sich
\(c_1^{\text {left}} = \frac {1}{2} c_0 + \frac {1}{2} c_1\) und \(c_2^{\text {left}} = \frac {1}{4} c_0 + \frac {1}{2} c_1 + \frac {1}{4} c_2\) für die Kontrollpunkte \(c_k^{\text {left}}\)
des linken Segments. In der Praxis verwendet man Matrixoperationen: Punkte werden liegend in einer Matrix gespeichert und Operationen werden als Matrix von links multipliziert. Somit ist
\(\seteqnumber{0}{}{0}\)
\begin{align*}
C^{\text {left}} = \begin{pmatrix}1 & 0 & 0\\1/2& 1/2 & 0\\1/4 & 2/4 & 1/4\end {pmatrix} \underbrace {\begin{pmatrix}c_{0,1} & c_{0,2} & \dots \\c_{1,1} &
c_{1,2} & \dots \\ c_{2,1} & c_{2,2} & \dots \end {pmatrix}}_C.
\end{align*}
Im kubischen Fall ist die Matrix-Form des Subdivisionsschrittes
\(\seteqnumber{0}{}{0}\)
\begin{align*}
C^{\text {left}} = \begin{pmatrix}1 & 0 & 0 & 0\\1/2& 1/2 & 0 & 0\\1/4 & 2/4 & 1/4 & 0\\ 1/8 & 3/8 & 3/8 & 1/8\end {pmatrix} C.
\end{align*}
Man erkennt schnell das allgemeine Muster
\(\seteqnumber{0}{}{0}\)
\begin{align*}
c_m^{\text {left}} = 2^{-m} \sum _{k=0}^m \binom {m}{k} c_k,
\end{align*}
das für alle Bézier-Kurven unabhängig vom Grad gilt.
Geometrische Hermite-Interpolation
vorzeichenbehaftete Krümmung: Die vorzeichenbehaftete Krümmung ist die Krümmung versehen mit einem Vorzeichen, und zwar mit einem
Minus genau dann, wenn die Kurve eine Rechtskurve beschreibt.
geometrische Hermite-Interpolation: Die Kontrollpunkte \(c_0, \dotsc , c_3\) einer ebenen kubischen Bézier-Kurve, die die Punkte \(p_j\) interpoliert, die normierten
Tangentenrichtungen \(d_j\) und die vorzeichenbehafteten Krümmungen \(\kappa _j\) (\(j = 0, 1\)) an den Endpunkten \(t = 0, 1\) des Parameterintervalls erfüllen
\(\seteqnumber{0}{}{0}\)
\begin{align*}
c_0 = p_0,\; c_3 = p_1,\quad c_1 = p_0 + \alpha _0 d_0 / 3,\; c_2 = p_1 - \alpha _1 d_1 / 3.
\end{align*}
Die Längen \(\alpha _j\) der Tangentenvektoren sind die positiven Lösungen des nicht-linearen Systems
\(\seteqnumber{0}{}{0}\)
\begin{align*}
\kappa _0 \alpha _0^2 &= d_0 \times (6(p_1 - p_0) - 2 \alpha _1 d_1)\\ \kappa _1 \alpha _1^2 &= d_1 \times (2 \alpha _0 d_0 - 6(p_1 - p_0))
\end{align*}
mit \(f \times g\) dem Kreuzprodukt der zwei Vektoren \(f\) und \(g\).
Wenn die Daten zu einer glatten Kurve mit nicht-verschwindender Krümmung gehören, dann hat das nicht-lineare System für einen hinreichend kleinen Abstand \(|p_1 - p_0|\) eine Lösung
und der Fehler der kubischen Bézier-Approximation ist von Ordnung \(\O (|p_1 - p_0|^6)\).