{VERSION 4 0 "IBM INTEL LINUX22" "4.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "" -1 256 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 257 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Tim es" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 2 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "Ti mes" 1 12 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Title" -1 18 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }3 1 0 0 12 12 1 0 1 0 2 2 19 1 }{PSTYLE "Author" -1 19 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 8 8 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 18 "" 0 "" {TEXT -1 30 "Fourier-sarjojen perusty \366arkki" }}{PARA 19 "" 0 "" {TEXT -1 12 "22.11.01 HA" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 33 "Apufunktioita: JJ, trigsiev, jana" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart:" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 13 "with(plots):\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "#read(\"/p/edu/mat-1.414/maple/fourier.mpl\"):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "#read(\"c:\\\\opetus\\\\mapl e\\\\ohjelmat.mpl\"):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "#r ead(\"/home/apiola/opetus/peruskurssi/v2-3/maple/fourier.mpl\"):" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 109 "M\344\344ritell\344\344n uudet ko odit varmuuden vuoksi my\366s t\344ss\344, vaikka ovatkin fourier.mpl :ss\344 (ja ohjelmat.mpl:ss\344)." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 370 "# Jaksollinen jatko: MapleTech Vol 3 No. 3 1996\n#\n JJ:=proc(f,d::range)\n subs(\{'F'=f,'L'=lhs(d),'D'=rhs(d)-lhs(d)\},\n proc(x::algebraic) local y;\n y:=floor((x-L)/D);\n F(x-y*D);\n end)\nend:\n\n# Esim:\n#sw:=JJ(signum,-1..1);\n#plot(sw,-4..4);\n#\n parillinenjatko:=f->unapply(piecewise(x>0,f(x),x<0,f(-x)),x):\n parit onjatko:=f->unapply(piecewise(x>0,f(x),x<0,-f(-x)),x):\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 242 "trigsiev:=proc(lauseke,n)\nlocal t ulos;\ntulos:=subs(sin(n*Pi)=0,lauseke);\ntulos:=subs(cos(n*Pi)=(-1)^n ,tulos);\ntulos:=algsubs(exp(-2*I*n*Pi)=1,tulos);\ntulos:=algsubs(exp( 2*I*n*Pi)=1,tulos);\ntulos:=subs((-1)^(2*n)=1,tulos);simplify(tulos); \nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "jana:=(x,y)->plot ([[x,0],[x,y]],thickness=3,color=blue):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "#display([seq(jana(n,abs(an)),n=1..6)],axes=box);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "op(trigsiev):" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 17 "Fourier-kertoimet" }}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 27 "Reaalinen muoto, cos ja sin" }}{EXCHG {PARA 0 "" 0 " " {TEXT -1 95 "N\344m\344 on syyt\344 ottaa pohjaksi ty\366skentelyyn \+ ja olla valmis modifioimaan esim. integrointirajoja," }}{PARA 0 "" 0 " " {TEXT -1 93 "integrointia paloittain ym. (Kokemus opettaa v\344ltt \344m\344\344n liian pitk\344lle viety\344 automatiikkaa.)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "f:='f': T:='T': omega:='omega': #om ega:=2*Pi/T:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 128 "a0:=(2/T)* int(f(t),t=-T/2..T/2):\nan:=(2/T)*int(f(t)*cos(n*omega*t),t=-T/2..T/2) :\nbn:=(2/T)*int(f(t)*sin(n*omega*t),t=-T/2..T/2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "#sarja:=a0/2+sum(an*cos(n*omega*t)+bn*sin(n *omega*t),n=1..infinity):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "osasumma:=N->a0/2+sum(an*cos(n*omega*t)+bn*sin(n*omega*t),n=1..N): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 " " 0 "" {TEXT -1 24 "Sinisarja ja kosinisarja" }}{PARA 0 "" 0 "" {TEXT -1 296 "J\344ljemp\344n\344 esit\344mme parillisen ja parittoman laaje nnusoperaattorin. K\344yt\344nn\366ss\344 parillista/paritonta laajenn usta vastaa kosini/sinisarja, jossa l\344hdet\344\344n liikkeelle v \344lill\344 [0,d] m\344\344ritellyst\344 funktiosta f, joka laajenne taan parilliseksi/parittomaksi. T\344ll\366in yll\344 olevat kaavat tu levat muotoon:" }}{PARA 0 "" 0 "" {TEXT 257 15 "1) kosinisarja:" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "f:='f': T:='T': omega:='omeg a': #omega:=2*Pi/T:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "a0:= (1/d)*int(f(t),t=-d..d);an:=(1/d)*int(f(t)*cos(n*omega*t),t=-d..d);bn: =0;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 106 "Koska yll\344 olevat integroitavat ovat parilllisia, voi daan integroida [0..d], kunhan tulos kerrotaan 2:lla." }}{PARA 0 "" 0 "" {TEXT -1 151 "T\344ll\366in tullaan toimeen alkuper\344isell\344, v \344lill\344 [0,d] m\344\344ritellyll\344 funktiolla, eik\344 tarvitse kohdistaa integrointia parilliseen laajennukseen. Siisp\344 " }{TEXT 258 18 "kosinisarjakaavat " }{TEXT -1 5 "ovat:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 175 "f:='f':T:='T':omega:='omega':#omega:=2*Pi/T: \na0:=(2/d)*int(f(t),t=0..d);\nan:=(2/d)*int(f(t)*cos(n*omega*t),t=0.. d);bn:=0;\nsarja:='a0'/2+sum('an'*cos(n*omega*t),n=1..infinity);" }} {PAGEBK }{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 259 10 "Sinisarja " }{TEXT -1 26 "saadaan aivan vastaavasti:" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 134 "f:='f':T:='T':omega:='omeg a':#omega:=2*Pi/T:\nbn:=(2/d)*int(f(t)*sin(n*omega*t),t=0..d);\nsarja: =sum('bn'*cos(n*omega*t),n=1..infinity);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 18 "Kompleksinen muoto" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 308 "Kokeillaan vaihteeksi sellaista tyyli\344, ett\344 c on n:n funkt io, t\344ss\344 se on mukavaa, kun kaavatkin ovat yhten\344iset. c-fu nktio on syyt\344 m\344\344ritell\344 unapply-tavalla. Laskentatehossa nimitt\344in on dramaattinen ero. (unapply evaluoi (esim. integroi) m \344\344rittelyaikana, kun taas -> m\344\344rittely tekee sen kutsuaik ana.)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "T:='T': f:='f': omega:='omega': omega:=2*Pi/T:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "c:=unapply(1/T*int(f(t)*exp( -I*n*omega*t),t=0..T),n);c(0):=1/T*int(f(t),t=0..T);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 57 "Vaikka seuraava toimii, niin ei kannata tehd \344, kts. yll\344." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "#c:= n->1/T*int(f(t)*exp(-I*n*omega*t),t=0..T);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 62 "# sarja:=sum('c(n)'*exp(I*n*'omega'*t),n=-infinity. .infinity);" }}}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 6 "Esim. " }}{PARA 0 "" 0 "" {TEXT -1 213 "Muodosta alla m\344\344ritelt\344v\344n funkti on Fourier-sarja, piirr\344 jaksollinen laajennus ja Fourier-osasummie n kuvaajia. Piirr\344 my\366s taajuusspektrit. K\344sittele sek\344 r eaalimuotoista sin/cos-sarjaa ett\344 kompleksimuotoista." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "f:=t->piecewise(-Pi " 0 "" {MPLTEXT 1 0 16 "plot (f,-Pi..Pi);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "jaksf:=JJ(f ,-Pi..Pi):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "plot(jaksf,-2 *Pi..2*Pi);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "T:=2*Pi:omeg a:=2*Pi/T:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 161 "a0:=(2/T)*in t(f(t),t=-Pi..Pi);\nan:=(2/T)*int(f(t)*cos(n*omega*t),t=-Pi..Pi):an:=t rigsiev(an,n);\nbn:=(2/T)*int(f(t)*sin(n*omega*t),t=-Pi..Pi):bn:=trigs iev(bn,n);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 24 "Koska halusimme v \344ltty\344 " }{TEXT 0 6 "assume" }{TEXT -1 62 "-komennon aiheuttamil ta sivuvaikutuksilta, sievensimme omalla " }{TEXT 0 9 "trigsiev-" } {TEXT -1 28 "komennolla. Huomaamme, ett\344 " }{TEXT 0 3 "int" }{TEXT 256 1 " " }{TEXT -1 16 "osasi k\344sitell\344 " }{TEXT 0 9 "piecewise " }{TEXT -1 111 "-m\344\344ritelty\344 funktiota ihan n\344tisti. Luul tavaa on, ett\344 se osaa my\366s ep\344jatkuvalle, mutta kannattaa ta rkkailla." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "#sarja:=a0/2+s um(an*cos(n*omega*t)+bn*sin(n*omega*t),n=1..infinity);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "osasumma:=N->a0/2+sum(an*cos(n*omeg a*t)+bn*sin(n*omega*t),n=1..N);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "osasumma(5);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 137 "T\344ss \344 tyyliss\344 (jossa an ja bn integroitiin symbolisesti valmiiksi), on aivan sopivaa (ja suositeltavaa) k\344ytt\344\344 -> funktiom\344 \344ritystapaa." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "plot([ja ksf(t),osasumma(10)],t=-2*Pi..2*Pi);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "plot([jaksf(t),seq(osasumma(k),k=1..10)],t=-2*Pi..2*P i);" }}}{EXCHG {PARA 5 "" 0 "" {TEXT -1 15 "Taajuusspekrit:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 61 "Piirt\344minen \+ hoituu oikein n\344pp\344r\344sti yll\344 m\344\344rittelem\344ll\344m me " }{TEXT 0 4 "jana" }{TEXT -1 12 "-funktiolla." }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 27 "A0:=a0/2; An:=abs(an-I*bn);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "phi0:=0: phin:=argument(an-I*bn);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 149 "display([jana(0,A0),seq( jana(n,An),n=1..6)],axes=box,title=\"Amplitudispektri\");display([jana (0,phi0),seq(jana(n,phin),n=1..6)],title=\"Vaihespektri\");" }}} {EXCHG {PARA 5 "" 0 "" {TEXT -1 18 "Kompleksinen muoto" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "c:=unapply(1/T*int(f(t)*exp(-I*n*om ega*t),t=0..T),n);c(0):=1/T*int(f(t),t=0..T);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "sarja:=sum('c(n)'*exp(I*n*'omega'*t),n=-infinity..inf inity);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "c(0);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "c(1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "seq(c(n),n=-5..5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "display([seq(jana(n,abs(c(n))),n=-6..6)],axes=box,tit le=\"Amplitudispektri\");" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "display([seq(jana(n,argument(c(n))),n=-6..6)],title=\"Vaihespektri \");" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 37 "Parilliset ja parittomat laajennukset" }}{PARA 0 "" 0 "" {TEXT -1 36 "M\344\344ritell\344\344n laajennusoperaattorit \+ \"" }{TEXT 0 16 "parillinenjatko\"" }{TEXT -1 5 " ja \"" }{TEXT 0 12 " paritonjatko" }{TEXT -1 125 "\", jotka jatkavat\npositiivisella R-akse lilla m\344\344ritellyn funktion parillisena/parittomana koko R:\344 \344n.\n(Ovat ohjelmat.mpl:ss\344)" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "parillinenjatko:=f->unapply( piecewise(x>0,f(x),x<0,f(-x)),x):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "paritonjatko:=f->unapply(piecewise(x>0,f(x),x<0,-f(-x )),x):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "f:=t->t;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "plot(parillinenjatko(f),-1.. 1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "plot(paritonjatko(f) ,-1..1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "plot(paritonjat ko(x->x^2),-1..1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "jaksp ariton:=JJ(paritonjatko(x->x^2),-1..1):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "plot(jakspariton,-3..3);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 77 "Onpas meill\344 nyt hyv\344t v\344lineet. Teht\344vien ra tkominen on pelkk\344\344 nautiskelua!" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 61 "Lis\344ksi kannattaa ottaa viel\344 n umeerisen integroinnin tapaus." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}} {SECT 1 {PARA 3 "" 0 "" {TEXT -1 50 "Fourier-sarjan laskeminen numeeri sesti integroiden" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 118 "Titenk\344 \344n integrointi ei aina onnistu symbolisesti. Otetaan esimerkki, jo ssa samalla tulee sinisarjan kaavan k\344ytt\366. " }}{PARA 0 "" 0 "" {TEXT -1 49 "Kehitett\344v\344 sinisarjaksi v\344lill\344 [-1,1] funkt io: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "f:=t->t^sin(4*Pi*t) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "plot(paritonjatko(f),- 1..1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "d:=1:omega:=Pi:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "b:=array(1..20):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 92 "for 'n' from 1 to 20 do\n \+ b['n']:=(2/d)*evalf(Int(f(t)*sin(n*omega*t),t=0..d));\nod: n:='n':" }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 139 "T\344ss\344 yksi sitke\344 Maple \"feature\" : for-loopin j\344lkeen n:ll\344 on arvo 21, mik\344 joht aa jatkossa virhetilanteeseen, siksi n vapautetaan t\344ss\344." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "osasumma:=N->sum(b[n]*sin(n* omega*t),n=1..N);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "osasum ma(10);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "plot([paritonjat ko(f)(t),op(map(osasumma,[3,5,7,17]))],t=-1..1);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 77 "Tehtiin pikku briljeeraus viel\344 mappaamalla osa summa erin\344isille indekseille." }}}}}{MARK "1 6 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }