Serye ng MathCAD. Mayer R.V.

Trigonometric Fourier series gamit ang Mathcad.

Layunin ng trabaho

Matutong palawakin ang mga pana-panahong function sa trigonometric Fourier series gamit ang Mathcad at bumuo ng mga graph ng mga partial sums ng Fourier series.

Kagamitan

MathCAD software package.

Pag-unlad

Pagpipilian

1) Palawakin ang function sa isang trigonometric Fourier series

2) Palawakin ang function sa isang trigonometric Fourier series sa mga cosine

3) Palawakin ang function sa isang trigonometric Fourier series sa mga tuntunin ng mga sine

Pahintulot na magtrabaho

3.2.1 Ang trigonometric Fourier series ng isang function ay isang functional series ng form

3.2.4 Ang mga fourier coefficient ay kinakalkula para sa function na f(x) (kapag pinalawak sa cosine)

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

Isulat ang trigonometric Fourier series

3.2.5 Ang function na f(x) ay pinalawak sa isang seryeng Fourier sa mga tuntunin ng mga sine (kakaiba), pagkatapos

Sheet
Dokumento Blg. Blg.
Lagda
Sheet
Dokumento bilang.
Lagda
petsa
Sheet

3.1.2. Hanapin ang mga numerical na katangian ng random variable x (x ang panalo ng may-ari ng isang tiket sa lottery).

____ tiket ay iginuhit sa lottery.

Sa mga ito, nanalo sila ng ____ rubles bawat isa

Sa mga ito, nanalo sila ng ____ rubles bawat isa.

3.1.3. Hanapin ang mga numerical na katangian ng random variable na "x"

A). 0.15 b) -0.35 c) 0.35 d) 0.25 e) hindi matukoy.

3.2.3 Mayroong 200 tiket sa lottery. Mayroong 30 nanalong tiket. Ano ang posibilidad na ang tiket ay hindi nanalo?

A). 1.7 b) 0.7 c) 0.17 d) 0.85 d) 0.15

3.2.4 Sumulat ng isang formula para sa pagkalkula ng pagkakaiba ng isang discrete random variable.

3.2.5 Sumulat ng isang formula para sa pagkalkula ng standard deviation ng isang discrete random variable.

________________________________________________________________________________

3.2.6. D (y) = 25. Ano ang standard deviation?

A). ± 5 b) 5 c) -5 d) ay hindi matukoy.

3.2.7 Paano mo malulutas ang isang equation sa MathCAD

______________________________________________________________________________

Ang ______________ ay pinapayagang magtrabaho

Mga resulta ng trabaho

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

Sheet
Dokumento bilang.
Lagda
petsa
Sheet
PR.140448.00.00
PRAKTIKAL NA GAWAIN 12

Paghahanap ng mga pagtatantya ng punto at pagitan

hindi kilalang mga parameter ng pamamahagi sa Excel

1. Layunin ng gawain

Gamit ang ibinigay na sample, matutunang tukuyin ang mga numerical na katangian ng sample at tantyahin ang hindi alam na mga parameter ng pangkalahatang populasyon, at tantyahin ang mathematical na inaasahan ng pangkalahatang populasyon na may ibinigay na probabilidad ng kumpiyansa.

2. Kagamitan:

IBM PC, Microsoft Excel shell.

Pag-unlad

3. 1 Pagpipilian

Tantyahin na may ibinigay na probabilidad ng kumpiyansa γ = mathematical na inaasahan ng pangkalahatang populasyon para sa isang ibinigay na sample

_____________________________________________________________________________________

3. 2 Pahintulot sa paggawa

1. Paano kinakalkula ang sample mean?

2. Paano kinakalkula ang sample variance?

____________________________________________________________________________________________________________________________________________________________

3. Paano kinakalkula ang standard deviation?

____________________________________________________________________________________________________________________________________________________________

4. Paano kinakalkula ang naitama na sample variance?

____________________________________________________________________________________________________________________________________________________________

5. Paano naiiba ang pagtatantya ng punto ng hindi kilalang parameter ng pamamahagi mula sa pagtatantya ng pagitan?

____________________________________________________________________________________________________________________________________________________________

6. Paano kinakalkula ang pagitan upang matantya ang inaasahan sa matematika ng populasyon?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________


7. Ano ang tinutukoy ng Student coefficient?

Baguhin
Sheet
Dokumento bilang.
Lagda
petsa
Sheet
PR.140448.00.00
____________________________________________________________________________________________________________________________________________________________

