séria MathCAD. Mayer R.V.

Trigonometrické Fourierove rady pomocou Mathcad.

Cieľ práce

Naučte sa rozširovať periodické funkcie do goniometrických Fourierových radov pomocou Mathcadu a vytvárať grafy čiastočných súčtov Fourierových radov.

Vybavenie

Softvérový balík MathCAD.

Pokrok

Možnosť

1) Rozšírte funkciu na trigonometrický Fourierov rad

2) Rozviňte funkciu na trigonometrický Fourierov rad v kosínoch

3) Rozviňte funkciu na trigonometrický Fourierov rad v zmysle sínusov

Povolenie pracovať

3.2.1 Trigonometrický Fourierov rad funkcie je funkčný rad formy

3.2.4 Fourierove koeficienty boli vypočítané pre funkciu f(x) (pri rozšírení v kosínoch)

a 1 = 5, a 2 = 6, a 3 = 7

Napíšte trigonometrické Fourierove rady

3.2.5 Funkcia f(x) je rozšírená do Fourierovho radu v zmysle sínusov (nepárne), potom

List
Dokument č.
Podpis
List
Dokument č.
Podpis
dátum
List

3.1.2. Nájdite číselné charakteristiky náhodnej premennej x (x je výhra majiteľa jedného žrebu).

V lotérii sa žrebuje ____ tiketov.

Každý z nich vyhrá ____ rubľov

Každý z nich vyhrá ____ rubľov.

3.1.3. Nájdite číselné charakteristiky náhodnej premennej „x“

A). 0,15 b) -0,35 c) 0,35 d) 0,25 e) nemožno určiť.

3.2.3 V lotérii je 200 tiketov. Výherných tiketov je 30. Aká je pravdepodobnosť, že tiket nie je výherný?

A). 1,7 b) 0,7 c) 0,17 d) 0,85 d) 0,15

3.2.4 Napíšte vzorec na výpočet rozptylu diskrétnej náhodnej premennej.

3.2.5 Napíšte vzorec na výpočet smerodajnej odchýlky diskrétnej náhodnej premennej.

________________________________________________________________________________

3.2.6. D (y) = 25. Aká je štandardná odchýlka?

A). ± 5 b) 5 c) -5 d) nemožno určiť.

3.2.7 Ako môžete vyriešiť rovnicu v MathCADe

______________________________________________________________________________

______________ môže pracovať

Pracovné výsledky

4.1. M(x) = ____________ D(x) = ____________ σ (x) = ___________

List
Dokument č.
Podpis
dátum
List
PR.140448.00.00
PRAKTICKÁ PRÁCA 12

Hľadanie bodových a intervalových odhadov

neznáme distribučné parametre v Exceli

1. Účel práce

Pomocou danej vzorky sa naučte určiť numerické charakteristiky vzorky a odhadnúť neznáme parametre všeobecnej populácie a odhadnúť matematické očakávania všeobecnej populácie s danou pravdepodobnosťou spoľahlivosti.

2. Vybavenie:

IBM PC, prostredie Microsoft Excel.

Pokrok

3. 1 Možnosť

Odhad s danou pravdepodobnosťou spoľahlivosti γ = matematické očakávanie všeobecnej populácie pre danú vzorku

_____________________________________________________________________________________

3.2 Povolenie na prácu

1. Ako sa vypočíta výberový priemer?

2. Ako sa vypočíta rozptyl vzorky?

____________________________________________________________________________________________________________________________________________________________

3. Ako sa vypočíta štandardná odchýlka?

____________________________________________________________________________________________________________________________________________________________

4. Ako sa vypočíta korigovaný rozptyl vzorky?

____________________________________________________________________________________________________________________________________________________________

5. Ako sa líši bodový odhad neznámeho distribučného parametra od intervalového odhadu?

____________________________________________________________________________________________________________________________________________________________

6. Ako sa vypočíta interval na odhad matematického očakávania populácie?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________


7. Čo sa označuje Študentský koeficient?

Zmeniť
List
Dokument č.
Podpis
dátum
List
PR.140448.00.00
____________________________________________________________________________________________________________________________________________________________

8. Od čoho závisí hodnota Študentského koeficientu?

____________________________________________________________________________________________________________________________________________________________

Nasledujúce môžu pracovať: ________________________________________________

Pracovné výsledky

σ in = S in = t γ =

Záver

V priebehu tejto práce som použil vzorce pre bodové a intervalové odhady_____________________________________________________________

_________________________________________________________________



Zmeniť
List
Dokument č.
Podpis
dátum
List
PR.140448.00.00

P

Glushach V.S. UIT-44

praktická práca 1.2. Priama a inverzná Fourierova transformácia v MathCad.

