Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Maple 9.5/10 Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, Ρ„ΠΈΠ·ΠΈΠΊΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 69

Автор Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡŒΡΠΊΠΎΠ½ΠΎΠ²

5.10.7. ЭффСктивная ΠΎΡ†Π΅Π½ΠΊΠ° Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

ΠŸΠΎΠ»ΠΈΠ½ΠΎΠΌΡ‹ числитСля ΠΈ знамСнатСля Π² минимаксной аппроксимации ΡƒΠΆΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π“ΠΎΡ€Π½Π΅Ρ€Π° (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ умноТСния). ΠžΡ†Π΅Π½ΠΊΠ° ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠΎΠΌ стСпСни n Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π“ΠΎΡ€Π½Π΅Ρ€Π° ΠΏΡ€ΠΈ n умноТСниях ΠΈ n суммированиях это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивная схСма ΠΎΡ†Π΅Π½ΠΊΠΈ для ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ° Π² ΠΎΠ±Ρ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. Однако, для Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ стСпСни (m, n) ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ просто ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ выраТСния числитСля ΠΈ знамСнатСля Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π“ΠΎΡ€Π½Π΅Ρ€Π°. Π’Π°ΠΊ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ знамСнатСля со ΡΡ‚Π°Ρ€ΡˆΠΈΠΌ коэффициСнтом Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Ρ‹ΠΌ 1. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ вычислСниС Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ стСпСни (m, n) Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π“ΠΎΡ€Π½Π΅Ρ€Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выполнСния всСго m+n слоТСний, m+n-1 ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ 1 дСлСния. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΎΠ±Ρ‰ΠΈΠΉ индСкс дСйствия Π΅ΡΡ‚ΡŒ

m + n ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ умноТСния/дСлСния,

m + n ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ слоТСния/вычитания.

ВычислСниС Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈ Π΄Π°Π»Π΅Π΅, прСобразуя Π΅Π΅ Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΡƒΡŽ (Ρ†Π΅ΠΏΠ½ΡƒΡŽ) Π΄Ρ€ΠΎΠ±ΡŒ. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ функция стСпСни (m, n) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вычислСна, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ

max(m, n) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ умноТСния/дСлСния,

m + n ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ слоТСния/вычитания.

НапримСр, Ссли m = n, Ρ‚ΠΎΠ³Π΄Π° эта новая схСма Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выполнСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ числа дСйствий умноТСния/дСлСния ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. Для Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ MinimaxApprox, вычислСниС Π² Ρ„ΠΎΡ€ΠΌΠ΅, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅, сводится ΠΊ 9 дСйствиям умноТСния/дСлСния ΠΈ 8 дСйствиям слоТСния/вычитания. Число ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ умноТСния/дСлСния ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΄ΠΎ 8, нормализуя Π·Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»ΡŒ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ monic. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΡƒΡŽ (Ρ†Π΅ΠΏΠ½ΡƒΡŽ) Π΄Ρ€ΠΎΠ±ΡŒ для Ρ‚ΠΎΠΉ ΠΆΠ΅ самой Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ВычислСниС ΠΏΠΎ этой схСмС, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π° Maple, сводятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 4 дСйствиям дСлСния ΠΈ 8 дСйствиям слоТСния/вычитания:

> MinimaxApprox := confracform(MinimaxApprox):

> lprint(MinimaxApprox(x));

-.468860043555e-1 + 1.07858988373/

(x+4.41994160718+16.1901836591/(x+4.29118998064+70.1943521765/(x-10.2912531257+4.77538954280/(x+1.23883810079))))

5.10.8. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ вычислСний

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ врСмя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для вычислСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f(x) Π² 1000 Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΈ сравним Π΅Π³ΠΎ с Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌΡΡ для схСмы MinimaxApprox Π² Π²ΠΈΠ΄Π΅ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ Π΄Ρ€ΠΎΠ±ΠΈ. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это для систСмы Maple 8. Π’Π°ΠΊ ΠΊΠ°ΠΊ нашС ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 6 Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌ 6 Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€ ΠΈ ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прСдставлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

> Digits := 6: st := time():

> seq( evalf(f(i/250.0) ) , i = 1..1000 ):

> oldtime := time() - st;

oldtime := 4.075

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

> Digits := 6: st := time():