8. Ano ang nakasalalay sa halaga ng Student coefficient?

____________________________________________________________________________________________________________________________________________________________

Ang mga sumusunod ay pinapayagang magtrabaho:________________________________________________

Mga resulta ng trabaho

σ in = S in = t γ =

Konklusyon

Sa kurso ng gawaing ito, inilapat ko ang mga pormula para sa mga pagtatantya ng punto at pagitan________________________________________________________________

_________________________________________________________________



Baguhin
Sheet
Dokumento bilang.
Lagda
petsa
Sheet
PR.140448.00.00

P

Glushach V.S. UIT-44

praktikal na gawain 1.2. Direkta at kabaligtaran na pagbabago ng Fourier sa MathCad.

Mastering ang trabaho sa MathCad. Pagkakaroon ng mga kasanayan sa paggamit ng Laplace transform upang pag-aralan ang mga spectral na bahagi ng mga signal. Pag-aaral ng time at frequency scale ng time series at Fourier transform.

1. Bumuo ng isang serye ng oras ng tatlong sinusoid. Ang bilang ng mga puntos ay dapat na 2^n

2. Tukuyin ang mean at variance.

3. Ginagawa namin ang direkta at kabaligtaran na pagbabagong-anyo F. Pinapatong namin ang dalawang beses na na-convert na signal sa graph ng orihinal na serye ng oras.

4. Hanapin ang kaugnayan sa pagitan ng sukat ng serye ng oras kasama ang axis ng oras at ang pagbabagong Fourier kasama ang frequency axis.

1. Piliin ang time discreteness dt at ang bilang ng mga puntos sa time series sa anyong nl:= 2 k

Hayaang k:= 9 nl:= 2 k nl=512 Haba ng sample sa oras T:=512

Sh ag sa pamamagitan ng O, ibinigay na nl-1

ang oras ay tinatayang katumbas ng nl Pagkatapos i:=0..nl-l t. := i*dt

2. Binubuo namin ang input signal x bilang kabuuan ng tatlong harmonic signal at tinutukoy ang mga pangunahing istatistika nito.

А1:= 1 f1:= 0.05 xl i:= Al-sin/2*3.14*fl*t i) srl:= mean(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:= mean(x2) sr2 = 3.792x10 -4 s2:=stdev(x2) s2=0.353

A3:= 0.25 f3:= 0.4 x3 i:= A3-sin/2*3.14*f3*t i) sr3:= mean(x3) sr3 = 3.362x10 -4 s3:=stdev(x3) s3=0.177

x i:= xl i + x2 i + x3 i sry:= mean(x) sry = 0.013 sy:= stdev(x) sy = 0.809

1. Direktang pagbabago ng Fourier sa MathCad F:= fft(x)

Ang maximum na panahon ng harmonic component na maaaring nasa isang time series ay katumbas ng sample na haba. Ang harmonic component na ito ay tumutugma sa pinakamababang posibleng frequency sa Fourier transform frequency scale frnin at, nang naaayon, sa hakbang kasama ang Fourier transform frequency axis df.

Tmax:= Tfrnin:=
df:= frnin df = 1.953 x 10 -3

Kaya, ang minimum na frequency at frequency step ng Fourier transform ay katumbas ng frnin = df = 1/T.

Ang Fourier transform ay may bilang ng mga frequency ordinate na kalahati ng laki ng bilang ng mga time series ordinates sa oras n2=nl/2 o, kasama ang zero point (kung saan hindi tinukoy ang Fourier transform)

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

Ang kasalukuyang frequency index ay nagbabago mula j=l hanggang j=n2

Sa kasong ito, nag-iiba ang frequency mula sa fmin =df= 1/T Maximum frequency finax:= n2*df fmax = 0.502

hanggang frnax=n2*df Kasalukuyang dalas f i:= i*df

f 1 = 1.953 x 10 -3 f 257 = 0.502

TUNGKOL SA Pakitandaan na ang Fourier transform ay tinukoy lamang para sa mga frequency sa hanay mula f=finin hanggang f=fmax.

Sa kasong ito, ang mga taluktok sa Fourier spectrum graph ay tumutugma sa mga frequency ng orihinal na sinusoids, ibig sabihin, ang Fourier transform ay nagpapahintulot sa iyo na ihiwalay ang mga bahagi ng dalas ng signal. Ngunit ang mga amplitude ng mga harmonic na bahagi ngayon ay hindi sumasalamin sa mga amplitude ng mga bahagi ng orihinal na serye ng oras (kung saan A1=1, A2=0.5, A3=0.25)