Zvládnutie práce v MathCad. Získanie zručností v používaní Laplaceovej transformácie na analýzu spektrálnych zložiek signálov. Štúdium časových a frekvenčných mierok časových radov a Fourierovej transformácie.

1. Vygenerujte časový rad troch sínusoidov. Počet bodov musí byť 2^n

2. Určte priemer a rozptyl.

3. Urobíme priamu a inverznú transformáciu F. Dvakrát prevedený signál superponujeme do grafu pôvodného časového radu.

4. Nájdite vzťah medzi mierkou časového radu pozdĺž časovej osi a Fourierovou transformáciou pozdĺž frekvenčnej osi.

1. Vyberte časovú diskrétnosť dt a počet bodov v časovom rade v tvare nl:= 2 k

Nech k:= 9 nl:= 2 k nl=512 Dĺžka vzorky v čase T:=512

Sh ag podľa Or, vzhľadom na to, že nl-1

čas je približne rovný nl Potom i:=0..nl-l t. := i*dt

2. Vstupný signál x vygenerujeme ako súčet troch harmonických signálov a určíme jeho základnú štatistiku.

А1:= 1 f1:= 0,05 xl i:= Al-sin/2*3,14*fl*t i) srl:= priemer (xl) srl = 0,012 s1:=stdev(x1) s1=0,706

A2:= 0,5 f2:= 0,1 x2 i:= A2-sin/2*3,14*f2*t i) sr2:= priemer (x2) sr2 = 3,792 x 10 -4 s2:=stdev(x2) s2=0,353

A3:= 0,25 f3:= 0,4 x3 i:= A3-sin/2*3,14*f3*t i) sr3:= priemer (x3) sr3 = 3,362x10-4 s3:=stdev(x3) s3=0,177

x i:= xl i + x2 i + x3 i sry:= priemer (x) sry = 0,013 sy:= stdev(x) sy = 0,809

1. Priama Fourierova transformácia v MathCad F:= fft(x)

Maximálna perióda harmonickej zložky, ktorá môže byť v časovom rade, sa rovná dĺžke vzorky. Táto harmonická zložka zodpovedá minimálnej možnej frekvencii na frekvenčnej škále Fourierovej transformácie frnin a podľa toho kroku pozdĺž osi frekvencie Fourierovej transformácie df.

Tmax:= Tfrnin:=
df:= frnin df = 1,953 x 10-3

Minimálna frekvencia a frekvenčný krok Fourierovej transformácie sa teda rovnajú frnin = df = 1/T.

Fourierova transformácia má počet súradníc frekvencie, ktorý je polovičný ako počet súradníc časových radov v čase n2=nl/2 alebo vrátane nulového bodu (v ktorom nie je definovaná Fourierova transformácia)

n2:= 1 + 2 k -1 n2 = 257 j:= l..n2

Aktuálny frekvenčný index sa mení z j=l na j=n2

V tomto prípade sa frekvencia mení od fmin =df= 1/T Maximálna frekvencia finax:= n2*df fmax = 0,502

do frnax=n2*df Aktuálna frekvencia f i:= i*df

f 1 = 1,953 x 10-3 f 257 = 0,502

O Upozorňujeme, že Fourierova transformácia je definovaná len pre frekvencie v rozsahu od f=finin do f=fmax.

V tomto prípade vrcholy na grafe Fourierovho spektra zodpovedajú frekvenciám pôvodných sínusoidov, t.j. Fourierova transformácia umožňuje izolovať frekvenčné zložky signálu. Ale amplitúdy harmonických zložiek teraz neodrážajú amplitúdy zložiek pôvodného časového radu (kde A1=1, A2=0,5, A3=0,25)

Všimnime si tiež, že pri dt = 1 je maximálna frekvencia v spektre Fourierovej transformácie frnax = 0,5 kmitov za jednotku času. Pri dt = 1 s to zodpovedá fmax = 0,5 Hz. V tomto prípade je perióda maximálnej frekvencie Tfmax=1/0,5=2. To znamená, že pre jedno obdobie maximálnej frekvencie existujú dva výbery časového radu. To zodpovedá Kotelnikovovej vete, podľa ktorej na obnovenie harmonického spojitého signálu z diskrétneho bez straty informácie počas jednej periódy musia byť v čase aspoň dve vzorky.

3. Skontrolujme zhodu časových radov pred a po dvojitej Fourierovej transformácii. Aby sme to dosiahli, získame inverznú Fourierovu transformáciu z výslednej priamej transformácie. Mal by sa zhodovať s pôvodným časovým radom, čo potvrdzuje nasledujúci graf FF:= ifft(F)

Mathcad obsahuje funkcie na vykonávanie rýchlej diskrétnej Fourierovej transformácie (FFT) a jej inverzie. Mathcad PLUS tiež poskytuje jednorozmernú diskrétnu transformáciu vlny a jej inverziu. Všetky tieto funkcie majú vektorové argumenty. Pri určovaní vektora v ak chcete nájsť vlnovú transformáciu alebo Fourierovu transformáciu, uistite sa, že prvý prvok vektora má index nula: v 0 . Ak v 0 nie je definovaná, Mathcad ju automaticky nastaví na 0. To môže mať za následok skreslené výsledky.

Úvod do diskrétnej Fourierovej transformácie

Mathcad obsahuje dva typy diskrétnych funkcií Fourierovej transformácie: fft/ifft A cfft /icfft . Tieto funkcie sú diskrétne: berú vektory a matice ako argumenty a vracajú ich. Nie je možné ich použiť s inými funkciami fft A ifft , ak sú splnené tieto dve podmienky:
  • argumenty sú skutočné a
  • dátový vektor má 2 m prvkov.

Použite funkcie cfft A icfft vo všetkých ostatných prípadoch.
Prvá podmienka je nevyhnutná, pretože funkcie fft/ifft využite skutočnosť, že pre reálne dáta je druhá polovica Fourierovej transformácie komplexne konjugovaná s prvou. Mathcad zahodí druhú polovicu výsledného vektora. To šetrí čas aj pamäť počas výpočtov.

Dvojica funkcií cfft/icfft pri transformácii nepoužíva symetriu. Z tohto dôvodu je potrebné ich použiť pre komplexné dáta. Keďže reálne čísla sú podmnožinou komplexných čísel, môžete použiť aj pár cfft/icfft pre reálne čísla.

Druhá podmienka je potrebná z dôvodu dvojice funkcií fft/ifft používa vysoko efektívny rýchly algoritmus Fourierovej transformácie. Na to použite vektor argumentu použitého s fft, musí mať 2 m prvkov. Vo funkciách сfft/icfft používa sa algoritmus, ktorý akceptuje ako argumenty matice aj vektory ľubovoľnej veľkosti. Keď sa tento pár funkcií použije s maticou ako argumentom, vypočíta sa dvojrozmerná Fourierova transformácia.

Upozorňujeme, že ak je funkcia použitá fft pre priamu konverziu musíte použiť funkciu ifft pre opak. Podobne, ak použijete na priamu konverziu cfft, potom pre spätný chod je potrebné použiť icfft.

Rôzne formulácie definície Fourierovej transformácie využívajú rôzne normalizačné koeficienty a konvencie o znamienku imaginárnej jednotky v exponente priamej a inverznej transformácie. Funkcie fft, ifft, cfft A icfft použite 1/ ako normalizačný faktor a kladný exponent v priamom prevode. Funkcie FFT , IFFT , CFFT A ICFFT použite 1/N ako normalizačný faktor a záporný exponent v priamom prevode. Tieto funkcie sa musia používať v pároch. Napríklad, ak používate CFFT v priamej konverzii, nevyhnutné použitie ICFFT v opaku.

Fourierova transformácia v reálnej doméne

Pre vektory s reálnou hodnotou s 2 m prvkami môžete použiť niekoľko funkcií fft/ifft. Algoritmus na výpočet týchto funkcií využíva symetriu, ktorá existuje len pre reálne dáta. To šetrí čas aj pamäť potrebnú na výpočty. Vektor v musí mať 2 m prvkov. Výsledkom je komplexne ohodnotený vektor rozmeru 1+2 m-1. Ak v má iný rozmer ako 2 m, Mathcad zobrazí chybové hlásenie “ nesprávna veľkosť vektora”.

Prvky vektora sa vrátili fft, vypočítané podľa vzorca

V tomto vzorci n- počet prvkov v v, i- pomyselná jednotka.

Prvky vo vektore vrátené funkciou fft, zodpovedajú rôznym frekvenciám. Na obnovenie skutočnej frekvencie je potrebné poznať frekvenciu merania pôvodného signálu. Ak v Existuje n-rozmerný vektor odovzdaný funkcii fft a frekvencia merania pôvodného signálu - fs, potom sa zodpovedajúca frekvencia rovná

Všimnite si, že to znemožňuje detekovať frekvencie vyššie ako je frekvencia merania pôvodného signálu. Toto nie je obmedzenie spôsobené Mathcadom, ale samotnou podstatou problému. Pre správnu rekonštrukciu signálu z jeho Fourierovej transformácie je potrebné zmerať pôvodný signál na frekvencii aspoň dvojnásobku šírky pásma. Úplná diskusia o tomto jave presahuje rámec tohto návodu, ale možno ho nájsť v akejkoľvek učebnici spracovania digitálneho signálu.