> seq( MinimaxApprox(i/250.0), i = 1..1000 ):

> newtime := time() - st;

newtime := 0.342

УскорСниС вычислСния ΠΏΡ€ΠΈ аппроксимации Π΅ΡΡ‚ΡŒ:

> SpeedUp := oldtime/newtime;

SpeedUp := 11.915205

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° вычислСний, основанная Π½Π° MinimaxApprox, выполняСтся ΠΏΠΎΡ‡Ρ‚ΠΈ Π² 12 Ρ€Π°Π· быстрСС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с использованиСм исходного ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ опрСдСлСния. Π­Ρ‚ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ успСх, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ врСмя, потСрянноС Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ экспСримСнты ΠΏΠΎ аппроксимации ΠΈ Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ!

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ этот Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ относится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ПК ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ сильно ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΠΊΠ΅ этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ…. Π’Π°ΠΊ, Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ, Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ с ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΌ курсом Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΠΎ систСмС Maple 7 [36] ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ½Ρ‹Π΅ ΠΈ ΠΊΡƒΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΎΡˆΠ΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΠ΅:

oldtime := 81.805 newtime := .694 SpeedUp := 117.87464

Π’ Ρ‡Π΅ΠΌ Π΄Π΅Π»ΠΎ? А Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π² срСдС Maple 7 Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с процСссором Pentium II с частотой 400 ΠœΠ“Ρ†. А Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΡƒΠΆΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с процСссором Pentium 4 с частотой 2,6 Π“Π“Ρ† ΠΈ с систСмой Maple 9.5.

5.10.9. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄ ЀОРВРАНа ΠΈΠ»ΠΈ Π‘

Один ΠΈΠ· ΠΏΠΎΠ²ΠΎΠ΄ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ эффСктивной аппроксимации для вычислСния матСматичСской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² создании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для популярных языков программирования высокого уровня, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ЀОРВРАН ΠΈΠ»ΠΈ Π‘. Π’ Maple ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования Π½Π° любой ΠΈΠ· этих языков. НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ для минимаксной аппроксимации Π² ΠΊΠΎΠ΄ ЀОРВРАНа:

> fortran (MinimaxApprox(Ρ…));

Π˜Ρ‚Π°ΠΊ, Π½Π°ΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ аппроксимации для слоТной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ обСспСчиваСт ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΅Π΅ вычислСния Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° ΠΎΠ΄ΠΈΠ½-Π΄Π²Π° порядка (!) ΠΏΡ€ΠΈ вСсьма ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎΠΉ точности Π² 6 Π²Π΅Ρ€Π½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΈ использовании для вычислСний минимального числа арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ этом срСдств систСмы Maple позволяСт Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ разлоТСния Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ряды, быстро Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ аппроксимации Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ прСобразования Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, сочСтая это с ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ срСдствами ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ графичСской Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π² частности с построСниСм Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΊΡ€ΠΈΠ²Ρ‹Ρ… ошибок ΠΏΡ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄Π°Ρ… аппроксимации. ВсС это обСспСчиваСт ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΡƒΡŽ срСду для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡.

5.11. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ прСобразования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

5.11.1. ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ Z-прСобразования

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ прСобразования (см. Ρ„Π°ΠΉΠ» inttrans) ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² Π½Π°ΡƒΠΊΠ΅ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅. Π’Π°ΠΊ, прямоС ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ Z-прСобразования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ автоматичСского управлСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ дискрСтных сигналов. ΠŸΡ€ΡΠΌΠΎΠ΅ Z-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ f(n) Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ комплСксной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ z задаСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ:

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ Z-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ сводится ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ комплСксной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f(z) Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f(z).

Π­Ρ‚ΠΈ прСобразования Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ функциями:

ztrans(f, n, z) β€” прямоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f(n) Π² f(z);

invztrans(f, z, n) β€” ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ f(z) Π² f(n).

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ прямоС Z-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ базируСтся Π½Π° ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ztrans(f(n),n,z)=sum(f(n)/z^n,n=0..infinity), записанном Π½Π° Maple-языкС. Π’ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… вСрсиях систСмы Maple Z-прСобразования Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ срСдствами Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ readlib(ztrans). Но Π² Maple 7/8 ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ядро систСмы ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΡƒΠΆΠ΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚. Π’ этом ΡƒΠ±Π΅ΠΆΠ΄Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