Tandaan din natin na sa dt = 1 ang maximum frequency sa spectrum ng Fourier transform ay katumbas ng frnax = 0.5 oscillations bawat unit time scale. Sa dt = 1 seg ito ay tumutugma sa fmax = 0.5 Hz. Sa kasong ito, ang panahon ng maximum na dalas ay Tfmax=1/0.5=2. Nangangahulugan ito na para sa isang yugto ng maximum na dalas ay mayroong dalawang pagpipilian ng serye ng oras. Ito ay tumutugma sa teorem ni Kotelnikov, ayon sa kung saan upang maibalik ang isang maharmonya na tuloy-tuloy na signal mula sa isang discrete na walang pagkawala ng impormasyon para sa isang panahon ay dapat mayroong hindi bababa sa dalawang mga sample sa oras.

3. Suriin natin ang coincidence ng time series bago at pagkatapos ng double Fourier transform. Upang gawin ito, makuha namin ang inverse Fourier transform mula sa nagresultang direktang pagbabago. Dapat itong tumugma sa orihinal na serye ng oras, na kinumpirma ng sumusunod na graph na FF:= ifft(F)

Ang Mathcad ay naglalaman ng mga function para sa pagsasagawa ng mabilis na discrete Fourier transform (FFT) at ang pagbabaligtad nito. Nagbibigay din ang Mathcad PLUS ng one-dimensional na discrete wave transformation at inversion nito. Ang lahat ng mga function na ito ay may mga argumento ng vector. Kapag tinutukoy ang vector v para mahanap ang wave transform o Fourier transform, siguraduhin na ang unang elemento ng vector ay may index zero: v 0 . Kung hindi tinukoy ang v 0, awtomatikong itinatakda ito ng Mathcad sa 0. Maaaring magresulta ito sa mga baluktot na resulta.

Panimula sa Discrete Fourier Transform

Kasama sa Mathcad ang dalawang uri ng discrete Fourier transform functions: fft/ifft At cfft /icfft . Ang mga function na ito ay discrete: kinukuha nila ang mga vector at matrice bilang mga argumento at ibinalik ang mga ito. Hindi magagamit ang mga ito sa ibang mga function fft At ifft , kung ang mga sumusunod na dalawang kondisyon ay natutugunan:
  • ang mga argumento ay totoo, at
  • ang data vector ay may 2 m na elemento.

Gamitin ang mga tampok cfft At icfft sa lahat ng iba pang kaso.
Ang unang kondisyon ay kinakailangan dahil ang mga function fft/ifft gamitin ang katotohanan na para sa totoong data ang ikalawang kalahati ng Fourier transform ay ang kumplikadong conjugate ng una. Itinatapon ng Mathcad ang ikalawang kalahati ng vector ng resulta. Ito ay nakakatipid ng parehong oras at memorya sa panahon ng mga kalkulasyon.

Pares ng mga function cfft/icfft hindi gumagamit ng simetrya sa pagbabago. Para sa kadahilanang ito, kinakailangan na gamitin ang mga ito para sa kumplikadong data. Dahil ang mga tunay na numero ay isang subset ng mga kumplikadong numero, maaari mo ring gamitin ang pares cfft/icfft para sa totoong mga numero.

Ang pangalawang kundisyon ay kinakailangan dahil ang pares ng mga function fft/ifft gumagamit ng napakahusay na mabilis na Fourier transform algorithm. Upang gawin ito, ang vector ng argumento na ginamit sa fft, dapat may 2 m na elemento. Sa mga function сfft/icfft ginagamit ang isang algorithm na tumatanggap ng parehong mga matrice at mga vector na may di-makatwirang laki bilang mga argumento. Kapag ang pares ng mga function na ito ay ginamit na may isang matrix bilang argumento, ang isang two-dimensional na Fourier transform ay nakalkula.

Mangyaring tandaan na kung ang function ay ginagamit fft para sa direktang conversion, kailangan mong gamitin ang function ifft para sa kabaligtaran. Katulad nito, kung para sa direktang conversion ang ginagamit mo cfft, pagkatapos ay para sa reverse ito ay kinakailangan upang gamitin icfft.