Vektor v musí mať 1+ 2 m prvkov, kde m- celý. Výsledkom je komplexný vektor s rozmermi 2 m+1. Ak v má rozmer iný ako 1+2 m, Mathcad zobrazí chybové hlásenie “ nesprávna veľkosť vektora„.Argument v- vektor podobný tomu, ktorý vytvorila funkcia fft. Na výpočet výsledku Mathcad najskôr vytvorí nový vektor w, komplexný konjugát v a pripojí ho k vektoru v. Mathcad potom vypočíta vektor d, ktorého prvky sa vypočítavajú podľa vzorca:

Toto je rovnaký vzorec ako pre fft, okrem znamienka mínus vo funkcii exp. Funkcie fft A ifft- presné odvolania. Pre všetkých skutočne hodnotných v true ifft(fft(v))=v.

Fourierova transformácia v komplexnej doméne

Existujú dva dôvody, prečo nemožno použiť transformačné páry fft/ifft, diskutované v predchádzajúcej časti:
  • Dáta môžu mať komplexnú hodnotu. To znamená, že Mathcad už nemôže využívať symetriu, ktorá sa vyskytuje v skutočnom prípade.
  • Vektor údajov môže mať iný rozmer ako 2 m. To znamená, že Mathcad nemôže využiť vysoko efektívny algoritmus FFT, ktorý používa pár fft/ifft.
Komplexná Fourierova transformácia vyžaduje nasledujúce funkcie:
Obrázok 3: Použitie rýchlych Fourierových transformácií v Mathcade.

Pár premien cfft/icfft môže pracovať s poliami ľubovoľnej veľkosti. Fungujú však oveľa rýchlejšie, keď počet riadkov a stĺpcov môže byť vyjadrený ako súčin veľkého počtu menších faktorov. Napríklad vektory s dĺžkou 2 m sú v tejto triede, rovnako ako vektory s dĺžkou ako 100 alebo 120. Na druhej strane vektor, ktorého dĺžka je veľké prvočíslo, spomaľuje výpočet Fourierovej transformácie.

Funkcie cfft A icfft- inverzne k sebe navzájom. To znamená, icfft(cfft(v))=v. Obrázok 3 ukazuje príklady použitia Fourierovej transformácie v Mathcad.

Keď ako argument cfft matice, výsledkom je dvojrozmerná Fourierova transformácia pôvodnej matice.

Alternatívne formy Fourierovej transformácie

Vyššie uvedené definície Fourierovej transformácie nie sú jediné možné. Napríklad nasledujúce definície pre diskrétnu Fourierovu transformáciu a jej inverziu možno nájsť v knihe Ronalda Bracewellsa, Fourierova transformácia a jej aplikácie(McGraw-Hill, 1986): Tieto definície sú v odbornej literatúre celkom bežné. Ak chcete použiť tieto definície namiesto definícií diskutovaných v predchádzajúcej časti, použite funkcie FFT, IFFT, CFFT A ICFFT. Líšia sa nasledovne:

Funkcie FFT, IFFT, CFFT A ICFFT sa používajú podobne ako funkcie uvedené v predchádzajúcej časti.

Konverzia vlny

Mathcad PLUS obsahuje dve funkcie transformácie vĺn: na vykonávanie priamej jednorozmernej diskrétnej transformácie vĺn a jej inverzie. Konverzia sa vykonáva pomocou štvorkoeficientovej vlny Daubechi.

Časť 3. Riešenie obyčajných diferenciálnych rovníc v Mathcad

Fourierov rad na ľubovoľnom segmente

Časť 2. Rozšírenie funkcií vo Fourierovom rade

Akcie s komplexnými číslami

Časť 1. Výpočty s komplexnými číslami v Mathcad

Prednáška č.5

Predmet: « Komplexné premenné. Rozšírenie funkcií vo Fourierových radoch. Riešenie diferenciálnych rovníc»

V Mathcade je definovaná imaginárna jednotka i: ​​a preto sú definované komplexné čísla a operácie s nimi.

Z=a+bi– algebraická forma zápisu komplexného čísla.

a – reálna časť, b – imaginárna časť

Exponenciálna (exponenciálna) forma zápisu komplexného čísla,

A – modul, φ – argument (fáza)

Trigonometrický tvar zápisu komplexného čísla.

Vzťah medzi veličinami: a=A cos φ b=A sin φ

Z1 = a1 + j b1, Z2 = a2 + j b2

a) Sčítanie (odčítanie) Z3=Z1±Z2=(a1±a2)+j·(b1±b2)

b) Násobenie c·Z1=a·c+j·b·c

Z3=Z1·Z2=(a1·a2-b1·b2)+j·(a1·b2+a2·b1)=A1A2ej(φ1+φ2)

c) Rozdelenie

d) Zvýšenie sily n (prirodzené)