> a:=ztrans(n^2,n,z);

> invztrans(a,z,n);

nΒ²

> ztrans(cos(Pi/4*t), t, z);

> invztrans(%,z,t);

НСтрудно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, послС прямого ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ свои значСния.

5.11.2. БыстроС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΡƒΡ€ΡŒΠ΅

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΡƒΡ€ΡŒΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, Ρ„ΠΈΠ·ΠΈΠΊΠ΅ ΠΈ элСктрорадиотСхникС. Π‘ΡƒΡ‚ΡŒ этого прСобразования описана Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅ β€” см. Ρ€Π°Π·Π΄Π΅Π» 5.11.4. Π’Π²ΠΈΠ΄Ρƒ ΡˆΠΈΡ€ΠΎΠΊΠΈΡ… сфСр примСнСния этого прСобразования Π² Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΅Π³ΠΎ особая Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ β€” быстроС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΡƒΡ€ΡŒΠ΅ ΠΈΠ»ΠΈ FFT (Fast Fourier Transform).

Π’ Maple Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ быстрого прямого FFT ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ iFFT ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π€ΡƒΡ€ΡŒΠ΅ для числовых Π΄Π°Π½Π½Ρ‹Ρ…:

FFT(m, Ρ…, Ρƒ)

evalhf(FFT(m, var(x), var(y)))

iFFT(m, x, y)

evalhf(iFFT(m, var(x), var(y)))

Π—Π΄Π΅ΡΡŒ m β€” Ρ†Π΅Π»ΠΎΠ΅ Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число, Ρ… ΠΈ Ρƒ β€” массивы с числом элСмСнтов, ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌ стСпСни 2 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 4, 8, 16 ΠΈ Ρ‚.Π΄.), ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΌΠ½ΠΈΠΌΡ‹Π΅ части массива комплСксных чисСл (Π΄Π°Π½Π½Ρ‹Ρ…). Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ число элСмСнтов Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… массивов, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ помСщаСтся Π² исходныС массивы:

> Ρ… := array([1.,2.,3.,4.]): Ρƒ := array([5.,6.,7.,8.]):

> FFT(2,Ρ…,y);

4

> print(Ρ…);

[10., -4., -2., 0.]

> print(y);

[26., 0., -2., -4.]

> iFFT(2,Ρ…,y);

4

> print(x);

[1.0000000, 2.0000000, 3.0000000, 4.0000000]

> print(y);

[5.0000000, 6.0000000, 7.0000000, 8.0000000]

НСсмотря Π½Π° Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ быстрых ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π€ΡƒΡ€ΡŒΠ΅ ΠΈΡ… нСдостатком являСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ дискрСтно Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ числСнным Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ с числом отсчСтов ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΌ Π΄Π²ΡƒΠΌ Π² Ρ†Π΅Π»ΠΎΠΉ стСпСни. Если Π΄Π°Π½Π½Ρ‹Ρ… мСньшС, Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ элСмСнты ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ нулями.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π€ΡƒΡ€ΡŒΠ΅ Π² наши Π΄Π½ΠΈ стали Π²Π΅ΠΉΠ²Π»Π΅Ρ‚-прСобразования. Π’Π΅ΠΉΠ²Π»Π΅Ρ‚Ρ‹ это Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ базис для приблиТСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… зависимостСй Π²Π΅ΠΉΠ²Π»Π΅Ρ‚Π°ΠΌΠΈ β€” Β«ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈΒ» Π²ΠΎΠ»Π½ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Ρ€Π°Π·Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, способными ΠΊ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ. Π’Π΅ΠΉΠ²Π»Π΅Ρ‚Ρ‹ прСкрасно подходят для приблиТСния Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… особСнностСй Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… зависимостСй, Π² Ρ‚ΠΎΠΌ числС нСстационарных (с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ). ΠžΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π²Π΅ΠΉΠ²Π»Π΅Ρ‚Π°ΠΌΠΈ ΠΈ срСдствами Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ Π² систСмах MATLAB, Mathematica ΠΈ Mathcad ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΊΠ½ΠΈΠ³Π΅ [55]. К соТалСнию, Π² Maple Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ срСдства Π²Π΅ΠΉΠ²Π»Π΅Ρ‚-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ это ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ нСдостаток этих систСм.