Iba't ibang pormulasyon ng depinisyon ng Fourier transform ay gumagamit ng iba't ibang normalization coefficient at convention tungkol sa sign ng imaginary unit sa exponent ng forward at inverse transforms. Mga pag-andar fft, ifft, cfft At icfft gumamit ng 1/ bilang normalization factor at positibong exponent sa direktang conversion. Mga pag-andar FFT , IFFT , CFFT At ICFFT gamitin ang 1/N bilang normalization factor at negatibong exponent sa direktang conversion. Ang mga function na ito ay dapat gamitin nang magkapares. Halimbawa, kung ginamit CFFT sa direktang conversion, kailangan gamitin ICFFT sa kabaligtaran.

Fourier transform sa totoong domain

Para sa real-valued na mga vector na may 2 m na elemento, maaari kang gumamit ng ilang function fft/ifft. Sinasamantala ng algorithm para sa pag-compute ng mga function na ito ang simetrya na umiiral lamang para sa totoong data. Ito ay nakakatipid ng parehong oras at memorya na kailangan para sa mga kalkulasyon. Vector v dapat mayroong 2 m na elemento. Ang resulta ay isang complex-valued vector ng dimensyon na 1+2 m-1. Kung v ay may sukat maliban sa 2 m, ipinapakita ng Mathcad ang mensahe ng error na " maling laki ng vector”.

Ibinalik ang mga elemento ng vector fft, kinakalkula ng formula

Sa formula na ito n- bilang ng mga elemento sa v, i- haka-haka na yunit.

Ang mga elemento sa vector ay ibinalik ng function fft, tumutugma sa iba't ibang mga frequency. Upang maibalik ang aktwal na dalas, kinakailangang malaman ang dalas ng pagsukat ng orihinal na signal. Kung v meron n-dimensional na vector na ipinasa sa function fft, at ang dalas ng pagsukat ng orihinal na signal - fs, kung gayon ang katumbas na dalas ay katumbas ng

Tandaan na ginagawa nitong imposibleng makakita ng mga frequency na mas mataas kaysa sa dalas ng pagsukat ng orihinal na signal. Ito ay isang limitasyon na ipinataw hindi ng Mathcad, ngunit sa mismong esensya ng problema. Upang wastong buuin ang isang signal mula sa Fourier transform nito, kinakailangang sukatin ang orihinal na signal sa dalas ng hindi bababa sa dalawang beses ang bandwidth. Ang buong talakayan ng hindi pangkaraniwang bagay na ito ay lampas sa saklaw ng manwal na ito, ngunit makikita sa anumang digital signal processing textbook.

Vector v dapat mayroong 1+ 2 m na elemento, kung saan m- buo. Ang resulta ay isang complex-valued vector ng dimensyon na 2 m+1 . Kung v ay may dimensyon maliban sa 1+ 2 m , ipinapakita ng Mathcad ang mensahe ng error na “ maling laki ng vector".Pagtatalo v- isang vector na katulad ng nilikha ng function fft. Upang kalkulahin ang resulta, lumikha muna ang Mathcad ng bagong vector w, kumplikadong conjugate v, at idinagdag ito sa vector v. Pagkatapos ay kinakalkula ng Mathcad ang vector d, na ang mga elemento ay kinakalkula ng formula:

Ito ay ang parehong formula tulad ng para sa fft, maliban sa minus sign sa function exp. Mga pag-andar fft At ifft- tumpak na mga apela. Para sa lahat ng tunay na pinahahalagahan v totoong ifft(fft(v))=v.

Fourier transform sa kumplikadong domain

Mayroong dalawang dahilan kung bakit hindi magagamit ang mga pares ng pagbabago fft/ifft, tinalakay sa nakaraang seksyon:
  • Maaaring kumplikado ang halaga ng data. Nangangahulugan ito na hindi na magagamit ng Mathcad ang simetrya na nangyayari sa totoong kaso.
  • Ang data vector ay maaaring may dimensyon maliban sa 2 m. Nangangahulugan ito na hindi maaaring samantalahin ng Mathcad ang napakahusay na algorithm ng FFT na ginagamit ng pares fft/ifft.
Ang kumplikadong pagbabagong Fourier ay nangangailangan ng mga sumusunod na function:
Figure 3: Paggamit ng Fast Fourier Transforms sa Mathcad.

Isang pares ng mga pagbabago cfft/icfft maaaring gumana sa mga array ng anumang laki. Gayunpaman, mas mabilis silang gumagana kapag ang bilang ng mga row at column ay maaaring katawanin bilang produkto ng isang malaking bilang ng mas maliliit na salik. Halimbawa, ang mga vector na may haba na 2 m ay nasa klase na ito, gayundin ang mga vector na may mga haba tulad ng 100 o 120. Sa kabilang banda, ang isang vector na ang haba ay isang malaking prime number ay magpapabagal sa pagkalkula ng Fourier transform.