e) Extrakcia koreňov: , kde k =0,1,2…n-1

Stroj akceptuje iba radiány!!! radián=stupeň stupeň=radián

Príklady:

Funkcia f(x) je absolútne integrovateľná na intervale [-p;p], ak existuje integrál. Každá absolútne integrovateľná funkcia f(x) na intervale [-p;p] môže byť spojená s jej trigonometrickým Fourierovým radom:

Koeficienty trigonometrického Fourierovho radu sa nazývajú Fourierove koeficienty a vypočítavajú sa pomocou Euler-Fourierových vzorcov: ,

Označme n-tý čiastočný súčet Fourierovho radu po častiach hladkej funkcie f(x) na intervale [-p;p]. Smerodajná odchýlka je určená vzorcom:

Pre akúkoľvek obmedzenú funkciu f(x) integrovateľnú na [-p;p] je čiastočný súčet jej Fourierovho radu trigonometrický polynóm s najlepšou aproximáciou n-tého stupňa.

Príklad:

Grafy ukazujú, ako konvergujú čiastkové súčty Fourierových radov. V blízkosti bodov spojitosti funkcie f(x) má rozdiel medzi hodnotou funkcie v bode x a hodnotou čiastkového súčtu radu v tomto bode tendenciu k nule ako n®¥, čo je plne v súlade s teóriou, keďže v tomto prípade. Je tiež možné vidieť, že rozdiel má tendenciu k nule, čím rýchlejšie je bod x umiestnený od bodov diskontinuity funkcie.

Príklad:

Pre hladkú funkciu po častiach na intervale [-L;L] funkcie f(x) sa problém rozšírenia Fourierovho radu na intervale [-L;L] lineárnou náhradou redukuje na problém rozšírenia funkcie. na intervale [-p;p]:

Uvažujme o zjednodušeniach vo Fourierovom rade za rôznych podmienok symetrie:

vzorec (1) vzorec (2)


Nech je potrebné nájsť riešenie rovnice

s počiatočnou podmienkou. Táto úloha sa nazýva Cauchy problém . Rozšírme požadovanú funkciu na rad blízko bodu a obmedzme sa na prvé dva členy expanzie. Ak vezmeme do úvahy rovnicu (1) a označíme ju, dostaneme Tento vzorec je možné použiť mnohokrát a nájsť hodnoty funkcie v stále nových a nových bodoch.

Tento spôsob riešenia obyčajných diferenciálnych rovníc je tzv Eulerova metóda . Geometricky Eulerova metóda znamená, že v každom kroku aproximujeme riešenie (integrálnu krivku) pomocou dotyčnicového segmentu nakresleného ku grafu riešenia na začiatku intervalu. Presnosť metódy je nízka a je rádovo h. Hovorí sa, že Eulerova metóda je metódou prvého rádu, to znamená, že jej presnosť lineárne rastie s klesajúcim krokom. h.

Existujú rôzne modifikácie Eulerovej metódy na zvýšenie jej presnosti. Všetky sú založené na skutočnosti, že derivácia vypočítaná na začiatku intervalu je nahradená priemernou hodnotou derivácie v tomto intervale.

