ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ВСория ΠΈ построСниС

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΎΡ†Π΅Π½ΠΊΡƒ точности приблиТСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f (x) сплайном S (x) Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π΅Π΅ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… свойств. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС константы Π² ΠΎΡ†Π΅Π½ΠΊΠ°Ρ… Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π’ ΡΠΈΠ»Ρƒ слоТности ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для фиксированного. Если Ρ€Π°Π·Ρ€Ρ‹Π²Π½Π° вторая производная, Ρ‚ΠΎ Π΄Π»Ρ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ осцилляции сплайна Π²Π±Π»ΠΈΠ·ΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ Ρ€Π°Π·Ρ€Ρ‹Π²Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ВСория ΠΈ построСниС (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Если ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, трСбуСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ Π΄ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ порядка, Ρ‚ΠΎ Π΄Π»Ρ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ приходится Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΡΠΏΠ»Π°ΠΉΠ½Π°ΠΌ с ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ Π³Π»Π°Π΄ΠΊΠΎΡΡ‚ΡŒΡŽ (с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠΌ), Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ ΠΈΠ· ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ. Однако, сущСствуСт способ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ряда Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠΉ ΠΏΡƒΡ‚Π΅ΠΌ ввСдСния ΡƒΠ·Π»ΠΎΠ² сплайна, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ся ΡƒΠ·Π»Π°ΠΌΠΈ интСрполяции. Π’Π°ΠΊΠΈΠ΅ конструкции принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ сплайнами с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ. Π˜Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ размСрности Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹Ρ… алгСбраичСских систСм, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡŽ элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΡ€Π°Π²Ρ‹Ρ… частСй.

ΠŸΡƒΡΡ‚ΡŒ Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ [a, b] трСбуСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f (x) ΠΏΠΎ ΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹ΠΌ значСниям, r = 0,1,2, Π½Π° ΡΠ΅Ρ‚ΠΊΠ΅ Π”: a==b. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ сплайны пятой стСпСни с ΡƒΠ·Π»Π°ΠΌΠΈ Π½Π° ΡΠ΅Ρ‚ΠΊΠ΅ Π”, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ кубичСскиС сплайны с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ. Для этого Π²Π²Π΅Π΄Π΅ΠΌ Π½Π° [a, b] Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ сСтку.

ВСория ΠΈ построСниС.

Π΄ = {,.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

Π³Π΄Π΅ .

ΠšΡƒΠ±ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ сплайн S (x) Π΄Π΅Ρ„Π΅ΠΊΡ‚Π° 1 с ΡƒΠ·Π»Π°ΠΌΠΈ Π½Π° ΡΠ΅Ρ‚ΠΊΠ΅, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ условиям.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

для (1).

Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ кубичСским сплайном с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ.

ВСория ΠΈ построСниС.

Условия интСрполяции (1) Π½Π° ΠΊΠΎΠ½Ρ†Π°Ρ… ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΎΠ² [, Π΄Π°ΡŽΡ‚ N Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… систСм, ΠΏΠΎ 6 ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ, для опрСдСлСния коэффициСнтов сплайна, Ρ€Π΅ΡˆΠ°Ρ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΡ€ΠΈ.

ВСория ΠΈ построСниС.

с ΠΊΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

.

ВСория ΠΈ построСниС.

ΠžΡ†Π΅Π½ΠΊΠ° ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ локальной интСрполяции.

ВСория ΠΈ построСниС.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΎΡ†Π΅Π½ΠΊΡƒ точности приблиТСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f (x) сплайном S (x) Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π΅Π΅ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… свойств. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС константы Π² ΠΎΡ†Π΅Π½ΠΊΠ°Ρ… Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π’ ΡΠΈΠ»Ρƒ слоТности ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для фиксированного .

ВСория ΠΈ построСниС.

Π’Π΅ΠΎΡ€Π΅ΠΌΠ° 1. Если S (x) ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° ΡΠ΅Ρ‚ΠΊΠ΅ Π” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f (x), Ρ‚ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ мСсто ΠΎΡ†Π΅Π½ΠΊΠΈ.

(1).

Π³Π΄Π΅ ΠΏΡ€ΠΈ Π΄Π°Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 1.

Класс Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС.

Класс Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

;

;

ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС. ВСория ΠΈ построСниС.

ΠŸΡ€ΠΈΠ΄Π°Π²Π°Ρ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ значСния ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ зависимости констант Π² ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ…ся ΠΎΡ†Π΅Π½ΠΊΠ°Ρ… ΠΎΡ‚. ЕстСствСнно Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ константы ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ наимСньшиС значСния, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ константы Π² ΠΎΡ†Π΅Π½ΠΊΠ°Ρ… ΠΌΠ°Π»ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… констант ΠΏΡ€ΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

ВСория ΠΈ построСниС.

Ѐункция |sin (x)|, h = 0.2.

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, нСсмотря Π½Π° Ρ‚СорСтичСскоС обоснованиС, Π³Ρ€Π°Ρ„ΠΈΠΊ сплайна испытываСт ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ осцилляции ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ΅ Ρ€Π°Π·Ρ€Ρ‹Π²Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ слСва, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π°Π΄ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ справа осцилляции ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. К Ρ‚Π°ΠΊΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ нСточности вычислСния чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ использовании этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π°Π΄ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ошибки вычислСний.

ВСория ΠΈ построСниС.

Π’Π° ΠΆΠ΅ Ρ„ункция, Π½ΠΎ Ρ ΡˆΠ°Π³ΠΎΠΌ h=0.025.

На Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ порядка шага Π΄Π°Π»ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, хотя ошибки вычислСния всё Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Код Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° C#.

class ExtraSpline: Builder.

{.

public double a1;

public double a2;

ExtraSplineSegment[] segments;

List points;

int n;

public ExtraSpline (int _n, List _points, double _a1, double _a2).

{.

n = _n;

a1 = _a1;

a2 = _a2;

points = _points;

segments = new ExtraSplineSegment[n-1];

for (int i = 0; i < n-1; ++i).

{.

segments[i]. x = points[i]. x;

segments[i]. f = points[i]. y;

segments[i]. f1 = points[i]. y1;

segments[i]. f2 = points[i]. y2;

//Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ h.

segments[i]. h = points[i + 1]. x — points[i]. x;

//Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ c1 ΠΈ Ρ2.

segments[i]. c1 = c_function (a1, a2, segments[i]. f, segments[i]. f1, segments[i]. f2, points[i + 1]. y, points[i + 1]. y1, points[i + 1]. y2, segments[i]. h);

segments[i]. c2 = c_function (a2, a1, segments[i]. f, segments[i]. f1, segments[i]. f2, points[i + 1]. y, points[i + 1]. y1, points[i + 1]. y2, segments[i]. h);

segments[i]. a = a_function (segments[i]. c1, segments[i]. c2, points[i + 1]. y2, segments[i]. f2, segments[i]. h);

}.

}.

public double Interpolate (double x).

{.

if (segments == null).

{.

return double. NaN; // Если сплайны Π΅Ρ‰Ρ‘ Π½Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Ρ‹ — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ NaN.

}.

int n = segments. Length;

ExtraSplineSegment s;

if (x <= segments[0]. x) // Если x ΠΌΠ΅Π½ΡŒΡˆΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сСтки x[0] - ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ эл-Ρ‚ΠΎΠ² массива.

{.

s = segments[1];

}.

else if (x >= segments[n — 1]. x) // Если x Π±ΠΎΠ»ΡŒΡˆΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сСтки x[n — 1] - ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ послСдним эл-Ρ‚ΠΎΠΌ массива.

{.

s = segments[n — 1];

}.

else // Π˜Π½Π°Ρ‡Π΅ x Π»Π΅ΠΆΠΈΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ сСтки — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ эл-Ρ‚Π° массива.

{.

int i = 0;

int j = n — 1;

while (i + 1 < j).

{.

int k = i + (j — i) / 2;

if (x <= segments[k]. x).

{.

j = k;

}.

else.

{.

i = k;

}.

}.

s = segments[j];

}.

double dx = x — s. x;

double res = 0;

res = (s.a * dx * dx * dx) / 6 + (s.f2 * dx * dx) / 2 + (s.f1 * dx) + s. f + (s.c1 * (dx — a1 * s. h) * (dx — a1 * s. h) * (dx — a1 * s. h)) + (s.c2 * (dx — a2 * s. h) * (dx — a2 * s. h) * (dx — a2 * s. h));

return (double)res;

}.

public double c_function (double a1, double a2, double fi, double fi1, double fi2, double fii, double fii1, double fii2, double hi).

{.

double c = 0;

c = (1/(a1*a2*(a2-a1)*hi*hi)) * (((fi-fii)/hi)+(((1+a2)*fi1+(1+a1)*fii1)/3) +(((a2*fi2) — (a1*fii2))*hi/6));

Console.Write («h:»);

Console.WriteLine (hi);

Console.Write («c:»);

Console.WriteLine (c);

return c;

}.

public double a_function (double c1, double c2, double fii2, double fi2, double h).

{.

double a = 0;

a = ((fii2 — fi2)/h — 6*a2*c1 — 6*a1*c2);

return a;

}.

}.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΡƒΡ‡Π΅Ρ‚Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ скачка Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ/ΠΈΠ»ΠΈ Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΡ€ΠΈ построСнии кубичСского сплайна.

ВСория ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅.

ВСория ΠΈ построСниС.

ΠŸΡƒΡΡ‚ΡŒ кубичСский сплайн, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ порядков, ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

(1).

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

Π’ ΡƒΠ·Π»Π°Ρ… сСтки.

(2).

(2).

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· ΡƒΡΠ»ΠΎΠ²ΠΈΡ нСпрСрывности ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΡƒΠ·Π»Π°Ρ… ΠΈ ΠΈΠ· Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… условий, прСдполагая Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΠΊΡ€ΠΈΠ²ΠΈΠ·Π½Ρƒ сплайна Π½Π° ΠΊΠΎΠ½Ρ†Π°Ρ… ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ°:

ВСория ΠΈ построСниС.

ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹ находятся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΊΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ систСмы, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° систСмы Ρ‚Ρ€Π΅Ρ…Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Π°:

ВСория ΠΈ построСниС.
(5).

(5).

ВСория ΠΈ построСниС.

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρ€Π°Π·Ρ€Ρ‹Π²ΠΎΠ² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€ ΡƒΠ·Π»ΠΎΠ² ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ свойствами сплайнов.

ВСория ΠΈ построСниС.

Π’ Ρ‡Π°ΡΡ‚ности, Ссли Ρ‚Ρ€Π΅Ρ‚ΡŒΡ производная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅Ρ€ΠΏΠΈΡ‚ Ρ€Π°Π·Ρ€Ρ‹Π² Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° [a, b], Ρ‚ΠΎ Π΄Π»Ρ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ качСства аппроксимации эти Ρ‚ΠΎΡ‡ΠΊΠΈ слСдуСт Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Ρ‡ΠΈΡΠ»ΠΎ ΡƒΠ·Π»ΠΎΠ² интСрполяции.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

Если Ρ€Π°Π·Ρ€Ρ‹Π²Π½Π° вторая производная, Ρ‚ΠΎ Π΄Π»Ρ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ осцилляции сплайна Π²Π±Π»ΠΈΠ·ΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ Ρ€Π°Π·Ρ€Ρ‹Π²Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ€Ρ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠ·Π»Ρ‹ интСрполяции Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ€Π°Π·Ρ€Ρ‹Π²Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ, Π³Π΄Π΅.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

Если пСрвая производная Ρ€Π°Π·Ρ€Ρ‹Π²Π½Π°, слСдуСт Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΎΡ‚Ρ€Π΅Π·ΠΎΠΊ аппроксимации Π½Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ, Π³Π΄Π΅ производная Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Π°, ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΎΠ² ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сплайн.

Π’Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΡ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ интСрполяционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ интСрполяции Π·Π° ΡΡ‡Π΅Ρ‚ сущСствСнного увСличСния числа ΡƒΠ·Π»ΠΎΠ² интСрполяции.

Рассмотрим Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π° Ρ€Π°Π·Ρ€Ρ‹Π²ΠΎΠ² ΠΊΠ°ΠΊ самой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈ ΠΈ Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ…, которая Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π²ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ скачка Π² ΡΠΈΡΡ‚Π΅ΠΌΡƒ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ (2−5) для опрСдСлСния коэффициСнтов кубичСского сплайна.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρ€Π°Π·Ρ€Ρ‹Π²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° [a, b] внСсСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π² ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ сплайна. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сплайна ΠΈ/ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… слСва ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ€Π°Π·Ρ€Ρ‹Π²Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Ρ€Π°Π²Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΡΡ‚ΠΎΠΌ ΡƒΠ·Π»Π΅ слСва, Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ скачка относим ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ сплайну. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для нахоТдСния коэффициСнтов Π² ΡƒΠ·Π»Π°Ρ…, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Ρ‹Π²Π°ΠΌ, вмСсто (2−5) ΠΈΠΌΠ΅Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ систСму ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ:

ВСория ΠΈ построСниС.

Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡƒΡ‡Π΅Ρ‚Π° Ρ€Π°Π·Ρ€Ρ‹Π²ΠΎΠ² позволяСт ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· увСличСния количСства ΡƒΠ·Π»ΠΎΠ² ΠΈ Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ осцилляциСй Π²ΠΎΠ·Π»Π΅ Ρ€Π°Π·Ρ€Ρ‹Π²Π°, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ использованиС сплайнов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Для сравнСния взята кусочно-заданная функция, которая ΠΏΡ€ΠΈ x2,4.

y = -x2.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

Π­Ρ‚ΠΎ СстСствСнный кубичСский сплайн h = 0.2.

А ΡΡ‚ΠΎ ΡƒΠΆΠ΅ сплайн, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ скачка, ΠΏΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ осцилляции, Ρ…ΠΎΡ‚ΡŒ ΠΈ Π½Π΅ ΡƒΡˆΠ»ΠΈ, Π½ΠΎ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΈΡΡŒ.

Π’Π° ΠΆΠ΅ Ρ„ункция, Π½ΠΎ Ρ ΡˆΠ°Π³ΠΎΠΌ h = 0.025.

ВСория ΠΈ построСниС.

ЕстСствСнный кубичСский сплайн.

ВСория ΠΈ построСниС.

Π‘ΠΏΠ»Π°ΠΉΠ½ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ скачка, с Ρ‚Π°ΠΊΠΈΠΌ шагом осцилляции слСва ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ€Π°Π·Ρ€Ρ‹Π²Π° практичСски ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚, Π° ΡΠΏΡ€Π°Π²Π° Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ, Π½ΠΎ ΡΡ‚Π°Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ мСньшС.

Код Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° C#.

class SplineD: Builder.

{.

SplineSegment[] segments;

List points;

int n;

/// ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ SplineBuilder.

/// ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΡƒΠ·Π»ΠΎΠ² сСтк.

/// ЗначСния Π² ΡƒΠ·Π»Π°Ρ….

public SplineD (int _n, List _points, List _extremums).

{.

double D = 0;

n = _n;

points = _points;

foreach (PointExtremum p in _extremums).

{.

int k = n — 1;

for (int i = 0; i < k; ++i).

{.

if (p.p.x > points[i]. x && p.p.x < points[i + 1]. x).

{.

points.Insert (i+1,p.p);

k++;

break;

}.

}.

}.

n = points. Count;

segments = new SplineSegment[n];

for (int i = 0; i < n; ++i).

{.

segments[i]. x = points[i]. x;

segments[i]. a = points[i]. y + D;

}.

segments[0]. c = 0;

segments[n — 1]. c = 0;

double[] alpha = new double[n — 1];

double[] beta = new double[n — 1];

alpha[0] = beta[0] = 0.0;

for (int i = 1; i < n — 1; ++i).

{.

foreach (PointExtremum pex in _extremums).

{.

if (pex.p.x == points[i]. x).

{.

D = pex. D;

}.

else.

{.

D = 0;

}.

}.

double hi = points[i]. x — points[i — 1]. x;

double hi1 = points[i + 1]. x — points[i]. x;

double A = hi;

double C = 2.0 * (hi + hi1);

double B = hi1;

double F = 6.0 * ((points[i + 1]. y — points[i]. y + D) / hi1 — (points[i]. y — points[i — 1]. y) / hi);

double z = (A * alpha[i — 1] + C);

alpha[i] = -B / z;

beta[i] = (F — A * beta[i — 1]) / z;

}.

for (int i = n — 2; i > 0; —i).

{.

segments[i]. c = alpha[i] * segments[i + 1]. c + beta[i];

}.

for (int i = n — 1; i > 0; —i).

{.

double hi = points[i]. x — points[i — 1]. x;

segments[i]. d = (segments[i]. c — segments[i — 1]. c) / hi;

segments[i]. b = hi * (2.0 * segments[i]. c + segments[i — 1]. c) / 6.0 + (points[i]. y — points[i — 1]. y + D) / hi;

}.

}.

public List getPoints.

{.

get { return points; }.

}.

public SplineSegment[] getSpline.

{.

get { return segments; }.

}.

public double Interpolate (double x).

{.

if (segments == null).

{.

return double. NaN; // Если сплайны Π΅Ρ‰Ρ‘ Π½Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Ρ‹ — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ NaN.

}.

int n = segments. Length;

SplineSegment s;

if (x <= segments[0]. x) {.

s = segments[1];

}.

else if (x >= segments[n — 1]. x) {.

s = segments[n — 1];

}.

else.

{.

int i = 0;

int j = n — 1;

while (i + 1 < j).

{.

int k = i + (j — i) / 2;

if (x <= segments[k]. x).

{.

j = k;

}.

else.

{.

i = k;

}.

}.

s = segments[j];

}.

double dx = x — s. x;

return s. a + (s.b + (s.c / 2.0 + s. d * dx / 6.0) * dx) * dx;

}.

}.

Π­Ρ„Ρ„Π΅ΠΊΡ‚ Гиббса для сплайн — интСрполяции.

ВСория ΠΈ построСниС.

ΠŸΡƒΡΡ‚ΡŒ — функция Π²ΠΈΠ΄Π°.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

Рассмотрим кубичСский интСрполяционный сплайн для. ΠŸΡƒΡΡ‚ΡŒ ΠΈ — кубичСский сплайн с ΡƒΠ·Π»Π°ΠΌΠΈ), ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…, Ρ‚. Π΅.; Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ являСтся алгСбраичСским ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ΠΎΠΌ Ρ‚Ρ€Π΅Ρ‚Π΅ΠΉ стСпСни, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌ ΠΊΡ€Π°Π΅Π²Ρ‹ΠΌ условиям ΠΈΠ»ΠΈ ΠΈ (. Π’ΠΎΠ³Π΄Π° Π² ΠΎΠΊΡ€Π΅ΡΡ‚ности Ρ‚ΠΎΡ‡ΠΊΠΈ a ΠΈΠΌΠ΅Π΅Ρ‚ мСсто эффСкт Гиббса, Ρ‚ΠΎΡ‡Π½Π΅Π΅.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

Π’Π΅ΠΎΡ€Π΅ΠΌΠ°. Для.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

БлСдствиС. Для ΠΈΠΌΠ΅Π΅ΠΌΠΏΡ€ΠΈ (число ΡƒΠ·Π»ΠΎΠ²).

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· Q ΠΊΠ»Π°ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, кусочно-Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Ρ… Π½Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π° Π½Π΅ΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ число Ρ€Π°Π·Ρ€Ρ‹Π²ΠΎΠ² I Ρ€ΠΎΠ΄Π°,. Для любой справСдливо.

ВСория ΠΈ построСниС.

Π’Π°ΠΊ ΠΊΠ°ΠΊ интСрполяционный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ являСтся Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‚ΠΎ ΠΈΠ· ΡΡ…одимости интСрполяционных кубичСских ΠΈ ΠΏΠ°Ρ€Π°Π±ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΡ… сплайнов ΠΏΡ€ΠΈ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ сСткС для любой Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ:

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

Π’Π΅ΠΎΡ€Π΅ΠΌΠ°. ΠŸΡƒΡΡ‚ΡŒ, Ρ‚ΠΎΠ³Π΄Π° для параболичСской ΠΈ ΠΊΡƒΠ±ΠΈΡ‡Π΅ΡΠΊΠΎΠΉ сплайн-интСрполяции ΠΏΡ€ΠΈ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ сСткС ΠΈ ΠΏΡ€ΠΈ Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… ΠΊΡ€Π°Π΅Π²Ρ‹Ρ… условиях для Π²Ρ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… сплайна Π² ΠΊΠΎΠ½Ρ†Π°Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΈΠΌΠ΅Π΅ΠΌ ΡΡ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ интСрполяционного сплайна ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (- число ΡƒΠ·Π»ΠΎΠ² интСрполяции).

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

Π’ Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… Ρ€Π°Π·Ρ€Ρ‹Π²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто эффСкт Гиббса Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ скачка для параболичСского ΠΈ Π΄Π»Ρ кубичСского сплайнов.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

ΠŸΡ€ΠΈ интСрполяции Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ со ΡΠΊΠ°Ρ‡ΠΊΠ°ΠΌΠΈ кубичСским сплайном класса Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π²Π±Π»ΠΈΠ·ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ€Π°Π·Ρ€Ρ‹Π²Π° осцилляции, Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈ Π½Π΅ Π·Π°Ρ‚ΡƒΡ…Π°Π΅Ρ‚, Π° ΡΡ‚рСмится ΠΊ ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π΅. Π­Ρ‚ΠΎ явлСниС называСтся эффСктом Гиббса.

Для кубичСского сплайна с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ эффСкт Гиббса отсутствуСт.

ВСория ΠΈ построСниС.

Ρ‚ΠΎΡ‡ΠΊΠ° Ρ€Π°Π·Ρ€Ρ‹Π²Π° Π² ΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°.

ВСория ΠΈ построСниС.
ВСория ΠΈ построСниС.

ΠžΡΡ†ΠΈΠ»Π»ΡΡ†ΠΈΡ ослабляСтся ΠΏΡ€ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠΈ. ΠŸΡ€ΠΈ ΠΈΠΌΠ΅Π΅ΠΌ эрмитов кубичСский сплайн, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ осцилляций.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

ВСория ΠΈ построСниС.

ЕстСствСнный сплайн для парамСтричСской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, описанной Π²Ρ‹ΡˆΠ΅, h=0.2.

ВСория ΠΈ построСниС.

А ΡΡ‚ΠΎ сплайн с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ для Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Из Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ ΡΠΏΠ»Π°ΠΉΠ½Π° с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ осцилляции Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ€Π°Π·Ρ€Ρ‹Π²Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΈΠ΄Π½Ρ‹ ошибки Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ вычислСниями ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ слСва ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ΅ Ρ€Π°Π·Ρ€Ρ‹Π²Π°.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