Mga pag-andar cfft At icfft- kabaligtaran sa bawat isa. Iyon ay, icfft(cfft(v))=v. Ang Figure 3 ay nagpapakita ng mga halimbawa ng paggamit ng Fourier transform sa Mathcad.

Kapag bilang isang argumento cfft ginagamit ang matrix, ang resulta ay isang two-dimensional Fourier transform ng orihinal na matrix.

Mga alternatibong anyo ng pagbabagong Fourier

Ang mga kahulugan ng Fourier transform na tinalakay sa itaas ay hindi lamang ang mga posibleng. Halimbawa, ang mga sumusunod na kahulugan para sa discrete Fourier transform at ang pagbabaligtad nito ay makikita sa aklat ni Ronald Bracewells, Ang Fourier Transform at ang mga Aplikasyon nito(McGraw-Hill, 1986): Ang mga kahulugang ito ay karaniwan sa teknikal na panitikan. Upang gamitin ang mga kahulugang ito sa halip na ang mga tinalakay sa nakaraang seksyon, gamitin ang mga function FFT, IFFT, CFFT At ICFFT. Nag-iiba sila tulad ng sumusunod:

Mga pag-andar FFT, IFFT, CFFT At ICFFT ay ginagamit katulad ng mga function na tinalakay sa nakaraang seksyon.

Pag-convert ng alon

Ang isang Mathcad PLUS ay may kasamang dalawang wave transformation function: para sa pagsasagawa ng direktang one-dimensional discrete wave transformation at ang inversion nito. Ginagawa ang conversion gamit ang four-coefficient na Daubechi wave na batayan.

Bahagi 3. Paglutas ng mga ordinaryong differential equation sa Mathcad

Fourier series sa isang arbitrary na segment

Bahagi 2. Pagpapalawak ng mga function sa serye ng Fourier

Mga pagkilos na may mga kumplikadong numero

Bahagi 1. Mga kalkulasyon na may mga kumplikadong numero sa Mathcad

Lektura Blg. 5

Paksa: « Mga kumplikadong variable. Pagpapalawak ng mga function sa Fourier series. Paglutas ng mga differential equation»

Sa Mathcad, ang haka-haka na yunit i ay tinukoy: at, samakatuwid, ang mga kumplikadong numero at operasyon sa kanila ay tinukoy.

Z=a+bi– algebraic form ng pagsulat ng complex number.

a – tunay na bahagi, b – haka-haka na bahagi

Exponential (exponential) na anyo ng pagsulat ng isang kumplikadong numero,

A – module, φ – argument (phase)

Trigonometric na anyo ng pagsulat ng isang kumplikadong numero.

Relasyon sa pagitan ng mga dami: a=A cos φ b=A sin φ

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

a) Pagdaragdag (pagbabawas) Z3=Z1±Z2=(a1±a2)+j·(b1±b2)

b) Pagpaparami c·Z1=a·c+j·b·c

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

c) Dibisyon

d) Pagtaas sa kapangyarihan n (natural)

e) Pagkuha ng ugat: , kung saan k =0,1,2…n-1

Ang makina ay tumatanggap lamang ng mga radian!!! radian=degree degree=radian

Mga halimbawa:

Ang function na f(x) ay ganap na maisasama sa pagitan [-p;p] kung may integral. Ang bawat ganap na pinagsama-samang function na f(x) sa pagitan [-p;p] ay maaaring iugnay sa trigonometric Fourier series nito:

Ang mga coefficient ng trigonometric Fourier series ay tinatawag na Fourier coefficients at kinakalkula gamit ang Euler–Fourier formula: ,

Tukuyin natin ang nth partial sum ng Fourier series ng isang piecewise smooth function f(x) sa interval [-p;p]. Ang karaniwang paglihis ay tinutukoy ng formula:

Para sa anumang bounded function na f(x) na maisasama sa [-p;p], ang partial sum ng Fourier series nito ay isang trigonometric polynomial ng pinakamahusay na approximation ng nth degree.

Halimbawa:

Ipinapakita ng mga graph kung paano nagtatagpo ang mga bahagyang kabuuan ng seryeng Fourier. Sa paligid ng mga punto ng continuity ng function f(x), ang pagkakaiba sa pagitan ng value ng function sa point x at ang value ng partial sum ng series sa puntong ito ay nagiging zero bilang n®¥, na kung saan ay ganap na naaayon sa teorya, dahil sa kasong ito. Makikita rin na ang pagkakaiba ay may posibilidad na maging zero nang mas mabilis habang ang puntong x ay matatagpuan mula sa mga discontinuity point ng function.