Mod(x, y) – zvyšok delenia x y. Výsledok má rovnaké znamienko ako x; uhol (x, y) – uhol (v radiánoch) medzi kladnou osou x a vektorom (x, y) v rovine XY. Argumenty musia byť skutočné. Vráti hodnotu medzi 0 a 2π. strop(3,25) = 4 poschodie (3,25) = 3 mantisa (x) := x − poschodie (x) mantisa (3,45) = 0,45 Tradičné zaokrúhľovanie: zaokrúhlenie (x) := if(mantisa (x)< 0.5, floor(x) , ceil(x)) roundoff (3.46) = 3 roundoff (3.56) = 4 Рис. 14. Создание функций округления На рис. 14 показано, как из этих функций могут быть сформированы функции округления. 4.4. Дискретное преобразование Фурье В Mathcad входят два типа функций для дискретного прямого и об- ратного преобразования Фурье: fft/ifft и cfft/icfft. Эти функции дискрет- ны: они берут в качестве аргументов и возвращают векторы и матрицы. Они не могут быть использованы с другими функциями. Используйте функции fft и ifft, если выполнены два следующих ус- ловия: аргументы вещественны, и вектор данных имеет 2m элементов. Первое условие необходимо, потому что функции fft/ifft используют тот факт, что для вещественных данных вторая половина преобразова- ния Фурье является комплексно сопряженной с первой. Mathcad отбра- сывает вторую половину вектора-результата. Это сохраняет время и память при вычислениях. Пара функций cfft/icfft не использует симметрию в преобразова- нии. По этой причине необходимо использовать их для комплексных данных. 41 Второе условие требуется, потому что пара функций fft/ifft исполь- зует высоко эффективный алгоритм быстрого преобразования Фурье. Для этого вектор аргумента, используемого с fft, должен иметь 2m эле- ментов. В функциях cfft/icfft использован алгоритм, который допускает в качестве аргументов как матрицы, так и векторы произвольного раз- мера. Когда эта пара функций используется с матрицей в качестве аргу- мента, вычисляется двумерное преобразование Фурье. Следует иметь в виду, что если для прямого преобразования исполь- зована функция fft, то для обратного преобразования необходимо ис- пользовать функцию ifft. Аналогично используются функции cfft/icfft. 4.5. Преобразование Фурье в вещественной области Для вещественных векторов с 2m элементами предпочтительно ис- пользовать функции fft/ifft. Функция fft(v) возвращает дискретное пре- образование Фурье, векторный аргумент которой можно интерпретиро- вать как результат измерений через равные промежутки времени некоторого сигнала. Вектор v должен содержать 2m элементов. Резуль- тат – комплекснозначный вектор размерности 1 + 2m–1. Если v имеет размерность, отличную от 2m, Mathcad выдает сообщение об ошибке "неверный размер вектора". Элементы вектора, возвращаемого fft, вычисляются по формуле n −1 ∑ vk e 2 πi (j n) k . 1 Cj = n k =0 В этой формуле n – число элементов в v, i – мнимая единица. Эле- менты в векторе, возвращенном функцией fft, соответствуют различ- ным частотам. Чтобы восстановить фактическую частоту, необходимо знать частоту измерения исходного сигнала. Если v есть n-мерный век- тор, переданный функции fft, и частота измерения исходного сигнала – fs, то частота, соответствующая Ck k fk = fs. n Обратите внимание, что это делает невозможным обнаружить часто- ты выше частоты измерения исходного сигнала. Это ограничение, нала- гаемое не Mathcad, а самой сутью проблемы. Чтобы правильно восста- новить сигнал по его преобразованию Фурье, необходимо произвести 42 i:= 0 .. 63 xi:= sin  π⋅  + rnd (1) − 0.5 i Формирование сигнала:    10  Применяется комплексное преобразование Фурье: c:= fft(x) N:= last (c) N = 32 Обращение преобразования Фурье: z:= ifft(c) N2:= last (z) N2 = 63 j:= 0 .. N k:= 0 .. N2 Графическое представление сигнала zk = xj = 2 –0.499 –0.499 2.34·10 –3 2.34·10–3 0.673 0.673 xi 0 0.659 0.659 1.274 1.274 0.674 0.674 –2 0 20 40 60 80 1.162 1.162 i 0.613 0.613 Фурье-образ 0.179 0.179 4 –0.044 –0.044 0.489 0.489 –0.69 –0.69 cj 2 –1.079 –1.079 –0.777 –0.777 –0.849 –0.849 –1.334 –1.334 0 0 10 20 30 40 j Рис. 15. Быстрые пр6еобразования Фурье в Mathcad 43 измерения исходного сигнала с частотой, по крайней мере, вдвое боль- шей, чем ширина полосы частот. Подробное обсуждение этой пробле- мы содержится в специальных курсах. Функция ifft(v) возвращает обратное дискретное преобразование Фурье. Вектор v должен иметь 1 + 2m элементов, где m – целое. Резуль- тат есть вектор размерности 2m+1. Аргумент v – вектор, подобный созданному функцией fft. Чтобы вы- числить результат, Mathcad сначала создает новый вектор w, комплекс- но сопряженный v, и присоединяет его к вектору v. Затем Mathcad вы- числяет вектор d, элементы которого вычисляются по формуле n −1 ∑ wk e−2πi(j n)k . 1 dj = n k =0 Это та же самая формула, что и для fft, кроме знака минус в функции экспоненты. Функции fft и ifft – точные обращения. Для всех веще- ственных v справедливо ifft(fft(v)) = v. Пример использования прямого и обратного преобразований Фурье приведен на рис. 15. 4.6. Альтернативные формы преобразования Фурье Определения преобразования Фурье, рассмотренные выше, не явля- ются единственно возможными. Например, часто используются следу- ющие определения прямого и обратного преобразований Фурье: n n ∑ f (τ)e−2πi(ν n)τ ; f (τ) = ∑ F (ν) e () . 1 2 πi τ / n ν F (ν) = n τ=1 v =1 Эти определения реализованы во встроенных функциях FFT/IFFT и ICFFT. Они отличаются от быстрого преобразования Фурье следующим: вместо коэффициента 1 n перед обеими формулами стоит коэф- фициент 1/n и коэффициент 1 в обратном преобразовании; знак минус появляется в показателе экспоненты прямого преобразо- вания и исчезает в формуле обратного. 4.7. Кусочно-непрерывные функции Кусочно-непрерывные функции полезны для управления ветвлени- ями и остановками вычислительных процессов. Имеются пять функций 44 Использование условных операторов 2 x:= −2 , − 1.8 .. 2 f (x) := x − 1 g (x) := if(f (x) >0 , f (x) , 0) g(x) sa rovná f(x), keď f(x) > 0, inak 0 4 4 2 f (x) g(x) 2 0 2 0 2 0 2 2 0 2 x x h (x) := if(x ≥ 1 , f (x) , − f (x)) inak –f(x) 5 h(x) 0 Pokračujte vo výpočtoch, kým nie je splnená podmienka 5 2 0 2 2 otázka − a< err x −2 N:= 100 i:= 0 .. N a:= 1000 quess 0:= 10 err:= 10  quess i + a   quess i  quess i+ 1:= until (quess i) − a − err ,  2  2  N2:= last (quess) − 1 j:= 0 .. N2 j= quess j = (quess j)2 = 0 10 100 Число итераций N2 = 5 1 55 3.025·10 3 answer:= quess N2 2 36.591 1.339·10 3 3 31.96 1.021·10 3 answer = 31.623 4 31.625 1·10 3 5 31.623 1·10 3 Рис. 16. Условные выражения в Mathcad 45 Mathcad, относящихся к этому классу. Функция if полезна для выбора одного из двух значений, определяемого условием. Ступенчатая функ- ция Хевисайда Ф(х) и символ Кронекера δ(m, n) во многом аналогичны функции if. Функция until используется, чтобы управлять процессом итераций. Функция if(cond, tval, fval) возвращает значение tval, если cond отли- чен от 0 (истина) и возвращает fval, если cond равен 0 (ложь). Обычно в качестве аргумента cond выбирается булево выражение вида w = z, x >y, x< y, x ≥ y, x ≤ y, w ≠ z. Можно объединять булевы операторы, чтобы записать более сложные условия. Например, условие (x < 1) ⋅ (x >0) funguje ako logické „a“, ktoré vráti 1 iba vtedy, ak je x medzi 0 a 1. Podobne výraz (x > 1) + (x< 0) действует подобно логическому "или", возвращающему 1, если x >1 alebo x< 0, и 0, если x заключено между 0 и 1. Функция until (x, z) возвращает z, пока выражение x не становится отрицательным; должно содержать дискретный аргумент. Функция until позволяет останавливать вычисления для последовательных значений дискретного аргумента. Функция until полезна в итеративных процес- сах с определенным условием сходимости. На рис. 16 приведены примеры использования функций if и until. Функция Хевисайда эквивалентна следующей функции: Ф (x) := if (x < 0,0,1) Символ Кронекера δ(m, n) возвращает 1, если m = n; иначе 0. Оба аргумента должны быть целочисленными. Символ Кронекера эквива- лентен функции δ (m, n) := if (m = n,1,0) Ступенчатая функция Хевисайда может быть использована для со- здания импульса шириной w: pulse (x, w) := Ф (x) − Ф (x − w) Можно определить также две полезные функции lowpass и highpass. Они обе являются фильтрами – умножение на них какого-либо сигнала 46 вырезает из этого сигнала кусок вокруг точки x, имеющий ширину 2w. Разница состоит в том, что lowpass оставляет только вырезанный ку- сок, highpass – все, кроме вырезанного куска. lowpass (x, w) := pulse (x+w, 2 ⋅ w) highpass (x, w) := 1 − pulse (x+w, 2 ⋅ w) 4.8. Статистические функции Для вычисления статистических оценок случайных совокупностей чисел в Mathcad могут использоваться следующие функции: mean(A) – возвращает среднее значение элементов массива А раз- мерности m × n по формуле m −1 n −1 ∑ ∑ Aij ; 1 mean(A) = mn i =0 j =0 var(A) – возвращает дисперсию элементов массива А размерности m × n согласно формуле m −1 n −1 ∑ ∑ Aij − mean(A) 1 2 var(A) = ; mn i =0 j =0 stdev(A) - возвращает среднеквадратичное отклонение (квадратный корень из дисперсии) элементов m × n массива А stdev(A) = var(A). 4.9. Плотности распределения вероятности Эти функции показывают отношение вероятности того, что случай- ная величина попадает в малый диапазон значений с центром в задан- ной точке, к величине этого диапазона. В Mathcad имеются функции семнадцати плотностей вероятностей. Отметим только некоторые из них: dnorm(x, µ, σ) – возвращает плотность вероятности нормального рас- пределения 1  (x − µ) 2  dnorm(x, µ, σ) = exp  − , 2πσ  2σ 2  47 в котором µ и σ есть среднее значение и среднеквадратичное отклоне- ние, σ >0; dunif(x, a, b) – vypočíta hustotu pravdepodobnosti rovnomerného rozdelenia  1, x ∈ ,  dunif(x, a, b) =  b − a  0,  x ∉ v ktorom a a b sú hraničné bodový interval, a< b. 4.10. Функции распределения Эти функции возвращают вероятность того, что случайная величи- на меньше или равна определенному значению. Функция распределе- ния вероятности – это функция плотности вероятности, проинтегриро- ванная от минус бесконечности до определенного значения. Приведем две из них: pnorm(x, µ, σ) – возвращает функцию нормального распределения со средним µ и среднеквадратическим отклонением σ (σ >0); punif(x, a, b) – vráti funkciu rovnomerného rozdelenia. a a b sú hraničné hodnoty intervalu (a< b). Mathcad имеет ряд функций для генерирования случайных чисел, имеющих разнообразные распределения вероятностей. Приведем две из них: rnorm(m, µ, σ) – возвращает вектор m случайных чисел, имеющих нормальное распределение (σ >0); runif(m, a, b) – vráti vektor m náhodných čísel s rovnomerným rozdelením, v ktorom a a b sú hraničné body intervalu (a< b). Остальные встроенные статистические функции и их описания мож- но посмотреть, выбрав команду Функция из меню Вставка. 4.11. Интерполяция и функции предсказания Интерполяция заключается в использовании значений некоторой функции, заданных в ряде точек, чтобы предсказать значения между ними. В Mathcad можно или соединять точки данных прямыми линия- ми (линейная интерполяция) или соединять их отрезками кубического полинома (кубическая сплайн-интерполяция). 48 В отличие от функций регрессии, обсуждаемых в следующем разде- ле, функции интерполяции определяют кривую, точно проходящую че- рез заданные точки. Из-за этого результат очень чувствителен к ошиб- кам данных. Если данные зашумлены, следует рассмотреть возможность использования регрессии вместо интерполяции. Для линейной интерполяции используется функция linterp(vx, vy, x), которая по векторным данным vx и vy возвращает линейно интерполи- руемое значение y, соответствующее третьему аргументу x. Аргументы vx и vy должны быть векторами одинаковой длины. Вектор vx должен содержать вещественные значения, расположенные в порядке возраста- ния. Эта функция соединяет точки данных отрезками прямых, созда- вая, таким образом, ломаную линию. Интерполируемое значение для конкретного x есть ордината y соответствующей точки ломаной. Пример линейной интерполяции показан на рис. 17. Кубическая сплайн-интерполяция позволяет провести кривую через набор точек таким образом, что первые и вторые производные кривой непрерывны в каждой точке. Эта кривая образуется путем создания ряда кубических полиномов, проходящих через наборы из трех смежных то- чек. Кубические полиномы состыковываются друг с другом, чтобы об- разовать одну кривую. Чтобы провести кубический сплайн через набор точек: создайте векторы vx и vy, содержащие координаты x и y, через кото- рые нужно провести кубичный сплайн. Элементы vx должны быть рас- положены в порядке возрастания; вычислите вектор vs:=cspline(vx, vy). Вектор vs содержит вторые про- изводные интерполяционной кривой в рассматриваемых точках. Чтобы найти интерполируемое значение в произвольной точке, ска- жем х0, вычислите interp(vs, vx, vy, x0), где vs, vx и vy – векторы, опи- санные ранее. Обратите внимание, что можно сделать то же самое, вычисляя interp(cspline(vx, vy),vx,vy, x0). Пример использования кубической сплайн-интерполяции приведен на рис. 17 внизу. 49 Линейная интерполяция i:= 0 .. 5 VXi:=i VYi:=vd(1) VXi = VYi = –3 linterp(VX, VY, 1.5) = 0.389 0 1.268·10 1 0.193 linterp(VX, VY, 3.75) = 0.705 2 0.585 linterp(VX, VY, 4.1) = 0.758 3 0.35 4 0.823 x:= 0 , 0.1.. 5 5 0.174 1 linterp(VX , VY , x) 0.5 VYi 0 0 2 4 6 x , VX i Кубическая сплайн-интерполяция i:= 0 .. 5 VXi:= i VYi:= rnd (1) VS:= lspline (VX, VY) interp (VS, VX, VY, 1.5) = 0.188 interp (VS, VX, VY, 3.75) = 0.868 interp (VS, VX, VY, 4.1) = 0.989 1 VYi = 0.71 interp(VS , VX , VY , x) 0.304 0.5 VYi 0.091 0.147 0.989 0 0 2 4 6 0.119 x , VX i Рис. 17. Примеры интерполяции 50