Halimbawa:

Para sa isang piecewise smooth function sa interval [-L;L] ng function f(x), ang problema ng pagpapalawak ng Fourier series sa interval [-L;L] sa pamamagitan ng linear replacement ay nababawasan sa problema ng pagpapalawak ng function. sa pagitan [-p;p]:

Isaalang-alang natin ang mga pagpapasimple sa serye ng Fourier sa ilalim ng iba't ibang kondisyon ng simetrya:

formula (1) formula (2)


Hayaan itong kinakailangan upang makahanap ng solusyon sa equation

na may paunang kondisyon. Ang gawaing ito ay tinatawag Cauchy na problema . Palawakin natin ang nais na function sa isang serye na malapit sa punto at limitahan ang ating sarili sa unang dalawang termino ng pagpapalawak. Isinasaalang-alang ang equation (1) at tinutukoy ito, nakukuha natin Ang formula na ito ay maaaring mailapat nang maraming beses, sa paghahanap ng mga halaga ng function sa parami nang parami ng mga bagong punto.

Ang pamamaraang ito ng paglutas ng mga ordinaryong differential equation ay tinatawag Pamamaraan ni Euler . Sa geometrically, ang pamamaraan ni Euler ay nangangahulugan na sa bawat hakbang ay tinatantya natin ang solusyon (integral curve) sa pamamagitan ng isang tangent segment na iginuhit sa solution graph sa simula ng interval. Ang katumpakan ng pamamaraan ay mababa at nasa pagkakasunud-sunod ng h. Sinasabi nila na ang pamamaraan ni Euler ay isang first-order na pamamaraan, iyon ay, ang katumpakan nito ay tumataas nang linearly sa pagbaba ng hakbang. h.

Mayroong iba't ibang mga pagbabago sa pamamaraan ni Euler upang mapataas ang katumpakan nito. Ang lahat ng mga ito ay batay sa katotohanan na ang derivative na kinakalkula sa simula ng agwat ay pinalitan ng average na halaga ng derivative sa pagitan na ito.

Mod(x, y) – natitira sa dibisyon ng x sa y. Ang resulta ay may parehong tanda ng x; anggulo(x, y) – anggulo (sa radians) sa pagitan ng positibong x-axis at ng vector (x, y) sa XY plane. Dapat totoo ang mga argumento. Nagbabalik ng value sa pagitan ng 0 at 2π. ceil(3.25) = 4 floor(3.25) = 3 mantissa (x) := x − floor(x) mantissa (3.45) = 0.45 Traditional rounding: roundoff (x) := if(mantissa (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) ay katumbas ng f(x) kapag f(x) > 0, kung hindi 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)) otherwise –f(x) 5 h(x) 0 Ipagpatuloy ang mga kalkulasyon hanggang sa matugunan ang kundisyon 5 2 0 2 2 tanong − 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) ay gumaganap tulad ng lohikal na "at", na nagbabalik ng 1 lamang kung ang x ay nasa pagitan ng 0 at 1. Katulad nito, ang expression (x > 1) + (x< 0) действует подобно логическому "или", возвращающему 1, если x >1, o 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) – kinakalkula ang probability density ng isang pare-parehong distribusyon  1, x ∈ ,  dunif(x, a, b) =  b − a  0,  x ∉ kung saan ang a at b ay hangganan pagitan ng mga puntos, a< b. 4.10. Функции распределения Эти функции возвращают вероятность того, что случайная величи- на меньше или равна определенному значению. Функция распределе- ния вероятности – это функция плотности вероятности, проинтегриро- ванная от минус бесконечности до определенного значения. Приведем две из них: pnorm(x, µ, σ) – возвращает функцию нормального распределения со средним µ и среднеквадратическим отклонением σ (σ >0); punif(x, a, b) – ibinabalik ang pare-parehong function ng pamamahagi. a at b ang mga halaga ng hangganan ng pagitan (a< b). Mathcad имеет ряд функций для генерирования случайных чисел, имеющих разнообразные распределения вероятностей. Приведем две из них: rnorm(m, µ, σ) – возвращает вектор m случайных чисел, имеющих нормальное распределение (σ >0); runif(m, a, b) – nagbabalik ng vector ng m random na numero na may pare-parehong distribusyon, kung saan ang a at b ay ang mga hangganan ng pagitan (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