Szili L´aszl´o ´es T´oth J´anos
Matematika ´es Mathematica
ELTE E¨otv¨os Kiad´o Budapest, 1996
Lektor´ alta Pelik´ an J´ ozsef okleveles matematikus V´an P´eter okleveles fizikus
Nyelvi lektor Homonyik Andrea
A fedelet tervezte Dukay Barna
ISBN 963 463 004 9 c Szili L´ aszl´o ´es T´oth J´ anos, 1996
Tartalomjegyz´ek
El˝ osz´ o
. . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1. Matematikai programcsomagok . . . . . . . . . . . . . 13 1.1. Szimbolikus programcsomagok . . . . . . . . . . . . . 14 1.2. Numerikus programcsomagok . . . . . . . . . . . . . 17 2. Ismerked´ es a Mathematica programmal . . . . 2.1. A legfontosabb tudnival´ ok . . . . . . . . . . 2.2. Programcsomagok . . . . . . . . . . . . . 2.3. Az alapelvekr˝ ol . . . . . . . . . . . . . . 2.3.1. Alapvet˝o adatszerkezetek . . . . . . . ´ ekad´ 2.3.2. Ert´ asok t´ıpusai. Mint´ azatok . . . . 2.3.3 Opci´ ok . . . . . . . . . . . . . . . 2.3.4. Attrib´ utumok . . . . . . . . . . . . 2.3.5. Ki´ert´ekel´es . . . . . . . . . . . . . 2.4. K¨ uls˝ o kapcsolatok . . . . . . . . . . . . . 2.4.1. Be- ´es kimenet . . . . . . . . . . . . 2.4.2. A program k¨ ornyezete . . . . . . . . 2.4.3. Kapcsolat m´as nyelvekkel ´es programokkal 2.5. Tov´abbi inform´ aci´ oforr´ asok . . . . . . . . . 2.5.1. MathSource . . . . . . . . . . . . . 2.5.2. K¨onyvek . . . . . . . . . . . . . . 2.5.3. Foly´ oiratok . . . . . . . . . . . . . 2.5.4. MathGroup . . . . . . . . . . . . .
. . . . . . . . . . . .
3. Fejezetek a matematik´ ab´ ol . . . . . . . . . . . 3.1. Alapvet˝o matematikai fogalmak . . . . . . . 3.1.1. Logikai m˝ uveletek . . . . . . . . . . 3.1.2. Halmazok . . . . . . . . . . . . . . 3.1.3. Sz´amok ´abr´ azol´asa. Aritmetikai m˝ uveletek 3.1.4. F¨ uggv´enyek . . . . . . . . . . . . . 3.1.5. F¨ uggv´enyek ´abr´ azol´asa . . . . . . . . 3.1.6. Gyakorlatok ´es feladatok . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
19 21 25 29 29 35 41 44 46 48 49 58 62 66 67 67 67 68
. . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . .
69 69 70 77 87 100 116 133
. . . . .
4
Tartalomjegyz´ek 3.2.
3.3.
3.4.
3.5.
3.6.
3.7.
Matematikai kifejez´esek . . . . . . . . . . . . 3.2.1. Algebrai polinomok . . . . . . . . . . . 3.2.2. Racion´alis kifejez´esek . . . . . . . . . . 3.2.3. Komplex v´ altoz´os kifejez´esek . . . . . . 3.2.4. Trigonometrikus kifejez´esek . . . . . . . 3.2.5. Egy´eb matematikai kifejez´esek . . . . . . 3.2.6. Nevezetes ¨osszegek ´es szorzatok . . . . . Egyenletek megold´ asa . . . . . . . . . . . . . 3.3.1. Az utas´ıt´ asok szintaxisa . . . . . . . . . 3.3.2. Egyenletek pontos megold´asa . . . . . . 3.3.3. Egyenletek k¨ozel´ıt˝ o megold´asa . . . . . . Anal´ızis . . . . . . . . . . . . . . . . . . . 3.4.1. Be´ep´ıtett speci´alis f¨ uggv´enyek . . . . . . 3.4.2. Sz´amsorozatok ´es sz´amsorok . . . . . . . 3.4.3. F¨ uggv´enyek hat´ ar´ert´eke . . . . . . . . . 3.4.4. Differenci´ alsz´am´ıt´ as . . . . . . . . . . 3.4.5. Integr´alsz´am´ıt´ as . . . . . . . . . . . . 3.4.6. F¨ uggv´enyk¨ozel´ıt´esek . . . . . . . . . . 3.4.7. Vektoranal´ızis . . . . . . . . . . . . . Differenci´alegyenletek . . . . . . . . . . . . . 3.5.1. Ir´anymez˝o k´et ´es h´arom dimenzi´oban . . . 3.5.2. Megold´ as kvadrat´ ur´ aval . . . . . . . . . 3.5.3. Els˝o integr´ alok . . . . . . . . . . . . . 3.5.4. Numerikus megold´ as . . . . . . . . . . 3.5.5. Laplace-transzform´aci´ o . . . . . . . . . 3.5.6. Megold´ as hatv´ anysorokkal . . . . . . . . 3.5.7. Szukcessz´ıv approxim´ aci´ o . . . . . . . . 3.5.8. Stabilit´ aselm´elet . . . . . . . . . . . . 3.5.9. Parci´ alis differenci´ alegyenletek . . . . . . osz´am´ıt´ as . . . . . . . . . . . . 3.5.10. Vari´ aci´ 3.5.11. Gyakorlatok ´es feladatok . . . . . . . . Diszkr´et matematika . . . . . . . . . . . . . 3.6.1. Adott tulajdons´ ag´ u list´ak . . . . . . . . 3.6.2. Lesz´aml´al´ as . . . . . . . . . . . . . . 3.6.3. Egyszer˝ u kombinatorikai azonoss´ agok . . . 3.6.4. Differenciaegyenletek, gener´atorf¨ uggv´enyek 3.6.5. Gr´ afok ´es folyamok . . . . . . . . . . . 3.6.6. Gyakorlatok ´es feladatok . . . . . . . . Geometria . . . . . . . . . . . . . . . . . . 3.7.1. Geometriai alakzatok . . . . . . . . . . 3.7.2. Tov´abbi lehet˝ os´egek . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
135 136 146 148 150 153 155 158 158 163 176 181 181 183 190 192 201 209 221 225 225 228 231 231 234 236 238 240 242 245 246 248 248 251 253 254 259 263 264 264 269
Tartalomjegyz´ek 3.8.
Line´aris algebra . . . . . . . . . . . . . . . . 3.8.1. Vektorok ´es m´atrixok megad´ asa . . . . . . 3.8.2. R´eszm´atrixok kezel´ese . . . . . . . . . . 3.8.3. M˝ uveletek vektorokkal ´es m´atrixokkal . . . . 3.8.4. Vektornorm´ak ´es m´atrixnorm´ ak . . . . . . 3.8.5. A Gram–Schmidt-f´ele ortogonaliz´aci´ os elj´ar´ as 3.8.6. Line´aris egyenletrendszerek megold´asa . . . 3.8.7. M´ atrix saj´ at´ert´ekei ´es saj´atvektorai . . . . . 3.8.8. M´ atrix felbont´ asa . . . . . . . . . . . . 3.8.9. Line´aris programoz´ as . . . . . . . . . . . 3.9. Sz´amelm´elet . . . . . . . . . . . . . . . . . . 3.9.1. Sz´amrendszerek . . . . . . . . . . . . . 3.9.2. Oszthat´os´ag . . . . . . . . . . . . . . . 3.9.3. L´anct¨ortek . . . . . . . . . . . . . . . 3.9.4. Pr´ımsz´amok. A sz´amelm´elet alapt´etele . . . 3.9.5. Sz´amelm´eleti f¨ uggv´enyek . . . . . . . . . 3.9.6. Kongruenci´ ak . . . . . . . . . . . . . . 3.9.7. Tov´abbi fejezetek . . . . . . . . . . . . 3.9.8. Gyakorlatok ´es feladatok . . . . . . . . . 3.10. Val´ osz´ın˝ us´egsz´am´ıt´ as . . . . . . . . . . . . . . 3.10.1. Klasszikus val´ osz´ın˝ us´egi mez˝ok . . . . . . . 3.10.2. Gener´ atorf¨ uggv´enyek . . . . . . . . . . . 3.10.3. Tetsz˝oleges val´osz´ın˝ us´egi v´altoz´ok . . . . . 3.10.4. Karakterisztikus f¨ uggv´enyek . . . . . . . . 3.10.5. Hat´ areloszl´as-t´etelek . . . . . . . . . . . 3.10.6. V´eletlensz´am-gener´al´ as . . . . . . . . . . 3.10.7. Markov-l´ ancok . . . . . . . . . . . . . . 3.10.8. Folytonos idej˝ u Markov-folyamatok . . . . . 3.10.9. Gyakorlatok ´es feladatok . . . . . . . . . 3.11. Matematikai statisztika . . . . . . . . . . . . . 3.11.1. Az adatok el˝ok´esz´ıt´ese . . . . . . . . . . 3.11.2. Statisztik´ ak . . . . . . . . . . . . . . . 3.11.3. Becsl´esek . . . . . . . . . . . . . . . . 3.11.4. Hipot´ezisvizsg´alat . . . . . . . . . . . . 3.11.5. Korrel´ aci´ o- ´es regresszi´oanal´ızis. Sz´or´ asanal´ızis 3.11.6. Id˝ osorok . . . . . . . . . . . . . . . . ¨ 3.11.7. Osszetett feladatok, u ´j m´ odszerek . . . . . 3.11.8. Gyakorlatok ´es feladatok . . . . . . . . .
5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
270 270 276 278 288 291 293 296 299 301 304 305 306 309 311 314 316 319 320 325 325 327 328 330 331 332 334 335 337 338 338 342 345 349 350 352 356 356
6
Tartalomjegyz´ek
4. A Mathematica programoz´ as´ ar´ ol . . . . 4.1. Programnyelvi elemek . . . . . . . . . 4.2. Gyorsas´ag, gyors´ıt´ as . . . . . . . . . 4.2.1. Tipikus m˝ uveletek id˝ oig´enye . . . 4.2.2. Gyors´ıt´ as eml´ekez˝o f¨ uggv´enyekkel uggv´ennyel 4.2.3. Gyors´ıt´ as a f¨ 4.2.4. Gyors´ıt´ as listam˝ uveletekkel . . . 4.3. Tan´acsok programok k´esz´ıt´es´ehez . . . . 4.4. Saj´ at programcsomag k´esz´ıt´ese . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
357 358 364 365 367 367 369 371 372
5. Matematik´ an k´ıv¨ uli alkalmaz´ asok ¨ 5.1. Uzleti grafika . . . . . . . . 5.2. Hang . . . . . . . . . . . . 5.3. Id˝ o . . . . . . . . . . . . . 5.4. Fizika (m´ert´ekegys´egek) . . . . 5.5. F¨ oldrajz (t´erk´epek) . . . . . . 5.6. K´emia (elemek) . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
373 373 375 377 379 381 383
. . . . . . . . . . . . . . . . . . . . .
385
T´ argymutat´ o . . . . . . . . . . . . . . . . . . . . . . .
391
Irodalomjegyz´ ek
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
El˝ osz´ o
Az elm´ ult t´ız ´evben rohamosan fejl˝ od˝ o, szimbolikus sz´am´ıt´ asokra is k´epes matematikai programcsomagok u ´ j t´ avlatokat nyitnak a matematika alkalmaz´asai, kutat´ asa ´es oktat´asa el˝ott. A matematika sok ter¨ ulet´ehez seg´ıts´eget ny´ ujt´ o szimbolikus programcsomagok k¨ oz¨ ul az egyik legn´epszer˝ ubb ´es legelterjedtebb a Wolfram Research Institute ´altal l´etrehozott ´es terjesztett Mathematica program (n´eha nyelv et mondunk). A program megv´ as´arl´ o ja az ¨osszesen t¨obb mint 1400 oldalnyi [3, 89] referenciak¨ onyveket is k´ezhez kapja. Angolul, n´emet¨ ul, jap´ anul, franci´ aul ´es m´as nyelveken m´ar majdnem 100 k¨ onyv jelent meg k¨ ul¨ onf´ele aspektusair´ol ´es alkalmaz´asair´ol. Magyar nyelven azonban eddig nem a´llt rendelkez´esre rendszeres bevezet˝o. Ennek a hi´ anynak a p´ otl´ as´an k´ıv¨ ul azt is c´elul t˝ uzt¨ uk ki, hogy viszonylag r¨ ovid terjedelemben, lehet˝os´eg szerint teljes ´attekint´est adjunk a nyelv lehet˝os´egeir˝ol, bele´ertve a kieg´esz´ıt˝ o csomagokat is. Azt szeretn´enk, ha a on matematika valamely fejezete ir´ant ´erdekl˝od˝ o Olvas´ ot a legr¨ovidebb id˝ bel¨ ul eljuttathatn´ ank oda, hogy a lehet˝ o legmagasabb szinten kapjon seg´ıts´eget a programt´ ol saj´ at alkalmaz´ asi, kutat´ asi ´es oktat´asi feladatainak megold´as´ahoz. • El˝ ozm´ enyek, olvas´ ok, el˝ oismeretek A Mathematica programcsomagot 1992-ben kezdt¨ uk el oktatni a G¨ od¨ oll˝ oi Agr´artudom´ anyi Egyetemen, egy ´evvel k´es˝obb pedig az E¨ otv¨ os Lor´and Tudom´anyegyetemen. Itt szerzett tapasztalataink alapj´an az Olvas´ o v´ arhat´ oan rendelkezik elemi sz´am´ıt´ og´epes ismeretekkel, ´es ´erdekli a matematika alkalmaz´ asa, vagy oktat´ as´ anak (sz´ am´ıt´ og´epek felhaszn´ al´ as´ aval t¨ ort´en˝ o) megu ´j´ıt´ asi lehet˝ os´egei. A fizikus, geofizikus, g´ep´eszm´ern¨ ok, programoz´ o, programtervez˝o stb. szakos egyetemist´akon k´ıv¨ ul rendszeresen tal´ alkoztunk doktoranduszokkal ´es fiatal egyetemi oktat´okkal is a hallgat´ os´ag soraiban, k¨ ozt¨ uk gyakorl´ o biol´ ogussal, fizikussal, matematikussal, m´ern¨ okkel, vegy´esszel. o matematikai fogalmakat ´es t´eteleket csak abban az esetben Az el˝ ofordul´ ismertett¨ uk, amikor ennek sz¨ uks´eg´et ´erezt¨ uk. Mindezek alapj´ an u ´gy gondoljuk, hogy matematik´ ab´ ol a k¨ onyv nagy r´esz´enek elolvas´as´ahoz elegend˝o
8
El˝ osz´o
valamilyen egy-m´asf´el ´eves egyetemi kurzus elv´egz´ese, de id˝onk´ent r´ a fogunk mutatni azokra a lehet˝ os´egekre, amelyek a matematikust seg´ıthetik a kutat´ asban. K¨ ul¨ onleges szerep¨ uk lehet a tan´ ar -olvas´oknak: o˝k seg´ıthetnek annak megmutat´ as´aban, hogy ak´ ar az ´altal´ anos iskol´ at´ol kezdve lehet tal´alni a programban felhaszn´ al´ asra m´elt´o, ´erdekes elemeket. • Mi´ ert a Mathematica ? N´eh´ any megjegyz´est tesz¨ unk a t¨ obbi szimbolikus csomagr´ ol ´es a Mathematica hozz´a juk val´ o viszony´ ar´ ol. Mindenekel˝ ott megeml´ıtj¨ uk, hogy magyar nyelven az els˝o ilyen programcsomagr´ol sz´ol´ o k¨ onyv a DERIVE program oktat´asi alkalmaz´asair´ol sz´amolt be [79], s ez m´ar k´et kiad´asban is napvil´ agot l´ atott. A legut´ obbi id˝ oben t¨ obb k¨ onyv is megjelent illetve megjelen˝oben van a — matematikus k¨ or¨ okben szint´en n´epszer˝ u — MAPLE V programr´ ol [42, 56]. Magunk mindezt o¨rvendetes esem´enynek tekintj¨ uk, s rem´elj¨ uk, as felsz´amol´ahogy az angol nyelv˝ u irodalommal szemben megl´ev˝o elmarad´ s´ahoz jelen munk´ aval is hozz´ a j´ arulhatunk. Azt rem´elj¨ uk, hogy a MAPLE V vagy a DERIVE program h˝ us´eges haszn´al´ o ja is tal´ al o¨tleteket k¨onyv¨ unkben, ahogyan mi is vett¨ unk m´ as nyelvekr˝ol sz´ol´ o k¨ onyvekb˝ ol feladatokat, oktat´asi ´es programoz´asi ¨otleteket egyar´ant. Mi´ert ´eppen a Mathematic´ a val foglalkozunk? Jelenlegi ismereteink alapj´an u ´gy l´ atjuk, hogy a matematikai programcsomagok m´ar ma is, ´es a k¨ozeli j¨ov˝ oben m´eg ink´ abb k´epesek lesznek arra, hogy a programoz´ assal, sz´am´ıt´ astudom´annyal ´es numerikus matematik´ aval nem hivat´ asszer˝ uen, de k´enyszer˝ uen foglalkoz´ o fizikusok, m´ern¨ ok¨ ok, orvosok, vegy´eszek ´es m´as szakemberek szellemi energi´ aj´ anak jelent˝ os r´esz´et felszabad´ıts´ ak. Ily m´odon sokkal t¨ obb idej¨ uk marad a megfelel˝ o modellek fel´ all´ıt´ as´ara, a kapott eredm´enyek elemz´es´ere ´es ´ertelmez´es´ere. uletes szeml´el˝o sz´am´ara a legn´epszer˝ ubb szimbolikus programcsomaFel¨ gok — mivel nyilv´anval´ oak ´es j´ol defini´ alhat´ oak a felhaszn´ al´ oi ig´enyek — hasonl´ oan viselkednek. Jellemz˝o, hogy az egyik program hirdet´es´eben szerepl˝ o feladatok a m´asikkal a´ltal´ aban megoldhat´ ok. Amiben az egyik lemarad, igyekszik utol´erni a m´ asikat. A Mathematica p´eld´ aul grafikai ´es anim´aci´os k´epess´egeivel (ide´ertve a hangk´epz´est is) t˝ unt ki kor´ abban, a t¨ obbiek sz´am´ara ebben ez a program volt a minta. Amiben ma is kiemelked˝onek t˝ unik, az a k¨ ul¨ onb¨ oz˝o programoz´ asi st´ılusok at lehet˝ov´e t´ev˝o eszk¨ozt´ ara. A t¨ obbi nyelv olyannak l´ atszik, mint egy hagyom´anyos procedur´ alis programoz´ asi nyelv, azzal a t¨obblettel, hogy szimb´ olumokkal ´es tetsz˝olegesen nagy, illetve tetsz˝olegesen pontos sz´amokkal is lehet sz´amolni benn¨ uk. A Mathematic´ a ban viszont m´ od van arra is, hogy
El˝ osz´o
9
haszn´ aljuk a szab´ alyalap´ u ´es az objektumorient´alt programoz´ as m´odszereit; v´eg¨ ul — de tal´ an ez a legfontosabb — a rendszer k´esz´ıt˝ oi ´es akt´ıv haszn´ al´ oi ´ a funkcion´ alis programoz´ ast k¨ ul¨ onlegesen hat´ekony eszk¨ozz´e tett´ek. Ujra (nem el˝osz¨or, de val´ osz´ın˝ uleg nem utolj´ ara a sz´am´ıt´ astechnika t¨ort´enet´eben) elmondhat´ o, hogy a´ltala lehet˝ ov´e v´alik, hogy a felhaszn´ al´ onak csak a feladatot kell megfogalmaznia, m´egpedig a matematika nyelv´en, s a megold´ as teljesen a program dolga. Term´eszetesen nem lehet el´egg´e hangs´ ulyozni az ellen˝ orz´es fontoss´ ag´at, hiszen bonyolult programr´ ol (programokr´ ol) van sz´o. Tegy¨ unk n´eh´ any kritikai megjegyz´est is. A Mathematica rendk´ıv¨ ul hossz´ u azonos´ıt´ ok at haszn´ al, hogy ne kelljen a felhaszn´ al´ onak kital´ alnia az esetal´ o hogyan leges r¨ovid´ıt´eseket. ´Izl´es k´erd´ese, hogy ezt a t´enyt a felhaszn´ viseli el. Ahhoz, hogy a programmal komolyabb szimbolikus sz´ am´ıt´ asok at lehessen v´egezni (ami pedig a legalapvet˝ obb deklar´ alt c´elja az ilyen programoknak), nagyon alaposan meg kell azt ismerni. N´eh´ any esetben eg´eszen egyszer˝ u feladatok megold´ asak´ent hib´ as eredm´enyt kaphatunk. Ez figyelmeztet arra, hogy az eredm´enyeket kritikusan kell fogadnunk ´es ´erdemes t¨ obbf´elek´eppen is ellen˝orizn¨ unk. Id˝ onk´ent az a benyom´ asunk, hogy egyes feladatokat csak nagyon neh´ezkesen lehet vele megoldani. (P´eld´ aul amiatt, hogy a sz´ amok alap´ertelmez´esben komplexek.) Ennek a h´ atr´ anynak az ´ert´ekel´es´en´el vegy¨ uk azonban figyelembe, hogy egyetlen gyakorl´ o matematikusnak vagy alkalmaz´ onak sem kell a matematika minden ter¨ ulet´ere tekintettel lennie, el´eg, ha egy sz˝ uk ter¨ uleten viszonylag k¨ ovetkezetes elnevez´eseket, jel¨ol´eseket, szok´asokat alak´ıt ki. A Mathematica viszont, amint Wolfram k¨ onyv´enek alc´ıme mondja, olyan rendszer, amely lehet˝ ov´e teszi a sz´am´ıt´ og´epes matematiz´al´ ast (nem pedig az algebrai, numerikus vagy statisztikai vizsg´alatokat). Ez a nagyig´eny˝ u c´elkit˝ uz´es rengeteg olyan probl´em´at vet fel — ´es a megold´asok nem is olyan rosszak —, amellyel gyakorl´o alkozik. matematikus vagy alkalmaz´o nem is tal´ • Alkalmaz´ as, oktat´ as, kutat´ as A matematika alkalmaz´ as´ aban (ak´ ar u ´j ter¨ uletr˝ ol, ak´ ar ismert eredm´enyek oktat´as´ar´ ol van sz´o), a matematikai programcsomagok haszn´alat´ anak jelent˝ os´ege abban a´ll, hogy a s´ ulypont a´ttev˝ odhet a m´ odszerek r˝ ol az esettanulm´ anyok ra. Eddig egy-egy alkalmaz´ asi feladat megold´asa rengeteg energi´at em´esztett f¨ol, ma pedig ezekkel a programokkal egy-egy tan´ora alatt teljes alkalmaz´ asok megold´asa v´egigk¨ ovethet˝o. Az eddigiekben els˝ osorban matematik´an k´ıv¨ uli alkalmaz´ asokra gondoltunk. Rem´elj¨ uk azonban, hogy egyre t¨ obb matematikus is hasznosnak fogja tal´ alni kutat´ omunk´ a j´ ahoz egy ilyen program megismer´es´et, mert a seg´ıts´e-
10
El˝ osz´o
g´evel f¨ olvet˝ od˝ o munkahipot´ezisei sok esetben sokkal gyorsabban ellen˝orizhet˝ ok, mint pap´ıron, ceruz´ aval. Szinte nyilv´ anval´ o, hogy a matematika oktat´ as´ a ban egy ilyen programcsomag j´ol haszn´ alhat´ o. Sokkal kev´esb´e nyilv´ anval´ o az, hogy hogyan. A matematika oktat´as´an´ al a´ltal´ anos elv lehet, hogy valamely ter¨ ulet alapfogalmait a hagyom´ anyos m´odon ´erdemes elsaj´at´ıttatni (ek¨ ozben legfeljebb a tan´ ar haszn´ alja a programcsomagot illusztr´ al´ as c´elj´ ab´ ol), majd a k¨ ovetkez˝o ter¨ uletn´el a m´ar megtanult r´eszhez tartoz´o sz´am´ıt´ asokat a hallgat´o is v´egezheti sz´am´ıt´ og´eppel. P´eld´ aul a line´ aris algebrai alapok megfelel˝o elsaj´ at´ıt´ asa ´es begyakorl´ asa ut´ an m´ ar sokkal hat´ekonyabban tudunk a differenci´ alegyenletekre vagy a statisztik´ ara koncentr´ alni, ha a saj´ at´ert´ekeket ´es saj´ atvektorokat nem k´ezzel sz´amoljuk. A matematika oktat´ as´anak k´et sz´els˝os´eges ´all´ aspontja — sark´ıtott megfogalmaz´ asban — az ´elm´enyszerz´est, illetve a pontoss´ agot tartja a legfonto¨ sabbnak. Orvendetes, hogy a Mathematica mindk´et ´all´ aspont k´epvisel˝oinek pozit´ıv ´ervekkel szolg´alhat: m´ odot ad arra, hogy ak´ ar a tiszta, ak´ar az alkalmazott matematika ter¨ ulet´en a tanul´ o a megszokottn´al j´ oval t¨ obb p´eld´ aval ismerkedhess´ek meg (an´elk¨ ul, hogy beleveszne az unalmas rutinmunk´ aba), m´asr´eszt lehet˝ov´e teszi, hogy a matematik´aban megszokott legszigor´ ubb (esetenk´ent azon t´ ulmen˝ o) pontoss´ agot alkalmazzunk. • Fel´ ep´ıt´ es A k¨ onyv fel´ep´ıt´ese a k¨ovetkez˝o: El˝ osz¨or a´ltal´ anos a´ttekint´est adunk a matematikai programcsomagokr´ol, majd a Mathematic´ a r´ ol. Ez ut´ obbi fejezet 2.3. szakasza ismerteti a Mathematica konstrukci´ os alapelveit; ehhez a nehezebb r´eszhez a k´es˝obbiekben t¨ obbsz¨ or ´erdemes visszat´erni, s˝ ot: bocs´ anatos b˝ unnek tartjuk, ha a t¨ urelmetlen Olvas´o els˝o alkalommal nem olvassa v´egig ezt a szakaszt, hanem sietve r´at´er a 3. fejezet ˝ot ´erdekl˝o szakasz´ara. A k¨ onyv gerinc´et ugyanis a 3. fejezet k´epezi, amely a matematika n´eh´ any fontos ter¨ ulet´et t´argyalja, abb´ ol a szempontb´ ol, hogy az adott ter¨ ulet feladatainak megold´ asa hogyan tehet˝ o k¨ onnyebb´e a program felhaszn´ al´ as´aval. Miel˝ ott azonban az Olvas´ o r´ at´er az anal´ızisr˝ol vagy a sz´amelm´eletr˝ol sz´ol´ o szakasz olvas´as´ara, val´ osz´ın˝ uleg helyesen teszi, ha a 3.1.3–3.1.5. pontot, a 3.2. szakaszt (´es esetleg a 3.3.-at is) ´attanulm´ anyozza. A programoz´as ir´ant ´erdekl˝od˝ o Olvas´ o sz´am´ara nyilv´an nem a 3. fejezet valamelyik szakasza, hanem a 4. fejezet ny´ ujt n´emi (rendk´ıv¨ ul v´ azlatos) t´ a j´ekoztat´ast. Azt gondoljuk, hogy — feladatt´ ol f¨ ugg˝ oen — majdnem mindenki hasznos´ıthatja majd az 5. fejezet valamelyik r´esz´et. V´eg¨ ul a hivatkoz´ asok ´es kulcsszavak jegyz´ek´et abban a rem´enyben a´ll´ıtottuk o¨ssze, hogy ezzel minden Olvas´o sz´am´ara k¨ onnyebben kezelhet˝ ov´e tessz¨ uk a k¨ onyvet.
El˝ osz´o
11
Az egyes r´eszekn´el k¨oz¨olt gyakorlatok ´es feladatok neh´ezs´egi szintje ´es sz´ama v´altoz´o. Ezen a helyzeten tal´an egy k´es˝obb o¨ssze´all´ıtand´ o p´eldat´ar ´ fog majd seg´ıteni. Ugy v´elj¨ uk azonban, hogy a legt¨ obb Olvas´ o rendelkezik sz´amos saj´at probl´em´aval, ´es ´eppen azok megold´ as´ahoz keres hat´ekony eszk¨ozt. Az Olvas´o munk´ a j´ at megk¨onny´ıtheti az, hogy a k¨ onyv p´eld´ ait elhelyezt¨ uk a MathSource-on (l´ asd a 2.5.1. pontot). L´etezik viszont egy k¨ ul¨ onleges funkci´ o j´ u ingyenes kieg´esz´ıt˝ o program is ugyanott (0204–972), a MathReader, amellyel a Mathematica ´altal ´ırott a´llom´ anyok elolvashat´ok. Rem´elj¨ uk, hogy p´eld´ aink ´es a MathReader egy¨ uttesen teljes ´es gyors ´attekint´est adnak a Mathematica lehet˝os´egeir˝ol annak az Olvas´ onak, aki m´eg nem rendelkezik a programcsomaggal. • Jel¨ ol´ esek :=
defini´ al´ o egyenl˝ os´eg
A⊂B N
az A halmaz (nem felt´etlen¨ ul val´ odi) r´eszhalmaza a B halmaznak a pozit´ıv eg´esz sz´amok halmaza
Z
az eg´esz sz´amok halmaza
Zp
Q
Adot p pr´ımsz´am eset´en az eg´esz sz´amok halmaz´anak mod p marad´ekoszt´alyai a´ltal meghat´ arozott test a racion´ alis sz´amok halmaza
R
a val´ os sz´amok halmaza
C
a komplex sz´amok halmaza
C
m×n
(m, n ∈ N)
f :A→B
az m × n-es komplex ´ert´ek˝ u m´ atrixok halmaza az A halmazon ´ertelmezett B halmazbeli ´ert´ekeket felvev˝ o f¨ uggv´eny
• K¨ osz¨ onetnyilv´ an´ıt´ as A Mathematica programmal val´ o ismerked´es ´es a k¨onyv meg´ır´ asa k¨ozben sz´amos ¨otletet ´es hasznos´ıthat´ o b´ır´ al´ o megjegyz´est, valamint biztat´ o t´ amogat´ ast kaptunk koll´eg´ainkt´ ol ´es tan´ıtv´ anyainkt´ ol az E¨ otv¨ os Lor´and Tudom´anyegyetemen ´es a G¨od¨ oll˝ oi Agr´artudom´ anyi Egyetemen.
12
El˝ osz´o
A program haszn´ alata k¨ ozben felmer¨ ult k´erd´eseinkkel els˝osorban Warren Boont, a Wolfram Research Inc. (r¨ oviden: WRI) hivat´asos eur´opai tan´ acsad´ o j´ at bomb´ aztuk, a felfedezett v´elt ´es val´os´agos hib´ ak miatt ˝ot vontuk ´alland´ oan felel˝ oss´egre. V´alaszaival nagyban hozz´ a j´ arult ahhoz, hogy k¨ onyv¨ unk hasznosabb, informat´ıvabb legyen. A k¨ onyv ´ır´ as´at r´eszben az MKM 419. ´es 3306. sz´am´ u p´ aly´ azat´anak keret´eben v´egezt¨ uk. Pelik´ an J´ ozsef ´es V´an P´eter lektork´ent matematikai, nyelvi, sz´ am´ıt´ astechnikai ´es alkalmaz´asi szempontokat egyar´ant figyelembe v´eve, rendk´ıv¨ ul alaposan v´egezte munk´a j´ at. Javaslataikat ´es megjegyz´eseiket igyekezt¨ unk az Olvas´o jav´ ara hasznos´ıtani. V´eg¨ ul pedig megk´erj¨ uk a tisztelt Olvas´ ot, ha b´ armilyen hib´ at tal´ al, vagy b´ armilyen hasznos´ıthat´ o megjegyz´ese van, juttassa el azt a szerz˝okh¨ oz vagy a kiad´ ohoz. Budapest, 1996. m´ ajus
Szili L´ aszl´o
anos T´oth J´
ELTE TTK Numerikus Anal´ızis Tansz´ek Budapest, M´ uzeum krt 6–8. 1088
[email protected]
GATE MGK Sz´am´ıt´ astechnikai Tansz´ek G¨ od¨ oll˝ o, P´ ater K. u. 1. 2103
[email protected]
1. Matematikai programcsomagok
M´ ar az ´okorban megjelentek az emberi tev´ekenys´egnek olyan ter¨ uletei, amelyek k¨ ul¨ on¨ osen sok sz´amol´ast ig´enyeltek. A sz´amol´asok elv´egz´es´enek megk¨ onny´ıt´es´ere t¨obb m´ odszer k´ın´ alkozott. Egyr´eszt t´ abl´ azatok ban r¨ ogz´ıtett´ek a gyakran haszn´ alt r´eszeredm´enyeket (Babil´ oni´ at´ ol Napierig); m´ asr´eszt (c´el- ´es univerz´alis) mechanikus, k´es˝obb elektromos, majd elektronikus sz´ amol´ og´epeket k´esz´ıtettek (az abakuszt´ol a logarl´ecen ´at az IBM PC-ig); v´eg¨ ul pedig — k¨ ul¨ on¨ osen az alkalmazott matematika legnagyobbjai (Arkhim´ed´eszt˝ol Newtonon ´at Eulerig) — olyan elj´ ar´ asokat dolgoztak ki ´es alkalmaztak, amelyek pontosabb eredm´enyekhez kevesebb sz´amol´asi munk´ aval vezettek el. Nem meglep˝o teh´ at, hogy a sz´am´ıt´ astechnika fejl˝ od´es´enek korai szakasz´aban (k¨ or¨ ulbel¨ ul 1950-ig) a matematikusok (gondoljunk p´eld´ aul A. M. ar L´ aszl´ora) jelent˝os szereTuringra, Neumann J´ anosra, vagy ´eppen Kalm´ pet j´ atszottak. Az o¨tvenes ´evekt˝ol megindul´ o fejl˝ od´es azonban — a be nem v´ altott´ıg´eretek, a tervezetlens´eg, a felhaszn´ al´ ok (k¨ ozt¨ uk a matematikusok) ig´enyeinek figyelmen k´ıv¨ ul hagy´ asa ´es mindenekel˝ott az alacsony teljes´ıt˝ ok´epess´eg — egyre ink´abb elt´avol´ıtotta a matematikusok t´ abor´ at a sz´am´ıt´ og´ept˝ ol. Kiv´etelt tal´an csak a statisztikusok, a diszkr´et matematik´aval foglalkoz´ ok egy r´esze ´es a numerikus matematikusok egy r´esze (!) jelentett. (Ennek az id˝ oszaknak a sz´am´ıt´ astechnikusai, persze, a matematikusok rov´ as´ara´ırj´ ak a szakad´ek kialakul´ as´at.) Numerikus sz´ amol´asok v´egz´es´ere ebben az id˝ oszakban is sz´amos vegy´esz, fizikus vagy k¨ozgazd´asz alkalmazta a sz´am´ıt´ og´epet. A hatvanas-hetvenes ´evekben felvet˝od¨ ott, tipikus probl´ema volt az, hogy hogyan lehet a sz´am´ıt´ og´ep seg´ıts´eg´evel egy f¨ uggv´eny deriv´altj´ at vagy valauggv´eny´et a f¨ uggv´enyt megad´ o k´epletb˝ol szimbolikusan kimelyik primit´ıv f¨ sz´am´ıtani. Erre (a lengyel forma felhaszn´al´ as´aval) t¨ obb szerz˝o is adott megold´ ast. (Megjegyzend˝o, hogy az eredm´enyt p´eld´ aul az ´erz´ekenys´egi egyenletek fel´ır´ as´ahoz, teh´ at sz´ amol´ asi c´elra haszn´ alt´ ak.) Ebben az id˝ oszakban kezdtek foglalkozni t´etelbizony´ıt´ o, tolm´ acs- ´es sakkprogramok´ır´ as´aval ´es logikai programoz´ asi nyelvek megalkot´ as´aval is, hogy csak n´eh´anyat eml´ıts¨ unk a sz´am´ıt´ astechnika nem-numerikus alkalmaz´ asai k¨oz¨ ul.
14
1. Matematikai programcsomagok
A sz´am´ıt´ og´epek sebess´ege ´es az elm´eleti eredm´enyek a nyolcvanas ´evek elej´et˝ol fogva lehet˝ ov´e tett´ek azt, hogy matematikai feladatokat megold´ o numerikus programcsomagok mellett szimbolikus programcsomagok (´ıgy fogjuk nevezni a tov´ abbiakban azokat a programrendszereket, amelyeket angolul computer algebra systems n´even eml´ıtenek, s kor´abban formulamanipul´ aci´ os rendszerek nek h´ıvtak) is l´etrej¨o jjenek. A technika rohamos fejl˝ od´es´evel p´arhuzamosan o¨rvendetes m´odon a matematikai programok gomba m´odra szaporodnak. Itt h´ıvjuk fel a figyelmet arra, hogy a Notices of the American Mathematical Society c´ım˝ u foly´ oirat 1994. decemberig rendszeresen k¨ oz¨olt ismertet˝oket, illetve ¨osszehasonl´ıt´ asokat az ilyen jelleg˝ u programokr´ ol. A 40. k¨ otet 6. sz´ama (1993. j´ ulius–augusztus) p´eld´ aul mintegy 50 ilyen program n´eh´ any fontos adat´ at tartalmazza. Az ott ismertetett adatb´ azis egy´ebk´ent a
sz´am´ıt´ og´ep k¨ onyvt´ ar´ aban megtal´alhat´ o. Ide bejelentkezni az anonymous jelsz´oval lehet. Az 1995. febru´ ari sz´am pedig k¨ ozli az e t´em´aban megjelent cikkek index´et. Matematikai programcsomagokr´ol az
sz´am´ıt´ og´epr˝ ol is szerezhet¨ unk inform´ aci´ okat. Erre a g´epre is az anonymous jelsz´oval jelentkezhet¨ unk be. Megjegyezz¨ uk m´eg azt is, hogy t¨obb ilyen program kereskedelmi forgalomban kaphat´ o. J´ on´eh´ any k¨ oz¨ ul¨ uk azonban ingyenes (public domain) program, ´es ezek egy r´esze p´eld´ aul az ut´ obb megeml´ıtett holland g´epr˝ ol is megszerezhet˝o.
1.1. Szimbolikus programcsomagok A matematika alkalmaz´ as´an´ al vagy kutat´ as´an´ al, s˝ot az oktat´asa sor´an is gyakran kell rutinjelleg˝ u szimbolikus m˝ uveleteket v´egezni. Gondoljunk a polinomokkal v´egzett k¨ ul¨ onf´ele m˝ uveletekre (p´eld´ aul a polinomfaktoriz´ aci´ora), egyenletek ´es egyenletrendszerek megold´as´ara vagy f¨ uggv´enyek primit´ıv f¨ uggv´enyeinek meghat´ aroz´as´ara. A szimbolikus programcsomagok egyik c´elja ´eppen az, hogy az ilyen t´ıpus´ u feladatok megold´ as´ahoz is seg´ıts´eg¨ ul
1.1. Szimbolikus programcsomagok
15
aj´ anlja a sz´ am´ıt´ og´epet. A lehet˝os´egek ilyen kib˝ov´ıt´ese min˝ os´egi v´ altoz´ ast hozott a matematika ´es a sz´am´ıt´ og´ep kapcsolat´aba. A k¨ olt˝ o Byron l´ anya, Lady Ada Lovelace volt az els˝ o, aki 1843-ban f¨ olvetette, hogy szimbolikus sz´am´ıt´ asokat g´eppel kellene v´egezni. Az o¨tlet megval´ os´ıt´ asa azonban t¨ obb mint sz´ az ´evet v´aratott mag´ara, mivel ennyi id˝ o kellett ahhoz, hogy az elm´elet ´es a technikai eszk¨oz¨ok egyar´ant megfelel˝ o fejletts´egi szintet ´erjenek el. Sz´ oljunk n´eh´ any sz´ot arr´ ol, hogy szerint¨ unk mi´ert ´erdemes haszn´alni a matematikai programcsomagokat. Els˝osorban az´ert, mivel ezek nagyon sok be´ep´ıtett f¨ uggv´enyt tartalmaznak, amelyek o¨sszetett feladatok (p´eld´ aul polinomok faktoriz´ aci´ o ja, f¨ uggv´enyek ´abr´ azol´asa, deriv´ altf¨ uggv´eny meghat´ aroz´asa, primit´ıv f¨ uggv´enyek keres´ese, g¨orbeilleszt´es) megold´as´ara szolg´alonnyen ´es gyorsan v´egezhet¨ unk el vel¨ uk rutinjelleg˝ u szimbolikus nak, ez´ert k¨ ´es numerikus sz´am´ıt´ asokat. E programcsomagok egyik f˝ o er´enye az, hogy programozhat´ ok, azaz a be´ep´ıtett utas´ıt´ asok bizonyos nyelvtani szab´ alyok betart´ as´aval o¨sszef˝ uzhet˝ ok, ´ıgy a lehet˝ os´egeik a felhaszn´ al´ o ig´enyeinek megfelel˝oen folyamatosan b˝ ov´ıthet˝ ok. A rendszerek t¨obbs´ege ¨osszekapcsolhat´o m´as felhaszn´ al´ oi programokkal ´es programoz´asi nyelvekkel. Eml´ıts¨ unk m´eg n´eh´ any olyan tipikus helyzetet, amikor seg´ıts´eg¨ unkre lehetnek a matematikai programcsomagok. P´eld´ aul sejt´esek kialak´ıt´ as´ an´ al sok esetet vizsg´alhatunk meg. Bizony´ıt´ asukhoz vagy c´ afolatukhoz is felhaszn´ alhatjuk a megl´ev˝o eszk¨oz¨oket. Egy-egy esettanulm´ anyt sokkal kevesebb energi´aval k´esz´ıthet¨ unk el, mint hagyom´ anyos m´odszerekkel. Az oktat´asban a fentieken k´ıv¨ ul is gy¨ um¨ olcs¨oz˝oen haszn´ alhatjuk e rendszereket, p´eld´aul fogalmak kialak´ıt´ as´an´ al ´es eredm´enyek illusztr´al´ as´an´ al. Igen sikeresen alkalmazt´ ak m´ar ezeket a rendszereket olyan ter¨ uleteken, ahol numerikus ´es szimbolikus sz´am´ıt´ asokra egym´as mellett van sz¨ uks´eg. Galaxist´erk´epeket k´esz´ıtettek ilyen m´ odon; de a legnagyobb val´ osz´ın˝ us´eg elve alapj´an v´egzett becsl´es — amit a 3.11. szakaszban bemutatunk — szint´en ide sorolhat´ o. A szimbolikus programcsomagok alkalmaz´oinak egyre n¨ ovekv˝ o sz´ama is azt igazolja, hogy sokan megtal´ alt´ ak haszn´ alatuk m´ odj´ at. M´ ar itt is felh´ıvjuk a figyelmet azonban arra, hogy rengeteg lehet˝ os´eget tartalmaz´o, nagy rendszerekr˝ ol van sz´ o. Megismer´es¨ uk ´es ´ertelmes felhaszn´ al´ asuk m´odj´ anak megtal´al´ asa ez´ert id˝ oig´enyes feladatot jelenthet a felhaszn´ al´ o sz´am´ara. Mindenesetre a szerz˝ok v´elem´enye az, hogy ezeknek a matematikai programoknak a megjelen´ese u ´j t´ avlatokat ad a matematika alkalmaz´ as´anak, kutat´ as´anak ´es oktat´as´anak.
16
1. Matematikai programcsomagok
Az els˝ o, sz´eles k¨ orben haszn´ alhat´ o v´ altozatok a 80-as ´evek v´eg´en jelentek meg. Az´ota a c´egek egym´ ast serkentve bocs´a jtj´ ak ki az u ´jabb ´es u ´jabb, jav´ıtott ´es b˝ov´ıtett v´ altozatokat. A k¨ ovetkez˝o ´evek fejl˝ od´es´enek k¨ovetkezm´enyei szinte bel´athatatlanok. A szimbolikus programcsomagokban is alkalmazott algoritmusok matematikai megalapoz´as´aval ´es gy´art´ as´aval a szimbolikus sz´ amol´ asok elm´elete (computer algebra) foglalkozik. Az e t´emak¨or ir´ ant is ´erdekl˝od˝ o Olvas´o figyelm´ebe aj´ anljuk K. O. Geddes, S. R. Czapor ´es G. Labah kiv´al´ o k¨ onyv´et (l´asd [28]-at). Ebben a szerz˝ ok tematikus feldolgoz´asban t´ argyalj´ ak a felhaszn´ alhat´ o algoritmusokat ´es azok elm´eleti alapjait. R´eszletesen foglalkoznak p´eld´ aul a k¨ ul¨ onb¨ oz˝o polinomfaktoriz´ aci´ os elj´ar´ asokkal. Kifejtik a Gr¨ obner-b´ azisok elm´elet´et (ez az alapja az egyenletrendszer-megold´o algoritmusoknak) is. K¨ ul¨ on fejezetet szentelnek a hat´ arozatlan integr´ alok as´ara haszn´ alhat´ o Risch-algoritmusnak is. kisz´am´ıt´ A szimbolikus programcsomagokat a k´esz´ıt˝ oik a´ltal kit˝ uz¨ ott c´el alapj´an szok´as oszt´alyozni. ´ • Altal´ anos c´ el´ u programcsomagok Ebbe a csoportba sorolhat´ ok azok a programok, amelyek a matematika t¨ obb ter¨ ulet´en felvet˝ od˝ o probl´em´ak megold´as´ahoz is haszn´alhat´ ok. Ilyen programok a k¨ ovetkez˝ok: Axiom, Mathematica, Derive, muMath, Macsyma, Reduce, Maple, ScratchPad. Az ´altal´ anos c´el´ u matematikai programcsomagok k¨ oz¨ ul haz´ ankban a Derive, a Maple ´es a Mathematica a legismertebb. A Derive a programoz´ as cs´ ucsteljes´ıtm´enye. Ilyen kis terjedelemben (alig 400 kB) ennyi k´epess´eget l´etrehozni — minden elismer´es¨ unk a fejleszt˝ok´e. Magyarorsz´agon, k¨ ul¨ on¨ osen ´altal´ anos ´es k¨oz´episkol´akban, sok´ aig m´eg biztosan fontos szerepet fog j´ atszani, r´eszben mint olyan eszk¨oz, amely el˝ ok´esz´ıti aul a Maple vagy a Mathaz ´erdekl˝od˝ oket a professzion´ alis programok, p´eld´ ematica haszn´ alat´ ara. L´ asd err˝ ol p´eld´ aul a [79] k¨ onyvet, amely a tan´ aroknak ad az alkalmaz´as´ahoz seg´ıts´eget. A Maple ´es a Mathematica m´ereteit ´es lehet˝os´egeit tekintve l´enyegesen nagyobb, mint a Derive. K¨ ul¨ onb¨ oznek egym´ast´ol, de az alaplehet˝ os´egeket tekintve nagyon hasonl´ oak (a Mathematica lehet˝os´egeit a 2.1. szakaszban ismertetj¨ uk). Mivel sok be´ep´ıtett elj´ ar´ ast tartalmaznak (a Mathematicaf¨ uggv´enyek sz´ama k¨ozel 2000), ez´ert m´ar igen r¨ ovid id˝ o alatt el´erhet¨ unk
1.2. Numerikus programcsomagok
17
sikereket egysoros utas´ıt´ asaik felhaszn´al´ as´aval is. A tapasztalatunk azonban az, hogy a lehet˝ os´egek ig´enyeinknek megfelel˝ o kihaszn´ al´ as´ahoz a programok m´elyebb megismer´ese elengedhetetlen. • Speci´ alis c´ el´ u programcsomagok Ebbe a csoportba tartoznak azok a programok, amelyek seg´ıts´eg´evel a matematika egy adott r´eszter¨ ulet´en felvet˝ od˝ o, m´ar speci´alis kutat´ oi ig´enyeket kiel´eg´ıt˝ o sz´amol´asok is elv´egezhet˝ok. Ilyen program p´eld´ aul a CAYLEY (csoportelm´elet ´es sz´amelm´elet), a CoCoA (kommutat´ıv algebra), a GAP (csoportelm´elet), a LiE (Lie-csoportok elm´elete) vagy a Macaulay (algebrai geometria ´es kommutat´ıv algebra). Kifejez´esek egyszer˝ us´ıthet˝ ok a FORM seg´ıts´eg´evel, a SHEEP pedig a relativit´aselm´eletben haszn´alhat´ o.
1.2. Numerikus programcsomagok A legnagyobb hagyom´ anya azoknak a programcsomagoknak van, amelyek a numerikus matematika m´odszereivel keresik az adott probl´ema megold´ as´anak egy k¨ozel´ıt´es´et. (Angolul az ilyeneket szok´ as number cruncher nek nevezni.) A teljess´eg ig´enye n´elk¨ ul ezek k¨ oz¨ ul is f¨ olsorolunk n´eh´ anyat. A legelterjedtebb ´es legteljesebb ilyen programcsomag a Numerical Recipes [63]. A sz´amos kiad´ asban is napvil´ agot l´ atott, t¨ obb k¨ otetes m˝ u a k¨ ul¨ onb¨ oz˝o numerikus algoritmusok C, Fortran ´es Pascal nyelv˝ u programjait tartalmazza. Sokan haszn´ alj´ ak a MATLAB-ot, amelyet az ig´enyeknek megfelel˝oen kieg´esz´ıtettek szimbolikus sz´amol´asokat v´egz˝o r´eszekkel is. K¨ oz¨ons´eges differenci´alegyenletek numerikus megold´ as´ara (k¨ ul¨ on¨ osen az oktat´asban) nagyon j´ ol haszn´ alhat´ o p´eld´ aul a PHASER. ´ Erdemes megeml´ıteni a modellvizsg´alat fontos speci´alis ter¨ ulet´er˝ol n´eh´ any hasznos programot; ilyen a DiffEq az MLAB, a PCNonLin ´es a KINAL. K¨ ul¨ on´ all´ o, fontos ter¨ ulet a statisztikai programcsomagok´e. N´eh´any igen unk csak: SPSS, STATGRAPHICS, SYSTAT, n´epszer˝ u programot eml´ıt¨ BMDP. (Helytelen¨ ul ide szokt´ ak sorolni a SAS-t is.) A line´ aris programoz´ as feladat´ara is sok programcsomag k´esz¨ ult. V´eg¨ ul megeml´ıtj¨ uk, hogy ma m´ ar a t´ abl´ azatkezel˝ok (EXCEL, Quattro) is egyre t¨obb numerikus feladat (p´eld´ aul egyenletek megold´asa, f¨ uggv´enyek mi-
18
1. Matematikai programcsomagok
nimum´ anak keres´ese) megold´as´ara k´epesek; ezeket igaz´an akkor ´erdemes haszn´ alni, amikor az adatok ´es param´eterek t´abl´ azatos ´abr´ azol´asa jelent˝os el˝ony¨ okkel j´ ar, p´eld´ aul a line´ aris ´es nemline´aris programoz´ as feladatain´ al. A feladatokat nem lehet diszjunkt oszt´ alyokra bontani. A szimbolikus sz´amol´as k´epess´eg´enek akkor is szerepe lehet, amikor eredeti c´elunk egy numerikus sz´ amol´as elv´egz´ese. Tekints¨ uk p´eld´ aul a 30 × 30-as Hilbert-f´ele m´atrix inverz´enek numerikus kisz´ amol´as´at. Ez hagyom´ anyos nyelven az el´erhet˝o g´epi pontoss´ ag mellett nem v´egezhet˝o el. Ha viszont szimbolikusan sz´amoljuk ki az inverzet (ami egy racion´ alis sz´amokb´ ol a´ll´ o m´atrix lesz), majd az eredm´enyt k¨ ozel´ıtj¨ uk, akkor megfelel˝o eredm´enyt kapunk.
2. Ismerked´es a Mathematica programmal
A Mathematica egy ´altal´ anos c´el´ u szimbolikus programcsomag. Kifejleszt´es´enek ¨otlete a r´eszecskefizikusk´ent, majd a sejtautomat´ ak elm´elet´enek kutat´ o jak´ent ismert Stephen Wolfram fej´eb˝ ol pattant ki — a legmegfelel˝ obb pillanatban: 1986-ban. Ekkor m´ ar az optimist´ak rem´elhett´ek, hogy bel´ athat´ o id˝ on bel¨ ul a mindenki” asztal´ an ott l´ev˝o szem´elyi sz´ am´ıt´ og´epek ” k´epesek lesznek nem-trivi´alis matematikai probl´em´ak megold´as´ara. Ma m´ ar a Wolfram Research Inc. t¨ obb mint 100 alkalmazottal dolgozik ´ az Egyes¨ ult Allamokban, s a vil´ ag sz´amos orsz´ag´ aban van k´epviselete. N´egy foly´ oirat ´es mintegy 100 k¨ onyv t´ argya a program. K¨ ul¨ on¨ osebb el˝ok´esz¨ uletek, illetve kieg´esz´ıt´esek n´elk¨ ul a k¨ ovetkez˝o lehet˝os´egeket k´ın´ alja: • Szimbolikus m˝ uveletek v´egz´es´ere haszn´alhat´ o, amilyen p´eld´ aul a mauggv´enyek keres´ese, altematikai kifejez´esek egyszer˝ us´ıt´ese, primit´ıv f¨ gebrai ´es differenci´alegyenletek megold´asa. • A hagyom´ anyos programnyelvekkel szemben itt ak´ar t¨ obb ezer ´ert´ekes jeggyel is v´egezhet¨ unk numerikus sz´ am´ıt´ asokat. • Grafikai lehet˝ os´egei eg´eszen kiv´al´ oak: alap´ertelmez´esben is igen sok esetben megfelel˝o ´abr´ at k´esz´ıt, sz¨ uks´eg eset´en azonban az a´br´ azol´as folyamat´ at rugalmasan m´odos´ıthatjuk. • Magas szint˝ u programnyelv, amely t¨obb st´ılusban is lehet˝ ov´e teszi a programoz´ ast: ´ırhatunk procedur´ alis, szab´ alyalap´ u , objektumorient´ alt ´es funkcion´ alis elven k´esz¨ ult programokat. K¨ ul¨ on¨ osen fontos az a t´eny, hogy gazdag az utols´ ok´ent megeml´ıtett st´ılus megval´ os´ıt´ as´ahoz haszn´ alhat´ o eszk¨ozeinek t´ara. asb´ azisok reprezent´ al´ as´ara is alkalmas. • Tudom´anyos ´es m˝ uszaki tud´ • ´Irhatunk programok at al´a (alkalmaz´ asokat) ´es f¨ol´e (azaz alprogramk´ent haszn´ alhatjuk f¨ uggv´enyeit). • Egyre t¨ obb n´epszer˝ u program (C, EXCEL, VisualBasic, Word) kapcsolhat´o hozz´a. • Olyan interakt´ıv dokumentumok k´esz´ıthet˝ ok vele, amelyekben matematikai k´epletek, hang, a´ll´ o ´es mozg´o a´br´ ak (anim´ aci´ o) egy¨ utt szolg´alj´ ak az oktatand´ o vagy kutatott anyag kifejt´es´et.
20
2. Ismerked´es a Mathematica programmal
A Mathematica program (Apple Macintosh g´epre kidolgozott) els˝o v´ altozat´at 1988 j´ unius´ aban mutatt´ ak be. A megjelen´ese ´ev´eben a Business Week magazin minden kateg´ ori´ at tekintve az ´ev legjobb 10 u ´j term´eke k¨oz´e sorolta. Ezut´ an sorra k´esz¨ ultek el a k¨ ul¨ onf´ele oper´aci´ os rendszerekre (p´eld´ aul DOS, LINUX, NEXTSTEP, OS/2, UNIX ´es WINDOWS) adapt´ alt v´ altozatok. A be´ep´ıtett elj´ ar´ asok sz´ama k¨ozel k´etezer. A program beind´ıt´ asa ut´an ezek k¨ oz¨ ul t¨ obb mint ezer azonnal haszn´ alhat´ o. Ezeknek az utas´ıt´ asoknak a lel˝ohelye a mag (kernel). A fennmarad´ o elj´ ar´ asokat a Mathematica programnyelv´en meg´ırt a´llom´anyok, az u ´gynevezett programcsomagok (l´ asd a 2.2. szakaszt) tartalmazz´ak. A felhaszn´ al´ oval egy k¨ ul¨ on program tartja a kapcsolatot: a felhaszn´ al´ oi fel¨ ulet (front end). Ez alapvet˝ oen k´etf´ele t´ıpus´ u lehet: sz¨ oveges vagy ablakos. ´ Altal´ aban ezeket k¨ ul¨ onb¨ oz˝o paranccsal ind´ıthatjuk. Az ablakos v´ altozatban men¨ uk vannak, ´ıgy igen k´enyelmesen haszn´alhat´ o, ez´ert a tanul´ as id˝ oszak´aban, ha van r´ a m´od, ezt ´erdemes v´alasztani. A sz¨oveges v´ altozat kevesebb mem´ori´ at ig´enyel ´es gyorsabb, aminek el˝onyeit k¨ ul¨ on¨ osen sz´amol´asig´enyes feladatokn´ al tapasztalhatjuk. A program a felhaszn´ al´ o szempontj´ab´ ol minden g´ept´ıpuson l´enyeg´eben ugyan´ ugy m˝ uk¨ odik. Az ablakos v´ altozatok jegyzetf¨ uzeteket (notebook ) k´esz´ıtenek. Ezek kiterjeszt´es˝ u a´llom´anyok, amelyekkel a szok´ asos m˝ uveletek (p´eld´ aul megnyit´ as, ment´es, m´odos´ıt´ as) v´egezhet˝ok. A jegyzetf¨ uzetek cell´ akb´ ol ´ep¨ ulnek fel. A cell´ ak k¨ oz¨ ul kijel¨ olhet¨ unk egyet (a k´eperny˝ o jobb oldal´ an l´ athat´ o sz¨ogletes z´ar´ o jelre kattintva) vagy t¨ obbet (az egeret egy kattint´as ut´ an a z´ar´ o jeleken v´egigvonszolva). A kijel¨ olt cell´ aval vagy cell´ akkal p´eld´ aul a k¨ ovetkez˝o m˝ uveleteket v´egezhetj¨ uk a megfelel˝ o men¨ upontok f¨ olhaszn´ al´ as´aval:
2.1. A legfontosabb tudnival´ ok
21
t¨ orl´es, ´athelyez´es, st´ılusv´altoztat´ as, ¨osszef˝ uz´es, csoportos´ıt´ as. (A csoportos´ıt´ as eredm´enye egy olyan cella, amelyben t¨obb cella van egy¨ utt.) A t¨ obb cell´ ab´ ol a´ll´ o cell´ akat becsukhatjuk a sz¨ogletes z´ar´ o jelre dupl´ an kattintva, ez´altal fokozhatjuk a jegyzetf¨ uzet ´attekinthet˝ os´eg´et. Amikor k´ıv´ ancsiak vagyunk a becsukott cella r´eszletes tartalm´ara, akkor azt (ism´et dupla kattint´ assal) u ´jra kinyithatjuk . A jegyzetf¨ uzetek, s˝ot az egyes cell´ak st´ılusa t´ ag hat´ arok k¨ oz¨ott v´ altoztathat´ o. A benn¨ uk tal´ alhat´ o anyagot ig´enyeinknek megfelel˝oen fejezetekbe, szakaszokba stb. szervezhetj¨ uk. Egyes r´eszeket az ´attekinthet˝os´eg ´erdek´eben id˝ onk´ent becsukhatunk. A programmal megoldhat´ o feladatok m´erete ´es a megold´ashoz sz¨ uks´eges id˝o l´enyegesen f¨ ugg a rendelkez´esre ´all´ o sz´am´ıt´ og´ep konfigur´ aci´ o j´ at´ ol. Magunk els˝osorban a 2.2.2. ´es a 2.2.3. v´altozatot haszn´altuk WINDOWS alatt 486-os IBM PC t´ıpus´ u g´epeken, amelyekben 8–16 Mb RAM volt. A program k´esz´ıt˝ oi ezekhez a v´altozatokhoz legal´abb 8 Mb RAM-ot ´es legal´ abb 10 Mb virtu´ alis mem´ori´ at javasolnak. Maga a program mintegy 10 Mb helyet foglal el a merevlemezen. A helyenk´ent megjelen˝o id˝ oadatok csup´ an t´ a j´ekoztat´o jelleg˝ uek; ´ert´ekel´es¨ ukn´el a fentieket figyelembe kell venni.
2.1. A legfontosabb tudnival´ ok A Mathematica ´ertelmez˝ ok´ent (interpreter ) dolgozik, ami azt jelenti, hogy a parancsokat soronk´ent meg´erti, v´egrehajtja, majd ki´ırja az eredm´enyt. Sz´ amon tartja ´es ki´ırja azt is, hogy az adott alkalomkor (session) az adott utas´ıt´ ast h´ anyadikk´ent hajtotta v´egre. St´ılus´ aban ´erezhet˝o, hogy felhaszn´ alt´ ak a C, a LISP ´es a UNIX nyelv tapasztalatait. • A program m˝ uk¨ odtet´ ese A program ind´ıt´ asa rendszerf¨ ugg˝ o, ´es k¨onnyen kider´ıthet˝ o. Ind´ıt´ as ut´ an a v´egrehajtani k´ıv´ ant utas´ıt´ ast a megfelel˝o szintaxissal beg´epelj¨ uk (a sorok b´ arhol megt¨ orhet˝ ok), majd v´egrehajtjuk. Ez ut´ obbit sz¨ oveges v´ altozatn´ al az Enter billenty˝ u lenyom´ as´aval ´erhetj¨ uk el. Az ablakos v´ altozatokn´ al a´ltal´ aban a Shift ´es az Enter billenty˝ u egy¨ uttes lenyom´as´ara van sz¨ uks´eg. A WINDOWS-os v´ altozatban alkalmazhatjuk az Insert gombot vagy a numeuzet 5-¨os gombj´ anak lenyom´as´at is. rikus billenty˝ A program minden v´ altozat´ ab´ ol kil´epni a
utas´ıt´ assal lehet.
22
2. Ismerked´es a Mathematica programmal
Felh´ıvjuk a figyelmet arra, hogy az ablakos v´ altozatokban az egyes m˝ uveletek ki´ert´ekel´ese k¨ozben is beg´epelhetj¨ uk a k¨ ovetkez˝o utas´ıt´ asokat. • Karakterk´ eszlet Az angol a´b´ec´eb˝ ol ´es a sz´amjegyekb˝ ol indulunk ki. A nagy- ´es a kisbet˝ uk k¨ oz¨ott k¨ ul¨ onbs´eget tesz¨ unk. A speci´ alis karakterek nek meghat´arozott jelent´ese van. Itt csak a leggyakrabban haszn´ altakat soroljuk fel. Az aritmetikai m˝ uveletek jelei ´altal´ aban a szok´asosak (l´asd a 3.1.3. ponoli, de ugyanerre (kiss´e szokatlan m´odon) a tot); p´eld´ aul a szorz´ast a jel¨ sz´ok¨ ozt is haszn´alhatjuk. Vigy´ azzunk a k¨ ul¨ onf´ele z´ ar´ ojelek gondos ´ır´ as´ara. A precedencia-szab´aly art. F¨ uggv´enyek argumentumegt¨or´es´ere haszn´aljuk a k¨ oz¨ons´eges jelp´ oz´e tessz¨ uk. Kapcsos z´ar´ o jelekkel list´akat m´at sz¨ogletes z´ar´ o jelek k¨ (l´ asd a 2.3.1. pontot) adhatunk meg. A lista r´eszeire kett˝os sz¨ogletes z´aasd a 2.3.1. pontot). V´eg¨ ul, ha programot r´ o jellel hivatkozhatunk (l´ oz´e magyar´az´o sz¨oveget ´ırhatunk. ´ırunk, a ´es a jel k¨ asra, a pedig k´esAz egyenl˝ os´egjelek k¨ oz¨ ul az jel azonnali ´ert´ekad´ leltetett ´ert´ekad´ asra haszn´ alhat´ o. Ez ut´ obbi ´ert´ekad´ as csak akkor val´osul meg, amikor haszn´alni akarjuk a bal oldal´ an szerepl˝ o szimb´olumot. A ´es a jelsorozattal k´et kifejez´es karakterr˝ol karakterre val´ o megegyez´es´et ellen˝orizhetj¨ uk, a ´es a jelsorozattal pedig kifejez´esek egyenl˝os´eg´et matematikai szempontb´ol vizsg´alhatjuk:
{False, True, alma == almas}
{False, True}
True
Itt is felh´ıvjuk a figyelmet arra, hogy egyenleteket is a jelsorozattal u jelek adhatunk meg. A ciklusv´ altoz´ok (iter´ atorok ) l´eptet´es´ere a ! t´ıpus´ szolg´alnak. asokban haszn´ alhatjuk. Ha egy utas´ıt´ as ut´ an a # jelet A " jelet felsorol´ ´ırjuk, akkor annak eredm´enye ´altal´ aban nem jelenik meg a k´eperny˝ on.
2.1. A legfontosabb tudnival´ ok
23
A legutols´ o utas´ıt´ as eredm´eny´ere a $ jellel hivatkozhatunk. Az utols´ o as eredm´eny´enek a jele $. Ezek el˝ottinek a jele $$, m´ıg az -edik utas´ıt´ alkalmaz´ as´an´ al k¨ onny˝ u hib´ at elk¨ovetni! Az sz´am faktori´ alisa jel¨ olhet˝ o a szok´asos m´odon. (Szemifaktori´ alisa pedig ´ıgy: .) Ha a jel viszont egy logikai kifejez´es el˝ott ´all, akkor annak tagad´ as´at jel¨ oli. • Alapszavak A nyelv tervez´es´en´el (a Pascal nyelvben vagy a UNIX oper´ aci´ os rendszern´el megszokotthoz hasonl´oan) a´ltal´ aban hossz´ u, ´ertelmes, nagybet˝ uvel kezd˝ od˝ o, kital´ alhat´ o azonos´ıt´ okat v´ alasztottak alapszavak k´ent. P´eld´ aul:
% &' %
' '() '*%+ *
Sz¨ uks´eg eset´en a megl´ev˝ok¨ on t´ ul magunk is bevezethet¨ unk azonos´ıt´ okat. Ilyenkor c´elszer˝ u k¨ ovetni a fenti konvenci´ ot. A programt´ ol figyelmeztet˝o u ¨zenetet kapunk, ha az u ´j azonos´ıt´ o valamelyik kor´abban defini´ alttal megegyezik, vagy egy olyanhoz hasonl´ o. A mintegy k´etezer be´ep´ıtett azonos´ıt´ o nagy r´esze az angol matematikai ´es sz´am´ıt´ astechnikai szaknyelv elemeinek ismeret´eben vagy kital´alhat´ o, vagy legal´abb annyira megk¨ ozel´ıthet˝ o, hogy ´ertelmes k´erd´est tudjunk f¨ oltenni a rendszernek. (P´eld´ aul: ,'.) Az alapszavak els˝o megk¨ozel´ıt´esben matematikai ´es programoz´asi szempontb´ ol is f¨ uggv´enyek, ez´ert ezeket Mathematica-f¨ uggv´enyeknek, be´ep´ıtett f¨ uggv´enyeknek vagy egyszer˝ uen f¨ uggv´enyeknek fogjuk nevezni. A v´ altozatoss´ag kedv´e´ert viszont elj´ ar´ as n´even is fogjuk eml´ıteni ezeket, n´emileg elt´erve a sz´am´ıt´ astechnik´ aban meghonosodott szok´ast´ol. A program magj´ aban vannak a bels˝ o f¨ uggv´enyek , a programcsomagok tartalmazz´ak a k¨ uls˝ o f¨ uggv´enyek et. A f¨ uggv´enyek jelent´ese sokf´ele lehet: • • • • • • • • • •
matematikai ´alland´ o (-" '" )& ); adatt´ıpus (.*" %& ); matematikai f¨ uggv´eny (/ 0" " 1 )); matematikai oper´ator (" )" 2); osszetett matematikai elj´ar´ ¨ as (3)+" 2 4-4" 5 )*); rajzol´ o elj´ ar´ as ('()); be- ´es kiviteli m˝ uvelet (6.*" %); programoz´ asi eszk¨oz (%" )" 3*); listakezel˝ o elj´ ar´ as ( " ' " 0 " 6+ *); egy´eb (" )*).
24
2. Ismerked´es a Mathematica programmal
Mivel az alapszavak jelent´ese igen sok esetben mag´at´ol ´ertet˝od˝ o, ez´ert egy Mathematic´ a ban meg´ırt program legal´ abb olyan egyszer˝ uen olvashat´ o, mint egy sz´epen meg´ırt Pascal-program — azzal a k¨ ul¨ onbs´eggel, hogy m˝ uk¨ odtet´es´ehez nem nek¨ unk kell kibontanunk a f˝ oprogramban szerepl˝ o ´ertelmes szavakat elj´ar´ asok ´es f¨ uggv´enyek hossz´ u sor´ av´ a. A Mathematica fel´ep´ıt´ese a hardver- ´es a szoftverk¨ornyezett˝ol meglehet˝ osen f¨ uggetlen. Az aktu´ alis kapcsolatokat a rendszerv´ altoz´ ok ´ırj´ ak le (l´asd uvel kezd˝ odik. a 2.4.2. pontot), amelyek azonos´ıt´ o ja a 7 jellel ´es nagybet˝ P´eld´ aul a ! {{a, A}, {b, {g, G}, {h, {m, M}, {n, {s, S}, {t, {y, Y}, {z,
B}, H}, N}, T}, Z},
{c, C}, {d, {i, I}, {j, {o, O}, {p, {u, U}, {v, 0, 1, 2, 3,
D}, {e, E}, J}, {k, K}, P}, {q, Q}, V}, {w, W}, 4, 5, 6, 7,
{f, F}, {l, L}, {r, R}, {x, X}, 8, 9}
rendszerv´altoz´o defini´ alja a karakterek sorrendj´et. A program ezt veszi alapul kifejez´esek feldolgoz´ as´an´ al is ´es megjelen´ıt´es´en´el is. • Inform´ aci´ oszerz´ es A be´ep´ıtett f¨ uggv´enyek haszn´ alat´ ahoz a programt´ ol is kaphatunk seg´ıts´eget. Tetsz˝oleges azonos´ıt´ or´ ol felvil´agos´ıt´ ast kaphatunk az al´ abbi be´ep´ıtett f¨ uggv´enyek haszn´ alat´ aval:
4 4* ) 83* 8)
% ,, 39 3* , :; <9
Ha ablakos felhaszn´ al´ oi fel¨ ulettel dolgozunk, akkor a Help men¨ uponthoz is fordulhatunk. Ha tudjuk annak a f¨ uggv´enynek a nev´et (legyen ez p´eld´ aul '), amelyr˝ ol inform´ aci´ ot szeretn´enk kapni, akkor hajtsuk v´egre a k¨ovetkez˝o utas´ıt´ ast: "#$ Plot[f, {x, xmin, xmax}] generates a plot of f as a function of x from xmin to xmax. Plot[{f1, f2, ...}, {x, xmin, xmax}] plots several functions fi.
2.2. Programcsomagok
25
Figyelj¨ uk meg a konkr´et p´eld´ aban, hogy a ' f¨ uggv´eny k¨ ul¨ onb¨ oz˝o szintaxissal m´ as-m´as feladat megold´as´ara haszn´ alhat´ o. R´eszletesebb, az opci´okat ´es attrib´ utumokat (l´ asd a 2.3.3. ´es a 2.3.4. pontot) is megad´ o inform´ aci´ ot kapunk a ""#$
utas´ıt´ as eredm´enyek´ent. Ha a keresett f¨ uggv´eny nev´enek csak egy r´esz´et ismerj¨ uk, akkor a dzs´oker karaktert haszn´alhatjuk: "%#%
´ Altal´ aban ´erdemes a programot is megk´erdezni ´es a Help men¨ upontot is megn´ezni egy adott f¨ uggv´eny m˝ uk¨ od´es´er˝ol, mert esetleg egym´ast kieg´esz´ıt˝ o inform´ aci´ ohoz juthatunk. Ha a fenti m´ odon megszerzett ismeret nem elegend˝o, akkor a program referenciak¨ onyveit [3, 89] haszn´ alhatjuk. Ennek a fejezetnek tov´ abbi r´eszei (l´asd a 2.5. szakaszt) is tartalmaznak m´eg idevonatkoz´ o tan´ acsokat. ¨ • Uzenetek A program m˝ uk¨ od´ese k¨ozben u ¨zeneteket k¨ uld a felhaszn´ al´ onak. Hiba¨ uzenetet kapunk akkor, ha nyilv´ anval´ o szintaktikai hib´ at k¨ ovet¨ unk el. (P´eld´ aul egy kezd˝ o z´ar´ o jel p´ arja hi´ anyzik.) Figyelmeztet˝ o u ¨zenet jelenik meg a k´eperny˝ on, ha egy f¨ uggv´eny argumentum´ anak a sz´ama vagy t´ıpusa nincs ¨osszhangban annak defin´ıci´ o j´ aval. A ki´ert´ekel´es sor´an t´ aj´ekoztat´ ast is kaphatunk p´eld´ aul arr´ ol, hogy a Mathematica ´altal alkalmazott m´ odszer nem alja a teljes eredm´eny el˝oa´ll´ıt´ as´at. B´armilyen u ¨zenetet is kapunk (ha garant´ akarjuk, ezeket le is tilthatjuk), v´ arjuk meg az aktu´ alis utas´ıt´ as v´egrehajt´ as´at, ´es az eredm´enyt is figyelembe v´eve hasznos´ıtsuk tartalm´ at. Saj´ at programjainkat is ell´ athatjuk a fenti t´ıpus´ uu ¨zenetekkel.
2.2. Programcsomagok Eml´ıtett¨ uk m´ ar azt, hogy a program elind´ıt´ asa ut´an t¨ obb mint ezer be´ep´ıtett f¨ uggv´eny k¨ ozvetlen haszn´alat´ ara van lehet˝os´eg¨ unk. Sz´ amos feladatot m´ar egy ilyen f¨ uggv´ennyel is meg tudunk oldani. A Mathematica minden v´ altozata tartalmaz azonban saj´ at programou sz¨oveges z´asi nyelv´en meg´ırt elj´ ar´ asgy˝ ujtem´enyeket (ezek kiterjeszt´es˝ ´allom´ anyok), amelyeket a tov´abbiakban (program)csomagok nak fogunk nevezni.
26
2. Ismerked´es a Mathematica programmal
A program k´esz´ıt˝ oi a csomagokat oszt´alyokba sorolt´ ak. A k¨ ul¨ onb¨ oz˝o sorsz´am´ u v´ altozatokn´ al elt´er˝ o lehet a csomagok sz´ama is ´es a csoportos´ıt´ as m´odja is. Bizonyos oper´aci´ os rendszerek (p´eld´ aul a DOS ´es a UNIX) alatt m˝ uk¨ od˝ o v´ altozat eset´eben az oszt´alyba sorol´ast k¨ onyvt´ arszerkezettel” le” het megadni. Mi is az ennek megfelel˝o sz´ohaszn´ alattal ´el¨ unk annak ellen´ere, hogy m´ as oper´aci´ os rendszerek eset´eben m´as elnevez´est szok´ as haszn´alni. A Mathematica a csomagokhoz k´et param´etert (ezek az azonos´ıt´ okhoz hasonl´ oan ´ertelmes, angol szavak) rendel: a csomag nev´et ´es egy alk¨onyvt´ ar nev´et. Ennek eredm´enye, hogy minden oper´ aci´ os rendszer haszn´alata eset´en ugyanazzal a szintaxissal nyithatunk meg egy adott programcsomagot. A 2.2.x v´ altozatokban az al´abbi alk¨ onyvt´ arnevek k¨ oz¨ ul v´ alogathatunk:
/& * )* 2 -4* 1 1 * . /&
2** 3 0 3 2 ' & &-4* ** :*
Ezek a DOS ´es a UNIX oper´aci´ os rendszer eset´en a Mathematic´ a t tartalmaz´ o k¨ onyvt´ ar Packages elnevez´es˝ u alk¨ onyvt´ ar´ aban tal´ alhat´ ok meg. (A DOS-ban az alk¨ onyvt´ arak ´es az ´allom´anyok neve legfeljebb 8 karakterb˝ ol ´all.) Ha haszn´ alni akarjuk valamelyik programcsomagban megl´ev˝o elj´ ar´ ast, akkor el˝ osz¨or meg kell nyitni a megfelel˝o csomagot. Ennek egyik (az aktu´alisan haszn´ alt oper´ aci´ os rendszert˝ol f¨ uggetlen) m´odja az
== + > & *&> szerkezet˝ u utas´ıt´ as v´egrehajt´ asa. A == jelsorozat (a 1 f¨ uggv´eny r¨ ovid alakja) utal arra, hogy meg akarunk nyitni egy a´llom´anyt. Az + jelsorozat az im´ent felsorolt szavak valamelyik´et, a & *& pedig a megnyitand´ o csomag (teljes) nev´et jel¨oli. Figyelj¨ uk meg, hogy az ut´ obbit oz´e kell tenn¨ unk. Haszn´ alhatjuk m´eg a a > > karakterek (context mark ) k¨
3*? + > & *&>? szerkezet˝ u utas´ıt´ ast is. Az ´allom´anyok megnyit´ as´anak fenti k´et m´odja k¨ oz¨ott a k¨ ul¨ onbs´eg az, hogy az els˝o esetben a Mathematica azonnal beolvassa a mem´ori´ aba a csomag tartalm´at, m´ıg a m´asodik esetben ezt csak akkor teszi meg, ha olyan utas´ıt´ ast kell neki v´egrehajtania, amely a megjel¨ olt
2.2. Programcsomagok
27
programcsomagban tal´ alhat´ o. A harmadik lehet˝ os´eg¨ unk az, hogy a == jelsorozat ut´ an be´ırjuk (az el´er´esi u ´tvonal megad´ as´aval) a programcsomagot tartalmaz´o ´ allom´any (adott oper´ aci´ os rendszeren haszn´alt) nev´et. Programcsomagokra a k¨ onyv¨ unk tov´ abbi r´esz´eben ´ıgy fogunk hivatkozni:
+ > & *&> Az elmondottak illusztr´ al´ as´ara n´ezz¨ unk egy p´eld´ at. Hajtsuk v´egre a &&'(!!$)*! )
utas´ıt´ ast, azaz olvassuk be a nev˝ u programcsomagot, amely a 2** alk¨onyvt´arban tal´alhat´o. Ezut´an a bels˝o f¨uggv´enyekkel egyen´ert´ek˝ uen m˝ uk¨ od˝ o al´ abbi k¨ uls˝ o f¨ uggv´enyeket is haszn´alhatjuk:
)@A )*BC )'* &
-* -* 1 @ 4 5C* 3CD
Ha k´ıv´ ancsiak vagyunk p´eld´ aul arra, hogy 1995. december 9. milyen napra esett, akkor ezt ´ıgy k´erdezhetj¨ uk meg a programt´ ol: +,-.!!/0 Saturday
Az ´ertelmes alapszavak el˝ony´et itt is tapasztalhatjuk: a felsorolt f¨ uggv´enyek sejteni engedik azt, hogy mire lehet o˝ket haszn´ alni. Az alk¨ onyvt´ arakban l´ev˝o csomagok, valamint az ezekben defini´alt elj´ ar´ asok nev´er˝ol mag´at´ ol a programt´ ol a WINDOWS-os v´ altozat eset´en nem kapunk inform´ aci´ ot. Ebb˝ ol a szempontb´ ol a UNIX-os v´altozat is kev´es seg´ıts´eget tartalmaz. A sz¨ uks´eges ismereteket az´ert t¨obbf´ele m´odon is megszerezhetj¨ uk. Mivel a programcsomagok sz¨ oveges ´allom´anyok, ez´ert egyr´eszt ezek elolvas´as´aval is t´ a j´ekoz´odhatunk a felhaszn´ alhat´ o f¨ uggv´enyekr˝ ol. Ha m´ar tudjuk a benn¨ unket ´erdekl˝o f¨ uggv´eny nev´et ´es beolvastuk a programcsomagot, akkor alkalmazhatjuk az inform´ aci´ oszerz´es k´erd˝ o jeles m´odj´ at. Sokszor enn´el r´eszletesebb inform´aci´ ot ´es t¨obb mintap´eld´ at is tartalmaz a [3] referenciak¨onyv. V´eg¨ ul k¨ onyv¨ unk tov´ abbi fejezeteiben mi is utalni fogunk a programcsomagokban megl´ev˝o lehet˝os´egekre is. Most a programcsomagok haszn´alat´ aval kapcsolatban egy tipikus hib´ ara szeretn´enk felh´ıvni az Olvas´ o figyelm´et. El˝ ofordul, hogy t´eved´esb˝ol haszn´ alni akarjuk valamelyik k¨ uls˝ o f¨ uggv´enyt az ˝ot tartalmaz´o programcsomag beh´ıv´ asa el˝ott. Ekkor a Mathematica l´etrehoz egy u ´j szimb´ olumot, amit a beadott sor v´ altozatlan form´ aban val´ o visszaad´ as´aval jelez. P´eld´ aul:
28
2. Ismerked´es a Mathematica programmal '1!2#$ 3 3 4 MultipleListPlot[{1, 2, 3, 4}, {2, 4, 6, 8}]
Ilyen nev˝ u f¨ uggv´eny a 1 *>2.*'> programcsomagban is megtal´ alhat´ o. Olvassuk be ezut´ an ezt a programcsomagot: 5!! 6718()'1!2#$)6 MultipleListPlot::shdw: Warning: Symbol MultipleListPlot appears in multiple contexts {Graphics‘MultipleListPlot‘, Global‘}; definitions in context Graphics‘MultipleListPlot‘ may shadow or be shadowed by other definitions. '1!2#$ 3 3 4 MultipleListPlot[{1, 2, 3, 4}, {2, 4, 6, 8}]
A program teh´ at figyelmeztet benn¨ unket arra, hogy t¨ obb ilyen nev˝ u utas´ıt´ ast is tal´alt, ´es ezek k¨oz¨ ul az utols´ ok´ent l´etrehozott utas´ıt´ ast (teh´at azt, amelyiket t´eved´esb˝ol adtunk meg) hajtotta v´egre. Ilyen esetekben a
6+ elj´ ar´ assal t¨or¨ olhetj¨ uk a t´eved´esb˝ol beg´epelt azonos´ıt´ ot. A fenti p´eld´ at folytatva a 9! $:!'1!2#$ '1!2#$ 3 3 4
utas´ıt´ assorozat m´ar megadja a v´ art eredm´enyt. A programcsomagokat tartalmaz´o alk¨ onyvt´ arak mindegyik´eben megtal´ alhat´ o egy
2* nev˝ u programcsomag is. Ha ezt beh´ıvjuk, akkor ezzel az illet˝ o alk¨ onyvt´ arban megl´ev˝o valamennyi programcsomag minden f¨ uggv´enye el´erhet˝ov´e v´alik. Sokszor sz¨ uks´eg¨ unk lehet arra, hogy a mem´ ori´ ab´ ol egy beolvasott programcsomagot elt´avol´ıtsunk. Ehhez (is) haszn´ alhat´ o a programcsomag, amely a MathSource-on a 0204–310 sz´am alatt tal´alhat´ o. Ha olyan feladatot akarunk megoldani a Mathematic´ a val, amelyhez nem elegend˝o bels˝o vagy k¨ uls˝ o f¨ uggv´eny k¨ ozvetlen haszn´alata, akkor magunk is ´ırhatunk u ´j elj´ ar´ asokat. Erre a k¨ onyv tov´ abbi fejezeteiben sz´ amos p´eld´ at
2.3. Az alapelvekr˝ ol
29
fogunk mutatni. A MathSource (l´ asd a 2.5. szakaszt) igen sok programcsomagot is tartalmaz. Sz¨ uks´eg eset´en ott is ´erdemes k¨or¨ uln´ezni. L´eteznek speci´alis ig´enyeket kiel´eg´ıt˝ o, p´enz´ert ´arult csomagok is. Ilyenek p´eld´ aul a k¨ ovetkez˝ok: CALCULUS&Mathematica, Electrical Engineering Pack, Finance Pack, MathTensor, Mechanical System Pack, Optica, Time Series Pack, TSiDynamics, TSiControls. A MathSource-on megtudhatjuk, hogy ezek hol ´es mennyi´ert szerezhet˝ok be.
2.3. Az alapelvekr˝ ol A Mathematica legl´enyegesebb jellegzetess´ege az, hogy egys´eges m´ odon kezeli a (matematikai) m˝ uveletek h´ arom f˝ o csoportj´ at: a grafikus, a numerikus ´es a szimbolikus m˝ uveleteket. A k¨ ul¨ onb¨ oz˝o t´ıpus´ u dolgok kidolgozott egys´eges kezel´esi m´odja teszi lehet˝ov´e azt, hogy a matematika ´es a sz´am´ıt´ astudom´any ar´ anylag kev´es m´odszer´enek felhaszn´ al´ as´aval az alkalmaz´asok igen sz´eles k¨ ore lefedhet˝ o. Ennek az egys´eges szeml´eletnek az el˝onyeit a felhaszn´ al´ o is tapasztalja. A program szempontj´ ab´ ol a legalapvet˝obb fogalmak a kifejez´es, a ki´ert´ekel´es, a transzform´ aci´ os szab´ aly, a mint´ azat, az opci´ o ´es az attrib´ utum. A Mathematica m˝ uk¨ od´es´et els˝o k¨ ozel´ıt´esben a k¨ovetkez˝ok´eppen lehet le´ırni. uk Amikor v´egrehajtunk egy utas´ıt´ ast vagy utas´ıt´ assorozatot (ezeket nevezz¨ a tov´ abbiakban kifejez´eseknek), akkor a program ki´ert´ekeli azt. Programoz´astechnikai szempontb´ ol a Mathematica egy v´egtelen ki´ert´ekel˝ o rendszer . Ez a k¨ ovetkez˝ot jelenti. A ki´ert´ekel´es bonyolult folyamat´ anak els˝o l´ep´esek´ent a program egys´eges (bels˝o) alakra hozza a beadott kifejez´est. Ezut´ an az attrib´ utumok ´es az opci´ok figyelembev´etel´evel a Mathematica addig alkalmazza a k´esz´ıt˝ oik vagy a felhaszn´ al´ o ´altal m´ar kor´ abban megadott defin´ıc´okat (transzform´ aci´ os szab´alyokat), ameddig k¨ ul¨ onb¨ oz˝o alak´ u eredm´enyt kap. A program egy eredm´enyt akkor tekint v´egeredm´enynek (´es ´altal´ aban ezt ´ırja ki a k´eperny˝ ore), ha az m´ar v´ altozatlan alak´ u.
2.3.1. Alapvet˝ o adatszerkezetek A legalapvet˝obb adatszerkezet a kifejez´es.
30
2. Ismerked´es a Mathematica programmal
´Igy fogjuk nevezni az egy vagy t¨ obb (parancs)sorba beg´epelt jelsorozatot. A beadott parancsot a v´egrehajt´ as ut´ an a Mathematica ki´ert´ekeli ´es a v´egeredm´enyt egyr´eszt t´arolja, m´ asr´eszt (sz´amos esetben annak csup´ an egy r´esz´et) ki´ırja a k´eperny˝ ore. Ezeket a jelsorozatokat is kifejez´eseknek tekintj¨ uk. A 2.1. szakaszban besz´elt¨ unk a kifejez´esek egyik speci´alis oszt´aly´ ar´ ol, a Mathematica-f¨ uggv´enyekr˝ ol. Sokszor sz¨ uks´eg¨ unk lehet arra, hogy a program a´ltal megadott v´egeredm´enyt vagy annak bizonyos r´eszeit k´es˝obbi id˝ opontban haszn´ aljuk fel. Ilyen esetekben fontos ismerni azt, hogy a Mathematica milyen m´odon t´ arolja a kifejez´eseket. Ennek meg´ert´es´ehez a kifejez´es fogalm´at kell pontos´ıtanunk. A programoz´ as elm´elet´eben a kifejez´es fogalm´at axiomatikus m´odon szok´ as defini´ alni. Most csak a Mathematic´ a ban haszn´ alt kifejez´es fogalm´anak egy rekurz´ıv jelleg˝ u k¨ or¨ ul´ır´ as´at adjuk meg. El˝ osz¨or az elemi kifejez´esek et (m´as n´even atomok at) soroljuk fel. A Mathematica atomjai: a szimb´ olumok vagy azonos´ıt´ ok (bet˝ uknek ´es term´eszetes sz´amoknak nem term´eszetes sz´ammal kezd˝od˝ o sorozata), az eg´esz vagy explicit tizedesponttal megadott val´ os sz´ amok ´es a f¨ uz´erek (sztringek). Minden atomot kifejez´esnek tekint¨ unk. Adott term´eszetes sz´am eset´en az
E" F"
" jelsorozatot is kifejez´esnek nevezz¨ uk, ha " E"
´es is kifejez´es. Ebben az esetben az adott kifejez´es feje (head), E" F"
´es pedig a kifejez´es argumentumai (vagy elemei). uggv´ennyel k´erdezhetj¨ uk meg azt, hogy mit tekint A programt´ ol a G f¨ egy kifejez´es fej´enek. P´eld´ aul: ;! <+ ;! =3 ;! 6: 6 {Symbol, Real, String}
A kifejez´es fenti defin´ıci´ o j´ aban felt´etelezt¨ uk azt, hogy speci´ alis karaktersorozatok a megfelel˝o azonos´ıt´ oval (ezek teljes list´a ja megtal´alhat´ o a [89] referenciak¨ onyv 716–719. oldal´ an) vannak megadva. uggv´eny t´ a j´ekoztat benn¨ unket arr´ ol, hogy a program miA 88 f¨ lyen form´ aban t´ arol egy kifejez´est. Figyelj¨ uk meg el˝osz¨or az atomok t´arol´asi m´odj´ at: >>$ <+ >>$ =3 >>$ 6: 6 {ab2D, 3.14, "valami"}
N´ezz¨ unk ezut´ an n´eh´ any tov´ abbi p´eld´ at:
2.3. Az alapelvekr˝ ol
31
>>$ ?@0 >>$ A0 >>$ 3 B {Rational[7, 5], Power[5, Rational[1, 2]], Complex[3, 4]} >>$ , C Plus[Power[y, 3], Power[Plus[1, z], 2]] >>$ >>$ ;$ {Times[5, t], Hold[Plus[Times[2, t], Times[3, t]]]}
Adott kifejez´es meghat´arozott r´eszeit kett˝os z´ar´ ojelek ( , ami a
' f¨uggv´eny r¨ovid alakja) haszn´alat´aval jel¨olhetj¨uk ki. A ' HI*" ´es a HI*
´ utas´ıt´ as eredm´enye p´eld´ aul a HI* -edik argumentuma. Erdemes megjegyezni egyr´eszt azt, hogy a nulladik argumentum a kifejez´es feje, m´asaul: r´eszt azt is, hogy negat´ıv sz´am is lehet. P´eld´ /-!D!C! - 3 #/-!D!C! E /-!D!C! /-!D!C!F {f, a3, a2}
A kiv´ alaszt´as im´ent ismertetett elemi m´ odj´ at rekurz´ıvan alkalmazhatjuk. Tekints¨ uk a k¨ ovetkez˝o p´eld´ akat. Legyen /-!D!C! 8 << %, : 2 h[bb + x, x y, (u + v) ]
Mivel a /-!D!C! 2 (u + v)
szint´en kifejez´es, ez´ert ennek argumentumait, valamint az argumentumok argumentumait is kiv´ alaszthatjuk a fenti m´ odszerrel: /-!D!C! u + v /-!D!C! v
A fenti utas´ıt´ asok helyett — szerencs´ere — az al´abbiakat is haszn´ alhatjuk: /-!D!C! u + v
32
2. Ismerked´es a Mathematica programmal /-!D!C! v
Minden kifejez´eshez egy´ertelm˝ uen hozz´ arendelhet˝ o egy gy¨ok´errel b´ır´ o, fastrukt´ ur´ aj´ u gr´ af oly m´odon, hogy a gr´ af cs´ ucsaiba a r´eszkifejez´esek fej´et, lev´elcs´ ucsaiba pedig az atomokat helyezz¨ uk el. Ennek elk´esz´ıt´es´ehez is uggv´eny: seg´ıts´eget ad a 0 8 f¨ G!!>$ /-!D!C! h[| , | , | ] Plus[bb, x] Times[x, y] Power[| , 2] Plus[u, v]
Mag´at a gr´ afot pedig ´ıgy rajzolhatjuk meg: &&+(!!'8)G!!) H1#$/-!D!C!
Egy r´eszkifejez´es (bele´ertve ezent´ ul az atomokat is) szintje (level) a gy¨ ok´ert˝ol hozz´a vezet˝o u ´t hossza a fenti gr´ afban: 2!:!/-!D!C! 2 {bb, x, bb + x, x, y, x y, u + v, 2, (u + v) }
2!:!/-!D!C! {bb, x, x, y, u + v, 2}
Egy r´eszkifejez´es t¨obb helyen is el˝ ofordulhat, ezen el˝ ofordul´ asi helyek list´aj´ at is megkaphatjuk: #$$/-!D!C! B-, {{1, 2}, {2, 1}}
A ) f¨ uggv´eny egy kifejez´es ¨osszes szintjeinek sz´am´at adja meg.
2.3. Az alapelvekr˝ ol
33
A fentiekben haszn´alt HI*F(" F" E formula argumentumai ´eppen az adott r´eszkifejez´eshez vezet˝o utat adj´ ak meg a fenti gr´ afban. Ezen k´ıv¨ ul tov´ abbi m˝ uveleteket is v´egezhet¨ unk a kifejez´esekkel a k¨ovetkez˝o f¨ uggv´enyeket haszn´alva:
/ /0 ) 8 * %* 5 ' ' ' 0
6' 6* 6+ * 6. 66& 0
A kifejez´esek egy m´asik fontos oszt´aly´ at alkotj´ ak a list´ak. Programoz´asi nyelvekben a kifejez´esek oszt´alyba sorol´ as´anak eszk¨ozei a t´ıpusok. Ezeket arra haszn´ alj´ ak, hogy seg´ıts´eg¨ ukkel ellen˝ orizz´ek a kifejez´esek helyess´eg´et szemantikai szempontb´ol: p´eld´ aul, ha egy eg´esz argumentum´ u f¨ uggv´eny argumentum´ aba val´ os t´ıpus´ u sz´am ker¨ ul, hiba¨ uzenetet kapunk. Ez, k¨ ul¨ on¨ osen bonyolult programokn´ al, igen hasznos. M´asr´eszt igen neh´ezkess´e v´alhat egy olyan programoz´ asi nyelv, (p´eld´ aul a Pascal) haszn´alata, amelyben minden objektum t´ıpus´ at deklar´ alni kell m´eg az objektum defini´ al´ asa el˝ott. A Mathematica mindk´et elj´ar´ ast t´amogatja azon a m´odon, hogy a kifejez´esek fej´et u ´gy haszn´ alja, mint m´ as nyelvek a t´ıpusokat. ´Igy teh´ at minden objektumnak van t´ıpusa, de ezt nem kell k¨ ul¨ on deklar´ alni, s˝ot haszn´ alni sem, csak ha a felhaszn´ al´ o akarja. A fejek jelent´es´enek ezen k´et´ertelm˝ us´ege nagyon hasznos, mivel a program a kifejez´esek viselked´es´enek lehets´eges szemantikai modelljei k¨ oz¨ ul nem uggv´eny k´enyszer´ıt r´ a egy kiv´ alasztottat a felhaszn´al´ ora. P´eld´ aul a .* f¨ egyr´eszt ¨osszefogja az argumentumait ´es nem csin´al vel¨ uk semmit. M´ asr´eszt viszont azt mondhatjuk, hogy argumentumaib´ ol valami u ´jat hoz l´etre, vagyuggv´eny volt´ ara is az ˝oket tartalmaz´o list´at. Ebben a felfog´ asban a .* f¨ uggv´enyk´ent gondolunk, de esik a hangs´ uly. Ehhez hasonl´ o, hogy a -ra f¨ amikor egy eg´esz sz´amra alkalmazzuk, semmi sem t¨ort´enik, csak megtartja u objektumot. az argumentumot ´es l´etrehoz egy t´ıpus´
34
2. Ismerked´es a Mathematica programmal
List´ ak megad´ as´ aval r´eszletesen foglalkozunk a halmazokr´ ol sz´ol´ o 3.1.2. pontban ´es a line´aris algebr´ ar´ ol sz´ol´ o 3.8. szakaszban. Itt csak felsoroljuk az erre a c´elra haszn´ alhat´ o f¨ uggv´enyeket:
/ .*
6& 0
A list´akon v´egezhet˝o a ´talak´ıt´ asok egy r´esze az eml´ıtett k´et r´eszben szint´en megtal´alhat´ o; ez´ert itt csak a k¨ovetkez˝oket eml´ıtj¨ uk meg:
)* 8 8/ % 2 2/
2/ 2%4 @ 0 0 **
Ezek a f¨ uggv´enyek a nagyteljes´ıtm´eny˝ u egysoros elj´ar´ asok, ´altal´ anosabban pedig a funkcion´ alis programoz´ as alapvet˝o eszk¨ozei. N´eh´ any p´eld´ at adunk alkalmaz´ asukra: +<!-< f[a] + f[b] B!- < ( g[f[a, c], f[b, d]]
!B-I & I E J {{1, 0, 0}, {1, 1, 0}, {1, 1, 1}} G8! 2$
, HA Log[x] == Log[y] '1B !! - < {f[a, {1}], f[b, {2}]}
V´eg¨ ul a Mathematica egy igen ´erdekes, speci´alis lehet˝ os´eg´ere h´ıvjuk fel a figyelmet. Kor´ abban eml´ıtett¨ uk azt, hogy a kifejez´es fogalm´ aba minden” ” beletartozik. Azt is mondhatjuk viszont, hogy minden kifejez´es (´altal´ anos´ıtott ´ertelemben) list´anak tekinthet˝ o. Ez, amint az al´ abbi p´eld´ akb´ ol is kit˝ unik, azt jelenti, hogy tetsz˝ oleges, a hagyom´anyos programnyelvekben list´ak kezel´ese v´egett bevezetett elj´ar´ as megfelel˝o je a Mathematic´ a ban tetsz˝oleges kifejez´esre is alkalmazhat´o. Az alkalmaz´ as m´odja a k¨ ovetkez˝o: az
2.3. Az alapelvekr˝ ol
35
t¨ ort´enik, mintha a kifejez´es hely´ebe a .* fej ker¨ ulne, s a program a keletkez˝o list´an v´egrehajtja az adott m˝ uveletet, majd az eredm´enyr˝ ol elt´avol´ıtja as ´altal´ anos´ıtott list´an a .* fejet ´es visszarakja az eredetit. Ez az elj´ar´ anal´og m´odon m˝ uk¨ odik: $< ( K11! - < ( a + b + c f[a, b, c, d, e]
!
#$$ , 9!:!!L {{2}, {3, 1}} {{3, 1}, {2}}
´ ekad´ 2.3.2. Ert´ asok t´ıpusai. Mint´ azatok A program haszn´ alata sor´an igen gyakran szeretn´enk egy kifejez´est vagy annak egy r´esz´et helyettes´ıteni egy m´asik kifejez´essel. Ezt lok´ alis vagy glob´ alis ´ert´ekad´ assal val´ os´ıthatjuk meg. • Lok´ alis ´ ert´ ekad´ as A lok´ alis, azaz egyetlen kifejez´esre ´erv´enyes ´ert´ekad´ ashoz sz¨ uks´eg¨ unk van egy tarnszform´ aci´ os szab´ alyra. Ezt az ¨ osszef¨ ugg˝ o JK jelsorozattal (ami a 6 f¨uggv´eny r¨ovid alakja) adhatjuk meg. A transzform´aci´os szab´alyt a 6/ f¨uggv´eny (ennek r¨ovid alakja: ) felhaszn´al´as´aval alkalmazzuk lok´alis ´ert´ekad´ asra, vagyis egyetlen kifejez´es valamely r´esz´enek helyettes´ıt´es´ere. P´eld´ aul: , @= FM ? 14 + 3 y
A fenti helyettes´ıt´es az 4 ´ert´ek´et csak ideiglenesen v´altoztatta meg: , 2 x + 3 y
Egy kifejez´esben egyszerre t¨obb ´ert´ekad´ ast is v´egrehajthatunk, ha a transzform´ aci´ os szab´alyokat lista elemeik´ent soroljuk fel: , C @= FM , FM , FM 3 C FM 0 {6 z, 20 x}
36
2. Ismerked´es a Mathematica programmal , @= FM FM < b + 3 y , @= FM , FM 4 y
Az eddigiekben u ´gynevezett azonnali lok´ alis ´ert´ekad´ asr´ol volt sz´o, ugyanis a transzform´ aci´ os szab´aly jobb oldal´ at a program ki´ert´ekelt form´aban t´ arolja. Ezzel szemben lehet˝os´eg¨ unk van arra is, hogy u ´gynevezett k´esleltetett lok´ alis ´ert´ekad´ ast hajtsunk v´egre, amelyn´el a transzform´ aci´ os szab´aly jobb oldala csak megh´ıv´ askor ´ert´ekel˝odik ki. A k´etf´ele ´ert´ekad´ as k¨oz¨ott a szintaktikai k¨ ul¨ onbs´eg csak abban a´ll, hogy az ut´ obbin´ al a K jelsorozatot ul¨ onbs´eget az al´abbi p´eld´ an kell haszn´ alnunk a JK helyett. A szemantikai k¨ illusztr´aljuk: G<! {x, x, x} G<! @= FM 9 $ {0.0879328, 0.0879328, 0.0879328} G<! @= NM 9 $ {0.349125, 0.712814, 0.47561}
Ha egy kifejez´est nemcsak egyszer akarunk v´egrehajtani, hanem ism´etelar´ ast (teljes ten, mindaddig, am´ıg lehets´eges, akkor a helyett a elj´ aul: nev´en 66) alkalmazzuk. P´eld´ , @= FM , , FM 3 + y , @@= FM , , FM 4
• Glob´ alis ´ ert´ ekad´ as Az azonnali glob´ alis ´ert´ekad´ as eredm´enyek´ent a program egy kifejez´est vagy annak egy r´esz´et automatikusan helyettes´ıti egy m´asikkal, valah´ anyszor az ovid eredeti kifejez´es el˝ ofordul. Ezt az ´ert´ekad´ ast az jellel (ami a r¨ alakja) fejezz¨ uk ki. P´eld´ aul :!!! 9 $ 0.566803
2.3. Az alapelvekr˝ ol
37
A lok´ alis esethez hasonl´oan, ha az helyett a jelsorozatot (ami a ) r¨ovid alakja) haszn´aljuk, akkor k´esleltetett glob´alis ´ert´ekad´ast val´ os´ıthatunk meg. P´eld´ aul: :!!! N 9 $ G<!:!!! {0.566803, 0.566803, 0.566803} G<!:!!! {0.741224, 0.400726, 0.700565}
A f¨ uggv´enyek megad´as´ar´ ol sz´ol´ o 3.1.3. pontban tov´ abbi p´eld´ akat is fogunk mutatni a k´etf´ele ´ert´ekad´ as k¨oz¨otti k¨ ul¨ onbs´eg illusztr´al´ as´ara. • Mint´ azatok A Mathematica egyik leghat´asosabb eszk¨oz´ehez jutunk az´ altal, hogy nemcsak konkr´et kifejez´esekkel, hanem ilyenek oszt´alyaival, u ´gynevezett mint´ azatokkal is dolgozhatunk. Minden kifejez´esnek meghat´arozott strukt´ ur´ a ja van, s amikor kifejez´esek oszt´alyaival dolgozunk, akkor tulajdonk´eppen a strukt´ ur´ akkal v´egz¨ unk m˝ uveleteket. A mint´ azatokat sz´amos helyen haszn´aljuk: f¨ uggv´enyek defini´ al´ as´an´ al, transzform´ aci´ os szab´alyokban (l´ asd al´ abb), felt´eteleket fejezhet¨ unk ki vel¨ uk, amelyeket azut´ an alkalmazhatunk list´ ab´ ol val´ o v´ alogat´asn´al (l´asd a halmazokr´ ol sz´ol´ o 3.1.2. pontot). A transzform´ aci´ os szab´alyokat nemcsak kifejez´esekre, hanem kifejez´esek oszt´alyaira, azaz mint´ azatokra is lehet alkalmazni. Ez m´ as sz´oval azt jelenti, hogy adott strukt´ ur´ aj´ u r´eszek helyettes´ıthet˝ ok valamely kifejez´esben. Mint´ azatra tipikus p´elda az 4 jelsorozat. Ebben a jelsorozatban szerepel az alapvet˝ o
al´ ah´ uz´ asjel (blank ), amely azt jel¨oli, hogy hely´ebe tetsz˝oleges kifejez´est ´ırhatunk. Az 4 jel jelent´ese pedig az, hogy erre a tetsz˝oleges kifejez´esre a tov´ abbiakban 4 n´even fogunk hivatkozni: - -< @= -O FM 2 2 a + b #$$- < -( -O {{1}, {3}}
38
2. Ismerked´es a Mathematica programmal
Az al´ ah´ uz´ asjel egy kifejez´esben b´ arhov´ a ker¨ ulhet, ´ıgy 4L a r¨ ogz´ıtett 4 sz´am tetsz˝oleges hatv´any´ at jel¨ oli, ahol a kitev˝ ore a tov´abbiakban n´even fogunk hivatkozni: @= OFM {1, x, r[2], r[3]}
A p´elda azt is mutatja, hogy a mint´ azatokat strukt´ ur´ a juk alapj´ an azonos´ıtja a program, teh´ at nem a matematikai tartalmuk szerint. (Az adott esetben ez k´enyelmetlens´eg forr´ asa lehet, majd l´ atni fogjuk, hogy hogyan lehet ezt kik¨ usz¨ob¨ olni.) Bizonyos egyszer˝ u matematikai tulajdons´ agokat azonban, amilyen p´eld´ aul az o¨sszead´as kommutativit´ asa ´es aszociativit´asa, figyelembe vesz a program mint´ azatok illeszt´es´en´el: -< -( @= -O -,O FM 1 , p[b, c]
A mint´ azat (majdnem teljesen) ´altal´ anos defin´ıci´ o ja: olyan nem u ¨res jelsorozat, amelynek a´ltal´ anos alakj´ at a programnyelvek le´ır´ as´an´ al haszn´ alt jel¨ ol´esekkel ´ıgy adhatjuk meg:
4 M+ ahol a sz¨ogletes z´ar´ o jel azt jelenti, hogy a benne l´ev˝o jel szerepelhet a minar´ o ´ertelemben szerepel, teh´at a k´et oldal´ an el˝ofordul´ o t´ azatban, a M jel kiz´ jelek nem fordulhatnak el˝ o egyszerre a mint´azatban, a g¨ omb¨ oly˝ u z´ ar´ o jel pedig itt egyszer˝ uen csoportos´ıt´ asra szolg´al. alHa egy eg´esz mint´azatra akarunk az 4 n´evvel hivatkozni, akkor haszn´ u jel¨ ol´est: juk a 4 alak´ -< @= -NOO FM 1 b p[a , b]
Egy adott mint´ azathoz illeszked˝o kifejez´esek megkeres´es´ehez az al´abbi f¨ uggv´enyeket haszn´alhatjuk:
**
'*
L´ assunk egy p´eld´ at: *! 3 3 O FM {2, 4}
A mint´ azatok ´altal´ anos defin´ıci´ o j´ aban szerepl˝ o bet˝ u a fejre utal, hivatkozhatunk ugyanis adott t´ıpus´ u — a´ltal´ anosabban adott fejjel (p´eld´ a-
2.3. Az alapelvekr˝ ol
39
ul 4" %& " .*" 6" ) rendelkez˝ o — mint´ azau az alap´ertelmez´es szerinti ´ert´ek: tokra. A + bet˝ -/OB!! N -/ -/= -/ 1 + fakt[2.] + fakt[x]
Adott felt´eteleket kiel´eg´ıt˝ o mint´ azatok kijel¨ ol´es´ere szolg´al a # jelsorozat: *$ F F3 O @ &E 2
Bizonyos felt´etelek teljes¨ ul´ese a 9 v´eg˝ u f¨ uggv´enyekkel is ellen˝ orizhet˝o:
-+9 %& 9 3 9 @9
' 9 '9 2 49 < 9
Emelj¨ uk p´eld´ aul n´egyzetre a sz´amokat egy adott list´ aban: ?@ @= O @ 5
Mint´ azatok szerkezet´et ellen˝orzik az al´abbi f¨ uggv´enyek is:
/9 8 9 2 9 2 9
@ 9 9 :*9 <9
Egy mint´ azatban alternat´ıv´ a kat is megadhatunk a M jellel, amit kiolvasni az ak´ ar ... ak´ ar ... sz´op´ arral lehet: 8P< N 1 8 8< 8( 8 {p, p, h[c], h[d]}
Mint´ azatok haszn´alata teszi lehet˝ov´e azt is, hogy olyan f¨ uggv´enyeket defini´ aljunk, amelyek argumentumainak sz´ am´at el˝ore nem r¨ogz´ıtj¨ uk. (Ilyen uggv´eny is.) Sz´ am´ıt´ astechnikai kifejez´essel azt f¨ uggv´eny a be´ep´ıtett '* f¨ is mondhatjuk, hogy dinamikusan deklar´ alt t¨ omb¨ ok¨ on ´ertelmezz¨ uk ezeket a f¨ uggv´enyeket. obb kifejez´esb˝ol a´ll´ o sorozatra utal, amelyAz 4 jelsorozat egy vagy t¨ uz´ as nulla vagy t¨ obb nek a neve a tov´ abbiakban 4 lesz. A h´aromszoros al´ah´ kifejez´esb˝ol a´ll´ o sorozatot jel¨ ol:
40
2. Ismerked´es a Mathematica programmal 8OOO O
A fenti defin´ıci´ o a k´etszer el˝ofordul´ o argumentumokat kiemeli” argu” mentumai k¨oz¨ ul: 8 3 0 h[4, 5] hh[2] hh[3]
Tanuls´ agos egy azonosan hamis felt´etel alkalmaz´as´aval megvizsg´alni, hogyan pr´ ob´ alkozik a Mathematica a mintailleszt´esn´el: - < ( ! @= -OO ,OONMA @ # , {a}, {b, c, d, e} {a, b}, {c, d, e} {a, b, c}, {d, e} {a, b, c, d}, {e} f[a, b, c, d, e]
Olyan f¨ uggv´enyeket is defini´ alhatunk a mint´ azatok seg´ıts´eg´evel, melyeknek bizonyos argumentumai opcion´ alisak (teh´at megh´ıv´ askor nem kell ezeknek felt´etlen¨ ul ´ert´eket adnunk). Megadhatjuk az opcion´ alis argumentum alap´ertelmez´es szerinti ´ert´ek´et is: DO ,ON CON N D1 , C D < D {jp[a, b, 2], jp[a, 1, 2]}
N´eh´ any gyakran haszn´ alt be´ep´ıtett f¨ uggv´eny bizonyos argumentumaihoz (term´eszetes) be´ep´ıtett alap´ertelmez´es szerinti ´ert´ekek tartoznak:
4!
4
4L
alap´ertelmez´es szerinti ´ert´eke 0 alap´ertelmez´es szerinti ´ert´eke 1 alap´ertelmez´es szerinti ´ert´eke 1
´ Erdemes most el˝ovenn¨ unk egy kor´ abbi p´eld´ at: @= O= FM {1, r[1], r[2], r[3]}
Az ´altalunk defini´ alt f¨ uggv´enyek opci´ oinak adhatunk nevet is. Ekkor az alap´ertelmez´es szerinti ´ert´eket ´ıgy adhatjuk meg: 1$D $1 FM $1 FM
Megk´erdezhetj¨ uk az E opcion´alis argument (r¨ oviden: opci´ o ) alap´ertelmez´es szerinti ´ert´ek´et:
2.3. Az alapelvekr˝ ol
41
$1 @= 1$D 1
A mint´ azatok majdnem teljesen ´altal´ anos defin´ıci´ o j´ aban szerepl˝ ok¨ on k´ıu jelsorozat is. Az els˝ o egy v¨ ul mint´ azat m´eg a
´es a
alak´ kifejez´est jel¨ol, amely egyszer vagy t¨ obbsz¨ or ism´etl˝ odik, a m´ asodik pedig olyat, amely nullaszor vagy t¨ obbsz¨ or ism´etl˝ odik.
teh´at ezeket jeunk meg ennek a szerlenti: " " " " " ". . . stb. N´ezz¨ kezetnek az alkalmaz´as´ara is egy p´eld´ at: *!- - < - ( -P<== {f[a], f[a, b, a]}
A mint´ azatok illeszked´ese (mintailleszt´es) fontos szerepet j´atszik a logikai programoz´ asn´ al is, amir˝ ol a 4. szakaszban m´eg sz´olni fogunk.
2.3.3. Opci´ ok Matematikai tev´ekenys´egeink sor´an gyakran tal´ alkozhatunk olyan probl´em´akkal (gondoljunk p´eld´ aul a numerikus matematik´ ara), amelyek megold´ as´ara elvileg sem l´etezik egyetlen, j´ ol haszn´ alhat´ o m´odszer. Sz´amos ilyen esetben t¨obb k¨ ul¨ onb¨ oz˝o elj´ ar´ as k¨oz¨ ul v´ alogathatunk. A matematik´ anak ezt a jellegzetes von´as´at a Mathematica is t¨ ukr¨ ozi. Megeml´ıtett¨ uk m´ ar azt, hogy p´eld´ aul a Shift ´es az Enter billenty˝ u egy¨ uttes lenyom´asa ut´ an kezdi el a program az egy vagy t¨ obb parancssorba be´ırt feladat megold´ as´at (a ki´ert´ekel´est). A program a be´ep´ıtett elj´ ar´ asok k¨oz¨ ul meghat´arozott m´odon v´ alaszt egyet azokban az esetekben, amikor t¨obbf´ele lehet˝os´ege is van a beadott utas´ıt´ as(ok) ki´ert´ekel´es´ere. Ez a helyzet p´eld´ aul al, f¨ uggv´enyek ´ abr´ azol´as´an´ al, hat´ arozott integr´ alok numerikus kisz´ amol´as´an´ statisztikai pr´ob´ ak megv´alaszt´as´an´ al vagy matematikai kifejez´esek egyszer˝ us´ıt´es´en´el. A programnak egyik legfontosabb jellegzetess´ege azonban ´eppen az, hogy a felhaszn´ al´ onak igen sok esetben lehet˝os´eget ny´ ujt arra, hogy saj´ at maga v´ alassza meg a ki´ert´ekel´esn´el alkalmazott be´ep´ıtett algoritmust. Ezt a felhaszn´ al´ o opci´ ok megad´as´aval teheti meg. A f¨ uggv´enyek t¨ obbs´ege rendelkezik opci´ okkal. Minden opci´ onak meghat´ arozott neve ´es t¨obb lehets´eges ´ert´eke is van. Egy be´ep´ıtett f¨ uggv´eny opci´oinak list´a j´ at az
@*+
42
2. Ismerked´es a Mathematica programmal
utas´ıt´ assal kapjuk meg. Tekints¨ uk p´eld´ aul a f¨ uggv´enyek ´abr´ azol´as´ahoz haszar´ ast (l´asd a 3.1.5. pontot is): n´ alhat´ o ' elj´ 1$#$ 1 , Axes -> Automatic, GoldenRatio AxesLabel -> None, AxesOrigin -> Automatic, AxesStyle -> Automatic, Background -> Automatic, ColorOutput -> Automatic, Compiled -> True, DefaultColor -> Automatic, Epilog -> { }, Frame -> False, FrameLabel -> None, FrameStyle -> Automatic, FrameTicks -> Automatic, GridLines -> None, MaxBend -> 10., PlotDivision -> 20., PlotLabel -> None, PlotPoints -> 25, PlotRange -> Automatic, PlotRegion -> Automatic, PlotStyle -> Automatic, Prolog -> { }, RotateLabel -> True, Ticks -> Automatic, DefaultFont :> $DefaultFont, DisplayFunction :> $DisplayFunction}
{AspectRatio ->
2!8L 27
A Mathematica transzform´ aci´ os szab´alyk´ent, teh´ at a k¨ ovetkez˝o alakban kezeli az opci´okat: opci´o neve −> opci´o ´ert´eke. Mindegyik opci´ ohoz egy meghat´arozott alap´ertelmez´es szerinti ´ert´ek is tartozik. Ezt haszn´ alja a program abban az esetben, amikor nem adjuk meg az opci´ot. A
@* f¨ uggv´eny alkalmaz´as´aval k¨ oz¨olhetj¨ uk a programmal azt, hogy melyik opci´o´ert´eket tekintse alap´ertelmez´es szerinti ´ert´eknek. uggv´eny opci´ oihoz. Ezek k¨ oz¨ ul t¨ obbnek (ilyen T´erj¨ unk vissza a ' f¨ ap´eld´ aul a 8 ) a jelent´es´et, valamint a lehets´eges opci´o´ert´ekeket (p´eld´ onnyen kital´ alhatjuk. M´ as esetben az inform´aci´ oszerz´es ul 8* ´es 0 ) k¨ uggv´eny n´eh´ any opkor´ abban ismertetett m´ odj´ at haszn´ alhatjuk. (A ' f¨ ci´o j´ anak ´ertelm´et a 3.1.5. pontban is kifejtj¨ uk.) Itt jegyezz¨ uk meg, hogy sokszor nem egyszer˝ u feladat az opci´ok lehets´eges ´ert´ekeinek a programb´ ol t¨ ort´en˝ o felder´ıt´ese. (Ilyenkor ´erdemes a ,
2.3. Az alapelvekr˝ ol
43
s´ ug´ ot is megk´erdezni ´es a Help-et is megn´ezni.) Wolfram k¨ onyve ([89]) sz´amos esetben ezekn´el t¨obb inform´ aci´ ot tartalmaz. N. Blachman´e (l´asd [9]-et) pedig ´eppen ennek a hi´ anyoss´agnak a megsz¨ untet´es´et t˝ uzte ki c´elul. B´armely f¨ uggv´eny argumentum´ aban a megengedett opci´ ok k¨ oz¨ ul ak´ arh´ anyat b´ armilyen sorrendben felsorolhatunk. A k¨ ul¨ onb¨ oz˝oket a " jellel kell elv´ alasztanunk. Befejez´es¨ ul m´eg a sz´amos be´ep´ıtett f¨ uggv´enyn´el alkalmazhat´ o opci´or´ ol ´es a gyakori / opci´o´ert´ekr˝ol ejt¨ unk n´eh´ any sz´ot. uggv´enyt. Mivel ez sokszor sz´amolja Vegy¨ uk p´eldak´ent ism´et a ' f¨ ki a beadott f¨ uggv´eny helyettes´ıt´esi ´ert´ekeit, fontos, hogy a program min´el gyorsabban hajtsa v´egre ezeket a m˝ uveleteket. Ezt seg´ıti a opci´o. Alap´ertelmez´es szerinti ´ert´eke ´altal´ aban 0 , ami azt jelenti, hogy a Mathematica a ki´ert´ekel´esn´el a leggyorsabban m˝ uk¨ od˝ o algoritmusokat, teh´at a g´epi pontoss´ ag´ u sz´amokat (l´asd a 3.1.3. pontot) haszn´ alja. Ha a ki´ert´ekel´es sor´an nagypontoss´ ag´ u sz´amokat (l´asd szint´en a 3.1.3. pontot) szeretn´enk alkalmazni, akkor a JK 8* opci´ot kell megadnunk. alaszt Sz´ amos opci´o ´ert´eke lehet /. Ilyen esetekben a program v´ ki egy (a beadott feladatt´ ol — is — f¨ ugg˝ o) lehets´eges opci´o´ert´eket, amir˝ol sz¨ uks´eg eset´en a
8@* f¨ uggv´eny seg´ıts´eg´evel kaphatunk inform´ aci´ ot. P´eld´ aul: < #$K<Q!@ B , , E 3E 3 2.5 2 1.5 1 0.5
10
20
1$< #$9! {PlotRange -> Automatic} >1$< #$9! {{-1., 41.}, {-0.0735488, 3.0155}}
30
40
44
2. Ismerked´es a Mathematica programmal
2.3.4. Attrib´ utumok A be´ep´ıtett f¨ uggv´enyek t¨ obbs´ege rendelkezik egy vagy t¨obb (attrib´ utumnak nevezett) tulajdons´ aggal. Ezek list´ aj´ at az
/ * f¨ uggv´ennyel ´ıgy kaphatjuk meg: K<! {Listable, Protected}
K<!# {Flat, Listable, OneIdentity, Orderless, Protected}
P´eld´ aul a .* attrib´ utum azt jelenti, hogy ha a f¨ uggv´eny argumentum´aba list´at (speci´alisan vektort vagy m´ atrixot) ´ırunk, akkor a program a sz´oban forg´ o f¨ uggv´enyt a lista minden elem´ere k¨ ul¨ on-k¨ ul¨ on alkalmazza: #@3 #@E Pi 1 , Sin[ ]} { Sqrt[2] 10 < (
{{Sin[a], Sin[b]}, {Sin[c], Sin[d]}}
A be´ep´ıtett matematikai f¨ uggv´enyek mindegyik´et ell´att´ ak a .* attrib´ utummal, ez´ert list´akkal aritmetikai m˝ uveleteket is v´egezhet¨ unk: : 3 :@:F 9 16 } {4, , 2 5
A 8 attrib´ utum a f¨ uggv´eny asszociat´ıv, az @ ** pedig kommutat´ıv tulajdons´ ag´ at fejezi ki. utum: F¨ uggv´eny´ert´ekek fel¨ ul´ır´ as´at akad´ alyozza meg a ' attrib´ #@E A0F@3 Set::write: Tag Sin in Sin[
Pi ] is Protected. 10
Az : f¨ uggv´enyt felhaszn´ alva azonban be´ep´ıtett f¨ uggv´enyek helyettes´ıt´esi ´ert´ekeit is megv´ altoztathatjuk. P´eld´ aul ´ıgy:
2.3. Az alapelvekr˝ ol
45
R1$!( #@E A0F@3 #$!( #@E -1 + Sqrt[5] 4
Egy a´ltalunk defini´ alt f¨ uggv´enyhez (´ altal´ aban szimb´ olumhoz) is hozz´ arendelhet¨ unk attrib´ utumokat. A Mathematica 2.2.x v´ altozataiban a k¨ ovetkez˝ok haszn´ alat´ ara van lehet˝os´eg¨ unk:
* 8 G/ G8 * G6* .* .
@% @ ** ' 6' 0
Attrib´ utumok megad´ as´ahoz ´es t¨orl´es´ehez pedig a k¨ ovetkez˝o bels˝o f¨ uggv´enyeket haszn´alhatjuk:
/ * / *
/ *
T¨obb esetben is sz¨ uks´eg¨ unk lehet arra, hogy csup´ an kijel¨ olj¨ unk bizoutumok megad´ as´aval tehetj¨ uk meg. nyos m˝ uveleteket. Ezt a G attrib´ P´eld´ aul: !K<!- ;$ > - f[1 + 1, 5] !K<!- ;$ K - f[1 + 1, 2 + 3]
A utas´ıt´ assal a kor´ abban defini´ alt f¨ uggv´enynek csak a helyettes´ıt´esi ´ert´ekeit lehet kit¨or¨ olni, attrib´ utumai megmaradnak. A
/ utas´ıt´ as t¨orli ki az helyettes´ıt´esi ´ert´ekeit is ´es az attrib´ utumokat is.
46
2. Ismerked´es a Mathematica programmal
2.3.5. Ki´ ert´ ekel´ es A Mathematica ´ altal v´egrehajtott alapvet˝ o m˝ uvelet a ki´ert´ekel´es. Valah´ anyszor bevisz¨ unk egy kifejez´est, a program ki´ert´ekeli azt, majd visszaad egy eredm´enyt. Ehhez a be´ep´ıtett ´es a felhaszn´al´ o ´altal megadott defin´ıci´okat haszn´ alja fel. Kor´ abban l´ attuk, hogy a kifejez´es fogalma hogyan k´epes egys´eges´ıteni az el˝ofordul´ o objektumokat. Most azt mutatjuk meg, hogy a ki´ert´ekel´es fogalma az elv´egzett m˝ uveletek egys´eges t´argyal´as´ara alkalmas. Ki´ert´ekel´es ugyanis egy sz´am´ıt´ as elv´egz´ese, egy egyszer˝ us´ıt´es vagy egy elj´ ar´ as v´egrehajt´ asa is. A Mathematica egy v´egtelen ki´ert´ekel˝o rendszer. Ez azt jelenti, hogy a bevitt kifejez´eseket mindaddig alak´ıtja, am´ıg tov´ abbi defin´ıci´ o nem alkalmazhat´o az ´atalak´ıt´ as´ara. uggv´eny m´eg nincs defini´ alva, akkor csak a be´ep´ıtett f¨ uggv´enyek Ha az f¨ tulajdons´ agai haszn´ alhat´ ok fel: - 3- 1 + 5 f[3]
Ha most defini´aljuk -et, akkor az eredm´eny tov´ abb alak´ıthat´ o: -O LL 46
A kifejez´eseket ki´ert´ekel´es¨ uk el˝ ott a Mathematica szabv´anyos vagy kanonikus (standard) alakra hozza. Ek¨ozben f¨ olhaszn´ alja a szerepl˝ o f¨ uggv´enyek ag´ at, valamint kommutat´ıv (@ **) ´es asszociat´ıv (8) tulajdons´ list´ara val´o alkalmazhat´ os´agukat (.*). Az egyes r´eszek sorbarendez´es´en´el alkalmazza (durv´ an sz´olva) az ´ab´ec´erendet is. Ez´ert tudja p´eld´ aul megkapni az al´abbi eredm´enyt: -(< F -(< 0
A szabv´anyos alak azonban c´eljainkt´ ol f¨ ugg˝ oen m´as ´es m´as lehet. Nyilv´ anval´ o p´eld´ aul, hogy polinomokat egyszer monomok o¨sszegek´ent, m´askor uggv´eny adja t´enyez˝ok szorzatak´ent tudunk jobban haszn´ alni. Az -4 f¨ uggv´eny. az els˝o alakot, a m´ asodikat pedig a 8 f¨ Sok matematikai probl´ema neh´ezs´ege ´eppen a megfelel˝o kanonikus alak megtal´al´ as´aban a´ll.
2.3. Az alapelvekr˝ ol
47
• Szab´ alyos ki´ ert´ ekel´ es A legt¨obb kifejez´es ki´ert´ekel´es´ere a Mathematica az u ´gynevezett szab´ alyos ki´ert´ekel´est haszn´ alja. Ennek l´ep´eseit mutatja az al´abbi t´ abl´ azat: • Ki´ert´ekeli a kifejez´es fej´et. • Ki´ert´ekeli egym´as ut´ an az ¨osszes elemet. • Alkalmazza a kommutativit´ast, asszociativit´ast ´es list´ara val´o alkalmazhat´os´agot. • Alkalmazza a felhaszn´al´ o ´altal megadott defin´ıci´ okat. • Alkalmazza a be´ep´ıtett defin´ıci´ okat. • Ki´ert´ekeli az eredm´enyt. Wolfram p´eld´ aja alapj´ an ismertetj¨ uk egy kifejez´es ki´ert´ekel´es´et. Tegy¨ uk fel, hogy N, ´es a F4!LF!E kifejez´est akarjuk ki´ert´ekelni. Ennek teljes alakja
'*0*F" " 4" 'C " F" E. El˝ osz¨or a program ezt ´ert´ekeli ki: 0*F" " 4, az eredm´eny
0*F" N" 4. Most f¨ olhaszn´ alja a szorz´as be´ep´ıtett defin´ıci´ oj´ at:
0*EO" 4. A k¨ ovetkez˝o l´ep´es ennek ki´ert´ekel´ese: 'C " F. Az eredm´eny ki´ert´ekel´ese ut´an:
'C N" F. Most f¨ olhaszn´ alja a hatv´ anyoz´ as be´ep´ıtett defin´ıci´ oj´ at: OP. uggv´eny argumentumainak ki´ert´ekel´ese ut´ani r´eszeredm´eny: A '* f¨
'*0*EO" 4" OP" E. Ezt az eredm´enyt az ¨osszead´as be´ep´ıtett defin´ıci´ oja adja:
'*QR" 0*EO" 4. Ezt l´ atjuk a k´eperny˝ on:
QR ! EO 4. uggv´eny felhaszn´ aA l´ep´eseket kell˝o gyakorlattal k¨ ovethejt¨ uk a 0 f¨ l´ as´aval is. ?
48
2. Ismerked´es a Mathematica programmal G(! 2 {{a, 7}, 2 7 x, 14 x}, {{a, 7}, 7 , 49}, 14 x + 49 + 1, 1 + 49 + 14 x, 50 + 14 x}
• K¨ ul¨ on¨ os ki´ ert´ ekel´ es N´eh´ any fontos Mathematica-f¨ uggv´eny nem szab´alyos: k¨ ul¨ on¨ os ki´ert´ekel´esi elj´ ar´ as eredm´enyek´ent kapja meg ´ert´ek´et. Ezek k¨ oz¨ ul a legfontosabbak:
) 8 %
' 0
Nyilv´ anval´ o p´eld´ aul, hogy az 4( (vagyis 4" () kifejez´es ki´ert´ekel´es´en´el a Mathematica a bal oldalon megjelen˝ o 4 ´ert´ek´et nem sz´am´ıtja ki. A szab´alyos ki´ert´ekel´esn´el a r´eszkifejez´esek egym´as ut´ an ´ert´ekel˝odnek ki. Valamely r´eszkifejez´es (az ¨osszes, az els˝o, az ¨osszes az els˝o kiv´etel´evel) ki´ert´ekel´ese megakad´alyozhat´ oa
G/ G8 *
G6*
f¨ uggv´enyek k¨ oz¨ ul a megfelel˝ ovel. Azt is megtehetj¨ uk, hogy k´enyszer´ıtj¨ uk a programot egy egy´ebk´ent ki nem ´ert´ekelend˝o r´esz ki´ert´ekel´es´ere. Erre uggv´eny. szolg´al az -+ f¨ Felsorolunk m´eg n´eh´ any, a t´emak¨orh¨ oz kapcsolod´o fontos f¨ uggv´enyt:
G' G G8
6G' 6*G :+
2.4. K¨ uls˝ o kapcsolatok ´ er¨ Att´ unk a mag ´es a felhaszn´al´ oi fel¨ ulet, valamint az eg´esz program ´es az adat´ allom´anyok kapcsolat´anak elemz´es´ere. Tanulm´ anyozzuk a mem´oriakezel´est, tov´abb´ a a m´as programokkal val´ o inform´ aci´ ocser´et.
2.4. K¨ uls˝ o kapcsolatok
49
2.4.1. Be- ´ es kimenet Itt el˝osz¨or a mag ´es a felhaszn´al´ oi fel¨ ulet k¨ oz¨otti kapcsolattal foglalkozunk, k´es˝obb fogunk a´tt´erni a program ´es az adat´allom´anyok kapcsolat´ara. • A mag ´ es a felhaszn´ al´ oi fel¨ ulet Sz´ amos lehet˝os´eg¨ unk van arra, hogy az eredm´enyeket k¨ ul¨ onb¨ oz˝o form´ akban kapjuk meg. Az erre a c´elra haszn´ alhat´ o al´ abbi f¨ uggv´enyek a sz´amok alakj´ at m´odos´ıtj´ ak; hogy mik´ent, azt a 3.1.3. pontban r´eszletesebben is megt´argyaljuk.
/&8 B*8 -& &8 3 8
'8 ' 8 8
A kifejez´esek k¨ ul¨ onb¨ oz˝o alak´ u ki´ırat´ as´at a k¨ ovetkez˝o f¨ uggv´enyek szab´alyozz´ ak:
88 G8 %8 @8 '
' 8 0 8 C 048
A f¨ uggv´enyek m´asik csoportja azt teszi lehet˝ov´e, hogy az eredm´enyek az ig´enyeknek megfelel˝o alakban jelenjenek meg.
8 8 % .B 2 48 ;8 C
&B &8 * * * 08
Ha az angol nyelv helyett valamelyik nagyobb eur´ opai nyelv haszn´ alat´ ara akarunk a´tt´erni, akkor el˝ osz¨or is be kell a´ll´ıtanunk a megfelel˝ o rendszerv´ altoz´o ´ert´ek´et: 2! 6>!(86 French
Ha ezut´ an beh´ıvjuk a :*>.&&> programcsomagot, akkor altoz´o ´erdemes megtekinten¨ unk a 7. * ´es a 7 &@ rendszerv´
50
2. Ismerked´es a Mathematica programmal
´ert´ek´et. A programcsomag 0 f¨ uggv´enye pedig megadja a karaktert´ abl´ azatot. Kifejez´esek ´es f¨ uz´erek alakja vizsg´alhat´ o az al´abbi f¨ uggv´enyekkel:
)&9 . 9 .C *9 & &B &2 9
&'* 4.& 49 : *9 7. *
A f¨ uggv´enyek k¨ ovetkez˝o oszt´alya kifejez´esek ´es f¨ uz´erek k¨oz¨otti a´talak´ıt´ asokat v´egez:
8 &) &%* &5 &.& &6 &6+ *
&0 0 0-4 ** 0G-4 ** 0.C * 0 & 0: *
N´eh´ any f¨ uggv´eny arra a c´elra szolg´al, hogy az eredm´enyt m´as program r´eszek´ent tudjuk felhaszn´ alni:
8 8 8
0S8
N´eh´ any f¨ uggv´eny feladata az, hogy seg´ıtse a program ´es a felhaszn´al´ o k¨ oz¨otti interakt´ıv kommunik´ aci´ ot. Egy p´ arbesz´ed (dial´ ogus) keret´eben p´eld´ aul besz´elgethet¨ unk a programmal, mik¨ ozben sz´amol. A p´arbesz´ed v´egezt´evel assal t´erhet¨ unk vissza: a 6 utas´ıt´
)& )&% %
% & 6
K¨ uls˝ o parancsok v´egrehajt´ as´ahoz haszn´ alhat´ oa f¨ uggv´eny.
jel ´es a 60 &
´ • Allom´ anyokkal val´ o kapcsolat M´ as programokhoz hasonl´ oan a Mathematic´ a ban is gyakori, hogy az adatokat a´llom´anyb´ ol olvassuk be, vagy az eredm´enyeket ´allom´anyokba ´ırjuk ki. Ennek a t´enynek itt azonban van n´eh´ any specialit´asa is. Egyr´eszt el˝ofordul az is, hogy kifejez´eseket ´ırunk a´llom´anyba vagy olvasunk be a´llo-
2.4. K¨ uls˝ o kapcsolatok
51
m´anyb´ ol. M´ asr´eszt amennyiben a merev lemezen rendelkez´es¨ unkre a´ll´ o hely nem korl´ atlan, ´erdemes is az ´allom´anyba ´ır´ asra ´es az onnan val´ o olvas´asra berendezkedn¨ unk, mert az ilyenkor haszn´ alt sz¨oveges ´allom´anyok nagys´ agu rendileg kisebbek, mint a Mathematica ´altal l´etrehozott, kiterjeszt´es˝ jegyzetf¨ uzetek. Ugyancsak az ´allom´anyok haszn´ alat´ ara szor´ıthat benn¨ unket az, ha k¨ otegelt (batch) u ¨zemm´odban akarunk dolgozni, esetleg egy nagyobb g´epen: ilyenkor ugyanis a program fut´ asa k¨ozben m´as feladatot is v´egezhet¨ unk. (Erre m´eg akkor is sz¨ uks´eg¨ unk lehet, ha g´ep¨ unk oper´ aci´ os rendszere l´ atsz´olag vagy val´ os´agosan t´ amogatja a p´ arhuzamos feldolgoz´ast.) ´ Allom´ anykezel´esre haszn´alhat´ o bels˝o f¨ uggv´enyek:
* 8 8.* 1 % % & @/ @6 @0 @A @ ' '/
6 6.* + '* '* * &0 A A & 7@
Szeretn´enk megtudni p´eld´ aul azt, hogy mi van a 4 ´allom´anyban.
NSD<S !/S1$,= 1-x^3
Ha az ´allom´any tartalm´ at kifejez´esk´ent szeretn´enk haszn´ alni, akkor a
1 utas´ıt´ ast vagy annak r¨ ovid alakj´ at (==) haszn´ alhatjuk. 7!6 NSD<S !/S1$,=6 3 1 - x >($L
2 (1 - x) (1 + x + x )
52
2. Ismerked´es a Mathematica programmal
T´enyleg siker¨ ult kifejez´esk´ent beolvasni. Az el˝ obbivel egyen´ert´ek˝ u az al´ abbi megold´ as is: && NSD<S !/S1$,= 3 1 - x
Az eredm´enyek ´ allom´anyba val´ o ki´ır´ as´ara val´o a
' utas´ıt´ as ´es r¨ovid alakja (KK). >($ MMC!
C! (1 + x)*(1 - x + x^2)
Ha az u ´jabb kifejez´est az el˝oz˝o ´allom´ anyhoz hozz´ a akarjuk f˝ uzni, akkor ast vagy r¨ ovid alakj´ at (KKK) haszn´ alhatjuk: a '/ utas´ıt´ #K11! >($ F 6C!6 >($3 F MMM C!
C! (1 + x)*(1 - x + x^2) (-1 + x)*(1 + x) (-1 + x)*(1 + x)*(1 + x^2)
Tegy¨ uk fel, hogy adott a 4 4 ´allom´any; tekints¨ uk meg a tartalm´ at:
= 10 20 30 40 50 60
Ha ezeket a sz´amokat egy m´atrixba szeretn´enk betenni olyan m´ odon, hogy minden sor egy list´ aba ker¨ ulj¨ on, akkor a k¨ ovetkez˝ok´eppen j´ arhatunk el: $ 9! 26 =6 5
Ha viszont h´arom-h´ arom sz´amb´ ol szeretn´enk egy-egy list´at l´etrehozni, akkor ezt tehetj¨ uk: $ 9! 26 =6 5
2.4. K¨ uls˝ o kapcsolatok
53
´ ha csak egyetlen list´at akarunk? Es 9! 26 =6 5
Ha nem tudjuk, vagy nem akarjuk kihaszn´ alni, hogy egy oszlopban h´ any sz´am van, akkor a 6 .** opci´ot 0 -ra a´ll´ıtjuk: / 9! 26 =6 5
Bonyolultabb a´llom´anyokn´ al megnyitjuk olvas´ asra az adatokat tartalmaz´o ´ allom´anyt, ez´altal l´etrehozunk egy befel´e ir´ anyul´ o ´aramot (% J ), majd soronk´ent beolvassuk az adatokat:
Ezek ut´ an soronk´ent olvashatjuk be a sz´ amokat: $ 9!
Az adatok beolvas´ as´anak befejez´ese ut´an lez´arjuk az a´ramot: *$!
A sorokb´ ol o¨ssze´all´ıthatjuk a m´ atrixot: $$/ $ $ $ {{10, 20}, {30, 40}, {50, 60}}
N´ezz¨ unk p´eld´ at egy sz¨oveget, kifejez´est ´es adatot egyar´ant tartalmaz´ o ´allom´ any kezel´es´ere:
1$ = Ez itt egy polinom: 1 - x^3 Ez pedig egy m´ atrix: 1 2 3 4 5 6 7 8
54
2. Ismerked´es a Mathematica programmal
Nyissuk meg az ´allom´anyt:
Beolvassuk az els˝o feliratot — sz¨ovegk´ent: C$:! 9!
A k¨ ovetkez˝o sort kifejez´esk´ent akarjuk haszn´ alni: 1$ 9!
A soremel´est jelz˝o karaktert˝ ol meg kell szabadulnunk: 9!
J¨ ohet a m´asodik sz¨ovegr´eszlet: C$:! 9!
Mivel adatokb´ ol a´ll´ o t´ abl´ azat k¨ovetkezik, haszn´ alhatjuk a 6.* utas´ıt´ ast: / 9! 2
El˝ ofordul, hogy az a´llom´anyban (amelynek neve el´e sz¨ uks´eg eset´en el´er´esi utat is ´ırunk) az adatok vessz˝ ovel vannak elv´ alasztva egym´ast´ol:
:!C$= 1, 2, 3 4, 5, 6
Ha tudjuk, hogy h´ any oszlopban helyezkednek el az adatok, akkor ´ıgy j´ arhatunk el: #$'1> 9! 26:!C$=6 5
(A 6.* f¨ uggv´eny ugyanis sz´ amb´ ol ´es vessz˝ob˝ ol a´ll´ o p´ arok list´aj´ at ´all´ıtja el˝ o, ebb˝ ol a list´ab´ ol 8 * T olyat k´esz´ıt, amely csak a p´arok els˝o uggv´eny elem´et tartalmazza, v´eg¨ ul az ´ıgy kapott eredm´enyt a ' f¨ h´ arom hossz´ us´ ag´ u r´eszlist´akra bontja.) Ha nem ismerj¨ uk az oszlopok sz´am´at, akkor egy (lassabb, de m˝ uk¨ od˝ o) megold´asnak ez t˝ unhet:
2.4. K¨ uls˝ o kapcsolatok
55
9! 26:!C$=6 .$ 9!($ 2 FM G! .$ !1$ FM 6 6 6 6 {{1, 2, 3}, {4, 5, 6}}
Kider¨ ul azonban, hogy ez az eredm´eny nem az, aminek l´ atszik: >>$ L List[List["1", "2", "3"], List["4", "5", "6"]]
A karaktereket teh´at m´eg sz´amokk´a kell a´talak´ıtanunk. (A 2. szinten hat a 0-4 ** f¨uggv´eny, erre utal al´abb a 2 f¨uggv´eny harmadik argumentuma.) '1G$H1!$ 9! 26:!C$=6 .$ 9!($ 2 FM G! .$ !1$ FM 6 6 6 6 {{1, 2, 3}, {4, 5, 6}}
Tiszta f¨ uggv´enyek haszn´ alat´ aval a sebess´eg gyors´ıthat´ o: '1G$H1!$T$66 I 66J 9! 26:!C$=6 {{1, 2, 3}, {4, 5, 6}}
Ha ez kicsit gyors a tisztelt Olvas´onak, akkor a k¨ ovetkez˝oket ´erdemes v´egigcsin´alnia: 9! 26:!C$=6 {1, 2, 3, 4, 5, 6} >>$ L List["1, 2, 3", "4, 5, 6"] T$66 LL 66 {1, 2, 34, 5, 6} >>$ L "{1, 2, 34, 5, 6}"
Ezek ut´ an ´erthet˝o, mi´ert m˝ uk¨ odik a fent megadott megold´ as. Egy a´llom´anyba szeretn´enk ki´ırni az al´abbi m´ atrixot: E E E 3E 0E 4E
Nem ´all rendelkez´es¨ unkre k´eszen a 6.* utas´ıt´ ashoz hasonl´ o ki´ır´ o utas´ıt´ as erre a c´elra, ez´ert el˝osz¨or is megnyitjuk ´ır´ asra a c´el´allom´anyt, ez´altal l´etrehozunk egy kifel´e ir´ anyul´ o ´aramot (@ ), majd a m´atrixot egyetlen olyan f¨ uz´err´e alak´ıtjuk, amelyben a sz´ amok sz´ok¨ ozzel,
56
2. Ismerked´es a Mathematica programmal
soronk´ent pedig soremel´esjellel vannak elv´ alasztva. L´assuk ezt most a fenti egyszer˝ u p´eld´ ara alkalmazva: / 1!.!6 =6 OutputStream[matrix.txt, 49] G$G<!>$ G<!1( FM E 10 20 30 40 50 60 >>$ L "10 20 30\n40 50 60"
Most ezt a f¨ uz´ert elk¨ uldj¨ uk a kifel´e ir´ anyul´ o ´aramba: .!/
Ellen˝ orz´es:
= 10 20 30 40 50 60
Rendben van, akkor z´ arunk: *$!/ matrix.txt
Most megadunk egy hasznos f¨ uggv´enyt, amelynek k´et k¨otelez˝o argumentuma egy a´llom´anyn´ev ´es egy m´atrix. A harmadik argumentum opcion´ alis: az oszlopokat elv´alaszt´o karaktert — amelynek alap´ertelmez´ese a tabul´atorjel (U)— specifik´alja: U!'$ ,!:O O2 !:C$ON6S6 N
.8I (.!
Alkalmazzuk most az u ´ j f¨ uggv´enyt: U!'6<=$6 tabula.tor
2.4. K¨ uls˝ o kapcsolatok
57
<=$ 10 20 30 40 50 60
Most pedig vessz˝okkel fogjuk elv´ alasztani az elemeket: U!'6:!C$(=/!6 6 6 vesszocs.ke
:!C$(=/! 10, 20, 30 40, 50, 60
A fenti p´eld´ ak n´emelyike egyszer˝ ubben oldhat´ o meg a
f¨ uggv´eny haszn´ alat´ aval. uggv´enyeket A :*>B 8*> programcsomagban olyan f¨ tal´ alunk, amelyek a bin´ aris ´ allom´ anyokkal v´egzett munk´at k¨ onny´ıtik meg, b´ ar ezek tulajdonk´eppen csak a megfelel˝o bels˝o f¨ uggv´enyek alkalmas opciatott v´ altozatai: ´oval (p´eld´ aul '&A JK %) ell´
@/B @6B @A B 6B
6.*B 0B* A B
Mindeddig adatok, kifejez´esek ´es f¨ uz´erek ´allom´anyba val´ o ´ır´ as´ar´ ol ´es onnan val´ o beolvas´as´ar´ ol volt sz´o. Hang ´es k´ep alkalmasan v´ alasztott kimeassal. netre k¨ uldhet˝ o a )* bels˝o utas´ıt´ H´ aromdimenzi´ os ´ abr´ ak m´as programok sz´am´ara haszn´ alhat´ o form´ aj´ at kaphatjuk meg a´llom´anyban a 1 *>0 > programcsomag
0 f¨ uggv´eny´enek felhaszn´ al´ as´aval. A :*>)S8> programcsomag
A )S8 f¨ uggv´enye pedig az AutoCAD program sz´ am´ara feldolgozhat´ o form´ aban k´esz´ıti el az ´allom´ anyokat.
58
2. Ismerked´es a Mathematica programmal
2.4.2. A program k¨ ornyezete A g´epen tal´ alhat´ o a´llom´anyok a Mathematica utas´ıt´ asaival is vizsg´alhat´ ok ´es m´odos´ıthat´ ok:
)8 - -@8 8B
8) 83* 80 68
A k¨ onyvt´ arakra vonatkoz´ o hasonl´ o jelleg˝ u utas´ıt´ asok:
) ) )) ) ) G)
' ) 6) 6*) ) 7'
Mint m´ ar eml´ıtett¨ uk, a Mathematica interakt´ıv program, az utas´ıt´ asokat soronk´ent ´ertelmezi. Minden alkalomkor egy k¨ uls˝ o ciklus indul el, amely v´ arja a bemenetet, feldolgozza azt, megadja az eredm´enyt, majd u ´jra v´ ar a bemenetre. Ehhez a legk¨ uls˝ o ciklushoz tartozik n´eh´ any f¨ uggv´eny ´es n´eh´ any rendszerv´ altoz´ o , amelyekkel (legal´ abb v´ azlatosan) ´erdemes megismerkedn¨ unk. Az itt elmondottak f¨ ugghetnek a felhaszn´ al´ oi fel¨ ulett˝ ol ´es az oper´aci´os rendszert˝ol. A legt¨obb rendszerv´ altoz´o k´et oszt´aly valamelyik´ebe sorolhat´o. Az egyik oszt´aly tagjai egy-egy fontos adatot t´ arolnak:
7 . 7 ) 7))* 72 %) 72 3 72 0
7@ &* 76*3 7**%) 7* 7< * 7< *3
Ilyen p´eld´ aul a haszn´ alt Mathematica program v´ altozat´ anak sz´am´at megad´o param´eter, amelynek ´ert´eke az egyik ´altalunk haszn´ alt g´epen a k¨ ovetkez˝o: V!$ Windows 2.2 (May 3, 1994)
2.4. K¨ uls˝ o kapcsolatok
59
A m´asik oszt´aly tagjai pedig arra adnak v´ alaszt, hogy egy adott szolg´ altat´ as rendelkez´es¨ unkre a´ll-e:
7B % 7B @ 7) 7.
7. 73 * 7'
N´ezz¨ uk meg ezek k¨ oz¨ ul is kett˝ o ´ert´ek´et: + 111$! 2/11$! {False, True}
A kapott eredm´eny t¨ ukr¨ ozi az adott oper´ aci´ os rendszer lehet˝os´egeit. Az al´ abbi f¨ uggv´enyek az oper´ aci´ os rendszerrel val´ o kapcsolattart´ as eszk¨ ozei ´es hibakeres´esre haszn´alhat´ ok:
-+ % '* 6 60 &
0 0 )& 0 ' 0
Az -+ f¨ uggv´eny p´eld´ aul az oper´ aci´ os rendszer valamely v´ altoz´o j´ anak ´ert´ek´et adja meg. • Mem´ oriakezel´ es K¨ ul¨ on¨ osen a matematikai programcsomagok igazi felhaszn´al´ asi ter¨ ulet´en, a szimbolikus sz´am´ıt´ asokn´ al fordulhat el˝ o, hogy egy sz´amol´as nagyon sok id˝ ot vesz ig´enybe, vagy nagyon sok mem´ ori´ at haszn´ al. Az el˝ obbin (hacsak p´eld´ aul nem t´ızezer ´ev a nagyon sok” becs¨ ult ´ert´eke) kell˝o t¨ urelemmel ” uggv´eny, valamint a :*> C0> prog(´es a 0& bels˝o f¨ uggv´eny´enek seg´ıts´eg´evel) u ´rr´ a lehet¨ unk, az ut´ obbi ramcsomag C0 f¨ azonban kem´enyebb korl´ atnak t˝ unik. Ennek a korl´ atnak a laz´ıt´ as´ahoz szeretn´enk most tan´ acsokat adni az idetartoz´ o f¨ uggv´enyek k¨ oz¨ ul a fontosabbak ismertet´es´evel.
B . 242 :*
2 * 2 %:*
60
2. Ismerked´es a Mathematica programmal
A :*>2 * +> programcsomagb´ ol pedig az al´ abbi f¨ uggv´enyeket haszn´alhatjuk:
@2 * + @2 * +
72 %
Megtudhatjuk, hogy mennyi mem´ ori´ at haszn´ al jelenleg a rendszer: '! $,BR! 574520
Deklar´ alunk egy hatalmas m´ atrixot, ´es tapasztaljuk, hogy megn˝ ott a lek¨ ot¨ ott mem´oria. Az al´ abbi p´eld´ aban kiv´etelesen le´ırtuk a nem beg´epelend˝o %F jelsorozatot is: BN
9!EEEE '! $,BR! 771656
A mem´ori´ anak a lista a´ltal elfoglalt r´esze f¨olszabad´ıthat´ o, de csak u ´gy, ha aban: t¨ or¨ olj¨ uk a nagy m´ atrixot, amely @F-k´ent szerepel a mem´ori´ R1$!( =
Javasoljuk az Olvas´ onak, hogy ellen˝orizze, vajon a felhaszn´ alt mem´oriater¨ ulet nagys´aga ezut´an vissza´allt-e az eredetihez k¨ozeli, kisebb ´ert´ekre. Megtudhatjuk azt is, hogy a jelenlegi alkalommal mennyi volt a legnagyobb lefoglalt mem´oriater¨ ulet: ''! $,R! 1000616
El˝ o´ırhatjuk azt is, hogy egy kifejez´est csak akkor ´ert´ekeljen ki a program, ha ehhez legfeljebb adott mennyis´eggel n¨ovekedik a lek¨ot¨ott mem´oriater¨ ulet: 2 * HI*" " I. Azt, hogy egy kifejez´es t´arol´as´ahoz h´ any b´ ajt sz¨ uks´eges, a B f¨ uggv´eny adja meg, egy kifejez´es faalakj´ aban pedig a levelek (azaz az atouggv´eny szolg´altatja. mok) sz´am´at a . f¨ uks´eges b´a jtok maxim´ alis sz´am´at Megjegyzend˝ o, hogy a B a sz¨ adja meg. Ha viszont lehets´eges, a Mathematica igyekszik a t¨obbsz¨ or el˝ofordul´ o azonos r´eszeket egyszer t´arolni. Erre azonban a seg´ıts´eg´evel r´ a is k´enyszer´ıthetj¨ uk.
2.4. K¨ uls˝ o kapcsolatok
61
A bels˝o f¨ uggv´eny automatikus ind´ıt´ as´at — amire kis mem´ori´ a j´ u g´epn´el lehet sz¨ uks´eg¨ unk — a :*>2 * +> programcsomag seg´ıts´eg´evel v´egezhetj¨ uk: &&R!)'! $,*$!:!) '! $,B(! ! 100000
Ezut´ an a f¨ uggv´eny azonnal elindul, ha a mem´ ori´ aban elfoglalt hely 100 000 b´ ajttal megn¨ ovekszik. K´ıs´erletez´eshez vegy¨ unk kisebb ´ert´eket: R1$!('! $,B(! ! '! $,B(! ! EEEE G<!G$E 2!8L MemoryConserve::start: Running Share[ ] to conserve memory. MemoryConserve::end: Finished running Share[ ]; 141064 bytes of memory freed. MemoryConserve::start: Running Share[ ] to conserve memory. MemoryConserve::end: Finished running Share[ ]; 41040 bytes of memory freed. 2048
Mivel egy hatalmas t´abl´ azatot hoztunk l´etre, a f¨ uggv´eny m˝ uk¨ od´esbe l´ep ´es a mem´oria egy jelent˝ os r´esz´et felszabad´ıtja. Az automatikus mem´ oriatakar´ekoskod´as le´all´ıthat´ o: --'! $,*$!:!
´es u ´jraind´ıthat´ o: '! $,*$!:!
Mem´oriakezel´eshez haszn´alhat´ o a programcsomag is, amelyet a 2.2. szakaszban eml´ıtett¨ unk meg. V´eg¨ ul megmutatjuk, hogy a Mathematica haszn´ alat´ an´ al is felmer¨ ul˝ o azon ig´eny, amely szerint szeretn´enk a rendszer adott alkalomkor fenn´ all´ o ´allapot´ at r¨ ogz´ıteni ´es egy k´es˝obbi id˝ opontban felhaszn´ alni, hogyan el´eg´ıthet˝ o ki. )?+? hat´as´ara minden” ki´ır´odik egy a´llom´anyba. A ) f¨uggv´eny megh´ıv´asakor nyitva” l´ev˝o ´allom´anyokhoz tartoz´o mutat´ok
62
2. Ismerked´es a Mathematica programmal
nem ment˝odnek ki, ugyanis arra nincs garancia, hogy a legk¨ ozelebbi felhaszn´ al´ askor azok az ´allom´anyok l´etezzenek, s ´ıgy a mutat´ oknak ´ertelm¨ uk legyen. Az u ´jrafelhaszn´ al´ as egy lehets´eges m´odja: + 16$ ,!:6 2! &&=
Mivel a ) f¨ uggv´eny egy sokmegab´ajtos ´allom´anyt hoz l´etre, ´altal´ aban c´elszer˝ ubb a
+ f¨ uggv´eny alkalmaz´asa azokra az objektumokra, amelyekre t´enyleg sz¨ uks´eg¨ unk lehet a k´es˝obbiekben, ez ugyanis egy kicsi, sz¨ oveges ´allom´anyt hoz l´etre: -O N :!6- !6 - *!- &&- 1 x^3
A p´elda mutatja, hogy a t¨ orl´es ellen´ere az ´allom´anyb´ ol vissza´all´ıthat´ o f defin´ıci´ oja.
2.4.3. Kapcsolat m´ as nyelvekkel ´ es programokkal K´erhetj¨ uk, hogy eredm´eny¨ unk olyan alakban jelenj´ek meg, amit azut´an f¨ ol tudunk haszn´ alni egy C programban, egy Fortran programban, vagy pedig egy TEX ´ allom´anyban. Ehhez az al´ abbi f¨ uggv´enyek haszn´ alhat´ ok:
8 8 8
0S8
A Mathematica ny´ılt rendszer. A
2 . elnevez´es˝ u program teszi lehet˝ov´e k¨ozvetlen kapcsol´ od´ as´at m´as felhaszn´ al´ oi programokhoz ´es programnyelvekhez. alat´ at r´eszletesen el lehet saj´at´ıtani a 2 A 2 . haszn´ on tal´ alhat´ o oktat´ oprogramb´ ol (0206-693, / 2 . 0 ). Itt
2.4. K¨ uls˝ o kapcsolatok
63
el˝osz¨or megmutatjuk, hogy mik´ent lehet a Mathematic´ a hoz C nyelven kieg´esz´ıt˝ o programot ´ırni, illetve a Mathematica utas´ıt´ asait f¨olhaszn´ alni egy C nyelv˝ u program r´eszek´ent. • F¨ uggv´ eny ´ır´ asa a Mathematic´ a hoz C nyelven A k¨ ovetkez˝o elj´ ar´ asokat fogjuk alkalmazni:
%* . @H
:* :
Az al´ abbiakban felhaszn´ aljuk a 2 . p´eldaprogramj´ at. Az illeszaci´ os t´eshez sz¨ uks´eg van a 2 . programjaira. A p´elda Windows oper´ rendszerre ´es a Borland c´eg C++ ford´ıt´ o j´ anak 3.1. v´ altozat´ ara k´esz¨ ult. A futtat´ ashoz m´asoljuk be az MLINK16.DLL programot a Windows D0-2 k¨ onyvt´ ar´ aba. A Mathematica ´es a C nyelv k¨oz¨ott a kapcsolatot a sablon (template) hozza l´etre. Ez egy sz¨oveges ´allom´ any (most: /))0A@ 02), amelyet tetsz˝oleges sz¨ovegszerkeszt˝ovel meg´ırhatunk. Tartalma a p´eld´ ankban az al´ abbi: :Begin: :Function: addtwo :Pattern: AddTwo[i_Integer, j_Integer] :Arguments: {i, j} :ArgumentTypes:{Integer, Integer} :ReturnType: Integer :End:
Minden sor kett˝ osponttal kezd˝ odik. A B& ´es az - alapsz´o jelent´earozza meg a f¨ uggv´eny nev´et a C se nyilv´ anval´ o, a 8 alapsz´o hat´ programban, a ' alapsz´o pedig a Mathematicabeli illeszked´est, az / &* alapsz´o a C-beli f¨uggv´eny param´etereit, az / &0* alapsz´o jelenti a C f¨ uggv´eny bemen˝ o param´etereinek t´ıpus´ at Mathematiuggv´eny visszat´er˝o ´ert´ek´enek t´ıpusa. Az c´ a ban, m´ıg 6 0 a C-beli f¨ ´allom´ any kiterjeszt´ese: A C nyelv˝ u programot a szok´ asos m´odon kell elk´esz´ıteni. A f˝ oprogram szerkezet´et a haszn´alt oper´ aci´ os rendszer hat´ arozza meg, ez eset¨ unkben a Windows rendszer. A f˝ oprogramot tartalmaz´o ´allom´any neve: /))0A@
#include "mathlink.h" int addtwo(int i, int j) {return i+j;}
64
2. Ismerked´es a Mathematica programmal
int PASCAL WinMain(HANDLE hinstCurrent, HANDLE hinstPrevious, LPSTR lpszCmdLine, int nCmdShow) {char buff[512]; char FAR *argv[ 32]; int argc; if(!MLInitializeIcon(hinstCurrent, nCmdShow)) return 1; argc = MLStringToArgv(lpszCmdLine, buff, argv, 32); return MLMain(argc, argv);}
A 2 . lemez´en csak az MLINK16.DLL k¨onyvt´ ar tal´ alhat´ o. Ebb˝ ol l´etre kell hozni az MLINK16.LIB a´llom´anyt a BorlandC programhoz tartoz´o IMPLIB.EXE seg´edprogrammal. Az ´ıgy l´etrehozott MLINK16.LIB ´allom´ any m´ ar o¨sszeszerkeszthet˝o a C nyelv˝ u forr´ asprogrammal. A l´etrehozott sablonb´ ol C program k´esz´ıthet˝ o a 2 . -hez adott MPREP.EXE programmal. Ez a sablont param´eterk´ent v´ arja, az eredm´enyt pedig a k´eperny˝ ore ´ırja, ´ıgy a´t kell azt ir´ any´ıtani: '#9H# K++G.=G' MM K++G.G'=*
A BorlandC ford´ıt´ o j´ aval o¨sszeszerkesztj¨ uk (linkelj¨ uk) a f¨ uggv´enyt tartalmaz´o (ADDTWO.C) C programot, a sablont tartalmaz´ o (ADDTWOTM.C) onyvt´ arat. A szerkeszt´es eredC programot ´es a 2 . et tartalmaz´o k¨ m´enye az ADDTWO.EXE program. A f¨ uggv´enyt ´ıgy ind´ıtjuk el Mathematic´ a b´ ol: / B6 NSU 8S 8/S 1!S
U$=!!6
LinkObject[d:\wnmath22\mathlink\samples\addtwo.exe, 3, 2]
Ezut´ an a Mathematic´ a ban megszokott m´odon lehet haszn´alni: K
GU$
5
V´eg¨ ul be kell fejezni a haszn´ alatot: R/ Unlink[LinkObject[ d:\wnmath22\mathlink\samples\addtwo.exe, 2, 2]]
2.4. K¨ uls˝ o kapcsolatok
65
• A Mathematica f¨ uggv´ enyeinek megh´ıv´ asa C programb´ ol Ha a fentiek alapj´an m´ ar elk´esz´ıtett¨ uk az MLINK16.LIB k¨ onyvt´ arat, akkor m´ar csak a C programot kell meg´ırni. Tegy¨ uk fel, hogy az ADDINT.C forr´ asnyelvi ´allom´anyba az al´ abbiakat ´ırtuk: #include <stdio.h> #include <stdlib.h> #include "mathlink.h" extern void init_and_openlink P((int argc, char* argv[])); MLEnvironment ep = (MLEnvironment) 0; MLINK lp = (MLINK) 0; int main(int argc, char *argv[])) {int pkt, i, j, sum; printf("Opening Mathematica Kernel. . . \n\n"); init_and_openlink(argc, argv); printf("Two integers:\n\t"); scanf("%d %d", &i, &j); MLPutFunction(lp, "EvaluatePacket", 1L); MLPutFunction(lp, "Plus", 2L); MLPutInteger(lp, i); MLPutInteger(lp, j); MLEndPacket(lp); while((pkt=MLNextPacket(lp), pkt) && pkt != RETURNPKT) MLNewPacket(lp); MLGetInteger(lp, &sum); printf("sum=%d\n", sum); MLPutFunction(lp, "Exit", 0); return 0;} void deinit (void) {if (ep) MLDeinitialize(ep);} void closelink(void) {if (lp) MLClose(lp);} void init_and_openlink(int argc, char *argv[]) {ep=MLInitialize((MLParametersPointer)0); if(ep==(MLEnvironment)0) exit(1); atexit(closelink); lp = MLOpen(argc, argv);
66
2. Ismerked´es a Mathematica programmal if(lp==(MLINK)0) exit(1); atexit(closelink);}
A programot az o¨sszeszerkeszt´es (ez el˝oa´ll´ıtja az ADDINT.EXE programot az ADDINT.C ´es a MLINK16.LIB programb´ ol) ut´ an a Windowsb´ ol ind´ıthatjuk el F2B5W5K'H 6+NS.5'KG;S'KG;F'KG;2B5W6
param´eterrel. A Mathematic´ a b´ ol ind´ıt´ as el˝ott sz´alljunk ki, mert ha a mag m´ar akt´ıv, akkor programunk nem tudja m´eg egyszer elind´ıtani. A fut´ ask´ep: 1! '8! ( W!!=== GU$ !! 0
A Mathematic´ a ban Fortran ´es Visual Basic programok hasonl´oan haszn´ alhat´ ok, mint C nyelv˝ u programok. Mivel bizonyos felhaszn´ al´ oi programoknak olyan programnyelv¨ uk van, uggv´enyeit (az Accesshez amely k¨ozvetlen¨ ul k´epes megh´ıvni a 2 . f¨ ´es az Excelhez a Visual Basic, a Wordh¨oz a WordBasic), ez´ert ezek k¨ ul¨ on¨ osen k¨onnyen illeszthet˝ok. N´eh´ any n´epszer˝ u felhaszn´ al´ oi programra szint´en k´eszen van az illeszt´es; ezek p´eld´ aul LabVIEW, Spyglass Transform, MATLAB, Xmath, IRIS Explorer, AVS. A Mathematic´ a t az Excel t´abl´ azatkezel˝ovel egy¨ utt a 2 . -4 program seg´ıts´eg´evel tudjuk haszn´alni. Ennek az lehet az ´ertelme, hogy a t´ abl´ azatkezel˝ovel esetleg ´attekinthet˝ obb form´ aban tudjuk begy˝ ujteni az adatokat, mintha egy sz¨ oveges ´allom´anyba ´ırn´ ank azokat. ´ V´eg¨ ul megmel´ıtj¨ uk, hogy az AMLAZKA (amit l´ atsz, azt kapod, WYSIWYG) t´ıpus´ u bevitelt ´es TEX, LaTEX, Lotus WordPro vagy EPS (-J *'* ) alak´u kivitelt seg´ıti a 2 - ´es a 2 '@60 program, a K-TALK Communications, Inc. term´eke.
2.5. Tov´ abbi inform´ aci´ oforr´ asok Az ismertetetteken k´ıv¨ ul sz´amos tov´abbi lehet˝ os´eg van inform´ aci´ oszerz´esre. A teljess´eg ig´enye n´elk¨ ul szeretn´enk seg´ıteni az Olvas´onak abban, hogy hogyan induljon el ebbe az ir´ anyba.
2.5. Tov´abbi inform´ aci´ oforr´ asok
67
2.5.1. MathSource A Mathematica programmal kapcsolatos legteljesebb ingyenesen hozz´af´erhet˝ o elektronikus adatb´ azis a MathSource. Itt tal´ alhatunk t¨ obbek k¨ oz¨ott programcsomagokat, a Mathematic´ a r´ ol sz´ol´ o ´es az azt felhaszn´al´ o publik´ aci´okat ´es ilyenek list´ait. Az itt szerepl˝ o t´etelekhez egy-egy azonos´ıt´ o tartozik. Ha itt megtal´ alhat´ o anyagra hivatkozunk, akkor ezt az azonos´ıt´ ot is meg fogjuk adni, ahogy eddig is megadtuk. A vil´ agh´ al´ ozaton (World Wide Web) c´ıme a k¨ovetkez˝o:
CCC C 2 Ha az ftp programmal a´llom´anyokat szeretn´enk onnan a´tm´asolni a saj´at g´ep¨ unkre, akkor a
* C g´epre jelentkez¨ unk be anonymous jelsz´oval. Ugyanezt a c´ımet haszn´alhatjuk a gopher programmal ´es elektronikus levelez´es c´elj´ ara is. A MathSource ennek a szakasznak tov´abbi r´esz´eben ismertetett dokumentumok mindegyik´er˝ol b˝ os´eges inform´ aci´ ot tartalmaz (esetenk´ent a teljes dokumentumot). A MathSource anyag´ at id˝ or˝ ol-id˝ ore CD lemezen is megjelentetik.
2.5.2. K¨ onyvek A program referenciak¨ onyveit [3, 89] m´ar eddig is t¨ obbsz¨ or megeml´ıtett¨ uk. A Mathematic´ a r´ ol sz´amos bevezet˝o k¨ onyv jelent meg, ´es ugyancsak sok (¨ osszesen mintegy 100) m˝ u sz¨ uletett egyes (matematik´an bel¨ uli ´es k´ıv¨ uli) alkalmaz´ asokr´ol — els˝osorban angolul, de ma m´ ar n´emet¨ ul, franci´ aul ´es jap´ anul is. K¨ onyv¨ unk irodalomjegyz´ek´eben ezek k¨ oz¨ ul n´eh´ anyat megeml´ıt¨ unk, a MathSource-on pedig a teljes aktu´ alis lista megtekinthet˝o.
2.5.3. Foly´ oiratok A Mathematica felhaszn´ al´ oi k¨ oz¨otti inform´ aci´ ocser´et t¨obb foly´ oirat is szolg´alja. A Mathematica Journal negyed´evenk´ent jelenik meg. Tartalmaz kutat´ asi eredm´enyeket, gyakorlati alkalmaz´asokat, ´ır u ´j term´ekekr˝ol, k¨ onyvekr˝ ol.
68
2. Ismerked´es a Mathematica programmal
Lemezmell´eklet´en a sz´amhoz csatlakoz´o jegyzetf¨ uzetek vannak. A Mathematica in Education and Research szint´en negyed´evenk´ent megjelen˝ o foly´ oirat a Mathematica els˝o v´ altozat´ anak kibocs´ at´asakor indult. Kezdetben csak az oktat´assal (matematika, term´eszettudom´anyok, m˝ uszaki tudom´ anyok) foglalkozott. A kutat´ as ´es ezzel egy¨ utt a Research sz´o u ´jonnan ker¨ ult a c´ım´ebe. A Mathematica World hajl´ekony lemezen havonta megjelen˝o foly´ oirat. Jegyzetf¨ uzeteket, interakt´ıv tananyagokat tartalmaz a magr´ ol, a felhaszn´ al´ oi fel¨ uletr˝ ol ´es a programcsomagokr´ol. Az elektronikus levelez´esi csoportokban felmer¨ ult probl´em´ak megold´asait is k¨ozli. A negyed´evenk´ent megjelen˝o MathUser foly´ oiratot a Wolfram Research Institute k¨ uldi az ´erdekl˝od˝ o felhaszn´ al´ onak, ha k¨ uld egy subscribe mathu” ser” tartalm´ u elektronikus levelet a
*TC c´ımre. Sz´ amos apr´ o¨ otletet, fog´ast tanulhatunk bel˝ ole.
2.5.4. MathGroup A Mathematica f¨ olhaszn´ al´ oi megalak´ıtott´ ak a (t¨ obbezer tagot sz´aml´al´ o) szab´alyozott (moderated) levelez´esi csoportot, a MathGroup-ot. Ennek a k¨ oz¨oss´egnek a tud´ as´at t¨ obbf´elek´eppen hasznos´ıthatjuk. F¨ oltehet¨ unk egyetlen k´erd´est Steve Christensennek a
& T ** * c´ımre, annak a megjegyz´es´evel, hogy a levelez´esben nem k´ıv´ anunk r´eszt venni, ez´ert a v´ alaszokat a saj´at c´ım¨ unkre k´erj¨ uk. A levelez´esi csoportba u ´gy lehet bel´epni, hogy szint´en Steve Christensennek ´ırunk egy levelet a
& J ;*T ** * c´ımre. V´alaszul el˝osz¨or kapunk egy t´ aj´ekoztat´ot, majd megindul a k´erd´esek ´es v´alaszok tanuls´agos ´es hasznos ´aradata.
3. Fejezetek a matematik´ab´ ol
Ebben a fejezetben a matematika t´emak¨orei k¨ or´e csoportos´ıtva mutatjuk be a Mathematica program lehet˝ os´egeit. Fel fogjuk sorolni a felhaszn´ alhat´ o bels˝ o f¨ uggv´enyek et (l´asd a 2.1. szakaszt) is, valamint a programcsomagokban (l´ asd a 2.2. szakaszt) megl´ev˝o k¨ uls˝ o f¨ uggv´enyek et is.
3.1. Alapvet˝ o matematikai fogalmak C´elunk ennek a szakasznak az elej´en az, hogy a fels˝ofok´ u matematikai tanulm´anyok elej´en szok´asosan szerepl˝o logikai ´es halmazelm´eleti tudnival´ okat illusztr´aljuk, illetve hogy az e t´ argyk¨ orben felmer¨ ul˝ o feladatok megold´ as´ahoz seg´ıts´eget ny´ ujtsunk. A Mathematica alkalmazhat´ os´ag´ anak e ter¨ uleten t¨ obb korl´ atja is van. El˝ osz¨or is: majdnem kiz´ar´ olag csak v´eges halmazokkal vagy val´ os sz´amhalmazokkal (els˝osorban intervallumokkal) tudunk dolgozni. M´ asodszor: kvantorok alkalmaz´ asa csak kiv´eteles esetekben siker¨ ul. (Kiv´etel: a µ oper´ ator.) Harmadszor: egyelem˝ u halmaz ´es eleme, illetve a f¨ uggv´eny ´es helyettes´ıt´esi ´ert´eke k¨oz¨otti k¨ ul¨ onbs´egt´etel ugyan k¨ ovetkezetesebb, mint b´armelyik programoz´ asi nyelvben, m´egsem ´eri el minden¨ utt azt a szintet, amelyre az egyetemi oktat´asban felt´etlen¨ ul sz¨ uks´eg van. A fenti probl´em´ak ellen´ere meg szeretn´enk gy˝ ozni az olvas´ot arr´ ol, hogy m´eg az itt t´argyalt ter¨ uleteken is seg´ıts´eg´ere lehet a Mathematica. Mivel maga a program az al´abb bemutatand´ okn´ al j´ oval bonyolultabb logikai m˝ uveleteket ´es levezet´esi szab´alyokat alkalmaz, ez´ert az is nyilv´anval´ o, hogy szorgos gyakorl´assal fegyvert´ arunk szinte korl´ atlanul b˝ ov´ıthet˝ o.
70
3. Fejezetek a matematik´ab´ ol
3.1.1. Logikai m˝ uveletek A k¨ ovetkez˝o bels˝o f¨ uggv´enyeket haszn´alhatjuk:
! "
A Mathematica alkalmas logikai ´ertelemben vett ´ıt´eletek kezel´es´ere. Ezek ki´ert´ekel´es´en´el azt vizsg´alja, hogy igazak-e, avagy hamisak. Jel¨ olj¨ uk p´eld´ aul p-vel a 3 < 2” kijelent´est: ” False
Ap´ all´ıt´ as tagad´ as´anak igazs´ag´ert´eke az ellenkez˝oje lesz: True
Ez a f¨ uggv´eny pontosan megfelel a logik´ aban szerepl˝ o neg´ aci´ o elnevez´es˝ u egyv´ altoz´os logikai f¨ uggv´enynek. Azt is mondhatjuk, hogy a ´es logikai ´ert´ekek pontosan megfelelnek az igaz ´es hamis nullav´ altoz´os logikai f¨ uggv´enyeknek, azaz a´lland´ oknak. A k´etv´ altoz´os matematikai logikai f¨ uggv´enyek k¨ oz¨ ul a logikai konjunkci´ o (∧) megfelel˝ o je az , a diszjunkar´ o vagy´e a ". Az ekvivalenci´anak az ci´o´e (∨) az , m´ıg a kiz´ f¨ uggv´eny felel meg, az implik´aci´ onak pedig az . Megjegyezz¨ uk, hogy a matematikai logik´aban n´eha nem, vagy nem csak logikai ´ert´ekekhez logikai ´ert´ekeket rendel˝o f¨ uggv´enyeket szok´as logikai f¨ uggv´enyeknek nevezni, hanem olyan f¨ uggv´enyeket, amelyek valamely m´as halmazon, p´eld´ aul a term´eszetes sz´amok halmaz´ an vannak defini´ alva, ´es a term´eszetes sz´amokhoz rendelnek logikai ´ert´ekeket. Az elvekn´el le´ırtakkal o¨sszhangban ezek a Mathematica-f¨ uggv´enyek ´altal´ anosabbak, t¨ obbet tudnak” a megfelel˝ o matematikai f¨ uggv´enyekn´el, az ” f¨uggv´eny p´eld´aul nemcsak logikai, hanem sz´am´ert´ekek ¨osszehasonl´ıt´ as´ara is haszn´ alhat´ o.
3.1. Alapvet˝o matematikai fogalmak
71
´ ek- vagy igazs´ • Ert´ agt´ abl´ azatok Megvizsg´aljuk, hogy a v´ altoz´ok o¨sszes lehets´eges ´ert´eke mellett milyen ´ert´ekeket szolg´altatnak a program logikai f¨ uggv´enyei:
{False, True}
J´ o lenne (k¨ ul¨ on¨ osen a k´es˝obbiekre is gondolva), ha a lehets´eges igazs´ag´ert´ekek:
halmaz´ara alkalmazhatn´ ank a vizsg´ alt f¨ uggv´enyt. Ehhez h´ıvjuk seg´ıts´eg¨ ul uggv´enyt, amelynek haszn´alata az al´ abbi egyszer˝ u p´eld´ ab´ ol vil´agos a # f¨ lesz: {False, True}
Tal´an m´eg term´eszetesebb az az ´ır´ asm´od, amelyn´el a f¨ uggv´eny ´es a lista (vagy halmaz; a k´es˝obbiekben ezek viszony´ at tiszt´azni fogjuk) k¨ oz´e minduggv´eny r¨ ovid´ıtett alakja, s amely arra ¨ossze a $% jelet´ırjuk, amely a # f¨ uggv´enyt k¨ ozvetlen¨ ul nem alkalmazfigyelmeztet benn¨ unket, hogy a f¨ hatjuk egy list´ ara, csak annak elemeire: {False, True}
Esetenk´ent k´enyelmesebb lehet, ha u ´gy m´ odos´ıtunk egy f¨ uggv´enyt, hogy k¨ ozvetlen¨ ul alkalmazhat´ o legyen egy list´ara: az attrib´ utumai k¨ oz¨ott szereutum. Ennek a m´ odja a k¨ ovetkez˝o: peljen a & attrib´ ! " # $ % $ & ! {False, True}
T´erj¨ unk a´t most az k´etv´ altoz´os f¨ uggv´enyre. Az f¨ uggv´eny ´ert´ekt´ abl´ azat´ anak vagy igazs´ agt´ abl´ azat´anak egy elem´et p´eld´ aul ´ıgy kaphatjuk meg: # '
True
72
3. Fejezetek a matematik´ab´ ol Vezess¨ uk be az igazs´ ag´ert´ekekb˝ol a´ll´ o p´ arok halmaz´ at:
Elegend˝ o teh´ at v´egigmenni az '( lista elemein ´es mindegyiket behelyettes´ıteni az f¨ uggv´enybe. Az '( lista elemei viszont maguk is list´ak, teh´ at gondoskodnunk kell arr´ ol, hogy ezek a k´etelem˝ u list´ak szolg´aluggv´eny k´et argumentum´ at ( z´ar´ ojelek n´elk¨ ul”). A helyzet tass´ak az f¨ ” ahhoz hasonl´ o, mint amikor matematik´aban egy k´etdimenzi´os vektort be´ırunk egy k´etv´ altoz´os f¨ uggv´eny argumentum´ aba. Ott el szoktuk k¨ ovetni azt a pontatlans´ agot, ar´ o jelp´ art elhagyunk ´es f (0, 1)-et ´ırunk hogy egy z´ uk meg, ez´ert sz¨ uks´ef ((0, 1)) — s˝ot f ( 01 ) — helyett. Itt ezt nem tehetj¨ uggv´enyre, amely egy lista elemeib˝ol egy t¨obbv´ altoz´os g¨ unk van az ) f¨ f¨ uggv´eny argumentumait a´ll´ıtja el˝ o: # ( # '
True
(Itt '(**+,, az '( lista els˝ o eleme, vagyis a -. / lista.) uggv´enynek is van r¨ ovid alakja, a fentivel egyen´ert´ek˝ u eredm´enyt Az ) f¨ kapunk teh´ at ´ıgy is: # '
Az ´ert´ekt´abl´ azat azon r´esz´et teh´at, amely az utols´ o oszlopot szokta alkotni, egy t´ abl´ azat form´a j´ aban a´ll´ıthatjuk el˝ o: $ # ( # '
) {True, False, False, False}
Jel¨olje most * +, - #
( # ' +
azt a f¨ uggv´enyt, amely az lista elemeit, amelyek maguk is list´ak, az f¨ uggv´eny argumentumaiv´a alak´ıtja. A fenti eredm´enyt ezek ut´ an u ´gy kaphatjuk meg, hogy kisz´ am´ıtjuk az '( halmaz f melletti k´ep´et: * {True, False, False, False}
Tiszta f¨ uggv´eny (l´ asd al´ abb) alkalmaz´ as´aval f kiiktathat´ o, ekkor ´ıgy abl´ azat´anak utols´ o oszlop´at: ´all´ıthatjuk el˝ o igazs´agt´ # ( # ' ./ {True, False, False, False}
3.1. Alapvet˝o matematikai fogalmak
73
Vagy r¨ ovidebben: #
( # ' ./
{True, False, False, False}
´es v´eg¨ ul: # ' ./ {True, False, False, False}
Lehet, hogy ez alkalommal nem t´ ul gyorsan jutottunk el a v´egeredm´enyhez, az elj´ar´ as el˝onyeit m´egis l´ atnunk kell, hogy a tov´ abbiakban magunk is t¨orekedj¨ unk a fentihez hasonl´ o st´ılus´ u ´ır´ asm´odra. A v´egs˝o k´epletben l´enyeg´eben csak a logikai m˝ uvelet szerepel ´es annak ´ertelmez´esi tartom´anya, valamint figyelmeztet˝ o jelek annak jelz´es´ere, hogy k¨ ul¨ onbs´eget kell tenn¨ unk valamely halmaz ´es annak elemei k¨oz¨ott. Az eszt´etikai szempont mellett — amelynek figyelembev´etele csak n´emi gyakorlat ut´ an v´ arhat´ o el a felhaszn´al´ ot´ ol — igen l´enyeges az is, hogy a m˝ uveleteket a program sokkal gyorsabban v´egzi el, ha a feladatot ilyen m´ odon adjuk meg, mintha hagyom´ anyos ´ır´ asm´odot alkalmazn´ ank. Ezt a teljes´ıt˝ ok´epess´eg vizsg´alat´ an´ al p´eld´ akon fogjuk bizony´ıtani. Egy tetsz˝oleges k´etv´ altoz´os logikai m˝ uvelet ´ert´ekt´abl´ azat´at teh´at az al´abbi f¨ uggv´eny a´ll´ıtja el˝ o: $ 01 , - 01 ./
Haszn´aljuk most ezt a f¨ uggv´enyt! $ # ' $ 2 $ 3 $ 45 $ 5 $ 60
Az ´ert´ekt´abl´ azatot a szok´asos m´odon is elhelyezhetj¨ uk. Ehhez eg´esz´ıts¨ uk ki az ´ertelmez´esi tartom´anyt az argumentumokat jel¨ ol˝ o k´et bet˝ uvel, p´eld´ aul a-val ´es b-vel: '0 & ' $ {{a, b}, {True, True}, {True, False}, {False, True}, {False, False}}
Ezut´ an az eredm´enyt tartalmaz´ o lista elej´ere ´ırjuk oda az illet˝ o logikai f¨ uggv´eny helyettes´ıt´esi ´ert´ek´et az (a, b) helyen:
74
3. Fejezetek a matematik´ab´ ol
& ' $ 2 7'0 8 $
{a V b, True, True, True, False}
(0 * . , a elej´ere odailleszti az -et. 1 2 pedig itt azt a c´elt szolg´alja, hogy ne ´ert´ekel˝odj´ek ki az a∨b ¨osszeg”.) ” Amint az a m´atrixm˝ uveletekn´el r´eszletesen ki fog der¨ ulni, a 2 × 5-¨os ´es a 1 × 5-¨os m´atrix ´ıgy tehet˝o egym´as mell´e:
9
'0 {{a, b, a V b}, {True, True, True}, {True, False, True}, {False, True, True}, {False, False, False}}
Hogy v´eg¨ ul egy sz´ep t´ abl´ azatot kapjunk, n´ezz¨ uk meg az eredm´enyt m´atrixalakban: +0 : a True True False False
b True False True False
a V b True True True False
Halad´ ok sz´am´ara tanuls´ agos megfontolni, hogy nem sokkal k¨ onny´ıten´e meg a dolgunkat a &3##3 csomagb´ol uggv´eny sem, mivel sorai egyetlen elemb˝ol a´llvett 4 f¨ uggv´eny nak ´es nem list´ak (vagy, ha tetszik, vektorok). A & f¨ viszont rendelkezik olyan opci´ okkal, amelyek seg´ıts´eg´evel a feladat k¨ onnyebben megoldhat´ o lett volna; javasoljuk az olvas´onak, hogy keressen meg egy ilyen megold´ ast. • Logikai azonoss´ agok T´erj¨ unk a´t most a logikai azonoss´agok vizsg´alat´ ara. Szeretn´enk egyszer˝ u logikai azonoss´agokat bizony´ıtani a program felhaszn´ al´ as´aval. A konjunkci´ o kommutativit´asa ´ıgy l´ athat´ o be: %!4+ ' // $ %!4+ ' $ // True
´ Altal´ aban is igaz az, hogy bonyolultabb logikai kifejez´esek egys´eges alakuggv´eny: ez ugyanis el˝ oa´ll´ıtja egy ra hoz´ as´aban seg´ıt a f¨ formula teljes diszjunkt´ıv norm´ alform´ aj´ at. Innen l´ atszik p´eld´ aul a De Morgan-f´ele azonoss´ agok ´erv´enyess´ege.
3.1. Alapvet˝o matematikai fogalmak
75
%!4+ ' ;; << ;$ a && b %!4+ ' ;; // ;$ a || b
Abban az esetben, ha az egyszer˝ u m´ odszerek nem seg´ıtenek, marad az ´ert´ekt´abl´ azatok ¨osszehasonl´ıt´ as´anak m´ odszere. L´assuk be p´eld´ aul a kor´ abban uggv´eny alkalmaz´as´aval, hogy a diszjunkci´ o kommutabevezetett & f¨ t´ıv: $ . << ./ $ . << ./ True
Az implik´ aci´ oval kapcsolatban ´erdemes megjegyezni, hogy sokkal t¨ obbre haszn´alhat´ o, mint matematikai logikai ismereteink alapj´an rem´eln´enk. *)+.)(, ugyanis jelenti az )+ egyenlet azon r´esz´et, amely al j´ ol alkalmazhat´ o, l´ asd ott. tartalmazza )(-t. Ez egyenletek megold´as´an´ uggv´eny felt´eteles Az implik´ aci´ or´ ol z´ar´ asul megeml´ıtj¨ uk, hogy az 5 f¨ utas´ıt´ asok megval´os´ıt´ as´ara szolg´al, teh´ at a programoz´ as egy seg´edeszk¨oze. Logikai szempontb´ ol ´erdekes megjegyezni, hogy n´egy argumentummal is haszn´ alhat´ o; ilyenkor a negyedik argumentumban szerepl˝ o utas´ıt´ ast hajtja v´egre a program, amennyiben nem tudja eld¨ onteni, hogy igaz vagy hamis a felt´etel ´ert´eke. • Logikai egyenletek Oldjuk meg az al´ abbi logikai egyenleteket a Mathematica seg´ıts´eg´evel: "1 << + + {{x -> False}}
Az eredm´eny hozz´ arendel´esi szab´ alyok egy (egyelem˝ u) list´aja. Az egyetlen hozz´arendel´esi szab´aly azt mondja, hogy a megold´ ast kapjuk meg akkor, ha uk. Ehhez hasonl´ ot jelent az al´abbi utas´ıt´ as x ´ert´ek´et -sal helyettes´ıtj¨ ´es eredm´enye is: "1 << + + {{x -> True}}
Ha megold´ assal nem rendelkez˝o egyenletet oldatunk meg a programmal, akkor eredm´eny¨ ul u ¨res list´at kapunk: "1 << + + {}
76
3. Fejezetek a matematik´ab´ ol
V´eg¨ ul pedig, ha minden x megold´asa egy egyenletnek, azaz nincs megk¨ ot´es arra, hogy mit helyettes´ıts¨ unk x hely´ebe, akkor az eredm´eny egyetlen szab´alyb´ ol a´ll´ o lista, amely szab´aly azonban nem tartalmaz megk¨ot´est: "1 << + + {{}}
Oldjuk meg most a k¨ ovetkez˝o feladatot (l´asd [83], 125. oldal). Megyek ” az utc´an, ´eszreveszek a t´ uls´ o oldalon egy l´ anyt ´es egy fi´ ut. M´eg messze vannak, nem ismerem fel egyiket sem; de mintha Zsuzsi volna az a l´ any, ´allap´ıtom meg magamban. Ha Zsuzsi az, akkor vagy Feri megy vele, vagy az a m´ern¨okhallgat´ o, akivel mostan´aban gyakran l´ atom egy¨ utt. K¨ ozelebb j¨ onnek. Felismertem: Zsuzsi az. Most m´ar a fi´ ut is jobban l´ atom. Nem Feri megy vele. Mi k¨ ovetkezik ebb˝ol?” Ha fel´ırjuk a feltev´eseket (premissz´akat) r¨ ovid´ıtve, logikai m˝ uveletekkel, akkor ezt kapjuk: * "1 60 * << 0 = 0 = {{mernok -> True}}
• A µ oper´ ator A matematikai logik´ aban ´es a rekurz´ıv f¨ uggv´enyek elm´elet´eben szerepel a µ oli azt a legkisebb term´eszetes sz´amot, oper´ ator: szok´asosan µn∈N P (n) jel¨ uggv´ennyel ez (a term´eszetes sz´amok amelyre a P ´ all´ıt´ as igaz. A 6 f¨ ugghalmaza helyett v´eges halmazt szerepeltetve) le´ırhat´ o, s˝ot a 6 f¨ v´eny enn´el sokkal t¨obbre is k´epes: 0 "! $ ! ' > 0$? {5}
Most m´eg nem a legkisebb, adott tulajdons´ ag´ u elemet kaptuk, hanem a list´aban legel˝ osz¨or k¨ ovetkez˝ot. Egy rendez´essel egy¨ utt m´ ar a j´ o megold´as ad´ odik: 0 "! " $ ! ' > 0$? {2}
Egy m´ asik megold´as:
3.1. Alapvet˝o matematikai fogalmak
77
0 "! $ ! ' > 0$? 2
Hasonl´ıtsuk o¨ssze a k´et megold´as gyorsas´ag´at nagyobb sz´amoss´ag´ u halmazokon!
3.1.2. Halmazok Sz¨ uks´eg¨ unk lesz a legt¨obb listakezel˝ o f¨ uggv´enyre is a n´eh´ any speci´alisan halmazelm´eleti f¨ uggv´eny mellett:
) 4 4 7 #
# # # #8 #& 0 0 9 !
A 7 #834&3 programcsomag
4 0 :)4 ;6& 86&
9 0 9 6& 6&
f¨ uggv´enyei, valamint a 4 3773 programcsomag
77 65)!6 elj´ ar´ asai is seg´ıts´eget ny´ ujthatnak.
!6
78
3. Fejezetek a matematik´ab´ ol
• Alapvet˝ o fogalmak A Mathematica alapvet˝ o adatszerkezete a lista. Halmazokat is list´aval reprezent´ alhatunk, ehhez azonban az adott list´ aban t¨ obbsz¨ or el˝ofordul´ o azonos elemeket egyetlen listaelemmel kell helyettes´ıten¨ unk. Ennek egy m´odj´ ara mutatunk p´eld´ at: @0
(Ek¨ ozben az elemek a <6 rendszerv´ altoz´o aktu´ alis ´ert´ek´enek megfelel˝oen rendez˝ odnek is.) A legc´elszer˝ ubb elj´ ar´ as, ha bevezet¨ unk egy f¨ uggv´enyt, amely a list´akat halmazz´ a alak´ıtja, ´es halmazm˝ uveletek v´egz´ese el˝ott els˝ o l´ep´esk´ent mindig ezt alkalmazzuk: @0 , -
Az u ¨res halmaz megfelel˝oje az { } u ¨res lista. Nem lep meg benn¨ unket, hogy False
Azt, hogy az a elem benne van-e az {a, b, c} halmazban, p´eld´ aul ´ıgy vizsg´alhatjuk meg: 0$? $! True
Megk´erdezhetj¨ uk azt is, hogy mentes-e az {a, b, c} halmaz az a elemt˝ol: ? $! False
A #& utas´ıt´ as felhaszn´ al´ as´aval ellen˝orizhetj¨ uk azt, hogy egy halmaz r´eszhalmaza-e a m´asiknak: A# $ $ B> # ( # ' $ 0$? $
True
R¨ovidebb, t¨ om¨orebb ´es gyorsabb, ha az a halmazt nem elemenk´ent kezelj¨ uk:
3.1. Alapvet˝o matematikai fogalmak #
79
( # ' 0$? $ ./
True
M´eg r¨ovidebb formul´ at kapunk, ha az utas´ıt´ asok r¨ ovid alakj´ at haszn´ aljuk: +, (, - # ' 0$? ( ./ + $ True
R´eszhalmaz okat gyakran defini´ alunk u ´gy, hogy egy adott alaphalmaz adott tulajdons´ ag´ u elemeit v´alasztjuk ki. Ezt t¨ obbf´elek´eppen is megtehetj¨ uk a Mathematic´ a ban: @0 $ ! ) > A @0 ,6 {1, 2, 3, 4, 5}
A @0 +, + {1, 2}
"! @0 2''? {1, 3, 5}
Kiv´ alaszthatjuk egy halmaz (ink´ abb: egy lista) adott helyen l´ev˝ o elemeit is, amint azt a p´eld´ ak mutatj´ ak (ezek a m˝ uveletek eszk¨ozk´ent halmazokra is j´ ol haszn´ alhat´ oak):
= @0 {a, b, c}
= @0 C {3, 4, 5}
= @0 > {c, 1, 2}
Hasonl´ oan hagyunk el bizonyos elemeket: D @0 D @0 C {1, 2, 3, 4, 5} {a, b, c, 1, 2}
80
3. Fejezetek a matematik´ab´ ol D D {a, {a,
@0
@0 > b, 1, 2, 3, 4, 5} b, 3, 4, 5}
Adott halmaz r´eszhalmaz´ at ´ıgy is megadhatjuk: E @0 {b, c, 1, 2, 3, 4, 5} & @0 > F {c, 2, 4}
A k¨ ovetkez˝o utas´ıt´ asok eredm´enye pedig adott halmaz egy eleme: @0 a & @0 c
Felh´ıvjuk a figyelmet az elvekr˝ ol sz´ol´ o 2.3. szakaszra. A jelen pontban t´ argyalt m˝ uveletek ugyanis a´ltal´ aban nem csak list´akra alkalmazhat´ ok, ´ıgy hat´ ask¨or¨ uk az itt ismertetettn´el sokkal b˝ ovebb. • Halmazm˝ uveletek Term´eszetesen nemcsak a halmaz list´ab´ ol val´ o el˝o´all´ıt´ as´anak m˝ uvelet´et, hauggv´eny v´egzi: nem a halmazok egyes´ıt´es´et is a ! f¨ $ ! {1, 2, 3, a, b, c}
Ugyanezt haszn´alhatjuk — t¨ obbf´elek´eppen is — tetsz˝oleges (v´eges!) halmazrendszer egyes´ıt´es´enek kisz´am´ıt´ as´ara is: ' $ C G C {{-2, -1, 0}, {-1, 0, 1}, {0, 1, 2}} ' {-2, -1, 0, 1, 2} ' {-2, -1, 0, 1, 2}
3.1. Alapvet˝o matematikai fogalmak
81
osleges z´ar´ ojeleket, r´eszletesen l´asd az elvekn´el.) ( kiszedi” a f¨ol¨ ” Halmazok metszet´enek kisz´am´ıt´ as´ara adunk n´eh´ any p´eld´ at: $ !H6 ! H $ ! ' 6 ! $ ! $ ! ' 6 ! ' # ( 6 ! '
V´egtelen (RN -beli) halmazok p´eld´ aul karakterisztikus f¨ uggv´eny u ¨kkel kezelhet˝ok. A ny´ılt egys´egk¨ orlap karakterisztikus f¨ uggv´eny´et ´ıgy is megkaphatjuk: A# * * +, (, - 6* C+IC(IJB B
0 & D * + ( + B ( B {46.192 Second, -SurfaceGraphics-}
Ugyanennek a f¨ uggv´enynek egy m´ asik defin´ıci´ oja: +, (, - +IG(I +, (, - B +IG(IJ
0 & D + ( + B ( B {40.645 Second, -SurfaceGraphics-}
(Ezeket a defin´ıci´ okat — ´es az al´abb k¨ ovetkez˝ot — ism´et felfoghatjuk u ´gy is, hogy egy alaphalmaz, eset¨ unkben a s´ık, adott tulajdons´ ag´ u elemeit v´ alasztjuk ki.) onyvt´ ar 77 elnevez´es˝ u programcsomagj´ at is A 4 alk¨ haszn´ alhatjuk karakterisztikus f¨ uggv´enyek elk´esz´ıt´es´ehez: A!KD!D K @ +, (, - " C+IC(I
Ha ezeket a karakterisztikus f¨ uggv´enyeket ´abr´ azolni akarjuk, akkor ez az els˝o k´et defin´ıci´ oval k¨ or¨ ulbel¨ ul egyforma ideig tart, a harmadikkal k¨ or¨ ulbel¨ ul h´ aromszor annyi ideig. A harmadikat akkor ´erdemes m´egis v´ alasztanunk, ha a karakterisztikus f¨ uggv´enyekkel m˝ uveleteket is akarunk v´egezni: p´eld´ aul a halmazm˝ uveletek megval´os´ıt´ asa v´egett. (K´et halmaz metszet´enek karakterisztikus f¨ uggv´enye a halmazok karakterisztikus f¨ uggv´eny´enek szorzata, egyes´ıt´es¨ uk´et pedig u ´gy kapjuk meg, hogy a karakterisztikus f¨ uggv´enyek ¨osszeg´eb˝ ol levonjuk azok szorzat´at. Valamely halmaz komplementer´enek karakterisztikus f¨ uggv´enye az 1 f¨ uggv´eny ´es a karakterisztikus f¨ uggv´eny uggv´enyt t¨ obb k¨ ul¨ onbs´egek´ent kaphat´ o meg.) A bonyolult, a !6 f¨ helyen is tartalmaz´ o kifejez´esek egyszer˝ us´ıt´es´ere ugyanis az adott programalhat´ o. csomagban egy k¨ ul¨ on f¨ uggv´eny, a 65)!6 tal´
82
3. Fejezetek a matematik´ab´ ol
Sz´ am´ıtsuk ki most k´et halmaz metszet´enek ´es egyes´ıt´es´enek karakterisztikus f¨ ugv´eny´et: = +, (, - " +G(C +, (, - "0 *( " @ + ( = + ( 0 +, (, - "0 *( " @ + ( G = + ( C + ( & D + ( + B ( B
Az a ´es b halmaz Descartes-f´ele szorzat´ at az f¨ uggv´ennyel kaphatjuk meg, ez ugyanis a m´ asodik ´es harmadik argumentum´ aban megadott list´ak elemeib˝ol k´epezi az ¨osszes p´art, ´es ezeket a p´arokat az els˝o argumentumk´ent megadott f¨ uggv´eny argumentum´ anak adja a´t; v´eg¨ ul az eredm´enyb˝ ol list´at k´epez: 2 % ' * {{d, 1}, {d, 2}, {e, 1}, {e, 2}, {f, 1}, {f, 2}}
´ Erdemes teh´ at a k¨ ovetkez˝o defin´ıci´ ot bevezetni: '! , $, - 2 % $ ' * $ '! $ {{d, 1}, {d, 2}, {e, 1}, {e, 2}, {f, 1}, {f, 2}}
(A Descartes-szorzat elemei rendezett p´ arok, ahogy el is v´ arjuk.) Ugyanezt onyvt´ ar 4& programcsomagmegadja a 7 #8 alk¨ uggv´enye is. j´ anak 4 0 f¨ Az ´ert´ekt´abl´ azatokhoz a logikai f¨ uggv´enyek ´ertelmez´esi tartom´any´ anak pontjait most m´ ar ´ıgy is el˝ o´ all´ıthatjuk: '!
Descartes-szorzat (nem csak v´eges halmazok´e!) sz´amos bels˝o f¨ uggv´eny argumentumak´ent el˝ofordulhat. P´eld´ aul: & D " +I G (I + C& & ( B &
Ha a k sz´am oszt´oja az A halmaz elemei sz´am´anak, akkor
0* .=, az A halmaz egy olyan part´ıci´ o j´ at szolg´altatja, amelyben minden r´eszhalmaznak k sz´am´ u eleme van: & ) L M F N {{1, 2}, {3, 4}, {9, 8}, {7, 6}}
3.1. Alapvet˝o matematikai fogalmak
83
Ne t´evessz¨ uk o¨ssze a 0 f¨ uggv´enyt a 7 #8 alk¨ onyvt´ ar 4& programcsomagj´anak 0 f¨uggv´eny´evel, amely pozit´ıv eg´esz sz´amokat bont fel pozit´ıv eg´esz sz´amok ¨osszeg´ere. • Hatv´ anyhalmaz H´ıvjuk be a 4& programcsomagot: D! @KA0$ !K
K´epezhetj¨ uk egy adott halmaz r´eszhalmazait lexikografikus sorrendben:
$ @"$ $ ! ' B > {{ }, {a}, {b}, {a, b}, {c}, {a, c}, {b, c}, {a, b, c}, {d}, {a, d}, {b, d}, {a, b, d}, {c, d}, {a, c, d}, {b, c, d}, {a, b, c, d}}
Hatv´ anyhalmazt teh´at ´ıgy k´epezhet¨ unk: @ 1 ( , - $ @"$ B I% @ C @ 1 ( $ ! '
Egy m´ asik megold´asn´ al u ´gy soroljuk f¨ ol a r´eszhalmazokat, hogy a sorozat minden tagja pontosan egy elemben k¨ ul¨ onb¨ ozz´ek az el˝oz˝ot˝ol: O(A' ) {{}, {1}, {1, 2}, {2}, {2, 3}, {1, 2, 3}, {1, 3}, {3}, {3, 4}, {1, 3, 4}, {1, 2, 3, 4}, {2, 3, 4}, {2, 4}, {1, 2, 4}, {1, 4}, {4}}
Vegy¨ uk ´eszre, hogy p´eld´ aul a 4 sz´am az els˝o nyolc r´eszhalmazban nem fordul el˝o, m´ıg az utols´ o nyolc mindegyik´eben el˝ofordul. Az a halmaz k elem˝ u r´eszhalmazait ´ıgy kapjuk meg: P"$ $ ! ' {{a, b, c}, {a, b, d}, {a, c, d}, {b, c, d}}
ez´ert hatv´ anyhalmazt ´ıgy is el˝ oa´ll´ıthatunk:
$ P"$ $ ! ' B ) {{ }, {a}, {b}, {c}, {d}, {a, b}, {a, c}, {a, d}, {b, c}, {b, d}, {c, d}, {a, b, c}, {a, b, d}, {a, c, d}, {b, c, d}, {a, b, c, d}}
V´eg¨ ul megeml´ıtj¨ uk, hogy ugyanebben a programcsomagban 6& n´even olyan f¨ uggv´enyt is tal´ alunk, amely k¨ ozvetlen¨ ul el˝ o´all´ıtja a hatv´ anyhalmazt.
84
3. Fejezetek a matematik´ab´ ol
Megjegyzend˝ o, hogy gyakran van sz¨ uks´eg¨ unk arra, hogy el˝ o´all´ıtsuk egy halmaz k´etelem˝ u r´eszhalmazait (azaz a m´asodoszt´aly´ u ism´etl´es n´elk¨ uli komuggv´enyt: bin´ aci´ okat). Ehhez is felhaszn´ alhatjuk a ;6& f¨ = , - P"$
• Rel´ aci´ ok A val´ os sz´amokon defini´ alt szok´asos rel´ aci´ ok is haszn´alhat´ ok: >. >. ?. ?. A matematik´aban megszokott ¨osszevon´asokkal is ´elhet¨unk: > True
Nem csak sz´amokra haszn´ alhat´ o az egyenl˝os´eg ´es a nemegyenl˝ os´eg: ) True
> $ ; > $ False
> $ > $ False
Az )' kifejez´es pontosan akkor igaz, ha x, y ´es z p´ aronk´ent k¨ u´ aromv´ altoz´os f¨ uggv´eny m´ar l¨ onb¨ oz˝ok. (Igy teh´ at a ! ´es a " h´ k¨ ul¨ onb¨ oz˝ok, b´ ar k´etv´ altoz´osk´ent, mint f¨ ont l´ attuk, megegyeznek.) A fenti rel´ aci´ ok ´es logikai m˝ uveletek eredm´enyk´ent is igen gyakran el˝ ofordulnak: E'! + $ + b == 0 && a == 0 || a != 0 && x ==
b a
(A logikai diszjunkci´ ot´ ol megk¨ ul¨ onb¨ oztetend˝ o az alternat´ıv´ ak felsorol´ as´at jel¨ ol˝ o | jel; ezt a mint´ azatokkal kapcsolatban a 2.3.2. pontban t´ argyaltuk.) ´ Ujonnan defini´ alt rel´ aci´ ok megad´as´ahoz bizonyos szorzathalmazok r´eszhalmazait kell kijel¨ olni: {{1, 1}, {2, 2}, {3, 3}, {1, 2}, {2, 1}}
Hat´arozzuk meg a fenti rel´ aci´ o ´ertelmez´esi tartom´any´ at:
3.1. Alapvet˝o matematikai fogalmak
85
'0
{1, 2, 3}
Hat´arozzuk meg ´ert´ekk´eszlet´et is: %
{1, 2, 3}
Vajon megegyezik-e a rel´aci´ o ´ertelmez´esi tartom´anya ´es ´ert´ekk´eszlete? '0 True
Egy rel´ aci´ o reflexivit´ asa ellen˝ orizhet˝o u ´gy, hogy az alaphalmaz identit´ asf¨ uggv´eny´et tartalmazza-e: @' % '0 '0 True
A rel´ aci´ okat gr´ afoknak is tekinthetj¨ uk. Ehhez a felfog´ ashoz tartoz´o fogalmakat ´es eszk¨oz¨oket a diszkr´et matematik´ar´ ol sz´ol´ o 3.6. szakaszban fogunk t´ argyalni. • M˝ uveletek intervallumokkal Az intervallumokkal mintha baj lenne. Az ´es a 42 f¨uggv´ennyel nem m˝uk¨odnek j´ol egy¨utt; a !-nal term´eszetesen igen: 6 ! 6 1 B 6 1 BQ> Interval[ ] A0 0 6 1 B > 6 1 Interval[{0, 5}] 6 1 B 6 1 BQ> Interval[{0, 2.}]
Mindez nincs o¨sszhangban a matematik´ aban megszokott tulajdons´ agokkal. A Mathematica elveinek viszont megfelel, ugyanis az u ´gy m˝ uk¨ odik, hogy a metszet tagjainak fej´et elt´avol´ıtja, majd meg´allap´ıtja, hogy a megmaradt list´aknak melyek a k¨ oz¨os elemei, s ezekre an ez a kellemetlens´eg a program haszvisszarakja az fejet. Miut´ n´ alata sor´an kider¨ ult, speci´ alis f¨ uggv´enyeket vezettek be intervallumokkal v´egzend˝o halmazm˝ uveletekre:
86
3. Fejezetek a matematik´ab´ ol 6 1 6 1 B 6 1 BQ> 6 1 6 1 C 6 1 6 1 6 1 B 6 1 Interval[{0, 2}] Interval[{-1, 3}] Interval[{0, 1}, {2, 3}] 6 16 ! 6 1 B 6 1 BQ> 6 16 ! 6 1 B 6 1 Interval[{0.5, 1.}] Interval[ ]
Azt is meg´allap´ıthatjuk, hogy egy sz´ am eleme-e egy intervallumnak: 6 10$? 6 1 "5 True
#& *+. (, ´ert´eke pedig — ha i1 ´es i2 is intervallum — pontosan akkor , ha i2 ⊂ i1 : 6 10$? 6 1 B ) 6 1 True 6 10$? 6 1 6 1 BQ> False
Val´ os intervallumokon aritmetikai m˝ uveleteket is v´egezhet¨ unk a szok´ asos m´odon: F G 6 1 B 3 10 }] Interval[{ , 7 7 R6 1 C Interval[{-3, 9}] 6 1 G 6 1 ) Interval[{4, 6}]
3.1. Alapvet˝o matematikai fogalmak
87
3.1.3. Sz´ amok a ´br´ azol´ asa. Aritmetikai m˝ uveletek A Mathematica programon bel¨ ul elvileg ak´ arh´ any jegy˝ u sz´amokkal v´egezhet¨ unk m˝ uveleteket. A gyakorlatban az ´abr´ azolt sz´amjegyek maxim´alis sz´am´at — ami minden v´ altozatn´ al ezrekkel m´erhet˝o — azonban az aktu´ alisan haszn´ alt hardverk¨ ornyezet hat´ arozza meg. Eg´esz sz´amokkal ´es t¨ortekkel megadott aritmetikai m˝ uveletek eredm´eny´et a program a matematika szab´ alyainak megfelel˝oen pontosan adja meg (pontos aritmetika). A sz´amol´og´epekhez ´es a hagyom´anyos programnyelvekhez hasonl´ oan itt is dolgozhatunk k¨ ozel´ıt˝ o ´ert´ekekkel (k¨ ozel´ıt˝ o aritmetika). Ilyenkor igen t´ ag hat´ arok k¨ oz¨ott szab´alyozhatjuk a felhaszn´ alt ´ert´ekes sz´amjegyek sz´am´at. N´eh´ any programcsomagban lev˝o f¨ uggv´eny a lebeg˝opontos aritmetika elm´elet´enek tanulm´ anyoz´ as´ahoz is seg´ıts´eget ny´ ujt. Ezeket ennek a pontnak a v´eg´en ismertetj¨ uk. M´ ar itt felh´ıvjuk az Olvas´ o figyelm´et a bemen˝o adatok szintaxis´ anak (l´ asd k´es˝obb) gondos megv´ alaszt´as´ara. A tov´ abbiakban r´eszletesen ismertetj¨ uk, hogy adott kifejez´es ki´ert´ekel´es´ehez a Mathematica milyen elvek alapj´ an v´ alaszt a pontos ´es a k¨ozel´ıt˝ o algoritmusok alkalmaz´asa k¨oz¨ ul. • Az aritmetikai m˝ uveletek szintaxisa
0 *.), 6&*.), *. ), vagy ) 7 *.), 0B*.),
vagy vagy vagy vagy vagy
@) 2) A) $) C)
o¨sszead´as kivon´ as szorz´as oszt´as hatv´ anyoz´ as
Az A) szorzatot megadhatjuk ´ıgy is: ). Ebben az esetben a sz´ok¨ oz karakter jel¨ oli a szorz´as m˝ uvelet´et. Ha egy k´ett´enyez˝os szorzat els˝o t´enyez˝o je (val´ os vagy komplex) sz´am, a m´asodik t´enyez˝o je szimb´olum (azaz nem oz karakter is elhagyhat´ o. ´Igy a D, a DA ´es a sz´am), akkor a A is ´es a sz´ok¨ D utas´ıt´asok egyen´ert´ek˝uek. Vigy´azzunk azonban arra, hogy a ford´ıtott ul¨ onb¨ oz˝o szimb´olumot sorrendre ez m´ar nem ´erv´enyes. Az D egy -t˝ol k¨ jelent ´es nem az AD szorzatot. A Mathematica az aritmetikai m˝ uveleteket a matematik´aban megszokott o jelekkel ett˝ol precedenciaszab´alynak megfelel˝oen hajtja v´egre, ha a z´ar´ elt´er˝o sorrendet nem jel¨ol¨ unk ki. A precedenciaszab´aly 3 oldalas ismertet´ese Wolfram k¨ onyv´eben ([89], 716–719. oldal) sz¨ uks´eg eset´en megtal´alhat´ o. Mi-
88
3. Fejezetek a matematik´ab´ ol
vel el´eg term´eszetes a m˝ uveletek sorrendje, ritk´ an kell ezzel foglalkoznunk. Ha bizonytalanok vagyunk, alkalmazzunk (g¨ omb¨ oly˝ u) z´ ar´ o jeleket. • Sz´ amt´ıpusok A hagyom´ anyos programnyelvekhez (Basic, C, Fortran, Pascal) hasonl´oan a k¨ ul¨ onb¨ oz˝o t´ıpus´ u sz´amokat a Mathematica is k¨ ul¨ onb¨ oz˝o m´odon kezeli. Az al´ abbi sz´amt´ıpusok megk¨ ul¨ onb¨ oztet´es´ere van m´od: Sz´ amt´ıpus
Defin´ıci´ o
P´ eld´ ak
eg´esz sz´amok
az eg´esz sz´amok halmaz´anak (Z-nek) az elemei
val´ odi t¨ ortek
a p/q alak´ u sz´amok, ahol p ∈ Z ´es q ∈ Z \ {0}
val´ os sz´amok
a val´ os sz´amok k¨ozel´ıt´es´ere szolg´al´ o v´eges tizedest¨ortek az a + bi alakban megadott komplex sz´amok, ahol a ´es b az el˝oz˝o h´ arom sz´amt´ıpus valamelyike (i jel¨ oli a k´epzetes egys´eget)
+EF 2(EG F$+D G$ 2D F+HE(F 2IHDJ(
9
9
komplex sz´amok
4
F@EA ($F@DHA +H(@FHEA
A program szempontj´ ab´ ol az eg´esz sz´amoknak ´es az explicit tizedesponttal megadott val´ os sz´amoknak kit¨ untetett szerep¨ uk van (l´ asd a 2.3.1. pontot). A szimbolikus programcsomagoknak, ´ıgy a Mathematic´ a nak is egyik f˝ o er´enye az, hogy seg´ıts´eg¨ ukkel alap´ertelmez´esben dolgozhatunk ak´ ar t¨ obb ezer jegy˝ u sz´amokkal is. A lehet˝os´egek ismertet´es´ehez sz¨ uks´eg¨ unk lesz a sz´amok egy m´asik csoportos´ıt´ as´ara is. Pontos numerikus ´ert´ekek nek nevezz¨ uk az eg´esz sz´amokat, a val´ odi t¨ orteket ´es azokat az algebrai alakban megadott komplex sz´ amokat, amelyeknek a val´ os ´es a k´epzetes r´esze is az el˝obbiek valamelyike. Ilyen sz´amokkal a matematik´aban megszokott m´odon pontosan is v´egezhet¨ unk m˝ uveleteket. K¨ ozel´ıt˝ o numerikus ´ert´ekek nek nevezz¨ uk az explicit tizedesponttal megadott val´ os vagy komplex sz´amokat. Az ezekkel v´egzett m˝ uveletekn´el a program a szok´asos kerek´ıt´esi szab´alyokat alkalmazza.
3.1. Alapvet˝o matematikai fogalmak
89
A Mathematica szimb´olumoknak tekinti (´es speci´alis m´odon kezeli) a matematikai a ´lland´ ok at. Sok esetben ezekkel is ugyan´ ugy sz´amolhatunk, mint a pontos numerikus ´ert´ekekkel. A k¨ovetkez˝o t´ abl´ azatban a be´ep´ıtett matematikai ´alland´ ok k¨ oz¨ ul csak n´eh´ anyat sorolunk fel.
4 7 : : 9 5) 25) 0
a Catalan-f´ele ´alland´ o, azaz a ∞ (−1)k (2k + 1)−2 ¨osszeg k=0
a fokot radi´ anba a´tv´ alt´ o szorz´o (π/180o ) a term´eszetes alap´ u logaritmus alapsz´ama n 1 a γ := lim − log n Euler-f´ele ´alk n→∞
k=1
land´ o √ az aranymetsz´esi ´alland´ o (az (1 + 5)/2 sz´am) √ a −1 k´epzetes egys´eg a +∞ szimb´olum a −∞ szimb´olum a π sz´am
Komplex sz´ amok kezel´es´ehez az al´abbi bels˝ o f¨ uggv´enyeket haszn´alhatjuk:
&
9
4K
Ezek jelent´ese a megszokott. Csup´an azt emelj¨ uk ki, hogy *', a ' komplex sz´amnak a (−π, π] intervallumba es˝ o (radi´ anban m´ert) argumentum´ at adja meg. A k¨ ovetkez˝o p´eld´ ak ezt illusztr´alj´ ak. Figyelj¨ uk meg azt is, hogy abban az esetben, amikor a bemen˝o adatok csak pontos numerikus ´ert´ekeket tartalmaznak, akkor a program a pontos eredm´enyt keresi: # G 6 # CA &N G " &NR6 # G R6 Pi 5 Pi , ArcTan[12, 3]} { , 4 6
Ha az aritmetikai kifejez´es k¨ozel´ıt˝ o numerikus ´ert´eket is tartalmaz, akkor a k´ert eredm´eny egy k¨ ozel´ıt˝ o ´ert´ek´et kapjuk meg: # Q G 6 # G QR6 {0.785398, 0.244979}
A Mathematica komplex sz´amokkal v´egzett m˝ uveletek eredm´eny´et algebrai alakban adja meg. A Gauss-eg´eszek (azok a komplex sz´amok, ame-
90
3. Fejezetek a matematik´ab´ ol
lyeknek a val´ os ´es a k´epzetes r´esze is eg´esz sz´am) k¨or´eben is dolgozhatunk azokkal a f¨ uggv´enyekkel, amelyek rendelkeznek a : opci´oval. A 1 f¨ uggv´eny ad inform´ aci´ ot arr´ ol, hogy egy adott sz´ amot a program milyen t´ıpus´ unak tekint. P´eld´ aul: 7' 7' Q 7' >B 7' >QB {Integer, Real, Rational, Real} 7' G BR6 7' Q G BQR6 {Integer, Complex} 7' "5 7' "5 ) 7' "5 )Q {Power, Integer, Real}
Sz´ amos matematikai probl´em´an´ al l´enyeges tudni azt, hogy egy adott sz´am hozz´atartozik-e a komplex sz´amok valamely r´eszhalmaz´ahoz. Az ilyen jelleg˝ u k´erd´esek megv´alaszol´as´ahoz ny´ ujthatnak seg´ıts´eget k¨ ul¨ onb¨ oz˝o logikai ´ert´ekeket megad´o be´ep´ıtett f¨ uggv´enyek. Az
*, utas´ıt´ as eredm´enye , ha eg´esz sz´am, ´es az ellenkez˝o esetben. Hasonl´ o ´ertelemben haszn´alhatjuk m´eg a k¨ovekez˝o utas´ıt´ asokat is:
*, *, *, & *,
*, 0 *, 0 *,
• Sz´ amok fel´ır´ asa k¨ ul¨ onb¨ oz˝ o alakban ´ A Mathematica elvileg ak´ arh´ any jegy˝ u eg´esz sz´ am ´abr´ azol´as´ara k´epes. Erdemes kipr´ ob´ alni p´eld´ aul azt, hogy milyen n term´eszetes sz´amig adja meg n 3 minden jegy´et. Haszn´alhatunk k¨ ul¨ onb¨ oz˝o alap´ u sz´amrendszereket is. (Az alap´ertelmez´es term´eszetesen a 10-es sz´amrendszer.) A
L * '. ', utas´ıt´ as eredm´enye a 10-es alap´ u sz´amrendszerben megadott ' eg´esz u sz´amrendszerbeli alakja. A 9-n´el nagyobb sz´ amsz´am ' (≤ 36)-alap´
3.1. Alapvet˝o matematikai fogalmak
91
jegyek jel¨ ol´es´ere rendre az . &. . . HHH karaktereket haszn´aljuk. A k¨ ovetkez˝o p´eld´ akban figyelj¨ uk meg azt is, hogy a program als´o indexbe´ırja a sz´amrendszer alapsz´am´at: S0 F S0 >MLN>NNMMM> F {1001012 , 1a2b3c4d5e6f7g17 }
Az '-alap´ u sz´amrendszerbeli ' sz´amot az
'CC ' utas´ıt´ as alak´ıtja a´t 10-es alap´ u sz´amrendszerbeli sz´amm´a: IIBBB NII**BB {37, 16755200}
Az 7 bels˝o f¨ uggv´ennyel egy eg´esz sz´am sz´amjegyeit tartalmaz´ o list´at kapunk: 6 D )>NFM {1, 2, 3, 4, 5, 6, 7, 8}
Az 7 * '. ', utas´ıt´ as eredm´enye pedig olyan lista, u amelynek elemei a 10-es sz´amrendszerben megadott ' sz´am '-alap´ sz´amrendszerbeli alakj´ anak sz´amjegyei. Itt h´ıvjuk fel a figyelmet a 6 lehets´eges opci´ot tartalmaz´o & bels˝o f¨ uggv´enyre, amely (k¨ ul¨ on¨ osen sok sz´amjegyet tartalmaz´o) sz´amok ´attekinthet˝obb megjelen´ıt´es´et t´amogatja. Az opci´ okat az 2 0$0
utas´ıt´ as eredm´enye mutatja meg. Itt p´eldak´ent csup´ an azt eml´ıtj¨ uk meg, hogy ha a 30! sz´ am sz´amjegyeit 3-as csoportokban szeretn´enk megjelen´ıteni alassza el egym´ast´ol, akkor u ´gy, hogy az egyes csoportokat a karakter v´ ezt ´ıgy tudatjuk a Mathematic´ a val: 0$0 B; D S!= CJ 0$" CJ T
A Mathematica a val´ odi t¨ orteket is pontosan kezeli. Figyelj¨ uk meg, hogy ezeket a sz´aml´al´ o ´es a nevez˝o legnagyobb k¨ oz¨os oszt´oj´ aval automatikusan egyszer˝ us´ıti: )>N 226 31
92
3. Fejezetek a matematik´ab´ ol
A L f¨ uggv´enyt val´ odi t¨ ortekre is alkalmazhatjuk: S0 ) 112 1002
A program a k¨ ozel´ıt˝ o numerikus ´ert´ekeket alap´ertelmez´esben k¨ ul¨ onb¨ oz˝o form´aban adja vissza: NQFIC) NQFIN NQFIM 6 {0.00049625, 90458.4, 4.06068 10 }
A 65 bels˝o f¨ uggv´ennyel a sz´amokat a matematik´aban megszokott lebeg˝opontos alakban a´br´ azolhatjuk: "! *!0 : -4 4 6 {4.9625 10 , 9.04584 10 , 4.06068 10 }
Az f¨ uggv´ennyel m´ern¨ oki alakban, k¨ onyvel´esi alakban pedig az -mal kapjuk meg az ´ert´ekeket. Adott sz´am mantissz´a j´ ab´ ol ´es kitev˝ o j´eb˝ ol a´ll´ o list´at is gy´arthatunk: 4+ Q) {0.2342, 2}
A 97 ´es a & elj´ ar´ asokat k¨ozel´ıt˝ o numerikus ´ert´ekek eset´en is haszn´ alhatjuk. • Pontos aritmetika Ha egy matematikai kifejez´esben csak pontos numerikus ´ert´ekek szerepelnek, akkor a Mathematica a matematika szab´alyainak megfelel˝oen v´egzi el a m˝ uveleteket, ´es kerek´ıt´esek alkalmaz´asa n´elk¨ ul, pontosan adja meg a v´egeredm´enyt: GFLIB 1208925819614629174706176 12157665459056928801
• K¨ ozel´ıt˝ o aritmetika Az explicit tizedesponttal megadott sz´amokat a program k¨ ozel´ıt˝ o ´ert´eknek tekinti, ´es az ezekkel v´egzett m˝ uveletekn´el a matematik´aban megszokott kerek´ıt´esi szab´alyokat alkalmazza.
3.1. Alapvet˝o matematikai fogalmak
93
A hagyom´ anyos programnyelvek az aritmetikai m˝ uveletek elv´egz´es´ehez alap´ertelmez´esben felhaszn´alj´ ak az adott sz´am´ıt´ og´ep processzor´aba be´ep´ıtett numerikus lehet˝ os´egeket. Ez´ert a matematikai m˝ uveleteket csak meghat´ arozott sz´am´ u (´ altal´ aban 20-n´ al kevesebb) ´ert´ekes sz´amjegyet tartalmaz´ o val´ os sz´amokkal tudj´ ak elv´egezni, ´es a (sok esetben nem egyszer˝ uen v´egrehajthat´ o) hibaanal´ızisr˝ol a felhaszn´ al´ onak kell gondoskodnia. Ezzel szemben a Mathematic´ a t haszn´ alva m´ar alap´ertelmez´esben is ak´ar t¨ obb ezer ´ert´ekes jegyet tartalmaz´o val´ os vagy komplex sz´amokkal is tudunk dolgozni, tov´ abb´ a a hibabecsl´esr˝ol is kapunk ´ert´ekes inform´aci´ okat. Az ilyen nagypontoss´ ag´ u m˝ uveletek ki´ert´ekel´es´en´el a program k´esz´ıt˝ oi nem tudj´ ak k¨ ozvetlen¨ ul felhaszn´ alni a sz´am´ıt´ og´ep processzor´anak numerikus leas, szorz´as, oszt´as) het˝ os´egeit. A legalapvet˝ obb m˝ uveletek (¨osszead´as, kivon´ elv´egz´es´et is a programban kell megoldani. Ez a t´eny term´eszetesen a ki´ert´ekel´es gyorsas´ag´ at is befoly´asolja. Sok probl´em´an´ al azonban a gyorsas´ag fontosabb szempont, mint a pontoss´ ag. A Mathematica (a hagyom´ anyos programnyelvekhez hasonl´ oan) lehet˝ ov´e teszi, hogy tekintettel legy¨ unk erre. A bemen˝o adatok szintaxis´ aval a felhaszn´ al´ o v´ alasztja meg azt, hogy a ki´ert´ekel´esn´el a program melyik m´ odszerrel dolgozz´ek. Az im´ent elmondottak miatt a Mathematica k¨ ozel´ıt˝ o numerikus ´ert´ekeknek az al´abbi k´et t´ıpus´ at k¨ ul¨ onb¨ ozteti meg: g´epi pontoss´ ag´ u sz´ amok ´es nagypontoss´ ag´ u sz´ amok. Az el˝obbiek r¨ ogz´ıtett sz´am´ u sz´amjegyet tartalmaznak, ´es a vel¨ uk v´egzett m˝ uveletekn´el a hibabecsl´est a felhaszn´al´ onak kell elv´egeznie. A program az ilyen sz´amokkal v´egzett m˝ uveletekn´el haszn´alja k¨ ozvetlen¨ ul az adott sz´am´ıt´ og´ep hardver´ebe be´ep´ıtett numerikus lehet˝os´egeket. A nagypontoss´ ag´ u sz´amok elvileg (!) ak´arh´ any sz´amjegyet tartalmazhatnak, ´es a program a vel¨ uk v´egzett m˝ uveletek sor´an bizonyos hibabecsl´est is v´egez. A Mathematica az explicit tizedesponttal megadott val´ os vagy komplex sz´amot akkor tekinti g´epi pontoss´ ag´ u sz´amnak, ha az ´ert´ekes sz´amjegyek altoz´o ´ersz´ama legfeljebb akkora, mint a <#80 rendszerv´ t´eke alap´ertelmez´esben. Az ´altalunk haszn´ alt g´epek eset´eben ez a sz´am 16: U!@ &! 16
Ha bizonytalanok vagyunk, akkor a #8& be´ep´ıtett f¨ uggv´ennyel k´erdezhetj¨ uk meg a programt´ ol, hogy egy adott sz´ amot g´epi pontoss´ag´ unak tekint-e vagy sem: !@ 0$? Q !@ 0$? Q)>NFMLB)>NF !@ 0$? BQBBBBBBBBBB)>NF {True, False, True}
94
3. Fejezetek a matematik´ab´ ol
Ha a t´ızes sz´amrendszerben beadott sz´ am a <#80 ´ert´ekn´el kevesebb ´ert´ekes sz´amjegyet tartalmaz, akkor a Mathematica a hi´ anyz´ o sz´amjegyeket 0-nak veszi, ´es ´ıgy hajtja v´egre a k´ert m˝ uveleteket. A <#80 ´ert´ek´en´el t¨obb ´ert´ekes sz´amjegyet tartalmaz´o k¨ ozel´ıt˝ o numerikus ´ert´ekeket a Mathematica nagypontoss´ ag´ u sz´amnak tekinti. Ezekn´el a felhaszn´alhat´ o ´ert´ekes sz´amjegyek maxim´alis sz´am´at a <#0 rendszerv´altoz´o tartalmazza. Alap´ertelmez´esben U+&! 50000.
Ebben az esetben a g´epi sz´am´abr´ azol´as hat´arai eg´eszen leny˝ ug¨ oz˝oek: U 0$ U+0$ -323228015 323228010 {1.059345952 10 , 1.440397122 10 }
Arr´ ol, hogy egy sz´amot (p´eld´ aul nagypontoss´ ag´ u sz´amokkal v´egzett m˝ uveletek eredm´eny´et) a program milyen pontosnak tekint, a 0 ´es uggv´eny t´ a j´ekoztatja a felhaszn´ al´ ot. A az ) bels˝o f¨
0 *, utas´ıt´ as ´ert´eke a <#80 rendszerv´ altoz´oval egyenl˝ o, ha g´epi pontoss´ ag´ u val´ os sz´am. Ha egy´eb val´ os k¨ozel´ıt˝ o ´ert´ek, akkor az eredaban szerepl˝ o ¨osszes ´ert´ekes m´eny az sz´am t´ızes sz´amrendszerbeli alakj´ os ´es a k´epzetes r´eszre a sz´amjegy sz´ama. Ha komplex sz´am, akkor a val´ fentiek szerint vett sz´amok minimum´ at kapjuk. A 0 *, sz´am az k¨ozel´ıt˝o ´ert´ek egy abszol´ut hibakorl´atj´aval hozhat´o kapcsolatba: &! Q &! Q)>NFMLB)>NF &! Q)>NFMLB)>NF &! QGQ)>NFMLB)>NFR6 {16, 17, 16, 16}
Az sz´am tizedest¨ort alakj´ aban a tizedespontt´ ol jobbra es˝o ´ert´ekes sz´amjegyek sz´am´at adja meg a k¨ ovetkez˝o utas´ıt´ as:
)*, Ez a sz´am az k¨ ozel´ıt˝ o ´ert´ek egy relat´ıv hibakorl´ atj´ aval hozhat´ o kapcsolatba:
3.1. Alapvet˝o matematikai fogalmak
95
#!!!( Q)>NFMLB)>NFMLRBI #!!!( )>Q #!!!( F)>Q {17, 11, 10}
Pontos numerikus ´ert´ekekhez mindk´et f¨ uggv´eny az 5) szimb´olumot rendeli: &! #!!!( {Infinity, Infinity}
K¨ ozel´ıt˝ o ´ert´ekekkel val´o sz´amol´asn´al felhaszn´ alhatjuk m´eg az al´abbi bels˝o f¨ uggv´enyeket is:
6 )
60
Ezekr˝ ol r´eszletesebb inform´aci´ ot a [40] dolgozatban tal´ alhatunk. • A ki´ ert´ ekel´ es elvei Most felsoroljuk az (aritmetikai) kifejez´esek ki´ert´ekel´es´en´el a Mathematica a´ltal k¨ ovetett ´altal´ anos elveket. ◦ 1 ) Ha egy (aritmetikai) kifejez´es csak pontos numerikus ´ert´ekeket tartalmaz, akkor a program szimbolikus algoritmusokat felhaszn´ alva keresi a pontos eredm´enyt: G FLI)B 1461501637330902918203684832716283019655932542976 147808829414345923316083210206383297601 G R6I>B 110422359737857437 - 276811749100242716 I
2◦ ) Ha az (aritmetikai) kifejez´es tartalmaz g´epi pontoss´ ag´ u sz´amot, akkor a program minden sz´ amot ilyen t´ıpus´ ura alak´ıt, ´es ezekkel v´egzi el a m˝ uveleteket: = Q G FLI)B 9 9.88778 10 Q G R6I>B 17 17 1.10422 10 - 2.76812 10 I
A k´eperny˝ on az eredm´enyb˝ ol ilyenkor csak 6 ´ert´ekes sz´amjegy jelenik meg. altoz´oban a program azonban g´epi pontoss´ ag´ u sz´amot t´arol: A =' v´
96
3. Fejezetek a matematik´ab´ ol &! = 16
Az ¨osszes (<#80 sz´am´ u) ´ert´ekes sz´amjegyet p´eld´ aul az 2 bels˝o f¨uggv´ennyel jelen´ıthetj¨uk meg: = 6
0
9.8877830446376*10^9 ◦
3 ) Ha a g´epi pontoss´ ag´ u sz´amokkal v´egzett m˝ uveletek eredm´enye a g´epi pontoss´ ag a´br´ azol´asi hat´ arain (ezeket a
<##8& ´es a <##8& rendszerv´altoz´ok tartalmazz´ ak) k´ıv¨ ul esik, akkor a program automatikusan a nagypontoss´ ag´ u algoritmusokra t´er ´at. Ezt illusztr´alja a k¨ ovetkez˝o p´elda: U !@ 0$ U+!@ 0$ -308 308 {1.11254 10 , 1.79769 10 } QIBBBQ 494 1.4275588424553 10
4◦ ) A Mathematica a programban meg´ırt aritmetikai m˝ uveleteket v´egz˝o algoritmusokat h´ıvja meg abban az esetben, ha a kifejez´esben csak nagypontoss´ag´ u sz´amokat tal´al. Ilyenkor minden l´ep´esben nyomon k¨ oveti az adott m˝ uvelet pontoss´ ag´ at (hibabecsl´est v´egez), ´es a beadott adatok pontoss´ ag´ ahoz k´epest a lehet˝o legjobb k¨ ozel´ıt´est pr´ ob´ alja megadni. A v´egeredm´enyben csak pontos sz´amjegyeket t¨ untet fel. A be´ep´ıtett algoritmusokr´ ol r´eszletesebb inform´ aci´ ot a [41] dolgozatban tal´ alhatunk. ag´ u sz´amokkal v´egzett m˝ uveletek eredm´enyek´ent a prog5◦ ) Nagypontoss´ ram a 0.0 sz´amot ´ırja ki akkor, ha a v´egeredm´enyben nem tal´ al ´ert´ekes sz´amjegyet. o f¨ uggv´ eny • Az bels˝ uggv´eny k¨ ul¨ onb¨ oz˝o (p´eld´ aul aritmetikai) kifejez´eseknek egy Az be´ep´ıtett f¨ k¨ ozel´ıt˝ o ´ert´ek´et adja meg. P´eld´ aul: "5 R& 9 {9.88778 10 , 3.06998}
3.1. Alapvet˝o matematikai fogalmak
97
"5 & 3.06998
Eml´ıtett¨ uk m´ ar azt, hogy k¨ ozel´ıt˝ o numerikus ´ert´ekek pontos sz´amjegyeinek a sz´am´at a felhaszn´ al´ o igen t´ ag hat´ arok k¨ oz¨ott v´ alaszthatja meg. Nem obb jelent probl´em´at p´eld´ aul a kor´ abban ´ertelmezett sz´am ak´ar t¨ ezer jegyre kerek´ıtett ´ert´ek´enek megad´asa sem. Eff´ele sz´and´ekunkat ´ıgy k¨ oz¨olj¨ uk a Mathematic´ a val: BB 9.887783044637613109188495241372711699666479884567883\ 9 009390822523400509443443746935006796072730093527 10
Most ismertetj¨ uk azt, hogy a Mathematica az argumentum´ at´ol f¨ ugg˝ oen hogyan v´ alasztja meg az
*. , utas´ıt´ as ki´ert´ekel´es´en´el felhaszn´ alt algoritmust, ahol egy (p´eld´ aul aritmetikai) kifejez´es ´es pozit´ıv eg´esz sz´am. uk azzal, hogy a m´ asodik argumentum elhagyhat´ o. Ennek 1◦ ) Kezdj¨ at az *, ´es alap´ertelmez´esbeli ´ert´eke <#80 . Teh´ as egyen´ert´ek˝ u. az *. +I, utas´ıt´ uk most azt az esetet, amikor csak pontos ´ert´eket tar2◦ ) N´ezz¨ talmaz. Ekkor a Mathematica el˝osz¨or szimbolikus algoritmusok felhaszn´ aul, l´ as´aval pr´ ob´ alja pontosan meghat´ arozni a kifejez´est. Ha ez siker¨ akkor ezut´an veszi annak jegyre kerek´ıtett ´ert´ek´et. Abban az esetben, amikor a kifejez´est nem tudja pontosan ki´ert´ekelni, akkor a benne o k¨ ozel´ıt˝ o el˝ofordul´ o ¨osszes sz´amnak veszi az ´ert´ekes sz´amjegyet tartalmaz´ ´ert´ek´et, ´es numerikus algoritmusokat felhaszn´ alva sz´amolja ki az eredm´enyt. P´eld´ aul: = ) ) = 9 9 {9.888 10 , 9.8877830446376131091885 10 }
Jegyezz¨ uk meg azonban azt, hogy az <<#80 eset´en kapott eredm´enyt a tov´ abbi m˝ uveletekn´el a Mathematica mindig g´epi pontoss´ag´ u sz´amnak tekinti: 6 0 = ) &! = ) {9.88778304463762*10^9, 16}
98
3. Fejezetek a matematik´ab´ ol = ) 6 0 2.966334913391285*10^10
3◦ ) Ha a kifejez´es tartalmaz g´epi pontoss´ ag´ u sz´amot, akkor a Mathematica a m´asodik argumentumt´ ol f¨ uggetlen¨ ul ilyen sz´amok felhaszn´ al´ as´aval v´egzi el a kijel¨olt m˝ uveleteket: = Q G FI)B = > = >BB 25 25 {1.9095 10 , 1.909539243949085 10 }
4◦ ) Ha a kifejez´es csak nagypontoss´ag´ u sz´amokat ´es pontos nuas hat´as´ara a merikus ´ert´ekeket tartalmaz, akkor az *. , utas´ıt´ u sz´amokkal v´egzi el a m˝ uveleteket. Ilyenkor a program ´ert´ekes sz´amjegy˝ felhalmoz´ od´ o kerek´ıt´esi hib´ ak miatt a v´egeredm´eny ´ert´ekes jegyeinek sz´ama ol b˝ ovebben, ´altal´ aban kisebb, mint . A [41] dolgozatban olvashatunk arr´ hogy a Mathematica ebben az esetben hogyan v´egzi el a hibabecsl´est. A 0 bels˝o f¨uggv´eny t´a j´ekoztat arr´ol, hogy a Mathematica szerint a v´egeredm´eny h´ any pontos sz´ amjegyet tartalmaz. P´eld´ aul: "5 FB )B &! : 8.366600265340755479781720257851874893928 40 "5 FB )BIF 667 1.0067959622727194636538352431877163129 10
&! : #!!!( :: {37, -630}
Ism´etelten hangs´ ulyozzuk, hogy az *. , utas´ıt´ as teh´at nem azt jelenti, hogy hat´ arozzuk meg a kifejez´est ´ert´ekes sz´amjegy” o sz´amokkal hat´ arozre”, hanem azt, hogy ´ert´ekes sz´amjegyet tartalmaz´ ” zuk meg a kifejez´est”. • Val´ os sz´ amok k¨ ozel´ıt´ ese pontos ´ ert´ ekekkel os sz´am eg´esz r´esz´et a *, utas´ıt´ as eredm´enye adja meg. Az val´ 4*, a legkisebb olyan eg´esz sz´am, amely nagyobb vagy egyenl˝o, assal mint . Az sz´am eg´eszekre kerek´ıtett ´ert´ek´et a 9 *, utas´ıt´ kapjuk meg. A Mathematica komplex sz´amok eset´en a val´os ´es a k´epzetes r´eszre alkalmazza a fentieket:
3.1. Alapvet˝o matematikai fogalmak
99
CQ> QF> QCQ) 6 {-3, 3, 1 - 4 I}
A CQ> A QF> A QCQ)R6 {-2, 4, 2 - 3 I}
E ' BQ)> E ' Q> E ' Q>BBB {0, 1, 2}
• Programcsomagok Az eddig ismertetett bels˝ o f¨ uggv´enyeken k´ıv¨ ul m´eg n´eh´ any programcsomag is tartalmaz a sz´am´abr´ azol´ashoz ´es az aritmetikai m˝ uveletekhez is kapcsolhat´ o f¨ uggv´enyeket. A r´eszletek ismertet´ese n´elk¨ ul csup´ an utalunk ezekre a lehet˝os´egekre. Az adott g´ep¨ unk lebeg˝opontos aritmetik´ aj´ at tanulm´ anyozhatjuk a
#83# 3 programcsomag al´abbi f¨ uggv´enyeivel:
#8 #
# !
A sz´am´ıt´ og´ep lebeg˝opontos aritmetik´ aj´ anak elm´elet´et illusztr´alhatjuk a
#834 83 programcsomag k¨ovetkez˝o f¨ uggv´enyeivel:
8 4&
6 8
Az els˝ osorban demonstr´ aci´ os c´elokat szolg´al´ o
#83 83 programcsomag f¨ uggv´enye az intervallumaritmetika elm´elet´ehez ny´ ujthat seg´ıts´eget. A hibabecsl´esekkel kapcsolatos alkalmaz´asokhoz a
#83 ) 3 programcsomag (amely az azonos nev˝ u bels˝ o f¨ uggv´eny kiterjeszuggv´enyeit ´erdemes felhaszn´alni. t´ese) ´es 6 f¨
100
3. Fejezetek a matematik´ab´ ol
3.1.4. F¨ uggv´ enyek A Mathematic´ a val alap´ertelmez´esben Cn → Cm (n, m ∈ N) t´ıpus´ u f¨ uggv´enyekkel dolgozhatunk. Ebben a pontban ilyen f¨ uggv´enyek megad´as´anak k¨ ul¨ onf´ele m´odjair´ ol lesz sz´o. A be´ep´ıtett matematikai f¨ uggv´enyek igen sz´eles k¨ore ny´ ujt seg´ıts´eget f¨ uggv´enyek k´eplettel val´ o ´ertelmez´es´ehez. Megadhatunk f¨ uggv´enyeket elj´ ar´ assal is, azaz defini´ al´ asukhoz a program egy´eb f¨ uggv´enyeit is felhaszn´alhatjuk. • Be´ ep´ıtett matematikai f¨ uggv´ enyek A matematik´ aban haszn´ alt speci´alis f¨ uggv´enyek t¨ obbs´ege be´ep´ıtett f¨ uggv´enyk´ent szerepel a Mathematic´ a ban. Ezek k¨ oz¨ ul itt csak n´eh´ anyat sorolunk fel. A fennmarad´ o f¨ uggv´enyekr˝ ol az adott t´emak¨orn´el tesz¨ unk eml´ıt´est.
& 4 4 8 4 48 4 4 8 6 68 6 68
8 4 4 8 4 48 4 4 8 7
0 0B 6 68 6 68 6 6& 8
A be´ep´ıtett matematikai f¨ uggv´enyeket a program komplex v´ altoz´osnak tekinti, ezeket b´armely komplex sz´am eset´en ki´ert´ekeli. A helyettes´ıt´esi ´ert´ek kisz´amol´asakor az el˝oz˝o pontban le´ırt elveket k¨ oveti. Ha a f¨ uggv´eny argumentuma pontos numerikus ´ert´ek, akkor sok esetben a pontos helyettes´ıt´esi ´ert´eket kapjuk meg: "5 L "5 F " & A &B {3, Sqrt[7],
Pi -1 + Sqrt[3] , Cos[ ]} 2Sqrt[2] 10
A0 +4+ ' 4+ & 6 I 1 + Sqrt[3] 2 2
3.1. Alapvet˝o matematikai fogalmak
101
Az bels˝o f¨ uggv´eny (l´ asd a 3.1.3. pontot) felhaszn´ al´ as´aval a pontos helyettes´ıt´esi ´ert´ek ak´ar t¨ obb ezer ´ert´ekes jegy´et is meghat´arozhatjuk. Pr´ ob´ aljuk ki p´eld´ aul a k¨ ovetkez˝o utas´ıt´ ast: A &B >BBB
Ha egy matematikai f¨ uggv´eny argumentum´ aba g´epi pontoss´ ag´ u sz´amot uggv´enyt alkalmazzuk, akkor az eredm´eny az m´asodik ´ırunk ´es az f¨ argumentum´ at´ ol f¨ uggetlen¨ ul g´epi pontoss´ ag´ u sz´am lesz: " Q 6
0
0.932039085967226
" Q > 6
0
0.932039085967226
" Q B 0.932039085967226
Ha a <#80 rendszerv´ altoz´o (l. a 3.1.3. pontot) ´ert´ek´en´el t¨ obb ´ert´ekes jegyre k´ıv´ anjuk meghat´ arozni egy be´ep´ıtett f¨ uggv´eny helyettes´ıt´esi ´ert´ek´et, akkor az egyik lehet˝os´eg¨ unk az, hogy az argumentumba pontos numerikus ´ert´eket ´ırunk: " B > 0.932039085967226349670134435495
Megtehetj¨ uk azt is, hogy explicit tizedesponttal jel¨ olt k¨ ozel´ıt˝ o numerikus ´ert´eket haszn´alunk. Ilyenkor azonban legal´ abb annyi sz´ amjeggyel kell megadnunk az argumentumot, amennyi ´ert´ekes jegyet szeretn´enk az eredm´enyben: " QBBBBBBBBBBBBBBBBBBBBBBBBBBBBB B 0.932039085967226349670134435495
A be´ep´ıtett matematikai f¨ uggv´enyek egyik r´esze olyan m˝ uveletekkel kapcsolatos, amelyeknek az eredm´enye b´ armely komplex argumentum eset´eben egy´ertelm˝ uen meg van hat´ arozva. Ilyen f¨ uggv´enyek p´eld´ aul az abszol´ ut ´ert´ek f¨ uggv´eny, a hatv´ anyf¨ uggv´eny vagy a trigonometrikus f¨ uggv´enyek. Sz´ amos be´ep´ıtett matematikai f¨ uggv´eny azonban olyan m˝ uvelettel kapcsolatos, amelynek az eredm´enye nincs egy´ertelm˝ uen meghat´ arozva. Ezek uggv´eny. A Mathematic´ a ban *', a nulk¨ oz¨ ul a legegyszer˝ ubb az f¨ o argumentul´ at´ ol k¨ ul¨ onb¨ oz˝o ' komplex sz´amnak a (−π, π] intervallumba es˝ uggv´eny a 0 sz´amot rendeli. m´at adja meg radi´ anban. A M sz´amhoz az f¨
102
3. Fejezetek a matematik´ab´ ol
Nem ennyire egyszer˝ u a helyzet a n´egyzetgy¨ok-, a logaritmus- ´es az arkuszf¨ uggv´enyek eset´eben. Mindenesetre ezek a be´ep´ıtett f¨ uggv´enyek matematikai ´ertelemben is f¨ uggv´enyek, azaz minden komplex sz´amhoz egyetlen komplex sz´amot rendelnek. A program a´ltal adott v´ alaszok pontos meg´ert´es´ehez vil´agosan kell l´ atnunk azt, hogy a program k´esz´ıt˝ oi hogyan ´ertelmezt´ek ezeket a f¨ uggv´enyeket. Azaz: a t¨obb lehets´eges komplex ´ert´ek k¨ oz¨ ul az adott f¨ uggv´eny melyik komplex sz´amot szolg´altatja helyettes´ıt´esi ´ert´ekk´ent. N´ezz¨ uk p´eld´ aul a n´egyzetgy¨okf¨ uggv´enyt. Ismeretes, hogy a komplex sz´amok k¨ or´eben a n´egyzetgy¨okvon´ as m˝ uvelete nem egy´ertelm˝ u. Ezt a t´enyt kifejezhetj¨ uk u ´gy is, hogy a C −→ C,
z → z 2
f¨ uggv´eny nem k¨ olcs¨on¨ osen egy´ertelm˝ u (azaz nem bijekci´ o ). Ennek a f¨ uggv´enynek sz´amos olyan lesz˝ uk´ıt´ese van, amely m´ar bijekci´ o. Tekints¨ uk p´eld´ aul a jobb oldali komplex f´els´ıkot: D := { x + iy ∈ C : (x ∈ R+ ´es y ∈ R) vagy (x = 0 ´es y ∈ R+ 0 )}. Egyszer˝ uen bebizony´ıthat´ o az, hogy a D → C, z → z 2 f¨ uggv´eny m´ar k¨ olcs¨on¨ osen egy´ertelm˝ u, teh´ at invert´ alhat´ o. Az 6 bels˝o f¨ uggv´eny pontosan ennek a f¨ uggv´enynek az inverze. Ez azt jelenti, hogy vauggv´eny lamely komplex sz´am k´et lehets´eges n´egyzetgy¨oke k¨oz¨ ul az 6 f¨ azt az egy´ertelm˝ uen meghat´ arozott n´egyzetgy¨ok¨ ot veszi, amelyik a D jobb oldali komplex f´els´ıkba esik. uggv´eny nem folytonos a C halmazon. PontoAz ´ıgy ´ertelmezett 6 f¨ sabban fogalmazva: a komplex sz´ ams´ıknak csak a negat´ıv val´ os f´eltengelyt˝ ol ´ e s y = 0} ezt a halmazt) k¨ u l¨ o nb¨ o z˝ o (jel¨ olje T := {x + yi ∈ C : x ∈ R− 0 pontjaiban folytonos. A f¨ uggv´enynek a T halmaz pontjaiban szakad´ asa van uggv´eny szakad´ asi a ´g´ a nak is nevezik), ami (ez´ert ezt a halmazt az 6 f¨ azt jelenti, hogy a T -hez k¨ ozeli” pontokban felvett f¨ uggv´eny´ert´ekek t´ avol” ” ” lehetnek egym´ ast´ol: "5 CQ G BQBB 6 "5 CQ C BQBB 6 {0.001 + 1. I, 0.001 - 1. I}
Minderr˝ ol szeml´eletes k´epet ad az al´abbi a´bra:
3.1. Alapvet˝o matematikai fogalmak
103
& D 60 "5 + G ( 6 + C) ) ( C))
2 1 0 -1 -2 -4
4 2 0
-2
-2
0 2
4 -4
Komplex sz´am n´egyzetgy¨okei k¨ oz¨ ul egynek a kiv´ alaszt´as´at teh´at a szakad´ asi ´ag kijel¨ ol´es´evel tehetj¨ uk egy´ertelm˝ uv´e. (Ha a n´egyzetgy¨okf¨ uggv´enyt u ´gy defini´ altuk volna, hogy a szakad´ asi ´aga a pozit´ıv val´ os f´eltengely legyen, akkor ennek helyettes´ıt´esi ´ert´ekei a fels˝o f´els´ıkba esn´enek.) A t¨ obbi be´ep´ıtett inverz f¨ uggv´eny szakad´asi ´ag´ anak pontos le´ır´ asa a [89] referenciak¨ onyv 565. oldal´ an sz¨ uks´eg eset´en megtal´alhat´ o. A v´ alasztott inverz f¨ uggv´enyek ´eppen azok a f¨ uggv´enyek, amelyeket a komplex f¨ uggv´enytanban f˝ o´ert´ekek nek szoktak nevezni. A be´ep´ıtett matematikai f¨ uggv´enyeknek is vannak attrib´ utumai (l´ asd a 2.3.4. pontot). P´eld´ aul: # $
{Listable, Protected}
A & attrib´ utum azt jelenti, hogy ha a f¨ uggv´eny argumentum´ aba list´at (speci´alisan vektort vagy m´ atrixot) ´ırunk, akkor a program a sz´ oban forg´ o f¨ uggv´enyt a lista minden elem´ere k¨ ul¨ on-k¨ ul¨ on alkalmazza. F¨ uggv´enyutum. ´ert´ekek fel¨ ul´ır´ as´at akad´ alyozza meg a 0 attrib´ • F¨ uggv´ enyek megad´ asa Megeml´ıtett¨ uk m´ ar, hogy a Mathematic´ a n bel¨ ul alap´ertelmez´esben dolgozu f¨ uggv´enyekkel. Ezeket h´ arom k¨ ul¨ onhatunk Cn → Cm (n, m ∈ N) t´ıpus´ b¨ oz˝o m´odon is defini´ alhatjuk: k´esleltetett ´ert´ekad´ assal, azonnali ´ert´ekad´ assal vagy tiszta f¨ uggv´ennyel.
104
3. Fejezetek a matematik´ab´ ol
Tekints¨ uk el˝ osz¨or azt a legegyszer˝ ubb esetet, amikor az eg´esz C halmazon egyetlen formul´ aval k´ıv´ anunk defini´ alni egy f¨ uggv´enyt. Legyen ez p´eld´ aul a k¨ ovetkez˝o: (x ∈ C). f (x) := x3 K´esleltetett ´ert´ekad´ assal ezt a f¨ uggv´enyt ´ıgy ´ertelmezz¨ uk: * +, - +I
A defin´ıci´ oban szerepl˝ o al´ ah´ uz´ as karakter, a N jel arra utal, hogy f -et az u pedig ¨osszes lehets´eges (komplex) v´altoz´ora defini´ aljuk; az el˝otte ´all´ o bet˝ a f¨ uggv´eny v´ altoz´oj´ ara. altoz´oj´ at helyett m´as szimb´olummal is A k´es˝obbi hivatkoz´ asokban 5 v´ helyettes´ıthetj¨ uk: * * 10 3 3 {u , valami }
Kihangs´ ulyozzuk a N jel szerep´et. Figyelj¨ uk meg, hogy az * + - " +
utas´ıt´ as ´ert´ekad´ ast jelent, amely az f f¨ uggv´eny ´ertelmez´esi tartom´any´ anak egyetlen r¨ogz´ıtett elem´ere hat´ arozza meg f ´ert´ek´et, ez az elem : * + G * ( * G * 1 3 3 3 {y + Sin[x], u + v }
Kisz´amolhatjuk a megadott f¨ uggv´eny b´ armely val´ os vagy komplex helyen vett helyettes´ıt´esi ´ert´ek´et: * * G 6 {27, -46 + 9 I}
F¨ uggv´eny´ert´ekekb˝ol t´ abl´ azatot is k´esz´ıthet¨ unk. P´eld´ aul a +, - +C
f¨ uggv´eny helyettes´ıt´esi ´ert´ekeit a [2, 3] intervallumban 0, 5-es l´ep´esk¨ozt haszn´ alva ´ıgy kapjuk meg: @(= $ + + BQ> {2, 2.5, 3} *1 == @(= 1 encountered. Power::infy: Infinite expression 0 {-1, -2., ComplexInfinity}
3.1. Alapvet˝o matematikai fogalmak
105
Adjuk meg az eredm´enyeket a szok´asos t´abl´ azatform´aban:
$0 @(= *1 ==
$7' CJ T +T T +T
$# 0 CJ A x g[x]
2 -1
2.5 3. -2 ComplexInfinity
Egy a´ltalunk defini´ alt f¨ uggv´enyr˝ ol ugyan´ ugy t´ aj´ekoz´odhatunk, mint a be´ep´ıtettekr˝ ol: V* Global‘f f[x] := Sin[x] f[x_] := x^3
Ha a tov´ abbiakban az f szimb´olumot m´as c´elra akarjuk haszn´ alni, akkor a defin´ıci´ ot fel¨ ul lehet ´ırni, vagy pedig (ez a´ltal´ aban c´elszer˝ ubb) ´erv´enytelen´ıteni kell. Ehhez a k¨ ovetkez˝o utas´ıt´ asok valamelyik´et haszn´alhatjuk: A * A# * E01 * *Q
F¨ uggv´eny defin´ıci´ oj´ anak jobb oldal´ an” term´eszetesen haszn´alhatjuk a ” be´ep´ıtett matematikai f¨ uggv´enyeket, de a Mathematica m´as f¨ uggv´enyeit is. P´eld´ aul: =*W , - 4+ ' "0 C+ +I B =*W 4 1-x
T¨obb utas´ıt´ asb´ ol a´ll´ o elj´ ar´ ast is defini´ alhatunk ´ıgy (figyelj¨ uk meg, hogy az utas´ıt´ asok sorozat´at z´ar´ ojelbe kell tenn¨ unk): ( @ , , - =*W A**! +I ( @ ) -1
Az azonnali ´ert´ekad´ as szintaktikailag csup´ an abban k¨ ul¨ onb¨ ozik a k´esleltetett megad´asi m´odt´ ol, hogy enn´el az jelet (teljes alakban: 6) kell ovid´ıt´ese) helyett. A szemanhaszn´ alnunk a O jel (ami a 67) r¨ tikai k¨ ul¨ onbs´eget a k¨ovetkez˝o p´eld´ an ´erz´ekeltetj¨ uk. Tegy¨ uk fel, hogy az f
106
3. Fejezetek a matematik´ab´ ol
szimb´olummal akarjuk jel¨ olni az exp ◦ sin kompoz´ıci´ of¨ uggv´eny deriv´altj´ at. K´esleltetett ´ert´ekad´ assal ezt ´ıgy tudatjuk a Mathematic´ a val: A * * +, - D 4+ " + +
Ha ezut´ an p´eld´ aul a f¨ uggv´eny helyettes´ıt´esi ´ert´ek´ere vagyunk k´ıv´ ancsiak, akkor a program hiba¨ uzenetet k¨ uld: * Global::ivar: 3 is not a valid variable. Sin[3] D[E , 3]
K´esleltetett ´ert´ekad´ asn´ al a Mathematica nem sz´amolja ki automatikusan an a´ll´ o kifejez´est, csup´an a transzform´ aci´ os szab´alyt a O jel jobb oldal´ ast u ´gy hajtja v´egre, hogy a 3 sz´amot form´ alisan jegyzi meg. Az 5*F, utas´ıt´ behelyettes´ıti a defin´ıci´ o jobb oldal´ aba, ´es ezut´an pr´ ob´ alja ki´ert´ekelni az ´ıgy kapott kifejez´est. Ebben az esetben ez nem m˝ uk¨ odik. A megold´as az azonnali ´ert´ekad´ as. Ekkor a program r¨ ogt¨ on ki´ert´ekeli az jel jobb oldal´an megadott kifejez´est, azaz minden olyan m˝uveletet elv´egez, amelyre kor´abban megtan´ıtott´ ak: A * * +, D 4+ " + + Sin[x] E Cos[x] * * G Sin[3] Sin[1 + a] {E Cos[3], E Cos[1 + a]}
Mivel vektorokat list´ aval adhatunk meg (l´ asd a 3.8.1. pontot), ez´ert t¨obbv´ altoz´os f¨ uggv´enyeket is egyszer˝ uen defini´ alhatunk. Az al´ abbi p´eld´ aban egy u f¨ uggv´enyt ´ertelmez¨ unk: C2 → C3 t´ıpus´ A * * +, (, - 4+ +G( +I (I " +G(I
A Mathematic´ a ban tiszta f¨ uggv´enyk´ent eml´ıtik a matematik´aban megszokott x → f (x) megad´asi m´odot. Az x → x2 + x + sin(x) f¨ uggv´enyt ´ıgy is defini´ alhatjuk: @ ! + +I G + G " + 2 Function[x, x + x + Sin[x]]
3.1. Alapvet˝o matematikai fogalmak
107
@ Q 6.9093
R¨ovidebb alakban ezt a f¨ uggv´enyt ´ıgy is megadhatjuk: @ .I G . G " ./ 2 #1 + #1 + Sin[#1] & @ Q 6.9093
A fenti utas´ıt´ asban a P jel utal a f¨ uggv´eny v´ altoz´oj´ ara, a jel pedig arra, hogy itt f¨ uggv´enyr˝ ol van sz´o. (Ez a fajta megad´ asi m´od ismer˝os lehet a LISP nyelvben j´ aratosak sz´am´ara.) Az eml´ıtett p´eld´ akban nevet adtunk a f¨ uggv´enynek. Gyakran viszont ´eppen az´ert haszn´ aljuk ezt a megad´asi m´odot, hogy ne kelljen k¨ ul¨ on elnevezni egy olyan f¨ uggv´enyt, amely csak egy m˝ uveletben szerepel ´es a tov´abbiakban nincs sz¨ uks´eg r´a. Tiszta f¨ uggv´eny c´elszer˝ u haszn´ alat´ at illusztr´alj´ ak a k¨ ovetkez˝o p´eld´ ak: .I/ {1, 4, 9} ! + +I G$G! 2 2 2 a + b +c G./ + 1 1 1 + 1 1 + 1 + x
T¨obbv´ altoz´os f¨ uggv´enyek a´br´ azol´as´an´ al mutatunk p´eld´ at arra, hogy egy Mathematica-f¨ uggv´eny opci´ oj´ aban tiszta f¨ uggv´enyt mire ´es hogyan lehet haszn´ alni. at az identit´asf¨ uggv´eny (ennek Tiszta f¨ uggv´eny megad´ as´an´ al a P jel teh´ unk meg arr´ ol, hogy a defin´ıhosszabb neve: )) jele. Ne feledkezz¨ obbv´ altoz´os f¨ uggv´enyeket is megadhatunk ilyen ci´ot a jellel kell lez´arni. T¨ oli az n-edik v´ altoz´ot: m´odon. Ekkor P jel¨ .I G .I/ 2 3 #1 + #2
108
3. Fejezetek a matematik´ab´ ol + ( 2 3 x + y
Hasznos ´es a matematik´aban megszokottn´ al a´ltal´ anosabb konstrukci´ ok is oli a v´ altoz´ok o¨sszess´eg´et, PP pedig a v´ altoz´ok o¨sszesel˝ofordulnak. PP jel¨ s´eg´et az n-edik v´ altoz´ot´ol kezdve: * .. ../ + ( f[x, y, x, y]
* .. ../ + ( + f[x, {y, x}, x, {y, x}]
* .. ./ $ ! f[b, c, a]
V´eg¨ ul k´et ¨osszetettebb p´elda k¨ ovetkezik: A * # ( * .. ./ $ ! $ {f[b, c, a], f[bp, ap]}
* .. ./ $ ! $ {f[{a, b, c}], f[{ap, bp}]}
Annak magyar´ azata, hogy l´ atsz´olag nem kell el˝ore r¨ ogz´ıteni, hogy egy f¨ uggv´enynek h´ any v´ altoz´o ja van, az elvekr˝ ol sz´ol´ o 2.3.2. pontban tal´ alhat´ o. • Felt´ etelekkel megadott f¨ uggv´ enyek Az eddig felsorolt f¨ uggv´enymegad´ asi m´odokat k´enyelmesen haszn´alhatjuk azokban az esetekben, amikor f¨ uggv´eny¨ unk az eg´esz Cn halmazon egyetlen k´eplettel van defini´ alva. A Mathematica csak eg´esz sz´amokra sz´amolja ki a helyettes´ıt´esi ´ert´eket akkor, ha a f¨ uggv´enyt ´ıgy defini´ aljuk: * +,6 - +I * C * CQ * * * "5 ) * "5 F 1 {4, f[-2.], f[ ], 9, 4, f[Sqrt[7]]} 2
Az f¨ uggv´eny helyett a fenti mint´ azatba be´ırhatjuk p´eld´ aul a 4, a , a 9 vagy a 6)& f¨uggv´enyeket is.
3.1. Alapvet˝o matematikai fogalmak
109
A felt´etelekben logikai ´ert´ekeket felvev˝o f¨ uggv´enyeket p´eld´ aul ´ıgy haszn´ alhatunk: +,V0$? - +I G 6 Q ( 27 , g[y]} {-46 + 9 I, 9.261, 8
A mint´ azatQfelt´etel” szerkezetre egy m´asik p´elda: ” @ +,6 (,6 V ! 1 D 1 1 J ) - +G( @ ) @ @ C> F @ {er[7], h[{1, 1}], er[2], h[2]}
(Figyelj¨ uk meg, hogy a felt´etelt le´ır´ o jelsorozatot g¨omb¨ oly˝ u z´ ar´ ojelek k¨ oz´e kell ´ırnunk.) ovid alakja a $R jelsorozat), az 5, a S88 vagy A 4 (ennek r¨ ar´ ast is haszn´alhatjuk: a 6B8 elj´
,6 - ; C > FQ> {p[-3], 120, p[7.5]}
J B
A $R jel ut´ ani felt´etelt az argumentumba is be´ırhatjuk: A
,6 JB - ; C > FQ> {p[-3], 120, p[7.5]}
T¨obbv´ altoz´os f¨ uggv´enyeket is megadhatunk ilyen m´ odon: 0 , - I 8! ? 6 ? 0 C 0 BQ> 0 ) {{1, 4}, m[{0.5, 3}], m[{{1, 2}, {3, 4}}]}
Periodikus f¨ uggv´enyt a 4 elj´ ar´ assal ´ıgy ´ertelmezhet¨ unk: A * * +, B+ - C +C +G * +, + - CA & +C * +, C+B - C* C+ * +, +C - * +G) * +, + - * +C)
110
3. Fejezetek a matematik´ab´ ol & * + + CM M != CJ CFQ> CQ> > C 2 1
-7.5
-5
2.5
-2.5
5
7.5
-1 -2
Mutatunk egy p´eld´ at a S88 elj´ ar´ as haszn´alat´ ara: A @ @ +, - X@!@ +B +I +J> +I B @ C) @ F @ {16, 343, 0}
V´eg¨ ul egy olyan f¨ uggv´enyt defini´ alunk, amely eg´esz sz´amokhoz az a, a b vagy a c szimb´olumot rendeli att´ ol f¨ ugg˝ oen, hogy a sz´ am 3-mal val´o oszt´as´anak marad´eka 0, 1 vagy 2: +,6 - "Y !@ ' + B $ ! Q N > {a, r[3.], b, c}
• F¨ uggv´ enyjel¨ ol´ esi m´ odok A Mathematic´ a ban az f f¨ uggv´eny x helyen f¨ olvett ´ert´ek´enek
5*, jel¨ ol´es´en k´ıv¨ ul haszn´ alatosak m´eg a k¨ovetkez˝ok is: az
5 %
3.1. Alapvet˝o matematikai fogalmak
111
prefix alak (amelyn´el — a hagyom´ anyos jel¨ol´est˝ol elt´er˝ oen — nem kell f´elbeszak´ıtanunk a f¨ uggv´enyhez tartoz´ o jelsorozat le´ır´ as´at az argumentum kedv´e´ert), az
$$ 5 posztfix alak (p´eld´ aul a T $$ 5 jelsorozatot g´epelj¨ uk be, hogy a legutols´ o eredm´enyt ne kelljen m´eg egyszer be´ırnunk), v´eg¨ ul pedig (p´eld´ aul a halmazm˝ uveletek szeml´eletes megjelen´ıt´ese c´elj´ ab´ ol) k´etv´ altoz´os f¨ uggv´enyek eset´en az
U5U) infix alak. P´eld´ aul: A * * + * + G ( * + G ( {f[x], f[x] + y, f[x + y]} + G ( * I) G {f[x + y], 2.31607} $ !H H ' {a, b, c, d, e}
• M˝ uveletek f¨ uggv´ enyekkel Aritmetikai m˝ uveleteket v´egezhet¨ unk C → C t´ıpus´ u f¨ uggv´enyekkel. K´epezhetj¨ uk p´eld´ aul az o¨sszeg¨ uket: @ * G @ (f + g)[2]
Ahhoz viszont, hogy explicite megkapjuk az ¨osszeget, sz¨ uks´eg¨ unk van a 88 f¨uggv´enyre:
@@ @ f[2] + g[2]
Oper´ atorokkal is hasonl´ oan j´ arhatunk el, amint az kider¨ ul az al´abbi p´eld´ akb´ ol:
112
3. Fejezetek a matematik´ab´ ol 6' ( G D . +/ +I 2 (Identity + (D[#1, x] & ))[x ]
@@ : 2 x + x
2
¨ uggv´enyt haszn´ alOsszetett f¨ uggv´eny k´epz´es´ehez a 4 bels˝o f¨ hatjuk: A * @ @ * +, - +I +, - "5 +C @ A0 * @ + {Composition[f, g], -1 + x}
@ A0 * @ + 2 {Composition[g, f], Sqrt[-1 + x ]}
Igen gyakran el˝ ofordul, hogy ugyanazt a f¨ uggv´enyt akarjuk egym´ as ut´ an t¨ obbsz¨ or is alkalmazni, vagyis egy t¨ obbsz¨ or¨ osen ¨osszetett f¨ uggv´eny ´ert´ek´et akarjuk kisz´am´ıtani. Ezzel a t´emak¨orrel r´eszletesen foglalkozunk majd a programoz´ asr´ ol sz´ol´ o, 4. fejezetben, mivel az itt r¨ oviden ismertetett konstrukci´ ok a rekurzi´ o , s˝ot a´ltal´ anosabban a funkcion´ alis programoz´ as alapvet˝o eszk¨ozei: * + f[f[f[x]]]
% * + {x, f[x], f[f[x]], f[f[f[x]]]}
√ A 2 sz´am k¨ozel´ıt˝ o ´ert´ekeit Newton-f´ele iter´aci´ oval p´eld´ aul ´ıgy kaphatjuk meg: (= +, - +G+ % (= QB > {1., 1.5, 1.41667, 1.41422, 1.41421, 1.41421}
Az iter´aci´ os l´ep´esek sz´am´at is v´altoztathatjuk:
3.1. Alapvet˝o matematikai fogalmak
113
+'& (= 1.41421 +'& % (= {1, 1.5, 1.41667, 1.41422, 1.41421, 1.41421, 1.41421} +'& % (= "0 CJ #$ .C. BQIC/ {1, 1.5, 1.41667, 1.41422}
Ha pedig egy kifejez´esb˝ol kiindulva egy (´ altal´ aban k¨ ul¨ onb¨ oz˝o) f¨ uggv´enyekb˝ ol a´ll´ o lista elemeit akarjuk alkalmazni az eredm´enyre egym´as ut´ an, ast haszn´alhatjuk: akkor a 4 utas´ıt´ A * @ A0 % * @+ {x, f[x], g[f[x]], h[g[f[x]]]}
Itt eml´ıtj¨ uk meg az eg´esz egy¨ utthat´ os polinomok k¨ or´eben haszn´ alhat´ o
7 bels˝o f¨uggv´enyt, amely a beadott polinomot alacsonyabb foksz´am´ u eg´esz egy¨ utthat´ o j´ u polinomok kompoz´ıci´ o j´ ara pr´ ob´ alja felbontani. P´eld´ aul: 5 +, - +INC+I>G>+I)C>+IC+IG+G D!0 5 + + 2 3 {2 - 3 x + 2x + x , (-1 + x) x}
A kapott eredm´eny azt jelenti, hogy q a +, - :
2 3 2 - 3 x + 2 x + x +, - ::
(-1 + x) x
polinomoknak ebben a sorrendben vett kompoz´ıci´ oja. Val´ oban: 5 + 4+ '
+ True
Megjegyezz¨ uk m´eg azt, hogy a dekompoz´ıci´ o m˝ uvelete nem egy´ertelm˝ u. armely a val´ os sz´am eset´en ´erv´enyes Val´ oban, ha p1 ´es p2 polinom, akkor b´ a p1 ◦ p2 = p¯1 ◦ p¯2 egyenl˝os´eg, ahol p¯1 (x) := p1 (x − a),
p¯2 (x) := p2 (x) + a
(x ∈ R).
114
3. Fejezetek a matematik´ab´ ol
A Mathematica a v´egeredm´enyt u ´gy adja meg, hogy a bels˝ o polinom a´lland´ o tagj´ at 0-nak v´ alasztja. ´ Ugy t˝ unik, mintha k¨ onnyen lehetne inverz f¨ uggv´enyt sz´amolni: 6 1 ! 4+ Log 6 1 ! * 6 1 ! * + (-1) (-1) {f , f [x]}
A program a f¨ uggv´enyek kompoz´ıc´oj´ anak inverz´ere vonatkoz´o ´all´ıt´ ast is ismeri: 6 1 ! A0 * (-1) (-1) Composition[g , f ] : + (-1) (-1) g [f [x]]
Ezeket k¨ ovetkezetesen alkalmazza: 6 1 ! " 6 1 ! #!" {ArcSin, Sin} A0 " #!" + x A0 #!" " + ArcSin[Sin[x]]
Ha viszont nem be´ep´ıtett, b´ ar k¨ onnyen invert´ alhat´ o f¨ uggv´ennyel van ar´ as nem seg´ıt: dolgunk, akkor az elj´ 6 1 ! ! + + G (-1) Function[x, 2 + 3 x] : (-1) Function[x, 2 + 3 x] [t]
Egy lehets´eges — kev´es esetben haszn´alhat´ o — megold´as:
3.1. Alapvet˝o matematikai fogalmak
115
1 +, - ' "1 G +
1 + -2 + x 3
• Rekurz´ıv m´ odon megadott sorozatok K¨ ul¨ on alpontban k´ıv´ anjuk felh´ıvni az Olvas´ o figyelm´et arra, hogy k´etf´elek´eppen is megadhat rekurz´ıv m´odon defini´ alt sorozatokat. Ha az
5*N, O 5*, 5*2+, @ 5*2(, szerkezet˝ u szintaxissal adja meg a sorozat tagjai k¨ oz¨ott fenn´ all´ o ¨osszef¨ ugg´est, akkor a program megjegyzi (a mem´ori´ aban elrakt´ arozza) az egyszer m´ar kisz´amolt f¨ uggv´eny´ert´eket. Ha a matematik´aban megszokott jel¨ ol´esekhez k¨ozelebb ´all´ o
5*N, O 5*2+, @ 5*2(, t´ıpus´ u szintaxist v´ alasztja, akkor a Mathematica a szab´alyos ki´ert´ekel´esi elj´ ar´ ast (l´asd a 2.3.5. pontot) alkalmazza. Ebben az esetben az 5*(M, helyettes´ıt´esi ´ert´ek meghat´aroz´as´ahoz p´eld´ aul az 5*G, f¨ uggv´eny´ert´eket a program t¨ obbsz¨ or is kisz´amolja. Az elmondottakb´ ol az k¨ovetkezik, hogy az els˝ o esetben a ki´ert´ekel´es gyorsabb, de t¨ obb mem´ori´ at ig´enyel, mint a m´ asodik esetben. A k¨ ovetkez˝o p´eld´ ak azt is mutatj´ ak, hogy a fenti k´et m´odszerrel t¨ ort´en˝ o ki´ert´ekel´eshez sz¨ uks´eges id˝ otartamok l´enyegesen elt´er˝oek is lehetnek: A * * B * C "5 > * , - * * C G * C * B "0 *( 123 - 55 Sqrt[5] 2
N´ezz¨ uk meg a 20. tag kisz´amol´as´ahoz sz¨ uks´eges id˝ otartamot:
0 * B {0.988 Second, Null}
Most v´ alasszuk a m´asik megad´ asi m´odot:
116
3. Fejezetek a matematik´ab´ ol A * * B * C "5 > * , - * C G * C * B "0 *( 123 - 55 Sqrt[5] 2
Ekkor a 20. tag kisz´ amol´as´ahoz sz¨ uks´eges id˝ otartam:
0 * B {158.459 Second, Null}
A sz´oban forg´ o sorozat kezd˝otagjait pontos numerikus ´ert´ekekkel definia´ltuk, ez´ert a program a pontos eredm´enyt adta meg. Ennek a sorozatnak a tagjai nagy indexek eset´en 0-hoz k¨ ozeli” ´ert´ekeket vesznek fel, azaz a ” sorozatnak 0 a hat´ ar´ert´eke. (Hogyan lehetne ezt bebizony´ıtani?) Tov´abbi k´ıs´erleteket is ´erdemes elv´egezni. Hajtsuk v´egre a fenti utas´ıt´ asokat u ´gy, hogy a sorozatnak p´eld´ aul az els˝o tagj´ at k¨ ozel´ıt˝ o numerikus ´ert´ekekkel adjuk meg. Ekkor a program numerikus m´ odszereket alkalmaz a ki´ert´ekel´esn´el. Ha az id˝ oeredm´enyeket ¨osszehasonl´ıtjuk, akkor tapasztalhatjuk azt is, hogy a numerikus algoritmusok mennyivel gyorsabbak a pontos algoritmusokn´ al. Ugyanezen a p´eld´ an illusztr´alhatjuk k¨ ozel´ıt˝ o ´ert´ekekkel val´o sz´amol´asok eset´eben a kerek´ıt´esi hib´ ak terjed´es´enek k¨ovetkezm´enyeit is. Figyelj¨ uk meg, hogy k¨ ozel´ıt˝ o kezd˝o´ert´ekekkel ind´ıtva a sorozatot, m´ar a 40-50. tag is t´ avol” van a 0 sz´amt´ol. Magyar´ azzuk meg, hogy az ´ıgy kapott numerikus ” eredm´eny mi´ert nincsen o¨sszhangban az im´ent jelzett elm´eleti eredm´ennyel.
3.1.5. F¨ uggv´ enyek ´ abr´ azol´ asa Ebben a pontban a Mathematic´ a nak azokat a grafikai lehet˝ os´egeit mutatjuk be, amelyek explicit, implicit vagy param´eteres alakban megadott egy ´es t¨ obbv´ altoz´os f¨ uggv´enyek megjelen´ıt´es´et teszik lehet˝ov´e. A be´ep´ıtett elj´ ar´ asok a s´ ug´ ojukban (p´eld´ aul Q0) megadott szintaxist k¨ ovetve sok esetben a beadott f¨ uggv´eny menet´enek megfelel˝o sz´ep a´br´ at k´esz´ıtenek. A Mathematica egyik legfontosabb jellegzetess´ege az, hogy opci´ ok megad´ as´aval a felhaszn´ al´ o sokf´elek´eppen befoly´ asolhatja az ´abr´ azol´as menet´et, ´es k´esz´ıthet az ig´enyeinek megfelel˝o k´epet. A k¨ ul¨ onb¨ oz˝o esetekben haszn´alhat´ o bels˝ o f¨ uggv´enyek nev´et a szok´ asos m´odon kapjuk meg:
3.1. Alapvet˝o matematikai fogalmak VR& R ContourPlot DensityPlot ListContourPlot ListDensityPlot ListPlot
117
ListPlot3D ParametricPlot ParametricPlot3D Plot3D Plot
A fenti parancs a 0 jelsorozatot tartalmaz´ o opci´ oneveket is megadja. Ezeket itt nem soroltuk fel. T¨ obb programcsomag szint´en tartalmaz ´abr´ akat rajzol´ o f¨ uggv´enyeket. • Az ´ abr´ azol´ as mechanizmusa A f¨ uggv´eny´ abr´ azol´as m˝ uk¨ od´es´et az f (x) := sin3 x (x ∈ R) f¨ uggv´eny p´eld´ aj´ an ´erz´ekeltetj¨ uk. Az f f¨ uggv´eny [−π, π] intervallumra vett lesz˝ uk´ıt´es´enek k´ep´et ´ıgy kapjuk meg: A * * +, - " +I & * + + C& & 1 0.5
-3
-2
-1
1
2
3
-0.5 -1
A 0 f¨ uggv´eny a bels˝ o algoritmusa ´altal meghat´ arozott m´odon v´ alaszt v´eges sok pontot (mintapontok nak nevezz¨ uk ezeket) a [−π, π] intervallumb´ ol. A program kisz´amolja ezekben az f f¨ uggv´eny helyettes´ıt´esi ´ert´ek´et. K´epezi, majd koordin´ ata-rendszerben a´br´ azolja az (x, f (x)) p´ arokat. A kapott pontokat szakaszokkal k¨ oti o¨ssze.
118
3. Fejezetek a matematik´ab´ ol
A kiv´ alaszt´asi algoritmus az adott ´abr´ azol´asi intervallum n egyenl˝ o r´eszre uggv´eny 00 opci´o j´ aban lev˝ o oszt´as´aval kezd˝ odik, ahol n a 0 f¨ pozit´ıv eg´esz sz´am. A Mathematica ezut´an kisz´amolja az els˝o h´ arom mintapontban — xi -vel (i = 1, 2, 3) jel¨ olj¨ uk ezeket — felvett f (xi ) (i = 1, 2, 3) f¨ uggv´eny´ert´ekeket. Meghat´ arozza az (x1 , f (x1 )) ´es az (x2 , f (x2 )), valamint az (x2 , f (x2 )) ´es az (x3 , f (x3 )) pontokat o¨sszek¨ot˝o szakaszok sz¨og´et. Ha ez a sz¨og 180o -hoz k¨ozeli (pontosabban az elt´er´ese 180o -t´ol kisebb, mint uggv´eny #L opci´o j´ anak fokban megadott ´ert´eke), akkor a a 0 f¨ program megrajzolja az els˝ o szakaszt. Az ellenkez˝o esetben a feloszt´ast ado szakaszokat tal´al, vagy dig finom´ıtja, am´ıg 180o -hoz k¨ozeli sz¨oget bez´ar´ pedig az elv´egzett feloszt´asok sz´ama el´eri a 07 opci´oban szerepl˝ o ´ert´eket. Az elj´ar´ as teh´at nagyobb g¨ orb¨ ulet˝ u pontok ´es szingularit´asok k¨ ornyezet´eben s˝ ur´ıti a mintapontokat. Az f f¨ uggv´eny a´br´ azol´as´ahoz az opci´ok alap´ertelmez´esben megadott ´ert´ekeit haszn´altuk. Ezek a k¨ ovetkez˝ok: 2 & & & +S ' & D1 {PlotPoints -> 25, MaxBend -> 10., PlotDivision -> 20.}
• Val´ os–val´ os f¨ uggv´ enyek ´ abr´ azol´ asa uk´ıt´es´enek a k´ep´et a Az f f¨ uggv´eny [x0 , x1 ] intervallumra vett lesz˝
0*5*,. -. M. +/, utas´ıt´ as adja meg. Az f f¨ uggv´enyt nem kell el˝ ore defini´ alnunk, 5*, hely´ere a gondolt f¨ uggv´eny -ben felvett helyettes´ıt´esi ´ert´ek´et is be´ırhatjuk. Az M ´es az + ´ert´ekek lehetnek eg´esz sz´amok, val´odi t¨ ortek, val´ os sz´amok, bizonyos be´ep´ıtett matematikai ´alland´ ok (l´asd a 3.1.3. pontot) vagy 6*G,, *0, t´ıpus´u szimbolikus sz´amok. P´eld´aul: & + + I G "5 F & + + % & "5 >
Az ´abr´ azoland´ o f f¨ uggv´eny defin´ıci´ o j´ aban, valamint 0 els˝o argumentum´aban be´ep´ıtett matematikai f¨ uggv´enyeket is megadhatunk. N´eh´ any uggv´enyt, az bels˝o f¨ uggv´ennyel ilyen esetben azonban a 0 f¨ egy¨ utt, a k¨ ovetkez˝o m´odon kell haszn´ alni:
0**5*,,. -. M. +/,
3.1. Alapvet˝o matematikai fogalmak
119
Ilyen esetekre h´ıvja fel a figyelmet az al´ abbi p´elda. Tegy¨ uk fel, hogy egy f¨ uggv´eny deriv´altj´ at szeretn´enk felrajzoltatni. Az egyszer˝ us´eg v´egett legyen ez a cos f¨ uggv´eny, az ´abr´ azol´as intervalluma pedig a [−π, π] intervallum. Az egyik lehets´eges megold´as az, hogy a f¨ uggv´eny deriv´altj´ at szimboliuggv´enyt felhaszn´ alva defini´ aljuk (´es p´eld´ aul az kusan kisz´ amol´o 7 bels˝o f¨ f szimb´olummal jel¨olj¨ uk) a sz´oban forg´ o f¨ uggv´enyt: A * * +, D A + + -Sin[x]
(Figyelj¨ uk meg, hogy azonnali ´ert´ekad´ assal (l´ asd a 3.1.4. pontot) ´ertelmezt¨ uk f -et.) A & * + + C& &
utas´ıt´ as v´egrehajt´ asa ut´an a k´eperny˝ on megjelenik a v´ art a´bra. Pr´ ob´ aljuk meg most f -et k´esleltetett ´ert´ekad´ assal defini´ alni, majd a´br´ azolni: A * * +, - D A + + & * + + C& &
A program a f¨ uggv´eny k´epe helyett hiba¨ uzeneteket k¨ uld. Ugyanezt kapjuk akkor is, ha a k¨ ozvetlen utat v´alasztjuk: & D A + + + C& &
A hiba¨ uzenetek magyar´azata a k¨ovetkez˝o. A 0 f¨ uggv´eny alap´ertelmez´esben nem ´ert´ekeli ki az els˝o argumentum´ at, teh´ at nem v´egzi el szimbolikusan a kijel¨ olt m˝ uveletet. Ehelyett az el˝ oz˝o alpontban elmondottak szerint veszi az a´br´ azol´asi intervallum els˝o mintapontj´ at, majd ennek az els˝o argumentumba val´ o form´ alis behelyettes´ıt´ese ut´an pr´ ob´ alja azt ki´ert´ekelni. Az adott esetben teh´ at a 7*4 *20,. 20, kifejez´est kapja, amit nem tud ki´ert´ekelni. A program ezt a t´enyt k¨ ozli a felhaszn´ al´ oval ´es le´all´ıtja az ´abr´ azol´ast. uggv´ennyel k´enyszer´ıthetj¨ uk a Mathematic´ a t arAz bels˝o f¨ at, ra, hogy el˝ osz¨or szimbolikusan sz´amolja ki a a 0 els˝o argumentum´ ´es az ´ıgy kapott eredm´enybe helyettes´ıtse be a mintapontokat. Az al´ abbi utas´ıt´ asok m´ar a v´ art eredm´enyt adj´ ak: & 41 * + + C& & & 41 D A + + + C& &
120
3. Fejezetek a matematik´ab´ ol
T¨obb, azonos intervallumon defini´ alt f¨ uggv´enyt egy koordin´ ata-rendszeraban lista elemeik´ent ben u ´gy a´br´ azolhatunk, hogy a 0 els˝o argumentum´ adjuk meg a f¨ uggv´enyek ´ altal´ anos helyettes´ıt´esi ´ert´ek´et: & +I) +I +I + +I +I +I) + B
K¨ ul¨ onb¨ oz˝o intervallumokon ´ertelmezett f¨ uggv´enyek ´abr´ azol´as´ahoz pedig a 68B bels˝o f¨uggv´enyt haszn´alhatjuk. List´ akat k´enyelmesen p´eld´ aul a & be´ep´ıtett f¨ uggv´ennyel k´epezhet¨ unk (l´ asd a 3.8.1. pontot). Sz´ amunkra kev´esb´e ´erthet˝o, de fontos t´eny az, uggv´ennyel rajzolja fel hogy a 0 ebben az esetben csak az f¨ a k´ıv´ ant a´br´ at: & 41
$ +I= +I= = ) + B 1 0.8 0.6 0.4 0.2
0.2
0.4
0.6
0.8
1
• Opci´ ok Amikor a Mathematica felrajzolja egy f¨ uggv´eny k´ep´et, akkor sz´ amos dolgot el kell d¨ ontenie. P´eld´ aul azt, hogy hova helyezze a koordin´ atatengelyeket, mekkora egys´egeket v´ alasszon ezeken stb. A program igen sok esetben j´ol v´ alaszt, ´es a f¨ uggv´eny menet´enek megfelel˝o sz´ep a´br´ at k´esz´ıt. Opci´ ok megad´ as´aval azonban a felhaszn´ al´ onak lehet˝os´ege van arra is, hogy sz¨ uks´eg eset´en maga d¨ onts¨ on bizonyos hasonl´ o jelleg˝ u k´erd´esekben. A rajzol´ ast v´egz˝o f¨ uggv´enyek is rendelkeznek opci´ okkal. Minden opci´onak meghat´arozott neve ´es egy alap´ertelmez´es szerinti ´ert´eke van. Ezt haszn´ alja a program abban az esetben, ha nem adjuk meg az opci´ ot.
3.1. Alapvet˝o matematikai fogalmak
121
A 2.3.3. pontban m´ ar volt arr´ ol sz´o, hogy a 0 f¨ uggv´eny 27 opci´ oval rendelkezik. Ezek nev´et ´es az alap´ertelmez´es szerinti ´ert´ek´et az 2 &
utas´ıt´ assal kapjuk meg. A megengedett opci´ ok k¨ oz¨ ul az opci´o neve −> opci´o ´ert´eke alakban ak´ arh´ anyat megadhatunk. A k¨ ul¨ onb¨ oz˝oket a . jellel kell elv´ alasztanunk. A k¨ ovetkez˝o p´eld´ ak illusztr´alj´ ak azt, hogy az opci´ok egyik r´esze az ´abr´ ak csinos´ıtgat´ as´ at teszi lehet˝ov´e: & + +I +I + B & " ( CJ @!= BQBBM D@ QB> QB EOSA B B 1 0.8 0.6 0.4 0.2
0.2
0.4
0.6
0.8
´ Erdemes v´egrehajtani a k¨ ovetkez˝o utas´ıt´ ast is: & +C% + + BQ #+" ( CJ @!= BQB #+2 CJ B B #+%$ CJ T+T T(T & E CJ BQ Q>
!= CJ B & CJ + T+C +T Q & %$ CJ 0 TA $$ Z $T T& CS'T
1
122
3. Fejezetek a matematik´ab´ ol
¨ Osszetett ´abr´ akat c´elszer˝ u r´eszenk´ent elk´esz´ıteni, majd az eredm´enyeket egyszerre megjelen´ıteni. Ehhez ny´ ujt seg´ıts´eget a
7 ) opci´o, amelynek lehets´eges ´ert´ekei ) ´es <7 ). Az $ & +C% + + BQ D ( ! CJ 6' (
utas´ıt´ as azt a sz´and´ekunkat k¨ ozli a Mathematic´ a val, hogy k´esz´ıtse el az u v´ al´abr´ azol´ashoz sz¨ uks´eges sz´amol´asokat, ezt rakt´arozza el az & nev˝ toz´oban ´es az eredm´enyt ne jelen´ıtse meg a k´eperny˝ on. (Nem el´eg 0*, ut´ an R-t ´ırni, mint gondoln´ ank.) Egy k´es˝obbi id˝ opontban a
68B bels˝o f¨ uggv´eny a sz´am´ıt´ asok ism´etelt elv´egz´ese n´elk¨ ul viszi k´eperny˝ ore az elk´esz´ıtett ´abr´ at: "@Y $ #+%$ CJ T+T T(T D ( ! CJ UD ( !
• T¨ obbv´ altoz´ os f¨ uggv´ enyek Ebben az alpontban az explicit alakban megadott R2 → R ´es R3 → R t´ıpus´ u f¨ uggv´enyek szeml´eltet´es´ehez haszn´alhat´ o
7 )0 40
0F7
bels˝o f¨ uggv´enyekr˝ ol, a :8 340F73 csomagban l´ev˝o
40F7 valamint a :8 3:8 3 programcsomagban elhelyezett
68 B0F7 k¨ uls˝ o f¨ uggv´enyekr˝ ol lesz sz´o. Az opci´ ok a felhaszn´ al´ onak itt is igen sok lehet˝os´eget k´ın´ alnak az ig´enyeinek megfelel˝o ´abra elk´esz´ıt´es´ehez. A r´eszletek ismertet´es´et˝ol eltekint¨ unk. Csup´ an azt eml´ıtj¨ uk meg, hogy sz´amos esetben megel´egsz¨ unk azzal a k´eppel, amit az opci´ ok alap´ertelmez´es szerinti ´ert´ekeivel kapunk.
3.1. Alapvet˝o matematikai fogalmak
123
K´etv´ altoz´os f¨ uggv´enyeket t´erbeli der´eksz¨og˝ u koordin´ ata-rendszerben a
0F7 f¨ uggv´ennyel a´br´ azolhatunk. A k¨ ovetkez˝o utas´ıt´ as eredm´enye p´eld´ aul a nyeregfel¨ ulet egy darabj´ anak a´rny´ekolt k´epe: & D +I C (I + C ( C
Az opci´ ok megv´altoztat´ as´aval t¨ obbek k¨ oz¨ott az ´arny´ekol´as m´odj´ at, az ´abr´ azol´as sz´ıneit ´es a n´ez˝opontot is m´ odos´ıtani tudjuk. A k¨ ovetkez˝o p´eld´ an n´eh´ any opci´ o jelent´es´et tanulm´ anyozhatjuk, ha a megadott ´ert´ekeket v´altoztatgatjuk: A * * +, (, - +I) G (I) C ) + ( G & D * + ( + C ( C & E CJ CQ > S+E CJ #+4' CJ C C C C C C %@ CJ A CJ
K´etv´ altoz´os f¨ uggv´enyt ´es az ´altala meghat´ arozott fel¨ ulet valamelyik koordin´ atas´ıkra vett ´arny´ekolt vet¨ ulet´et a :8 3:8 F73 programcsomag
68 B0F7 f¨ uggv´eny´evel kaphatjuk meg. Olvassuk be ezt a programcsomagot ´es pr´ob´ aljuk ki az al´ abbi utas´ıt´ asokat: O @!KO @!DK "@'Y& D " + ( + B ( B "@'Y& D 4+ C+I G (I + C ( C "@'Y& CJ
K´etv´ altoz´os f¨ uggv´eny szintvonalas a´br´ aj´ at a
40 bels˝o f¨ uggv´ennyel k´esz´ıthetj¨ uk el. A fentebb defini´ alt f f¨ uggv´eny szintvonalait ´ıgy kapjuk meg:
124
3. Fejezetek a matematik´ab´ ol A & * + ( + C ( C A CJ C C C B A2 CJ O(%1 A ! CJ O(%1 C.I/ S!= ' CJ O(%1
A 40 h´ aromdimenzi´os megfelel˝oje a
40F7 f¨ uggv´eny, amely a :8 340F73 programcsomagban tal´ alhat´ o. Haszn´alata el˝ ott be kell h´ıvni ezt a programcsomagot: O @!KA & DK A & D
+ ( + C ( C C A CJ BQ
K´etv´ altoz´os val´os ´ert´ek˝ u f¨ uggv´enyt a
7 )0 bels˝o f¨ uggv´ennyel is a´br´ azolhatunk. Az ´ertelmez´esi tartom´any adott pontj´ aban a megvil´ ag´ıt´ as er˝oss´ege az ott felvett helyettes´ıt´esi ´ert´ekt˝ol f¨ ugg. A vil´agosabb pontban a f¨ uggv´eny ´ert´eke nagyobb, mint a s¨ ot´etebb pontban:
3.1. Alapvet˝o matematikai fogalmak
125
D (&
" + " ( + B & ( C& & & & CJ >B "@Y : A ! CJ O(%1 C.I/ "@Y : A ! CJ EOSA C. . B/
40 ´es 7 )0 egyar´ant a t´erk´ep´eszek ´altal haszn´alt a´br´at szolg´altat. • Param´ eteres alakban megadott g¨ orb´ ek ´ es fel¨ uletek u f¨ uggv´enyeknek Matematikai szempontb´ol Rn → Rm (n, m ∈ N) t´ıpus´ ´ atekintj¨ uk a param´eteres alakban megadott g¨orb´eket ´es fel¨ uleteket. Abr´ zolhatunk s´ıkbeli g¨orb´eket (n = 1 ´es m = 2), t´erg¨orb´eket (n = 1 ´es m = 3), valamint k´etdimenzi´ os fel¨ uleteket (n = 2 ´es m = 3). Param´eteres alakban megadott s´ıkg¨orb´et a
00 ´ bels˝o f¨ uggv´ennyel a´br´ azolhatunk. Erdemes kipr´ ob´ alni p´eld´ aul a k¨ ovetkez˝o utas´ıt´ asokat: &0 !& " A B & &0 !& " A B & "@Y : # ! CJ # 0 ! &0 !& A I " I B &
T´erg¨orbe szeml´eltet´es´ehez a k¨ovetkez˝o bels˝o f¨ uggv´enyt haszn´ alhatjuk:
00F7 &0 !& D
A I A " " B & &0 !& D 41
$ A " > B & S+E CJ
K´etdimenzi´ os fel¨ uleteket ezzel a f¨ uggv´ennyel is a´br´ azolhatunk: &0 !& D
A ICI " A " " A B & B & S+' CJ #+ CJ
126
3. Fejezetek a matematik´ab´ ol
Megjegyezz¨ uk, hogy a :8 300F73 programcsouggv´enyt. Ennek haszn´alamag szint´en tartalmaz 00F7 f¨ t´ aval a felhaszn´ al´ o maga is szab´alyozhatja az a´br´ azol´asn´al alkalmazott fel´ oszt´asok sz´am´at. Erdemes o¨sszehasonl´ıtani p´eld´ aul a k¨ ovetkez˝o utas´ıt´ asok eredm´eny´et: &0 !& D A A 1 " A 1 " 1 B & 1 C& & O @!K&0 !& DK &0 !& D A A 1 " A 1 " 1 B & &B 1 C& & &B
Tov´abbi p´elda egy sz´ep fel¨ uletre: &0 !& D A@ A @ A@ " @ C @ B &
Itt eml´ıtj¨ uk meg azt, hogy a :8 3:8 F73 programcsomag 68 B f¨uggv´eny´evel fel¨uletek koordin´atas´ıkokra vett a´rny´ekolt vet¨uleteit ´all´ıthatjuk el˝ o: O @!KO @!DK $ &0 !& D
" " " " A C& & B & != CJ D ( ! CJ 6' ( "@'Y $ D ( ! CJ UD ( ! ["@'Y CJ
3.1. Alapvet˝o matematikai fogalmak
127
• Forg´ asfel¨ uletek A :8 365593 programcsomagban meglev˝o
6559 k¨ uls˝ o f¨ uggv´ennyel k¨ ul¨ onb¨ oz˝o alakban megadott g¨orb´ek egyenes k¨or¨ uli meg´ forgat´ as´aval keletkez˝o fel¨ uleteket ´abr´ azolhatunk. Erdemes beolvasni ezt a programcsomagot is, ´es felrajzoltatni n´eh´ any forg´ asfel¨ uletet: O @!K"*!2*E1 K "*!2*E1 " + + B & 8Y8 ! CJ B B
!= CJ # 0 ! # 0 ! CQ B Q "*!2*E1 Q " I B & S+E CJ "*!2*E1 +I + B E1 #+ CJ
• Implicit alakban megadott g¨ orb´ ek Elm´eleti ´es gyakorlati szempontb´ol is komoly probl´ema az implicit alakban megadott g¨orb´ek vizsg´alata. Ehhez a program jelent˝ os t´amogat´ast ad.
128
3. Fejezetek a matematik´ab´ ol
A :8 303 programcsomagban meglev˝o
0 f¨ uggv´ennyel k´et k¨ ul¨ onb¨ oz˝o m´odszerrel a´br´ azolhatunk implicit alakban megadott egyv´ altoz´ os f¨ uggv´enyeket. A m´odszert a felhaszn´ al´ o a szintaxis alkalmas megad´as´aval v´ alasztja meg. Olvassuk be ezt a programcsomagot: O @!K60 ! & K
´es k´erj¨ unk inform´ aci´ ot a sz´oban forg´ o f¨ uggv´enyr˝ ol: V60 ! &
A Mathematica ´ altal adott v´ alaszb´ol kit˝ unik: megtehetj¨ uk, hogy csak az egyik v´ altoz´ot tartalmaz´ o intervallumot ´ırjuk be az 0 argumentum´aba, de mindk´et v´altoz´ora is kijel¨ olhet¨ unk intervallumot. ´ azoljuk az els˝ Abr´ o m´odszerrel p´eld´ aul a Descartes-f´ele levelet (figyelj¨ unk arra, hogy egyenletet a karakterekkel adunk meg): 60 ! & +I G (I + ( + C 2 1
-3
-2
-1
1
2
3
-1
-2
-3
-4
Az 0 f¨ uggv´eny ebben az esetben a 6 bels˝o f¨ uggv´enybe (l´ asd a 3.2. pontot) be´ep´ıtett szimbolikus egyenletmegold´o algoritmusokat arok meghat´aroz´as´ahoz. Pontosabhaszn´ alja az ¨osszetartoz´o . ) sz´amp´ ban, ha f (x, y) = 0 jel¨ oli az implicit egyenletet, akkor a program az f (x, y) = 0, ∂y f (x, y) = 0 egyenletrendszer szimbolikus megold´asait keresi.
3.1. Alapvet˝o matematikai fogalmak
129
Ha a 6 nem tal´ alja meg a beadott egyenlet megold´as´at, akkor ezt k¨ ozli a felhaszn´ al´ oval, ´es a program le´all´ıtja az ´abr´ azol´ast. Ez t¨ort´enik p´eld´ aul a k¨ ovetkez˝o esetben is: 60 ! & " + A ( + CF & > &
Az 0 harmadik argumentum´ aba be´ırhatunk egy ) v´ altoz´ot uggtartalmaz´o intervallumot is. Ekkor a program a 40 bels˝o f¨ v´enybe be´ep´ıtett numerikus algoritmusokat haszn´alja. Ezzel a m´odszerrel az el˝oz˝o p´eld´ aban megadott g¨ orb´et is ´abr´ azolhatjuk: 60 ! &
" + A ( + C& & ( C& & #+2 CJ B B & & CJ BB A0 ' CJ != CJ CB C> > C
4
-5
5 -4
Az implicit m´ odon megadott g¨ orb´ekr˝ol legt¨obb inform´ aci´ ot ny´ ujt´ o ´abra elk´esz´ıt´es´ehez a v´altoz´o(ka)t tartalmaz´ o intervallumo(ka)t alkalmas (az adott egyenletb˝ol nem leolvashat´o!) m´odon kell megv´ alasztani. Sz´amos esetben ehhez sok k´ıs´erletet kell elv´egezni. • Koordin´ ata-rendszerek A :8 3:8 3 programcsomagban meglev˝o
00 f¨ uggv´eny pol´ arkoordin´ at´ akban megadott g¨ orb´ekhez haszn´alhat´ o. Ennek az uggv´eny szintaxis´ahoz hasonl´ o. Olvassuk be elj´ ar´ asnak a szintaxisa a 0 f¨ ezt a programcsomagot, ´es pr´ob´ aljuk ki a k¨ ovetkez˝o utas´ıt´ ast:
130
3. Fejezetek a matematik´ab´ ol && ) G A ) A C B & & " ( CJ D@ BQB> BQB O(%1 BQ @!= BQB EOSA B B # ! E CJ # 0 !
A :8 300F73 programcsomag
680F7 f¨ uggv´eny´evel g¨ombkoordin´ at´akban megadott fel¨ uleteket ´abr´ azolhatunk: " @!& D @ B & @ B &
Hengerkoordin´ at´ akban megadott fel¨ uletek megjelen´ıt´es´et v´egezhetj¨ uk a
:8 300F73 programcsomag 4) 0F7 f¨ uggv´eny´evel. P´eld´ aul:
A( '!& D G" @RI B @ B & S+' CJ #+ CJ 8Y& CJ Q> CBQ> Q
• Diszkr´ et halmazon ´ ertelmezett f¨ uggv´ enyek A k¨ ovetkez˝o bels˝o f¨ uggv´enyeket haszn´alhatjuk:
40 7 )0
0 0F7
A :8 3# 3 programcsomag beolvas´asa ut´an a lehet˝ os´egeket az al´abbi k¨ uls˝ o f¨ uggv´enyek b˝ ov´ıtik:
0 & 0 0 40 40F7 0 0V 0V F7 68 B0F7 6559
650F7 0 0 0 # 0 000F7 0 0 6 0 0
3.1. Alapvet˝o matematikai fogalmak
131
• Komplex f¨ uggv´ enyek A :8 34#3 programcsomagban meglev˝o 0# ´es 4 # k¨uls˝o f¨uggv´enyeket komplex v´altoz´os ´es komplex ´ert´ek˝u f¨ uggv´enyek szeml´eltet´es´ere haszn´alhatjuk. A
4 # f¨ uggv´eny a val´ os ´es a k´epzetes tengellyel p´arhuzamos h´ al´ ozat adott f¨ uggv´eny ´altal l´etes´ıtett k´ep´et rajzolja fel. A
0# f¨ uggv´eny pedig az orig´ o k¨ oz´eppont´ u k¨ or¨ ok ´es az orig´ob´ ol kiindul´ o f´elegyenesek ´altal meghat´ arozott h´ al´ ozatnak az adott komplex f¨ uggv´eny szerinti k´ep´et ´abr´ azolja. A lehet˝os´egeket a k¨ovetkez˝o p´eld´ an ´erz´ekeltetj¨ uk. Megmutatjuk, hogy a T := {z ∈ C : 0 ≤ Re z ≤ 1, 0 ≤ Im z ≤ π/2 } komplex sz´amhalmazt ´es az exponenci´alis f¨ uggv´eny a´ltal l´etes´ıtett k´ep´et hogyan lehet szeml´eltetni. El˝ osz¨or az eml´ıtett programcsomagot kell beh´ıvni: O @!KA0 + K
Ezut´ an az identit´ asf¨ uggv´eny (a Mathematic´ a ban az ) bels˝o f¨ uggv´eny) felhaszn´ al´ as´aval defini´ aljuk a fenti T tartom´anyt: 0 ( A 6' ( B B & E CJ B B
!= CJ B B & D ( ! CJ 6' ( -Graphics-
Figyelj¨ uk meg, hogy a 4 # f¨ uggv´enyben az a´br´ azoland´ o f¨ uggv´eny nev´et kell megadni. Elk´esz´ıtj¨ uk a tartom´ any k´ep´et: =
A 4+ B B & & E CJ B B
!= CJ B 4 B 4 D ( ! CJ 6' ( -Graphics-
Most megjelen´ıtj¨ uk a tartom´ anyt ´es a k´epet:
132
3. Fejezetek a matematik´ab´ ol "@Y O @!#( 0 ( = D ( ! CJ UD ( !
E Pi -2
1
0
0 1
1
E
• Anim´ aci´ o ´ ak sorozat´ Abr´ ab´ ol filmet k´esz´ıthet¨ unk. Ehhez a
:8 3 3 programcsomag al´abbi f¨ uggv´enyei ny´ ujtanak seg´ıts´eget:
#0 #0F7 #40
#7 )0 #00 68B 668B
Ha ablakos felhaszn´ al´ oi fel¨ ulettel dolgozunk, akkor a k¨ ovetkez˝oket is tehetj¨ uk. G´epelj¨ uk be p´eld´ aul ezt az utas´ıt´ ast: D & D
A "5 +IG(IG#$ C&"5 +IG(IG) + C)& )& ( C)& )& & & CJ N %@ CJ & E CJ C S+E CJ S+' CJ #+ CJ B &C&N &N
A Shift+Enter billenty˝ up´ ar lenyom´asa ut´an a Mathematica elkezd dolgozni, ´es kirajzol egy ´abrasorozatot. Jel¨ olj¨ uk be az egym´as ut´ an lej´atszand´ o ´ abr´ akat (egy kattint´assal), majd vagy a Ctrl+Y billenty˝ up´ arral, vagy
3.1. Alapvet˝o matematikai fogalmak
133
a Graph men¨ upont Animate Selected Graphics alpontj´ aval ind´ıthatjuk a mozit. Le´all´ıtani a sz´ok¨ oz billenty˝ u le¨ ut´es´evel lehet, vagy azzal, hogy valahol belekattintunk a k´epbe. A Graph men¨ upont Animation alpontj´ aval az anim´ aci´ o opci´ oi is megv´altoztathat´ ok.
3.1.6. Gyakorlatok ´ es feladatok 1. Az al´ abbi p´eld´ ak illusztr´alj´ ak, hogy a f¨ uggv´eny a teljes diszjunkt´ıv norm´ alform´ at a´ll´ıtja el˝ o: %!4+ %!4+ %!4+ %!4+
' ' ' '
// << // <<
$ << ! // ' $ // ! << ' $ << ! // ;' ;$ // ! << ;'
2. Egyenletrendszereket egyenletekre ´ıgy szedhet¨ unk sz´et: %!4+ ' FQ + ( ) > x+2y==4 && 3x+7y==5
´ ıtsuk el˝ 3. All´ o a k¨ ovetkez˝o formul´ ak ´ert´ekt´abl´ azat´at: a) ¬a ∧ ¬(¬a ∨ b) b) a ⇒ (b ⇒ a) c) (a ⇒ (b ⇒ c)) ⇒ ((a ⇒ b) ⇒ (a ⇒ c)) 4. Igazoljuk, hogy a k¨ ovetkez˝o formul´ ak a benn¨ uk szerepl˝ o v´ altoz´ok minden ´ert´ek´ere igazak: a) (a ∧ (a ⇒ b)) ⇒ b b) ((a ⇒ b) ∧ (b ⇒ c)) ⇒ (a ⇒ c) c) ((a ∧ b) ∨ a) ⇔ a d) ((a ∨ b) ∧ a) ⇔ a ´ ıtsuk el˝ 5. All´ o egy tetsz˝oleges h´arom- vagy t¨obbv´ altoz´os logikai f¨ uggv´eny igazs´agt´ abl´ azat´at a szok´asos form´ aban, fejl´eccel ell´atva. asakor egy opci´ oban megadhatjuk, hogy mikor tekin6. A ! alkalmaz´ t¨ unk k´et elemet azonosnak. Ez n´emileg m´odos´ıthatja a list´akb´ ol el˝o´all´ıtott halmazokat. Tanulm´ anyozzuk ezt a jelens´eget az al´abbi p´eld´ akon:
$ QB G I= U!@ 4 = B M "0 CJ "0? "0 CJ 45
134
3. Fejezetek a matematik´ab´ ol
7. ´Irjunk f¨ uggv´enyt a szimmetrikus differencia m˝ uvelet´ere. Illusztr´aljuk p´eld´ akkal, hogy ez a m˝ uvelet asszociat´ıv ´es kommutat´ıv. ´ 8. All´ıtsuk el˝ o egy k-v´altoz´os (k = 0, 1, 2, 3, . . . .) logikai f¨ uggv´eny ´ertelmez´esi tartom´any´ anak elemeit lexikografikus sorrendben. 9. (A K¨ oz´episkolai Matematikai Lapok 2897. gyakorlata alapj´ an.) Az x1 , x2 pozit´ıv eg´eszekb˝ol kiindulva k´epezz¨ uk az x3 := |x1 − x2 |,
x4 := min {|x1 − x2 |, |x1 − x3 |, |x2 − x3 |}, . . .
sorozatot. (A feladat ´ıgy sz´olt: bizony´ıtsuk be, hogy ha x1 , x2 egyike sem nagyobb 10000-n´el, akkor x21 = 0.) Egy lehets´eges megold´as: D! @0 !KA0$ !K = , - P"$ $ , - #$
C
0 , - # ' . A0 * = ./ +, +, - A0 0 + + L
´ 10. Allap´ ıtsuk meg a fenti, v´eges halmazon defini´ alt, homog´en rel´ aci´ or´ ol, hogy szimmetrikus-e, ´es hogy tranzit´ıv-e. 11. Hajtsuk v´egre az al´abbi utas´ıt´ asokat: 6 1 ) 6 1 G 6 1 ) M B 6 1 ) G 6 1 N M B 6 1 Q C 6 1 CQB)> BICN QB)> BICN 6 1 C)Q))BML BICN )Q))BML BICN 6 1 C 6 1 ) F $ 6 1 ) B B 6 16 ! $ 6 1 6 * ( 6 1 N J 6 1 C " 6 1 C ) #$ 6 1 C) C 4 + #$ 6 1 C& )
3.2. Matematikai kifejez´esek
135
3.2. Matematikai kifejez´ esek Sokszor sz¨ uks´eg¨ unk lehet arra, hogy egy megadott vagy a Mathematica ´altal sz´armaztatott matematikai kifejez´est m´as (p´eld´ aul egyszer˝ ubb) alakban ´ırjunk fel. Ennek a t´emak¨ornek a jelent˝ os´eg´et mutatja az a t´eny is, hogy sz´amos matematikai probl´em´at u ´gy oldunk meg, hogy kifejez´eseket alkalmas azonoss´agok felhaszn´ al´ as´aval olyan alakra hozunk, amelyr˝ ol a megold´as m´ar egyszer˝ uen leolvashat´ o”. ” Ebben a szakaszban a programnak azokat a f¨ uggv´enyeit ismertetj¨ uk, amelyek valamely matematikai kifejez´es — ´ıgy nevezz¨ uk a 3.1.4. pontban megeml´ıtett be´ep´ıtett matematikai f¨ uggv´enyekb˝ ol a szok´asos f¨ uggv´enym˝ uu f¨ uggveletek v´eges sokszori alkalmaz´ as´aval nyert Cn → C (n ∈ N) t´ıpus´ v´eny egy ´altal´ anos helyettes´ıt´esi ´ert´ek´et — szimbolikus ´atalak´ıt´ as´ahoz ny´ ujtanak seg´ıts´eget. Foglalkozni fogunk algebrai ´es trigonometrikus polinomokkal, racion´ alis, irracion´alis ´es transzcendens kifejez´esekkel. A programot igen sok azonoss´ag (transzform´ aci´ os szab´aly) alkalmaz´ as´ara megtan´ıtott´ ak. K¨ ul¨ onb¨ oz˝o be´ep´ıtett f¨ uggv´enyek a´ltal´ aban k¨ ul¨ onb¨ oz˝o t´ıpus´ u azonoss´ agokat alkalmaznak. Egy adott kifejez´es ig´enyeinknek megfelel˝ o ´atalak´ıt´ as´ahoz haszn´ alhat´ o elj´ ar´ as megtal´al´ asa sok esetben nem egyszer˝ u feladat. A Mathematica egy v´egtelen ki´ert´ekel˝ o rendszer. Ez azt jelenti, hogy a beadott matematikai kifejez´esre addig alkalmazza a be´ep´ıtett vagy a felhaszn´ al´ o´ altal defini´ alt transzform´ aci´ os szab´alyokat, ameddig ism´etelten azonos u kifejez´est nem kap. alak´ Itt eml´ıtj¨ uk meg az egyszer˝ us´ıt´es probl´em´aj´ at. Matematikai kifejez´eseket sokszor a legegyszer˝ ubb alakra” szeretn´enk hozni. Ilyenkor a ”
65) f¨ uggv´enyt haszn´ alhatjuk. Vegy¨ uk figyelembe azonban azt, hogy nincs pontos defin´ıci´ o arra, hogy k´et (matematikai szempontb´ ol egyenl˝o) kifejez´es uggv´enybe be´ep´ıtett k¨ oz¨ ul melyik az egyszer˝ ubb alak´ u”. A 65) f¨ ” algoritmusok a megadott kifejez´est transzform´aci´ os szab´alyok felhaszn´ al´ as´aval a´talak´ıtj´ ak. Eredm´enyk´ent a legkevesebb r´eszb˝ol a´ll´ o alakot (a
54 f¨ uggv´eny adja meg a m´eretet”) kapjuk meg. Ez az oka annak, hogy bo” uggv´eny sok´aig dolgozhat. nyolultabb esetekben a 65) f¨
136
3. Fejezetek a matematik´ab´ ol
Figyelj¨ uk meg p´eld´ aul azt, hogy a Mathematica az (an −bn )/(a−b) t¨ ortet k¨ ul¨ onb¨ oz˝o n term´eszetes sz´amok eset´en hogyan egyszer˝ us´ıti: =*W , - I C $I C $ ( , - "0 *( =*W
A fenti t¨ ortet a 65) f¨ uggv´eny csak n ≤ 4 eset´en alak´ıtja a´t. P´eld´ aul n = 4-re ezt kapjuk: =*W ) %*A : 4 4 a - b , 17} { a - b ( ) %*A : 3 2 2 3 {a + a b + a b + b , 17}
Ha n > 5, akkor v´ altozatlan form´ aban kapjuk vissza a t¨ ortet, ugyanis az (a − b)-vel val´o oszt´as ut´ an ad´ od´ o kifejez´es m´erete nagyobb lenne, mint %*A =*W 17
3.2.1. Algebrai polinomok A matematik´ anak napjainkban rohamosan fejl˝ od˝ o egyik a´ga, a szimbolikus sz´ amol´ asok elm´elete (a komputeralgebra) foglalkozik a sz´am´ıt´ og´epen megval´ os´ıthat´ o szimbolikus algoritmusok elm´elet´evel. Jelenleg a matematikai kifejez´esek k¨oz¨ ul bizonyos ´ertelemben a legegyszer˝ ubbeknek, a polinomoknak az elm´elete a legjobban kidolgozott ter¨ ulet. A Mathematica is egy- ´es t¨ obbv´ altoz´os algebrai polinomokkal v´egzett m˝ uveletek elv´egz´es´ehez ny´ ujtja a legt¨obb seg´ıts´eget. V´arhat´ o, hogy u ´j elm´eleti eredm´enyek a Mathematica k´es˝obbi v´ altozatainak a lehet˝ os´egeit is b˝ov´ıteni fogj´ ak. • Polinomok kifejt´ ese A beadott polinomot a k¨ ul¨ onb¨ oz˝o szimb´olumokkal jel¨ olt v´ altoz´ok k¨ oz¨otti lehets´eges ¨osszead´asok ´es kivon´asok automatikus elv´egz´ese ut´an kapjuk uggv´eny szolg´al. Az vissza. Szorzatok ´es hatv´anyok kifejt´es´ere az f¨
*,
3.2. Matematikai kifejez´esek
137
utas´ıt´ as hat´ as´ara a Mathematica az egy- vagy t¨obbv´ altoz´os ban elv´egzi a szorz´asokat ´es a pozit´ıv eg´esz kitev˝oj˝ u hatv´ anyoz´ asokat, majd a lehets´eges ¨osszevon´asok elv´egz´ese ut´an adja meg az eredm´enyt: 4+ ' NR+CI G )R+CI G FR+ G N 2 3 26 + 9 x - 14 x + 6 x 4+ ' G + G )(R C + G (I 2 3 4 1 - 6 x + 8 x - 3 x + 10 y - 6 x y 2 3 18 x y + 14 x y + 2 2 2 2 3 3 4 36 y - 24 x y - 12 x y + 56 y - 24 x y + 32 y
T¨obbv´ altoz´os polinom kifejt´es´et bizonyos v´ altoz´okra korl´ atozva is elv´egezhetj¨ uk: 4+ ' + G IR( G IR G I + 2 2 2 2 (1 + y) (1 + z) + 2 x (1 + y) (1 + z) + 2 2 2 x (1 + y) (1 + z)
Lehet˝os´eg van arra is, hogy t¨ obb (de nem az o¨sszes) v´altoz´o szerint fejtoli a v´ altoz´okat, akkor az s¨ unk ki egy polinomot. Ha x1 , x2 ´es y jel¨ (x1 + 1)2 (x2 + 1)2 (y + 1)2 polinom x1 ´es x2 szerinti kifejt´es´et p´eld´ aul ´ıgy kapjuk meg: 4+ ' + G IR+ G IR( G I + , 2 2 2 2 (1 + y) + 2 (1 + y) x[1] + (1 + y) x[1] + 2 2 2 (1 + y) x[2] + 4 (1 + y) x[1] x[2] + 2 2 2 2 2 (1 + y) x[1] x[2] + (1 + y) x[2] + 2 2 2 2 2 2 (1 + y) x[1] x[2] + (1 + y) x[1] x[2]
A k¨ ovetkez˝o f¨ uggv´enyek polinomok r´eszeinek kiv´alaszt´as´ahoz ny´ ujtanak seg´ıts´eget:
455 455 4
8 0) V&
138
3. Fejezetek a matematik´ab´ ol
Sz´ amos speci´alis polinom be´ep´ıtett f¨ uggv´enyk´ent szerepel a Mathematic´ a ban:
LL 48&) 8 48&) 8! 4)4
:&4 11 W&0
• Polinomok szorzatt´ a alak´ıt´ asa Polinomok k¨ ul¨ onb¨ oz˝o t´ıpus´ u szorzatt´a alak´ıt´ as´ahoz a
6
6
f¨ uggv´enyeket haszn´alhatjuk. uggv´eny a´ltal ny´ ujtott lehet˝ os´egeket ismerEzek k¨ oz¨ ul csak a f¨ tetj¨ uk. A
*, utas´ıt´ as a ot Z felett irreduc´ıbilis t´enyez˝ok szorzatak´ent ´ırja fel abban az esetben, ha az egy¨ utthat´ ok eg´esz sz´amok vagy val´ odi t¨ ortek: ! +I G +I C )+ C 2 (-2 + x) (6 + 5 x + 2 x ) ! +I C )+ G ) (3 - 7 x) (1 - 2 x) 14 ! ) +R( G R1IC+I G (I C I C 1II (-u + v - x - y) (-u - v - x + y) (u + v - x + y) (-u + v + x + y)
Ha a polinom egy¨ utthat´ oi k¨ oz¨ott van explicit tizedesponttal megadott uggv´eny numerikus m´odszert haszn´alva hat´ arozsz´am is, akkor a f¨ za meg a polinom gy¨okeinek egy k¨ozel´ıt˝ o ´ert´ek´et, ´es ezekkel adja meg a felbont´ ast:
3.2. Matematikai kifejez´esek
139
! +I C )+ G 2 2 - 4 x + x ! +I C )+ G Q (-3.41421 + x) (-0.585786 + x)
A k¨ ovetkez˝o p´eld´ ak azt is mutatj´ ak, hogy a program a bemen˝ o adatok szintaxis´ at´ ol f¨ ugg˝ oen v´ alasztja meg a ki´ert´ekel´esn´el felhaszn´ alt algoritmust: ! +I G >+ G N 2 6 + 5 x + 2 x ! +I G >Q+ G N 2 2 (3 + 2.5 x + x ) ! +I G >+ G NQG BQ 6 2 (1.25 - 1.19896 I + x) (1.25 + 1.19896 I + x)
Polinomfaktoriz´aci´ ot a Gauss-eg´eszek gy˝ ur˝ uj´eben a
*. : 2? , utas´ıt´ assal kapunk. P´eld´ aul: ! +I G 2 1 + x ! +I G O 6 CJ (-I + x) (I + x)
A Zp v´eges test feletti polinomgy˝ ur˝ uben a k¨ ovetkez˝o utas´ıt´ assal bonthatunk fel polinomokat irreduc´ıbilis t´enyez˝ok szorzat´ara:
*. # 2? , ! +I) G ' CJ 4 (1 + x) ! +I) G ' CJ F (2 + x) (8 + x) (9 + x) (15 + x)
140
3. Fejezetek a matematik´ab´ ol
Polinomfaktoriz´aci´ oval nyert t´enyez˝okb˝ ol a´ll´ o list´at k´esz´ıthet¨ unk a k¨ ovetkez˝o f¨ uggv´enyekkel:
6
Figyelj¨ uk meg azt is, hogy a Mathematica milyen form´ aban adja meg a t´enyez˝oket: ! % +I C +I C >+ C {{-3 + x, 1}, {1 + x, 2}} ! % +I) G ' CJ 2 2 {{5 + x , 1}, {8 + x , 1}} ! % +I G O 6 CJ {{-I + x, 1}, {I + x, 1}}
• M˝ uveletek polinomokkal K´epezhetj¨ uk polinomok o¨sszeg´et, szorzat´at ´es kompoz´ıci´ oj´ at. A
7 elj´ ar´ ast is haszn´alhatjuk. Ennek a f¨ uggv´enynek a seg´ıts´eg´evel ´all´ıthatunk el˝ o egy eg´esz egy¨ utthat´ os polinomot k´et alacsonyabb foksz´am´ u polinom kompoz´ıci´ o jak´ent (l´ asd a 3.1.4. pont M˝ uveletek f¨ uggv´enyekkel c´ım˝ u alpontj´ at). ur˝ uben is sz´ amos m˝ uveletet elv´egezheA Zp v´eges test feletti polinomgy˝ t¨ unk. P´eld´ aul a
0)# *. , utas´ıt´ as eredm´enye a -mal mod p kongruens polinom, amelynek egy¨ utthat´ oi a [0, p − 1] intervallumb´ ol val´ ok: &( 0' +I> C F+I G F+I G + G L 2 3 5 8 + x + 4 x + 5 x + x &( 0' + G ( + C FI > 2 3 2 3 x + 2 x + 2 x + 2 y + 3 x y + 3 x y
3.2. Matematikai kifejez´esek
141
Polinomok rezult´ ans´ at (l´ asd p´eld´ aul [45]) sz´amolja ki a 9 f¨ uggv´eny: E +I C N+ G +I G + G > + 233 E +I C )+ C > +I C F+ G B + 0
Eml´ekeztet¨ unk arra, hogy k´et egyv´ altoz´os polinom rezult´ansa az egy¨ utthat´ oikb´ ol k´epzett Sylvester-f´ele m´atrixnak a determin´ ansa. A Sylvester-f´ele krit´erium azt ´all´ıtja, hogy k´et eg´esz egy¨ utthat´ os algebrai polinomnak pontosan akkor van k¨ oz¨os gy¨oke, ha a rezult´ansuk 0-val egyenl˝ o. • Gr¨ obner-b´ azisok A szimbolikus programcsomagok polinomok kezel´es´en´el a Gr¨ obner-b´ azisok elm´elet´et alkalmazz´ak. B. Buchberger [14] 1965-ben meg´ırt Ph.D. disszert´ aci´o j´ aban egyenletrendszerek megold´asa c´elj´ ab´ ol vezette be a Gr¨ obner-b´ azis fogalm´ at. (W. Gr¨ obner volt a t´emavezet˝o je.) Az ezut´an megindult intenz´ıv kutat´ asok azt mutatt´ak, hogy ez a fogalom ´es a dolgozatban le´ırt algoritmusok m´as t´ıpus´ u feladatok (p´eld´ aul param´eterek kik¨ usz¨ob¨ ol´ese, kongruenci´ak megold´asa, polinom helyettes´ıt´esi ´ert´ek´enek meghat´aroz´asa adott mell´ekfelt´etelek eset´en) megold´ as´an´ al is j´ ol haszn´ alhat´ ok. o Olvas´ o figyelm´ebe aj´ anljuk a [7] ´es a [28] k¨onyAz elm´elet ir´ant ´erdekl˝od˝ vet, valamint a [35] ´es a [58] dolgozatot. A tov´ abbiakban az alapprobl´ema ´es n´eh´ any eredm´eny megfogalmaz´asa ut´an csup´ an ´erz´ekeltetni szeretn´enk azt, hogy a Mathematica hogyan haszn´ alja ezt az elm´eletet k¨ ul¨ onb¨ oz˝o feladatok megold´as´an´ al. altoJel¨olje Q[x] (x = (x1 , · · · , xn ), n ∈ N) a Q sz´amtest feletti n v´ z´os polinomgy˝ ur˝ ut. A Q[x] (kommutat´ıv) gy˝ ur˝ u I nem¨ ures r´eszhalmaz´at ide´ alnak nevezz¨ uk, ha egyr´eszt minden p, q ∈ I eset´en p − q ∈ I teljes¨ ul, m´asr´eszt pedig minden p ∈ I ´es q ∈ Q[x] mellett a pq szorzat is I-hez tartozik. B´armely P := {p1 , · · · , pk } ⊂ Q[x] v´eges polinomrendszer eset´en a (P ) := (p1 , · · · , pk ) := {
k
ai pi : ai ∈ Q[x]} ⊂ Q[x]
i=1
halmaz nyilv´an Q[x] egy (P ´ altal gener´ alt) ide´ alja. Mag´ at a P halmazt az ide´ al b´ azis´ anak szok´ as nevezni. (Ez az ´altal´ anosan elfogadott sz´ohaszn´ alat f´elrevezet˝o, ha a line´ aris algebra b´ azisfogalm´ aval vetj¨ uk o¨ssze.)
142
3. Fejezetek a matematik´ab´ ol
Hilbert b´ azist´etel´enek egyik k¨ovetkezm´enye az, hogy Q[x] minden ide´ alj´ anak van v´eges b´azisa ´es Q[x] minden ide´ alja a fenti alak´ u. Polinomokkal kapcsolatos sz´amos probl´em´at a k¨ ovetkez˝o alapfeladatra lehet reduk´ alni: Adott egy P ⊂ Q[x] v´eges halmaz ´es egy tetsz˝ oleges q ∈ Q[x] polinom. Hogyan lehet v´eges sok l´ep´esben eld¨ onteni azt, hogy a q polinom hozz´ atartozik-e a P ´ altal gener´ alt (P ) ide´ alhoz? Egyv´ altoz´os polinomok (azaz n = 1) eset´en b´ armely P ⊂ Q[x] v´eges halmaz ´altal gener´ alt (P ) ide´ al egyetlen elemmel, a P -hez tartoz´ o polinomok legnagyobb k¨ oz¨os oszt´o j´ aval (jel¨ olje ezt h) is gener´alhat´ o. ´Igy a fenti alnak, ha k´erd´esre a v´alasz a k¨ovetkez˝o: q pontosan akkor eleme a (P ) ide´ q oszthat´o a h polinommal. A bizony´ıt´ as alapvet˝o eszk¨oze a j´ol ismert euklideszi algoritmus. T¨obbv´ altoz´os polinomok eset´eben a helyzet j´oval bonyolultabb. Nem egyszer˝ u ugyanis a (P ) ide´ al szerkezet´ere j´ol haszn´ alhat´ o jellemz´est adni abban az esetben, amikor P tetsz˝oleges polinomrendszer. A neh´ezs´eget egyr´eszt az okozza, hogy az ide´alok ekkor m´ar nem gener´ alhat´ ok egyetlen elemmel, ez´ert az euklideszi algoritmust is a´ltal´ anos´ıtani kell. M´ asr´eszt egyismeretlenes polinomokra a tagok elrendez´es´enek k´et term´eszetes m´odj´ at ismerj¨ uk: az ismeretlen n¨ovekv˝ o ´es cs¨okken˝ o hatv´ anyai szerintit. T¨obbismeretlenes polinomok eset´en azonban a αn 1 : αi ∈ N} T := T (x1 , · · · , xn ) := {xα 1 · · · xn
halmazon t¨ obbf´ele m´odon lehet rendez´esi rel´aci´ ot ´ertelmezni, ami egy adott t¨ obbv´ altoz´os polinomban a tagok l´enyegesen” k¨ ul¨ onb¨ oz˝o sorrendj´et indu” k´ alja. Itt csup´ an a lexikografikus rendez´est (ezt a ≤L szimb´olummal jel¨olj¨ uk) ´ertelmezz¨ uk: β1 αn βn 1 xα 1 · · · xn ≤L x1 · · · xn
β1 αn βn 1 (xα 1 · · · xn , x1 · · · xn ∈ T )
pontosan akkor, ha (α1 , · · · , αn ) = (β1 , · · · βn ), vagy pedig l´etezik olyan i ∈ {1, 2, · · · , n} term´eszetes sz´am, amelyre αj = βj
(1 ≤ j ≤ i − 1) ´es
αi < βi .
Ha ≤ egy alkalmas rendez´esi rel´aci´ o a T -n, akkor egy adott polinom ≤ rendez´esre vonatkoz´ o f˝ otagj´ a nak nevezz¨ uk a polinom egy¨ utthat´ o n´elk¨ ul vett (≤-re vonatkoz´ o) legmagasabb fok´ u tagj´ at. Az euklideszi algoritmus t¨obbv´ altoz´os ´altal´ anos´ıt´ as´at m´ar nem polinomoszt´asnak, hanem polinomredukci´ os elj´ ar´ asnak nevezik. Ezzel kapcsolatban a k¨ ovetkez˝o alapvet˝ o´ all´ıt´ as fogalmazhat´o meg:
3.2. Matematikai kifejez´esek
143
Legyen P := {p1 , · · · , pk } ⊂ Q[x] tetsz˝ oleges halmaz ´es f ∈ Q[x] adott polinom. Ekkor l´eteznek olyan ai ∈ Q[x] (i = 1, · · · , k) ´es r ∈ Q[x] polinomok, amelyekre az f=
k
ai pi + r
i=1
otagja nem nagyobb, mint f egyenl˝ os´eg teljes¨ ul, ´es ai pi (i = 1, · · · , k) f˝ f˝ otagja. afia 199. oldal´ an le´ırt Az ai (i = 1, · · · , k) ´es r polinomot a [7] monogr´ algoritmussal lehet meghat´arozni. Tov´ abbi probl´em´at jelent azonban az, hogy az r marad´ek”-polinom nincs egy´ertelm˝ uen meghat´ arozva abban az ” esetben, ha tetsz˝ oleges P polinomrendszerb˝ ol indulunk ki. B. Buchberger a m´ar megeml´ıtett [14] dolgozat´ aban igazolta, hogy tetsz˝oleges v´eges P ⊂ Q[x] halmazhoz l´etezik olyan G ⊂ Q[x] v´eges polinomrendszer (ezt nevezte el Gr¨ obner-b´ azisnak), amely egyr´eszt ugyanazt az ide´alt gener´alja, mint P , m´asr´eszt a fenti ´all´ıt´ ast a P helyett a G b´ azisra alkalmazva az r polinom m´ ar egy´ertelm˝ uen meg van hat´ arozva. Ilyen jelleg˝ u b´ azis l´etez´es´et H. Hironaka [36] is bebizony´ıtotta 1964-ben. B. Buchberger azonban j´ ol haszn´ alhat´ o as´ ara. algoritmust is konstru´ alt a G b´ azis el˝ o´ all´ıt´ Megjegyezz¨ uk m´eg azt is, hogy egyv´ altoz´ os polinomok eset´eben ez az elj´ ar´ as az euklideszi algoritmust, els˝ ofok´ u t¨ obbv´ altoz´ os polinomok eset´eben pedig a Gauss-f´ele elimin´ aci´ os elj´ ar´ ast szolg´ altatja. A Gr¨ obner-b´ azis fogalm´ anak t¨ obb lehets´eges ekvivalens defin´ıci´ o ja k¨ oz¨ ul a k¨ ovetkez˝ot emelj¨ uk ki. Jel¨ olj¨ on ≤ egy alkalmas rendez´est (p´eld´ aul a lexikografikust) a T halmazon. A Q[x] polinomgy˝ ur˝ u I ide´ alj´ anak egy nem¨ ures G v´eges r´eszhalmaz´at akkor nevezz¨ uk az I ide´ al ≤-re vonatkoz´o Gr¨ obner-b´ azis´ anak, ha az ide´ al minden polinomj´ anak (≤-re vonatkoz´ o) f˝ otagja oszthat´o a G halmaz valamely polinomj´ anak f˝ otagj´ aval. Igazolhat´ o, hogy T -n adott alkalmas ≤ rendez´es eset´en a Q[x] polinomgy˝ ur˝ u b´ armely I ide´ alj´ ahoz l´etezik Gr¨obner-b´ azis, ´es ez a f˝oegy¨ utthat´ okt´ ol eltekintve egy´ertelm˝ uen meg van hat´ arozva (l´asd [7], Theorem 5.41., Theorem 5.43.). uggv´enye a Q[x] polinomgy˝ ur˝ uben a A Mathematica :&L f¨ lexikografikus rendez´est haszn´alva hat´ arozza meg adott P polinomrendszer ´altal gener´ alt (P ) ide´ al Gr¨ obner-b´ azis´ at. A v´ altoz´ok sorrendj´et a f¨ uggv´eny m´asodik argumentum´ aban adhatjuk meg. Az eredm´eny ett˝ol a´ltal´ aban term´eszetesen f¨ ugg: O$ S + C (I G +I C (I C + ( 2 4 2 {3 - 5 y + y , 2 + x - y }
144
3. Fejezetek a matematik´ab´ ol O$ S + C (I G +I C (I C ( + 2 2 {-3 - x + x , -2 - x + y }
Az &9 , az ´es a 6 elj´ ar´ as alkalmazza a Gr¨ obner-b´ azisok elm´elet´et. A 2.3.2. pontban a mint´ azatokkal kapcsolatban volt arr´ ol sz´o, hogy a program egy transzform´ aci´ os szab´aly ki´ert´ekel´es´en´el a kifejez´esnek a strukt´ ur´ aj´ at, ´es nem annak matematikai jelent´es´et vizsg´alja: G +I G +I) Q +I CJ 4 1 + a + x
A matematik´ aban megszokott m´odon vezethet¨ unk be u ´j v´ altoz´okat az
&9 bels˝o f¨ uggv´eny seg´ıts´eg´evel: W1 #$!E +I + 2 {x -> a} G +I G +I) Q W1 2 1 + a + a G +I G +IF Q W1 3 1 + a x + a x
Ezt az elj´ ar´ ast haszn´alhatjuk abban az esetben is, amikor egy polinomnak adott mell´ekfelt´etelek mellett szeretn´enk meghat´ arozni a helyettes´ıt´esi ´ert´ek´et. Tekints¨ uk p´eld´ aul a k¨ ovetkez˝o feladatot. Tegy¨ uk fel, hogy az a, b ´es a c val´ os sz´amok kiel´eg´ıtik az a + b + c = 3,
a2 + b2 + c2 = 9,
a3 + b3 + c3 = 24
felt´eteleket. Hat´arozzuk meg az a4 + b4 + c4 ¨osszeget. A megold´as a Mathematic´ a val ilyen egyszer˝ u. El˝ osz¨or a felt´eteleket adjuk meg: * = #$!E G $ G ! I G $I G !I L I G $I G !I ) $ !
3.2. Matematikai kifejez´esek {c
145
3
2 2 2 -> -1 + 3 c , b -> 3 b + 3 c - b c - c , a -> 3 - b - c}
A k´erdezett ¨osszeget pedig ´ıgy hat´ arozhatjuk meg: I) G $I) G !I) Q * = 69
A Gr¨ obner-b´ azisok elm´elete ´ altal´ anos m´ odszert szolg´altat az ilyen t´ıpus´ u feladatok megold´ as´ahoz. N´ezz¨ uk meg azt, hogy a program hogyan alkalmazta ezt a m´odszert a fenti feladat megold´ as´an´ al. ar´ as a Az &9 elj´ P := {a + b + c − 3, a2 + b2 + c2 − 9, a3 + b3 + c3 − 24} ⊂ Q[a, b, c] polinomrendszer a´ltal gener´ alt (P ) ide´ al Gr¨ obner-b´ azis´ at sz´amolta ki. Val´ oban: O$ S G $ G ! C I G $I G !I CL I G $I G !I C) $ ! 2 3 2 2 {1 - 3 c + c , -3 b + b - 3 c + b c +c , -3 + a + b + c}
(Figyelj¨ uk meg, hogy az &9 f¨ uggv´eny transzform´ aci´ os szab´ alyk´ent adja meg a Gr¨ obner-b´ azist.) abban megeml´ıtett polinomreHa ezut´ an az a4 + b4 + c4 polinomra a kor´ dukci´ os elj´ar´ ast a kisz´am´ıtott Gr¨ obner-b´ azissal alkalmazzuk, akkor ´eppen az abban szerepl˝o, r-rel jel¨ olt marad´ek”-polinom lesz a feladat megold´a” sa. A fenti m´ asodik utas´ıt´ as hat´as´ara a Mathematica ezt az r polinomot hat´ arozta meg. Hasonl´ o m´odon m˝ uk¨ odik az
elj´ ar´ as is, amelynek seg´ıts´eg´evel polinomokat tartalmaz´o egyenletekb˝ol param´etereket elimin´alhatunk. P´eld´ aul: 40 * +I> G (I> + G ( $ + ( + ( 5 3 2 a - 5 a b + 5 a b == f
Ezt feladatot ´ıgy is megoldhatjuk: * #$!E + G ( + ( $ + ( 2 {y -> -b + a y, x -> a - y}
146
3. Fejezetek a matematik´ab´ ol +I> G (I> Q * a
5
- 5 a
3
b + 5 a b
2
Az &9 most is a Gr¨obner-b´ azist haszn´ alja: O$ S + G ( C +R( C $ + ( 2 {b - a y + y , -a + x + y}
A 3.3.2. pontban lesz sz´ o arr´ ol, hogy a 6 f¨ uggv´eny hogyan alkalmazza a Gr¨ obner-b´ azisok elm´elet´et polinomokat tartalmaz´o egyenletrendszerek megold´as´an´ al.
3.2.2. Racion´ alis kifejez´ esek Ebben a pontban polinomok h´ anyadosak´ent megadott kifejez´esek ´atalak´ıt´ as´ahoz haszn´ alhat´ o elj´ ar´ asokr´ol lesz sz´o. A program sz´ amos olyan f¨ uggv´enyt tartalmaz, amelynek seg´ıts´eg´evel racion´alis kifejez´eseket k¨ ul¨ onb¨ oz˝o alakban ´ırhatunk fel. Ezek a k¨ ovetkez˝ok:
4 7 7
65) 8
A Mathematica racion´ alis kifejez´esekn´el a lehets´eges ¨osszevon´asokat automatikusan elv´egzi. A sz´aml´al´ o ´es a nevez˝o k¨ oz¨os t´enyez˝oivel is automatikusan egyszer˝ us´ıt: C+G+IC+IRC+I+GG+IRC+ 2 2 (1 - x) (-4 x + x ) 2 (1 + 3 x) 0 D 0 2 2 2 {(1 - x) (-4 x + x ) , (1 + 3 x) }
3.2. Matematikai kifejez´esek
147
Szorz´asok ´es hatv´anyoz´ asok elv´egz´es´ehez az al´abbi f¨ uggv´enyeket haszn´ alhatjuk: 4+ '0 4+ 'D 0
{
16 x
2
- 24 x
3
+ 9 x 2 (1 + 3 x)
4+ ' 2 16 x (1 + 3 x)
2 -
4+ '# 2 16 x 1 + 6 x + 9 x 5 x
24 x
4
- x
2 2 (1 - x) (-4 x + x ) , } 2 1 + 6 x + 9 x
3
(1 + 3 x)
2 -
5
2 +
5 x 2 2 (1 + 3 x) (1 + 3 x) 9 x
3 24 x 1 + 6 x + 9 x
1 + 6 x + 9 x
4
2 +
9 x
4
1 + 6 x + 9 x
2 -
2
A racion´ alis kifejez´eseket k¨oz¨os nevez˝ore hozhatjuk ´es parci´alis t¨ ortekre is bonthatjuk: C)+G+IC+G+I G C)G+G+ICG+I 2 2 -4 + 3 x + x -4 x + x 2 + 2 -x + x -1 + x
@ 2 2 (-4 + x ) (-1 + x) (1 + x) # 3 3 + 2 -1 + x 1 + x
T¨obbv´ altoz´os kifejez´esek parci´alis t¨ ortekre bont´ as´at k¨ ul¨ onb¨ oz˝o v´ altoz´ora is k´erhetj¨ uk: 1 +I G (I+ G + ( 2 2 x + y x + x y
148
3. Fejezetek a matematik´ab´ ol # 1 + 2 y x + 1 + y x (1 + y)
# 1 ( 2 y 1 + x 1 + -( ) + x x x (1 + y)
A k¨ ovetkez˝o p´eld´ akkal a ´es a 4 f¨ uggv´eny m˝ uk¨ od´es´et ´erz´ekeltetj¨ uk: A ! 4 + x -4 + x + -1 + x 1 + x ! : 2 (-2 + x) (2 + x) (-1 + x) (1 + x)
3.2.3. Komplex v´ altoz´ os kifejez´ esek Az el˝ oz˝o pontokban ismertetett f¨ uggv´enyekkel komplex sz´ amokat tartalmaz´o kifejez´eseket is ´atalak´ıthatunk. A Mathematica ezekben az esetekben a v´ altoz´okat form´ alis szimb´ olumoknak tekinti, ´es a kijel¨olt m˝ uveletek v´egrehajt´ asa, valamint a lehets´eges ¨osszevon´asok elv´egz´ese ut´an adja meg az eredm´enyt. Sz¨ uks´eg¨ unk lehet azonban arra is, hogy kijel¨ olj¨ uk egy matematikai kifejez´es val´ os, illetve k´epzetes r´esz´et. Ilyen feladatok megold´ as´ahoz a
4 f¨ uggv´enyt haszn´ alhatjuk. Pontosan meg kell azonban mondanunk azt, hogy melyik szimb´olumot tekintj¨ uk val´ os v´altoz´onak ´es melyiket komplexnek. A v´ altoz´ok specifik´al´ as´anak m´ odj´ at a program k´esz´ıt˝ oi a fenti f¨ uggv´eny m´asodik (opcion´ alis) argumentum´anak megad´ as´aval oldott´ ak meg. as ki´ert´ekel´es´en´el a program a A 4 *=5K' , utas´ıt´ =5K' mindegyik szimb´olum´at val´os v´altoz´onak tekinti, ´es a kijel¨olt m˝ uveletek elv´egz´ese ut´an (val´ os r´esz) + i (k´epzetes r´esz) alakban pr´ob´ alja megadni az eredm´enyt:
3.2. Matematikai kifejez´esek
149
A0 +4+ ' G 6 $! G 6 ' a c c
2
+ d
2
b d
+ c
2
+ d
2
b c
+ I ( c
2
+ d
2
a d
c
2
+ d
2
)
A0 +4+ ' " + G 6 ( Cosh[y] Sin[x] + I Cos[x] Sinh[y]
A 4 f¨ uggv´eny m´asodik argumentum´ aban kapcsos z´ar´ ojelek k¨ oz¨ott sorolhatjuk fel azokat a szimb´ olumokat, amelyeket komplex v´ altoz´oknak tekint¨ unk. A fel nem t¨ untetett szimb´ olumokat a program val´ os v´altoz´oknak tekinti: A0 +4+ ' G 6 $ I (b + Im[a]) + Re[a]
A0 +4+ ' 4+ 6 I Sin[Re[z]] Cos[Re[z]] + Im[z] Im[z] E E
A ' komplex v´ altoz´ot val´ os param´eterekkel t¨obbf´ele m´odon is kifejezhetj¨ uk. A Mathematica alap´ertelmez´esben a 9*', @ *', algebrai alakot haszn´alja. uggv´eny opci´o j´ anak (ennek leA 4 f¨ as´ahets´eges ´ert´ekei: & , , 4K, , 9 ´es 6) megv´altoztat´ altoz´ot p´eld´ aul trigonometrikus alakban ´ıgy ´ırhatjuk fel: val a ' v´ ! A0 +4+ ' ! CJ #$ # Abs[z] (Cos[Arg[z]] + I Sin[Arg[z]])
Komplex sz´ am val´ os, illetve k´epzetes r´esz´et adja meg a program maguggv´eny. Komplex v´ altoz´os kifejez´es val´ os, j´ aban meglev˝o 9, illetve f¨ illetve k´epzetes r´esz´enek el˝o´ all´ıt´ as´ahoz az
&393 programcsomag ugyanilyen nev˝ u f¨ uggv´enyeit haszn´ alhatjuk: #$KE60K E Re[z] 2 2 Im[z] + Re[z]
150
3. Fejezetek a matematik´ab´ ol
Figyelj¨ uk meg, hogy ez a 9 f¨ uggv´eny '-t komplex v´ altoz´onak tekintette. K´etf´elek´eppen is k¨ oz¨olhetj¨ uk azt a sz´and´ekunkat a Mathematic´ a val, hogy az szimb´olumot tartalmaz´o kifejez´eseket annak felt´etelez´es´evel ´ert´ekelje os v´ altoz´o. Erre az !6 bels˝o f¨ uggv´enyt (ennek r¨ ovid ki, hogy az val´ alakja a C jelsorozat) ´ıgy haszn´alhatjuk: 60 + I B
Ugyanezt az eredm´enyt kapjuk az + - 60 + B
utas´ıt´ assal is (a $O jelsorozat a 6 bels˝o f¨ uggv´eny r¨ ovid alakja). Ha val´ os v´altoz´o, akkor E G +I 2 2 -Im[a] + (x + Re[a])
Fentebb m´ ar sz´oltunk arr´ ol, hogy a 4 f¨ uggv´eny haszn´ alatakor hogyan jelezz¨ uk azt, hogy egy adott kifejez´esben lev˝ o szimb´olumok k¨ oz¨ ul melyiket gondoljuk val´ osnak ´es melyiket komplexnek. A v´altoz´oknak ez a specifik´aci´ o ja lok´ alis jelleg˝ u. Ezzel szemben az *',CM glob´alis ´ert´ekad´ as. Az elmondottakat az Euler-f´ele formula p´eld´ a j´ an illusztr´aljuk: A0 +4+ ' 4+ 6 Cos[t] + I Sin[t] E : Cos[Re[t]] Cosh[Im[t]] - Cos[Re[t]] Sinh[Im[t]]
A szimb´olumot a 4 f¨ uggv´eny val´ os v´altoz´onak, a 9 f¨ uggv´eny pedig komplexnek tekintette: 60 I B E Cos[t]
3.2.4. Trigonometrikus kifejez´ esek A Mathematica el˝oz˝o pontokban ismertetett f¨ uggv´enyei alap´ertelmez´esben nem alkalmaznak trigonometrikus azonoss´agokat, mert a opci´o juk ´er´ v´egign´ezni, hogy a sz´oban forg´ o f¨ uggv´enyek val´ oban t´eke . ( Erdemes uggv´enyekn´el a rendelkeznek a opci´oval.) Ha ezekn´el a f¨
3.2. Matematikai kifejez´esek
151
2? opci´ot adjuk meg, akkor a program trigonometrikus azonoss´ agokat is felhaszn´ alva alak´ıtja a´t a beadott kifejez´est. as´ara a Mathematica a k¨ ovetkez˝o m˝ uveleA 2? opci´o hat´ teket v´egzi el. El˝ osz¨or a trigonometrikus kifejez´est komplex exponenci´alis alakban ´ırja fel, ezut´ an hajtja v´egre a kijel¨ olt m˝ uveleteket. Az ´ıgy kapott eredm´enyt v´eg¨ ul megpr´ ob´ alja trigonometrikus f¨ uggv´enyekkel kifejezni. uggv´eny alap´ertelmez´esben is ´ıgy m˝ uk¨ odik, mert a A 65) f¨ opci´o ´ert´eke : 2 "0 *( {Trig -> True}
A lehet˝os´egeket a k¨ovetkez˝o p´eld´ ak bemutat´ as´aval illusztr´aljuk: 4+ ' " +I G " +I 4+ ' : CJ {Sin[x]
2
Cos[4 x] 2 Cos[2 x] } + Sin[2 x] , 1 2 2
4+ ' " + A $ +I CJ ! : CJ Sin[a x - 2 b x] Sin[a x + 2 b x] Sin[a x] + + 2 4 4 2 Cos[b x] Sin[a x]
! " + G " ( CJ y x y x 2 Cos[ - ] Sin[ + ] 2 2 2 2
Felhaszn´ alhatjuk m´eg az
&3)3 programcsomagban meglev˝o al´ abbi f¨ uggv´enyeket is:
4 Olvassuk be ezt a programcsomagot: #$K 0 (K
9 4
152
3. Fejezetek a matematik´ab´ ol
A 9 f¨ uggv´eny az add´ıci´ os t´etelekben kimondott azonoss´ agok k¨ ozvetlen felhaszn´ al´ as´aval alak´ıtja a´t a beadott kifejez´est:
E'! " + G ( Cos[y] Sin[x] + Cos[x] Sin[y]
ugyanakkor a fentebb elmondottak miatt 4+ ' " + G ( CJ Sin[x + y]
A f¨ uggv´eny a sz¨ogek szinusz´anak (koszinusz´ anak stb.) o¨szszeg´ere vonatkoz´o ismert azonoss´ agot alkalmazza, ez´ert ez az elj´ar´ as a
*=5K' . 2? , utas´ıt´ as eredm´eny´et˝ol elt´er˝ o alakot is adhat:
! " + C " + -2 Cos[2 x] Sin[x]
! " + C " + CJ -2 (Cos[x] - Sin[x]) Sin[x] (Cos[x] + Sin[x])
Trigonometrikus kifejez´eseket komplex exponenci´alis alakban ´ırhatunk uggv´eny seg´ıts´eg´evel. A ford´ıtott feladat megold´afel a 4 f¨ ar´ ast haszn´alhatjuk: s´ahoz pedig a 4 elj´
A0 + " + G A + E -I -I x I x (-E + E ) + 2
-I x
+ E 2
I x
A0 + " + A + 4+ ' I 2 I x I -2 I x E E 4 4
A0 + : I Cos[2 x] + Sin[2 x] -I Cos[2 x] + Sin[2 x] + 4 4
"0 *( : Sin[2x] 2
3.2. Matematikai kifejez´esek
153
3.2.5. Egy´ eb matematikai kifejez´ esek Ebben a pontban csup´ an ´erz´ekeltetni szeretn´enk azt, hogy a Mathematica hogyan kezeli az el˝ oz˝o pontokba nem sorolhat´ o (p´eld´ aul irracion´ alis vagy transzcendens) kifejez´eseket. El˝ osz¨or azt a t´enyt emelj¨ uk ki, hogy a program sz´ amokat, illetve szimb´ olumokat tartalmaz´o kifejez´esek ´atalak´ıt´ as´an´ al k¨ ul¨ onb¨ oz˝o t´ıpus´ u transzform´aci´ os szab´alyokat (azonoss´agokat) alkalmaz. Ha egy be´ep´ıtett matematikai f¨ uggv´eny argumentum´ aban csak k¨ ozel´ıt˝ o numerikus ´ert´ek szerepel, akkor a program a sz´ oban forg´ o kifejez´est a 3.1.4. pontban jelzett m´ odon ki´ert´ekeli: # CQ C BQF 6 CQI "5 >Q {-2.61352, 0.5 + 0.866025 I, 2.23607}
Ha egy be´ep´ıtett matematikai f¨ uggv´eny argumentum´ aba pontos numerikus ´ert´eket vagy be´ep´ıtett matematikai ´alland´ ot ´ırunk, akkor n´eh´ any esetben a helyettes´ıt´esi ´ert´ek egy m´asik (matematikai szempontb´ ol a megadottal ekvivalens) alakj´at kapjuk meg: "5 N % 4I #!" "5 Pi } {4, 2, 4
Itt is felh´ıvjuk az Olvas´ o figyelm´et a 3.1.4. pontban az inverz f¨ uggv´enyekkel kapcsolatban elmondottak egy l´enyeges k¨ovetkezm´eny´ere. Alap´ertelmez´esben a Mathematica sz´am´ara p´eld´ aul √ √ 1 3 3 i −1 = + 2 2 ´es nem (−1), mivel A0 +4+ ' CI I 1 + Sqrt[3] 2 2
Pontos numerikus ´ert´ekeket tartalmaz´o matematikai kifejez´esek ´atalak´ıt´ as´an´ al a program bizonyos azonoss´agokat automatikusan alkalmaz: "5 > "5 5 4+ ' G "5 IF 13160704 + 7598336 Sqrt[3]
154
3. Fejezetek a matematik´ab´ ol % 4I 3
A k¨ ovetkez˝o kifejez´est azonban nem alak´ıtja a´t: % ) C % -Log[3] + Log[4]
A program szimb´ olumokat tartalmaz´o matematikai kifejez´esek ki´ert´ekel´es´en´el automatikusan csak olyan azonoss´agokat haszn´ al fel, amelyek a szimb´olumok minden komplex ´ert´eke eset´en ´erv´enyesek. Ezt illusztr´alj´ ak az al´ abbi p´eld´ ak: $I 4I+ 4I( 3 3 x + y {a b , E } "5 + ( {Sqrt[x y], % $ {Log[a b],
"5 + "5 ( Sqrt[x] Sqrt[y]}
% G % $
% I$ b Log[a] + Log[b], Log[a ]}
Az ut´ obbi k´et eredm´eny magyar´ azata az, hogy a √ √ √ xy = x y, log(ab) = log a + log b egyenl˝ os´egek komplex sz´amok eset´en a´ltal´ aban nem ´erv´enyesek. Val´oban: "5 C C {1, -1} % C C 2 {0, -Pi }
"5 C "5 C % C % C
Matematikai kifejez´esek ´atalak´ıt´ as´ahoz haszn´ alhatjuk a
0B bels˝o f¨ uggv´enyt, amely az (ab)c hatv´ anyt az ac bc szorzattal helyettes´ıti: &Y4+ ' $I! c c a b
3.2. Matematikai kifejez´esek
155
&Y4+ ' "5 + ( Sqrt[x] Sqrt[y]
Vigy´ aznunk kell azonban arra, hogy csak olyan a, b, c param´eterek eset´eben alkalmazzuk ezt az elj´ar´ ast, amikor az (ab)c = ac bc egyenl˝ os´eg ´erv´enyes. El˝ ofordulhat, hogy az eddig ismertetett f¨ uggv´enyekkel egy adott kifejez´est nem az ig´enyeinknek megfelel˝ o alakban kapjuk meg. Ilyenkor p´eld´ aul transzform´ aci´ os szab´alyokat (l´ asd a 2.3.2. pontot) defini´ alhatunk, ´es ezeket a
9 (ennek r¨ ovid alakja: $H), vagy pedig a
99 (ennek r¨ ovid alakja: $$H) elj´ ar´ assal alkalmazhatjuk a sz´ oban forg´ o kifejez´esre: % $ ! ' Q % +, (, CJ % + G % ( Log[a] + Log[b c d] % $ ! ' Q % +, (, CJ % + G % ( Log[a] + Log[b] + Log[c] + Log[d] + " +, CJ " + A + " G I Q + 2 2 2 Cos[(1 + t) ] Sin[(1 + t) ]
3.2.6. Nevezetes o ¨sszegek ´ es szorzatok Adott sz´ am´ u tagot (t´enyez˝ot) tartalmaz´o ¨osszeget (szorzatot) a
6 (0 ) bels˝o f¨ uggv´ennyel sz´amolhatunk ki:
156
3. Fejezetek a matematik´ab´ ol "0 =I = LLN 2652690986
&'! + G = = ) (1 + x) (2 + x) (3 + x) (4 + x)
Igen sok esetben azonban olyan o¨sszegekre (szorzatokra) is kaphatunk z´art (pontos) formul´ at, amelyekben a tagok (t´enyez˝ok) sz´am´at szimb´olummal adjuk meg. Ehhez ny´ ujt seg´ıts´eget az
&36)&63 programcsomag 6 (0 ) f¨ uggv´enye. Olvassuk be ezt a programcsomagot: #$K"(0$!"0K
´es el˝osz¨or n´eh´ any j´ ol ismert ¨osszeget hat´arozzunk meg: "0 = = n (1 + n) 2 "0 =I = n (1 + n) (1 + 2 n) 6 "0 =I = 2 2 n (1 + n) 4
A k¨ ovetkez˝o p´eld´ aval a tov´ abbi lehet˝ os´egeket illusztr´aljuk: "0 CI= S 0 = = B 2 n Pi n ] 4 Cos[ 3
A Mathematica teh´at azt ´all´ıtja, hogy n 2nπ k 2n n . (−3) = 4 cos 3 2k k=0
(Hogyan lehet ezt bebizony´ıtani?) uggv´ennyel sz´amos v´egtelen sornak a pontos ¨osszeg´et is Ezzel a 6 f¨ meghat´arozhatjuk. P´eld´ aul:
3.2. Matematikai kifejez´esek
157
"0 > G ) = G M =I = B 6 * ( Pi Log[2] 2 3 12 6 "0 =I = 6 * ( 2 Pi 6 "0 =IF = 6 * ( : B {Zeta[17], 1.6449340668482264365}
Trigonometrikus ¨osszegek kisz´amol´as´ahoz sz¨ uks´eg eset´en be kell h´ıvni az
&3)3 programcsomagot. P´eld´ aul a n
sin(kx)
k=1
¨osszeget (a Dirichlet-magot) ´ıgy hat´ arozhatjuk meg a Mathematic´ a val:
E'!
"0 " = + = "0 *( n x (1 + n) x x ] Sin[ ] Csc[ ] Sin[ 2 2 2
A 6 f¨ uggv´enyhez hasonl´ o lehet˝os´egekkel rendelkezik a 0 elj´ ar´ as is. P´eld´ aul: &'! C = G >I = B 4 (6 + n) 5 (5 + n)
Ennek a f¨ uggv´enynek a seg´ıts´eg´evel v´egtelen szorzatokat is meghat´arozhatunk. A Wallis-formul´ at p´eld´ aul ´ıgy kaphatjuk meg: &'! ) = G = G =I = 6 * ( Pi 4
A 6 ´es a 0 k¨ uls˝ o f¨ uggv´enybe be´ep´ıtett algoritmusok (l´asd [2]) elm´eleti alapj´ at Gauss, Saalschutz, Kummer ´e s Dixon klasszikus t´etelei k´epezik. Ezek az eredm´enyek azt ´all´ıtj´ ak, hogy a ak (v´eges vagy v´egtelen) ¨osszeg kifejezhet˝o a hipergeometrikus f¨ uggv´enyekkel azokban az esetekben, anyados a k index racion´ alis t¨ ortf¨ uggv´enye. amikor az ak+1 /ak h´
158
3. Fejezetek a matematik´ab´ ol
3.3. Egyenletek megold´ asa Line´ aris egyenletrendszerek megold´as´aval a 3.8., differenci´ alegyenletekkel pedig a 3.5. szakaszban foglalkozunk. Ebben a szakaszban a programnak azokat a f¨ uggv´enyeit ismertetj¨ uk, amelyeket egy´eb matematikai f¨ uggv´enyeket tartalmaz´ o egyenletek ´es egyenletrendszerek megold´as´an´ al haszn´ alhatunk. Egyenletek pontos megold´ as´ at a
9 9
6 6 B)
bels˝o f¨ uggv´enyekkel ´all´ıthatjuk el˝ o abban az esetben, ha a bemen˝ o adatok a szimbolikus v´ altoz´okon k´ıv¨ ul csup´ an pontos numerikus ´ert´ekeket vagy be´ep´ıtett matematikai ´alland´ okat tartalmaznak. Ha a bemen˝o adatok valamelyike explicit tizedesponttal megadott sz´am, akkor az im´ent felsorolt f¨ uggv´enyek numerikus m´odszerek alkalmaz´as´aval adj´ ak meg a pontos megold´as egy k¨ ozel´ıt˝ o ´ert´ek´et. Szint´en numerikus m´ odszert alkalmazva hat´ aroznak meg k¨ozel´ıt˝ o megold´asokat az al´abbi f¨ uggv´enyek:
9 9
6
A Mathematica egyenletmegold´o algoritmusai a v´altoz´okat ´es a param´etereket komplex sz´amoknak tekintik, ´es alap´ertelmez´esben a megadott egyenlet komplex megold´asait keresik.
3.3.1. Az utas´ıt´ asok szintaxisa A Mathematica logikai a´ll´ıt´ asnak tekinti az egyenleteket, ez´ert ezeket a uk. Az matematik´aban megszokott helyett a szimb´olummal jel¨olj¨ x2 + x = 2 egyenletet a Mathematic´ a ban teh´ at ´ıgy adjuk meg: +I G +
3.3. Egyenletek megold´ asa
159
Adott komplex sz´am eset´en a fenti utas´ıt´ as eredm´enye vagy att´ ol f¨ ugg˝ oen, hogy megold´asa-e a sz´oban forg´ o egyenletnek: +I G + Q + CJ C + CJ ) {True, False}
• Egyismeretlenes egyenletek Egy ismeretlent tartalmaz´o egyenlet komplex megold´asait a
6*). , alakban megadott utas´ıt´ assal kaphatjuk meg. (A m´ asodik argumentum ki´ır´ asa nem k¨otelez˝o.) P´eld´ aul: ( +I C + G B "1 ( + {{x ->
4 + 2 Sqrt[3] 4 -2 Sqrt[3] }, {x -> }} 2 2
A fenti utas´ıt´ assorozat els˝ o sora azt jelenti, hogy az egyenlet¨ unknek az )+ nevet adtuk. A tov´abbiakban az egyenletre ezzel a v´altoz´oval hivatkozhatunk. Az elnevez´es term´eszetesen nem k¨otelez˝o, de sok esetben hasznos lehet. A kapott eredm´enyt ´ıgy egyszer˝ us´ıthetj¨ uk: 0' "0 *( : {{x -> 2 - Sqrt[3]}, {x -> 2 + Sqrt[3]}}
´es visszahelyettes´ıt´essel ´ıgy ellen˝ orizhetj¨ uk: ( Q : "0 *( : {True, True}
Figyelj¨ uk meg, hogy a 6 f¨ uggv´eny list´ak list´a j´ aval ´es transzform´aci´os szab´alyokkal adja meg a megold´asokat, amelyekre a tov´abbi m˝ uveletekben k´etf´ele m´odon hivatkozhatunk. Az els˝ o lehet˝os´eg az, hogy ugyanazt a v´ altoz´onevet haszn´aljuk egy kifejez´esben, mint az egyenletben, ´es a megold´ ast transzform´ aci´ os szab´alyk´ent alkalmazzuk:
160
3. Fejezetek a matematik´ab´ ol >+I) G + Q 0' 4 {3 (2 - Sqrt[3]) + 5 (2 - Sqrt[3]) , 4 3 (2 + Sqrt[3]) + 5 (2 + Sqrt[3]) }
4+ ' : {491 - 283 Sqrt[3], 491 + 283 Sqrt[3]}
(Mivel t¨ obb gy¨ oke van az egyenletnek, ez´ert az eredm´eny egy lista.) A m´asik lehet˝os´eg pedig az, hogy az eredm´enyt kifejez´esnek tekintve kiv´alasztjuk annak megfelel˝ o r´esz´et a szok´ asos m´odon: az adott r´eszhez vezet˝o indexek egy sorozat´aval (l´asd a 2.3.1. pontot): + 0'
2 - Sqrt[3] + 0'
2 + Sqrt[3]
A f¨ onti p´eld´ aban a v´ altoz´on ´es a m˝ uveleti jeleken k´ıv¨ ul csak pontos uggv´enybe numerikus ´ert´ekek szerepelnek. Az ilyen esetekben a 6 f¨ be´ep´ıtett algoritmus az egyenlet pontos megold´asait keresi. Ha az egy¨ utthat´ ok valamelyik´et k¨ozel´ıt˝ o numerikus ´ert´ekkel (teh´at a tizeuggv´eny numerikus despont explicit ki´ır´ as´aval) adjuk meg, akkor a 6 f¨ m´odszer felhaszn´al´ as´aval hat´ arozza meg a pontos megold´as egy k¨ozel´ıt˝ o ´ert´ek´et: ( +I C Q+ G B "1 ( + {{x -> 0.267949}, {x -> 3.73205}}
Ugyanezt az eredm´enyt kapjuk akkor is, ha az bels˝o f¨ uggv´enyt alkalmazzuk a pontos megold´ asra: 0' {{x -> 0.267949}, {x -> 3.73205}}
T¨obbsz¨ or¨ os gy¨ok¨ ot a Mathematica annyiszor sorol fel, amennyi annak a multiplicit´ asa: "1 +I C + G B + {{x -> 1}, {x -> 1}}
A program u ¨res list´aval (transzform´ aci´ os szab´alyok u ¨res halmaz´ aval) jelzi azt a t´enyt, hogy a beadott egyenletnek nincs komplex megold´ asa:
3.3. Egyenletek megold´ asa
161
"1 + +C G + + G B + {} "1 "5 +CM G "5 + + {}
Ha az egyenletnek v´egtelen sok megold´asa van, akkor u ¨res list´at tartalmaz´o list´at kapunk eredm´eny¨ ul (hiszen ilyenkor megszor´ıt´ ast nem tartalmaz´o transzform´ aci´ os szab´aly az eredm´eny): "1 + G I +I G + G + {{}} "1 +C C )C+ +C + {{}}
A 9 bels˝o f¨ uggv´eny logikai a´ll´ıt´ as form´ aj´ aban adja meg egy egyenlet megold´as´at: E +I G + + -3 + Sqrt[17] -3 - Sqrt[17] || x == x == 2 2
Ebb˝ ol a 9 f¨ uggv´ennyel transzform´ aci´ os szab´alyt le´ır´ o list´akat kapunk:
E : Sequence[{x ->
-3 - Sqrt[17] -3 - Sqrt[17] }, {x -> }] 2 2
Ha a 6 f¨ uggv´eny nem tal´ alja meg a k´ert egyenlet pontos megold´as´at, akkor ezt ´ıgy jelzi: "1 +I> G >+ G B + 5 {ToRules[Roots[5 x + x == -1, x]]}
• Felt´ etelek megad´ asa uggv´eny els˝o argumentum´ aba be´ırhatunk egyenleteket tartalmaA 6 f¨ z´o logikai kifejez´eseket is: "1 +I + // + ; B + {{x -> -1}, {x -> 1}}
162
3. Fejezetek a matematik´ab´ ol "1 +I + // + ; << +I + {{x -> -1}, {x -> 0}, {x -> -Sqrt[2]}, {x -> Sqrt[2]}}
Eg´esz egy¨ utthat´ os polinomegyenlet gy¨okeit a Zp v´eges sz´amtestben a
# felt´etel megad´asa eset´en kaphatjuk meg: "1 +I> G N+I) G F+I G F+I G + G > B // ' L + {{Modulus -> 19, x -> -18}, {Modulus -> 19, x -> -16}, {Modulus -> 19, x -> -12}, {Modulus -> 19, x -> -7}, {Modulus -> 19, x -> -1}}
Ha modulust nem adunk meg, akkor a 6 f¨ uggv´eny harmadik aralva a Mathematica olyan gumentum´ aban a # 2?# opci´ot haszn´ modulust is keres, amelyre vonatkoz´ oan a megadott egyenleteknek van k¨ oz¨os megold´asa: "1 +I G B +I G B + ' CJ ' {{Modulus -> 2, x -> -1}}
• Param´ etert tartalmaz´ o egyenletek Az egyenlet ismeretlen´et˝ol k¨ ul¨ onb¨ oz˝o szimb´olumokat a program komplex uggv´eny a param´eterek vizsg´alat´ aval nem param´eternek tekinti. A 6 f¨ foglalkozik: "1 + G $ B + b {{x -> -( )}} a
Sz´ amos, param´eter(eke)t is tartalmaz´o egyenlet matematikai szempontb´ ol korrekt megold´ asait adja meg a
9 *). , utas´ıt´ as, azaz a param´eter(ek) o¨sszes lehets´eges ´ert´ek´et figyelembe v´eve ( diszkusszi´oval egy¨ utt”) kapjuk meg az egyenlet megold´ as´at: ” E'! + G $ B + b b == 0 && a == 0 || a != 0 && x == -( ) a
3.3. Egyenletek megold´ asa
163
Hasonl´ıtsuk o¨ssze p´eld´ aul a k¨ ovetkez˝o k´et utas´ıt´ as eredm´eny´et: "1 +I G $ + G ! B + E'! +I G $ + G ! B +
• Egyenletrendszerek uggv´ennyel sz´amos egyenletrendszer A 6, a 9 ´es a 9 bels˝o f¨ komplex megold´ asait is el˝o tudjuk a´ll´ıtani. A Mathematica egyik legalapvet˝obb adatszerkezet´enek, a list´anak a felhaszn´ al´ as´aval ezt a sz´and´ekunkat ´ıgy k¨ oz¨olhetj¨ uk a programmal: "1 +I G (I G I L) + G ( G ) + ( G + )> + ( {{y -> 2, z -> 3, x -> 9}, {y -> 3, z -> 2, x -> 9}, 9 - Sqrt[57] 9 + Sqrt[57] {y -> , z -> , x -> 5}, 2 2 9 - Sqrt[57] 9 + Sqrt[57] , z -> , x -> 5}} {y -> 2 2
Az egyenleteket logikai jelekkel is ¨osszekapcsolhatjuk: "1 + G ( // + C ( + ( 1 3 {{x -> , y -> - }} 2 2 "1 + G ( << + C ( + ( Solve::svars: Warning: Equations may not give solutions for all "solve" variables. {{x -> 1 - y}, {x -> 2 + y}}
3.3.2. Egyenletek pontos megold´ asa K¨ ul¨ onb¨ oz˝o t´ıpus´ u egyenletek pontos megold´asainak explicit el˝ o´all´ıt´ as´at sz´amos matematikai eredm´eny korl´ atozza. Ebben a pontban ezek felid´ez´ese mellett ismertetj¨ uk a Mathematica program a´ltal ny´ ujtott lehet˝ os´egeket. Egyenletek matematikai le´ır´ as´anak egy lehets´eges m´odja a k¨ ovetkez˝o. Legyen A ´es B nem u ¨res halmaz, ´es tekints¨ uk az f : A → B f¨ uggv´enyt. Adott b ∈ B eset´en hat´ arozzuk meg a M := {x ∈ A : f (x) = b}
(1)
164
3. Fejezetek a matematik´ab´ ol
halmazt. Erre a feladatra gyakran u ´gy hivatkozunk, hogy oldjuk meg az ” f (x) = b ?(x ∈ A) (2) egyenletet”. Ha x ∈ M , akkor x-et a (2) egyenlet megold´ as´ anak (vagy gy¨ ok´enek), az M halmazt pedig a (2) megold´ ashalmaz´ anak nevezz¨ uk. A (2) egyenletnek nincs megold´ asa, vagy az egyenlet nem oldhat´o meg, ha M az u ¨res halmaz. Egy´ertelm˝ u a megold´ as, ha az M halmaz egyelem˝ u. Ilyen a´ltal´ anos felt´etelek mellett a megold´ashalmazr´ ol vajmi kev´es mondhat´ o. Sz´ amos (t¨obb esetben m´ely) matematikai eredm´eny ismeretes k¨ ul¨ onb¨ oz˝o speci´alis m´ odon megv´ alasztott A, B halmaz ´es f f¨ uggv´eny eset´eben. • Polinomegyenletek A Mathematica jelenlegi v´ altozatai polinomokat tartalmaz´ o egyenletek ´es egyenletrendszerek megold´asainak el˝ oa´ll´ıt´ as´ahoz ny´ ujtj´ ak a legt¨ obb seg´ıts´eget. uk el˝ osz¨or az egy ismeretlent tartalmaz´o egyenleteket, azaz legyen Tekints¨ A := B := C ´es n ak xk (x ∈ C, ak ∈ C, n ∈ N) p(x) := k=0
adott algebrai polinomf¨ uggv´eny. Az algebra alapt´etele” szerint a ” p(x) = 0
?(x ∈ C)
(3)
egyenletnek pontosan annyi gy¨ oke van, amennyi a p polinom foksz´ama, ha minden gy¨ ok´et annyiszor sz´am´ıtjuk, amennyi a multiplicit´ asa. Ismeretes, hogy tetsz˝oleges, legfeljebb negyedfok´ u polinom komplex gy¨ okeinek explicit el˝o´ all´ıt´ as´ara van (megold´ o)k´eplet, azaz a (3) egyenlet megold´ asait fel lehet ´ırni a p polinom egy¨ utthat´ oival az alapm˝ uveletek ´es a gy¨ okvon´ as v´eges sokszori alkalmaz´ as´aval. ´ Erdemes kipr´ ob´ alni, hogy ezeket a megold´ ok´epleteket a Mathematica is ismeri, ez´ert seg´ıts´eg´evel b´armely, legfeljebb negyedfok´ u polinomegyenlet komplex megold´asait el˝o tudjuk a´ll´ıtani. Tekints¨ uk p´eld´ aul a k¨ ovetkez˝o feladatot. Jel¨ olje x1 , x2 , x3 az x3 +px+q = 0 egyenlet gy¨okeit. Bizony´ıtsuk be, hogy x51 + x52 + x53 = 5pq.
3.3. Egyenletek megold´ asa
165
Egy lehets´eges megold´as: 0' "1 +I + 0'
+ 0'
+ 0'
+I> G +I> G +I> "0 *( :
@ : 5 p q
G + G 5 B +
Mutatunk egy m´ asik megold´ast is: # ( & +I> Q ./ 0' "0 *( :
@ : 5 p q
A Galois-elm´elet egyik m´ely eredm´enye azt ´all´ıtja, hogy n´egyn´el magasabb foksz´ am´ u polinom gy¨ okeinek explicit el˝ o´all´ıt´ as´ara nincs a´ltal´ anos megold´ ok´eplet. Ez az eredm´eny nem z´ arja ki annak lehet˝ os´eg´et, hogy minden n-edfok´ u n ≥ 5 egyenletnek legyen (esetleg egyenletr˝ol egyenletre v´ altoz´o) gy¨ okk´eplete. Bebizony´ıthat´ o azonban az is, hogy tetsz˝ oleges n ≥ 5 term´eszetes sz´amhoz l´etezik olyan n-edfok´ u, eg´esz egy¨ utthat´ o j´ u polinom, amelyhez a fenti ´ertelemben nincs megold´ok´eplet. Ilyen p´eld´ aul az x5 − 4x+ 2 = 0 egyenlet is. uggA fenti negat´ıv jelleg˝ u eredm´enyek ellen´ere a 6 ´es a 9 f¨ v´eny sz´amos, n´egyn´el magasabb foksz´am´ u polinomegyenlet pontos megold´ as´at k´epes el˝oa´ll´ıtani. Ilyenkor a program a matematik´ aban megszokott uggv´enybe m´odszert k¨oveti. Egyr´eszt az adott polinomot a bels˝o f¨ be´ep´ıtett algoritmusok (l´asd a 3.2.1. pontot) felhaszn´ al´ as´aval megpr´ ob´ alja alacsonyabb foksz´ am´ u t´enyez˝ok szorzat´ara felbontani. M´ asr´eszt alacsonyabb foksz´ am´ u polinomok kompoz´ıci´ o jak´ent igyekszik el˝o´all´ıtani a megadott polinomot, azaz u ´j v´ altoz´o bevezet´es´evel cs¨okkenti annak foksz´ am´at. uggv´eny ehhez a 7 bels˝o f¨ uggv´enybe beA 6 ´es a 9 f¨ ´ep´ıtett algoritmusokat (l´asd a 3.1.3. pontot) h´ıvja meg. Pr´ ob´ aljuk ki p´eld´ aul a k¨ ovetkez˝o utas´ıt´ asokat: "1 +I> C >+I) G M>+I C >+I G F)+ C B B + "1 +IN G CR+I> G CR+I) G CR+I CR+I G CR+ G C B +
Az x5 − 4x + 2 = 0 egyenlet megold´ asaira nincs megold´ok´eplet. ´Igy nem meglep˝o, hogy a Mathematica sem ´all´ıtja el˝ o a gy¨ ok¨ oket:
166
3. Fejezetek a matematik´ab´ ol "1 +I> C )+ G B + 5 {ToRules[Roots[x - 4 x + 2 == 0, x]}
N´eh´ any esetben bizonyos megold´ asokat megkapunk, m´asokat pedig nem. P´eld´ aul: +IBC+ILC+IMG+IFG+I)C+ICF+IG+G "1 B + {{x -> 1}, {x -> -Sqrt[3]}, {x -> Sqrt[3]}, 7 ToRules[Roots[2 x + x == -1, x]]}
Vannak azonban olyan polinomegyenletek is, amelyeknek gy¨ okjelekkel kifejezhet˝o megold´asait a Mathematica nem tal´alja meg. A [89] referenciak¨ onyv 609. oldal´ an is tal´ alhatunk egy ilyen p´eld´ at: ( +IN C L+I) C )+I G F+I C N+ C B "1 ( + 2 3 4 6 {ToRules[Roots[-36 x + 27 x - 4 x - 9x + x == 23, x]]}
Ennek az egyenletnek azonban
√ 3
2+
√
3 egyik gy¨ oke. Val´ oban:
( Q + CJ I G "5 "0 *( : True
Az &349 3 programcsomagban l´ev˝o
49 f¨ uggv´ennyel val´ os egy¨ utthat´ os polinom adott intervallumba es˝o val´ os gy¨okeinek a sz´am´at hat´ arozhatjuk meg. Ez az elj´ ar´ as a Sturm-f´ele m´odszert alkalmazza: A E +I C + B 1
A E +I) C +I + C 2
A E +I> G +I) G +I C )+I C + C> + B 6 * ( 1
3.3. Egyenletek megold´ asa
167
• Egy´ eb egyenletek Nincs ´altal´ anosan haszn´ alhat´ o m´ odszer nem polinomokat tartalmaz´ o egyenletek pontos megold´asainak az el˝o´all´ıt´ as´ara. Ennek ellen´ere a Mathematica 6 ´es 9 f¨uggv´enye n´eh´any ilyen egyenlet szimbolikus megold´as´ara is k´epes. Eml´ekeztet¨ unk arra, hogy az egyenletmegold´ o algoritmusok ´altal´ aban a komplex megold´asokat pr´ ob´ alj´ ak el˝oa´ll´ıtani. Felh´ıvjuk a figyelmet arra is, hogy a program a´ltal adott eredm´enyt c´elszer˝ u ellen˝ orizni. A matematik´ aban megszokott m´odon j´ arhatunk el akkor, amikor a fentebb megeml´ıtett elj´ ar´ asok nem tudj´ ak meghat´arozni a beadott egyenlet gy¨ okeit. Nevezetesen: a program egy´eb f¨ uggv´enyeinek felhaszn´ al´ as´aval az egyenletet sokszor olyan alakra hozhatjuk, amelyr˝ ol a megold´as m´ar egyszer˝ uen leolvashat´ o. N´eh´ any p´elda bemutat´ as´aval illusztr´aljuk a Mathematica ´altal ny´ ujtott lehet˝os´egeket. Vegy¨ unk el˝ osz¨or egy n´egyzetgy¨ ok¨ ot tartalmaz´o egyenletet: "1 "5 + G G "5 + + 9 }} {{x -> 16
Az egyenletnek val´ oban 9/16 az egyetlen komplex megold´asa. A k¨ovetkez˝o sz´amol´asok felhaszn´al´ as´aval lehet ezt bebizony´ıtani: "5 + G I C 4+ ' C "5 +I -3 + 4 Sqrt[x] "1 : B + 9 }} {{x -> 16 "5 LN G G "5 LN 2
A 6 f¨ uggv´eny u ¨res list´at ad eredm´eny¨ ul, ha az egyenletnek nincs (komplex) megold´ asa. P´eld´ aul: "1 "5 + C M G "5 + + {}
Ezt az eredm´enyt p´eld´ aul ´ıgy ellen˝ orizhetj¨ uk: "5 + C MI C 4+ ' C "5 +I -12 + 4 Sqrt[x]
168
3. Fejezetek a matematik´ab´ ol "1 : B + {{x -> 9}}
"5 L C M G "5 L 4
Oldjuk most meg a k¨ ovetkez˝o trigonometrikus egyenletet: sin4 x + sin4 2x + sin4 3x = cos4 x + cos4 2x + cos4 3x
?(x ∈ R).
uggv´eny nem ad seg´ıts´eget. Rendezz¨ uk a bal Ebben az esetben a 6 f¨ oldalra az egyenletet ´es az ´ıgy kapott kifejez´est pr´ob´ aljuk meg szorzatt´a alak´ıtani: $ " +I) G " +I) G " +I) C A +I) C A +I) C A +I) ! $ CJ -((1 + 2 Cos[2 x]) (Cos[2 x] - Sin[2 x]) (Cos[2 x] + Sin[2 x]))
Az eredeti egyenlet M megold´ashalmaza teh´ at egyenl˝o a fenti t´enyez˝ok val´ os z´erushelyeit tartalmaz´ o halmazok (jel¨ olj¨ uk ezeket rendre az M1 , az uk az els˝o t´enyez˝o M2 , illetve az M3 szimb´olummal) egyes´ıt´es´evel. N´ezz¨ z´erushelyeit: "1 G A + B + Solve::ifun: Warning: Inverse functions are being used by Solve, so some solutions may not be found. Pi }} {{x -> 3
Figyelj¨ uk meg, hogy a 6 elj´ ar´ as a v´egtelen sok megold´as k¨oz¨ ul csak egyet ad meg. A cos f¨ uggv´eny periodicit´ as´at figyelembe v´eve az els˝o t´enyez˝o val´ os z´erushelyeinek a halmaza: M1 = {(3k ± 1)π/3 : k ∈ Z}. A m´asodik, illetve a harmadik t´enyez˝o z´erushelyeinek a halmaza a "1
+ + Solve::ifun: Warning: Inverse functions are being used by Solve, so some solutions may not be found. Pi }} {{x -> 8
3.3. Egyenletek megold´ asa
169
"1
+ C + Solve::ifun: Warning: Inverse functions are being used by Solve, so some solutions may not be found. Pi {{x -> - }} 8
alapj´ an π π π π + k : k ∈ Z}, illetve M3 = { − + k : k ∈ Z}. 8 2 8 2 Az egyenlet megold´ ashalmaza teh´ at: π π M = M1 ∪ M2 ∪ M3 = {(2k + 1) : k ∈ Z} ∪ {(3k ± 1) : k ∈ Z}. 8 3 N´ezz¨ unk egy p´eld´ at logaritmust tartalmaz´o egyenletre. Meghat´arozzuk a M2 = {
1 logx (2t − x) logt x + = logx 2 logt 2 logt2 −1 2
?(x ∈ R)
egyenlet gy¨okeit, ahol t val´ os param´eter. A val´ os logaritmusf¨ uggv´eny√tulajdons´ agaib´ ol k¨ ovetkezik, hogy az egyenletnek csak a t ∈ (1, +∞) \ { 2} param´eter´ert´ek eset´en lehet val´os megold´ asa. Az x megold´asnak pedig ki kell el´eg´ıtenie az x > 0, az x = 1 ´es a 2t − x > 0 felt´eteleket. uggv´eny nem tudja megoldani ezt az egyenletet, A 6 ´es a 9 f¨ ez´ert el˝osz¨or a´talak´ıt´ asokat v´egz¨ unk: =* % + C+% + G% +% C % IC 2 Log[2 t - x] Log[x] Log[-1 + t ] ) + + -( Log[2] Log[2] Log[2] =* @ =* 2 -Log[-1 + t ] + Log[2 t - x] + Log[x] Log[2]
A Mathematica logaritmusok ¨osszeg´et, illetve k¨ ul¨ onbs´eg´et nem alak´ıtja a´t automatikusan szorzat, illetve h´ anyados logaritmus´ ara, mert a log a + log b = log ab egyenl˝ os´eg a komplex sz´amtestben nem ´erv´enyes (l´asd a 3.2.5. pontot). A tett felt´etelek mellett azonban fenn´ all a fenti egyenl˝ os´eg. Ha ezt alkalmazni szeretn´enk, akkor egy transzform´ aci´ os szab´alyt kell defini´ alnunk:
170
3. Fejezetek a matematik´ab´ ol @( ,Q % $, G !,Q % $, CJ % $I 'I! a c {Log[b_] (a_.) + Log[d_] (c_.) -> Log[b d ]}
A 6 elj´ ar´ assal ´ıgy kaphatjuk meg a megold´ asokat: "1 =* B + Q @( "0 *( : Solve::tdep: The equations appear to involve transcendental functions of the variables in an essentially non-algebraic way. {{x -> -1 + t}, {x -> 1 + t}}
Az egyenlet megold´ asa teh´ √ at x = t ± 1. Az x > 0 ´es a 2t − x > 0 felt´etel ul, az x = 1 felt´etel pedig csak minden t ∈ (1, +∞) \ { 2} eset´en teljes¨ akkor, ha t = 2. A t = 2 esetben az egyenletnek egyetlen megold´asa: x = 3. A Mathematic´ a t meg lehet tan´ıtani bizonyos f¨ uggv´enyegyenletek megold´ as´ara is. Az ´erdekl˝od˝ o Olvas´ o figyelm´et felh´ıvjuk az ezzel a t´em´aval kapcsolatos [15] dolgozatra. • Egyenletrendszerek uggv´eny a Gr¨ obner-b´ azisok elm´elet´et alkalmazza polinomokat A 6 f¨ tartalmaz´o egyenletrendszerek megold´as´an´ al. A 3.2.1. pont Gr¨ obner-b´ azisok c´ım˝ u alpontj´ aban bevezetett jel¨ol´eseket ´es fogalmakat ebben az alpontban tov´ abbi hivatkoz´ as n´elk¨ ul fogjuk haszn´ alni. Legyen n r¨ ogz´ıtett term´eszetes sz´am, ´es keress¨ uk a P := {p1 , · · · , pk } ⊂ Q[x] polinomokkal k´epzett pi (x1 , x2 , · · · , xn ) = 0
(1 ≤ i ≤ k)
(1)
egyenletrendszer komplex megold´asait. R¨ogz´ıts¨ unk egy alkalmas ≤ rendez´esi rel´aci´ ot a 3.2.1. pontban defini´ alt T al (≤-re vonatkoz´ o) halmazon, ´es legyen G := {g1 , · · · , gl } ⊂ Q[x] a (P ) ide´ Gr¨ obner-b´ azisa. Mivel a G ´ altal gener´ alt ide´ al megegyezik a P halmaz ´altal gener´alt ide´ allal, ez´ert az (1) egyenletrendszer megold´ashalmaza egyenl˝ oa gi (x1 , x2 , · · · , xn ) = 0
(1 ≤ i ≤ l)
(2)
egyenletrendszer megold´ashalmaz´aval. Ha az (1) egyenletrendszer line´aris, akkor a Gauss-f´ele elimin´ aci´ os elj´ar´ assal kaphatunk egy vele ekvivalens, h´ aromsz¨og alak´ u” (´es ez´ert egysze” r˝ uen megoldhat´ o) egyenletrendszert.
3.3. Egyenletek megold´ asa
171
B. Buchberger [14] ezt a m´odszert ´altal´ anos´ıtotta arra az esetre, amikor uggv´enyek polinomok. J´ ol haszn´ alhat´ o algoritmust a pi (i = 1, 2, · · · , k) f¨ is adott az (1) rendszerrel ekvivalens, h´ aromsz¨og alak´ u” (2) egyenletrend” szer megkonstru´al´ as´ara. Bebizony´ıtotta azt is, hogy minden P ⊂ Q[x] v´eges halmazhoz l´etezik ilyen G polinomrendszer (ezt nevezte el Gr¨obner-b´ azisnak), amelynek seg´ıts´eg´evel (a line´aris esethez hasonl´oan) meg´allap´ıthat´ o a megold´as l´etez´ese ´es egy´ertelm˝ us´ege, valamint el˝o´all´ıthat´ o a megold´as is. Az elmondottakat a k¨ovetkez˝o p´eld´ ak bemutat´ as´aval illusztr´aljuk. Oldjuk meg el˝ osz¨or a C2 halmazon a k¨ ovetkez˝o egyenletrendszert: xy − x − y = 22, 2
2
x + y + 3(x + y) = 88.
(3)
Sz´ am´ıtsuk ki el˝ osz¨or a (3) egyenletrendszernek megfelel˝o (P ) ide´ al G Gr¨ obner-b´ azis´ at: O$ S + ( C + C ( C +I G (I G + G ( C MM + ( 2 3 4 {330 + 286 y - 89 y + y + y , 2 3 176 + 23 x - 87 y + 2 y + y }
Mivel (P ) = (G), ez´ert a 23x − y 3 + 2y 2 − 87y = −176, y 4 + y 3 − 89y 2 + 286y = −330 egyenletrendszer ekvivalens a (3) egyenletrendszerrel, ´es ez ut´obbi m´ ar k¨ ozvetlen¨ ul megoldhat´ o. uggv´eny a (3) egyenletrendszert: Ezzel a m´odszerrel oldja meg a 6 f¨ "1 + ( C + C ( C B +I G (I G + G ( C MM B + ( "0 *( : 11 + I Sqrt[11] 11 - I Sqrt[11] , y -> }, 2 2 11 - I Sqrt[11] 11 + I Sqrt[11] , y -> }, {x -> 2 2 {x -> -6 - Sqrt[26], y -> -6 + Sqrt[26]},
{{x ->
{x -> -6 + Sqrt[26], y -> -6 - Sqrt[26]}}
Bebizony´ıthat´ o az, hogy ha az (1) egyenletrendszernek v´eges sok megold´ asa van, akkor a megfelel˝o Gr¨ obner-b´ azissal kapott (2) egyenletrendszer
172
3. Fejezetek a matematik´ab´ ol
h´ aromsz¨og alak´ u”. Ilyen esetekben a Mathematica akkor tudja meghat´ a” rozni a k´ert egyenletrendszer pontos gy¨okeit, ha meg tudja oldani a megfelel˝ o (most m´ar egyv´altoz´os) polinomegyenleteket. A Gr¨ obner-b´ azisok seg´ıts´eg´evel sz¨ uks´eges ´es el´egs´eges felt´etel adhat´ o az (1) egyenletrendszer megold´asainak l´etez´es´ere. Az erre vonatkoz´ o ´all´ıt´ as (l´ asd p´eld´ aul [28], Theorem 10.11) a k¨ ovetkez˝o: az (1) egyenletrendszer akal G Gr¨ obnerkor ´es csak akkor oldhat´ o meg a Cn halmazon, ha a (P ) ide´ uggv´eny b´ azisa nem tartalmazza az 1 polinomot. Ilyen esetekben a 6 f¨ u ¨res list´at ad eredm´eny¨ ul: "1 +I ( G ) (I C F B + ( C (I G M B + (I C > + ( G B + ( {}
Sz´ amoljuk most ki a megfelel˝o Gr¨ obner-b´ azist is: O$ S +I ( G ) (I C F + ( C (I G M + (I C > + ( G + ( {1}
A megold´asok egy´ertelm˝ us´eg´ere vonatkoz´oan a k¨ ovetkez˝o ´all´ıt´ as bizony´ıthat´ o be (l´ asd p´eld´ aul [28], Theorem 10.12). Jel¨ olj¨ uk a H szimb´ olummal az 1 rendszerhez tartoz´ o (P ) ide´ al G Gr¨ obner-b´ azis´ aban szerepl˝ o f˝ otagok halmaz´ at. Ekkor az (1) egyenletrendszernek pontosan akkor van v´eges sok megold´ asa, ha minden 1 ≤ i ≤ n indexhez l´etezik olyan m term´eszetes sz´ am, hogy (xi )m ∈ H. Ezt felhaszn´ alva bizony´ıthajuk be p´eld´ aul azt, hogy az 2xy + yz = 27, 3yz − 2xz = 25, xz − xy = 4 egyenletrendszernek v´eges sok megold´asa van, ugyanis: O$ S + ( G ( C F ( C + C > + C + ( C ) + ( 2 {-25 + z , 5 y - 3 z, 5 x - 2 z}
A 6 f¨ uggv´eny meghat´ arozza a gy¨ok¨ oket: "1 + ( G ( C F B ( C + C > B + C + ( C ) B + (
3.3. Egyenletek megold´ asa
173
{{x -> -2, y -> -3, z -> -5}, {x -> 2, y -> 3, z -> 5}}
Tekints¨ uk most a k¨ ovetkez˝o egyenletrendszert: zx + yx − x + z 2 = 2, xy 2 + 2zx − 3x + z + y = 1, 2
2
(4)
3
2z + zy − 3z + 2zy + y − 3y = 0. uggv´eny seg´ıts´eg´evel. A Mathematica Pr´ ob´ aljuk megoldani ezt a 6 f¨ 2.2.2. v´altozat´ aval mi ezt az eredm´enyt kaptuk: "1 + G ( + C + G I C + (I G + C + G I G (I C G + ( Solve::svars: Warning: Equations may not "solve" variables. Out of memory. Exiting.
B G ( C B ( G (I C ( B
give solutions for all
Ez azt jelenti, hogy a 6 elj´ ar´ as nem tudta megoldani a (4) egyenletet. Hat´arozzuk meg a (4) egyenletrendszerhez tartoz´o Gr¨ obner-b´ azist: O$ S + G ( + C + G I C + (I G + C + G G ( C I G (I C G ( G (I C ( + ( 2 3 4 5 6 {-10 + 8 z + 15 z - 8 z - 7 z + 2 z + z , 2 3 4 5 + y - 3 z - 5 z + 2 z + z , 2 2 4 -4 - 2 x + 4 z + x z - z }
A kor´ abban kimondott a´ll´ıt´ ast figyelembe v´eve ebb˝ol az eredm´enyb˝ ol azt kapjuk, hogy a sz´ oban forg´ o egyenletrendszernek v´egtelen sok megold´asa van. A fenti Gr¨ obner-b´ azis seg´ıts´eg´evel fel´ırhatjuk a (4) rendszerrel ekvivalens h´ aromsz¨og alak´ u” egyenletrendszert is: ” −2x + 4z 2 + xz 2 − z 4 = 4, y − 3z − 5z 2 + 2z 3 + z 4 = −5, 2
3
4
5
6
8z + 15z − 8z − 7z + 2z + z = 10, ar´ as m´ar meg tud oldani: amit a 6 elj´ ( :
B :
B :
B "1 ( + (
(5)
174
3. Fejezetek a matematik´ab´ ol "@ : Solve::svars: Warning: Equations may not give solutions for all "solve" variables. {{y -> 1 - Sqrt[2], z -> Sqrt[2]}, <<7>>}
A kapott ol ´es az (5) els˝o egyenlet´eb˝ ol k¨ ovetkezik, hogy az √ √eredm´enyb˝ armas minden x ∈ C eset´en kiel´eg´ıti (4)-et, aminek (x, 1 − 2, 2) sz´amh´ teh´ at v´egtelen sok megold´asa van. A program ebben az esetben csak n´eh´ any (v´eges sok) gy¨ ok¨ ot ad meg, ´es figyelmeztet benn¨ unket arra, hogy lehetnek m´as megold´asok is. ar´ as param´etert tartalmaz´o egyenletrendszer gy¨okeit diszA 9 elj´ ” kusszi´oval egy¨ utt” adja meg. P´eld´ aul: E'! R G +R( + C ( G + G ( G + ( B + ( "0 *( : 1 x == -3 && y == - && a == -1 || 2 1 x == - && y == -3 && a == 1 || 2 -1 + a != 0 && 1 + a != 0 && 2 -(2 + a + Sqrt[-4 + 5 a ) && x == 2 (1 + a) 2 2 - a + Sqrt[-4 + 5 a y == || 2 (-1 + a) -1 + a != 0 && 1 + a != 0 && 2 -2 - a + Sqrt[-4 + 5 a && x == 2 (1 + a) 2 2 - a - Sqrt[-4 + 5 a y == 2 (-1 + a)
Param´etereket tartalmaz´o egyenletrendszereket a param´eterekre oldja meg a
6 B) f¨ uggv´eny. Pontosabban: ez az elj´ ar´ as a param´eterek azon ´ert´ekeit keresi, amelyekre a megadott felt´etelek a v´altoz´ok minden lehets´eges komplex ´ert´ek´ere teljes¨ ulnek.
3.3. Egyenletek megold´ asa
175
Hat´arozzuk meg p´eld´ aul az a, b ´es c ∈ C param´etereket u ´gy, hogy az os´eg teljes¨ ulj¨ on minden olyan (x, y) ∈ C2 sz´amax2 + bxy + cy 2 = 1 egyenl˝ p´ arra, amelyre az x + y = 1 is fenn´ all. A feladatot a Mathematic´ a val ´ıgy oldhatjuk meg: "1#Y(
60 + G ( +I G $ + ( G ! (I + ( {{a -> 1, b -> 2, c -> 1}}
Oldjuk meg a k¨ ovetkez˝o feladatot is. Jel¨olj¨ uk a 3x2 + ax + b = 0 egyenlet gy¨ okeit x1 -gyel ´es x2 -vel, az f (x) :=
5x + 2 2x − 1
(x ∈ R \ {1/2})
line´ aris t¨ ortf¨ uggv´enynek az x1 ´es x2 helyeken felvett ´ert´ekeit y1 - ´es y2 -vel. Hat´arozzuk meg az a ´es b ´ert´ekeket, ha tudjuk, hogy y1 ´es y2 kiel´eg´ıti a 7y 2 − 5y − 11 = 0 egyenletet. A megold´as a Mathematic´ a val a k¨ ovetkez˝o: * +, >+ G + C "1#Y(
60 +I G + G $ B F* +I C >* + C B + {{a -> 7, b -> 1}}
A 6 f¨ uggv´enyhez hasonl´ oan a 6 B) f¨ uggv´eny is els˝osorban polinomokat tartalmaz´o egyenletrendszerek megold´as´ahoz ny´ ujt seg´ıts´eget. A Mathematica bizonyos nem polinomokat tartalmaz´o egyenletrendszerek megold´as´ara is k´epes. A lehet˝os´egek az egyismeretlenes egyenletekhez hasonl´ oak (l´asd az Egy´eb egyenletek c´ım˝ u alpontot). Itt csup´ an k´et olyan p´eld´ at mutatunk, amelyet a program meg tud oldani: "1 +R(+G( M (R(G > R+G+ )F + ( {{x -> 8, y -> 4, z -> 6}}
"1 "5 + G ( G "5 + C ( B "5 +I C (I L + ( {{x -> 41, y -> -40}, {x -> 41, y -> 40}}
176
3. Fejezetek a matematik´ab´ ol
3.3.3. Egyenletek k¨ ozel´ıt˝ o megold´ asa A Mathematica t¨ obb lehet˝ os´eget is k´ın´ al egyenletek ´es egyenletrendszerek k¨ ozel´ıt˝ o megold´asainak el˝ o´ all´ıt´ as´ara. A tov´ abbiakban jelezz¨ uk azt, hogy a program k´esz´ıt˝ oi milyen numerikus m´odszert ´ep´ıtettek be az egyes elj´ar´ asokba ´es a be´ep´ıtett algoritmusok k¨oz¨ ul hogyan v´ alaszthatjuk ki az ig´enyeinknek megfelel˝ ot. A k¨ ozel´ıt˝ o megold´asokat ak´ar t¨ obb ezer ´ert´ekes jegyre is meghat´arozhatjuk a Mathematic´ a val. Ezt t¨ obb esetben az opci´ok alkalmas megv´alaszt´as´aval tehetj¨ uk meg. A numerikus f¨ uggv´enyek sz´amos opci´oval rendelkeznek. Ezek jelent´es´er˝ol ´es haszn´alatuk m´ odj´ ar´ ol a [89] referenciak¨ onyvb˝ ol szerezhet¨ unk inform´ aci´ ot. Ha a feladatunk megold´ as´ahoz ez nem elegend˝o, akkor ´erdemes tanulm´anyozni a [40] ´es a [41] dolgozatot. es az *6* ,, elj´ ar´ as • Az *9 * ,,, az *9 * ,, ´ uggv´enyt alkalmazhatjuk a pontos megold´ asokat keres˝o Az numerikus f¨ 9 , 9 ´es 6 f¨uggv´enyekre. A tov´abbiakban ezek k¨oz¨ul csak a 6 f¨uggv´enyt tanulm´anyozzuk. Ebben az esetben a Mathematica el˝osz¨or az egyenlet(rendszer) ¨ osszes pontos megold´as´at keresi. Ha megtal´ alja (els˝ osorban polinomot tartalmaz´ o egyenletek ´es egyenletrendszerek eset´eben), akkor veszi azok k¨ozel´ıt˝ o ´ert´ek´et: "1 +I G + C F B + B {{x -> -3.8284271247461900976}, {x -> 1.8284271247461900976}}
Figyelmeztet˝o u ¨zenetet k¨ uld akkor, ha az egyenlet(rendszer)nek a megtal´ alt gy¨ ok(¨ ok)¨ on k´ıv¨ ul m´ as megold´asai is lehetnek: "1 A + + Solve::ifun: Warning: Inverse functions are being used by Solve, so some solutions may not be found. {{x -> 1.0472}}
Ha a program szimbolikus m´ odszerek alkalmaz´as´aval nem tudja meghat´ arozni a pontos megold´ asokat, akkor numerikus m´ odszerek felhaszn´al´ as´aval dolgozik tov´ abb:
3.3. Egyenletek megold´ asa
177
"1 +I> C )+ G B + {{x -> -1.51851}, {x -> -0.116792 - 1.43845 I}, {x -> -0.116792 + 1.43845 I}, {x -> 0.508499}, {x -> 1.2436}}
• Az 9 ´ es az 6 elj´ ar´ as ar´ as k¨oz¨ott az eredm´enyt tekintve nincs Az 6 ´es az *6* ,, elj´ k¨ ul¨ onbs´eg. Az 6 f¨ uggv´enybe be´ep´ıtett algoritmusok k¨ozvetlen¨ ul numerikus m´ odszerek alkalmaz´as´aval keresik a megold´as(ok) egy k¨ ozel´ıt˝ o ´ert´ear´ assal gyorsabban kapjuk meg a v´alaszt, k´et, ez´ert ´altal´ aban az 6 elj´ ar´ assal: mint az *6* ,, elj´
0 "1 + (I G ( G +I C B G + G + (I B + ( {21.366 Second, Null}
0 "1 + (I G ( G +I C B G + G + (I B + ( {432.479 Second, Null}
A megold´asoknak ak´ ar t¨ obb ezer ´ert´ekes jegy´et is megkaphatjuk. Ha uggv´eny harmadik argumentum´ aba egy konkr´et n term´eszetes az 6 f¨ sz´amot ´ırunk, akkor a Mathematica n ´ert´ekes jegyet tartalmaz´o sz´amok (l. a 3.1.3. pontot) alkalmaz´ as´aval oldja meg az egyenletet: "1 "5 + G > + + B {{x -> 1.90983005625052575898}, {x -> 13.090169943749474241}}
• A 9 f¨ uggv´ eny Az el˝ oz˝oekben ismertetett Mathematica-f¨ uggv´enyek t¨ obb esetben nem tal´ alj´ ak meg a beadott egyenlet egy´ebk´ent l´etez˝o megold´as´at. Tegy¨ uk fel p´eld´ aul azt, hogy a 1 (1) tg x = 2x + 4 egyenlet val´ os gy¨okeit szeretn´enk meghat´ arozni. A pontos megold´ asok explicit el˝o´all´ıt´ as´aban nem rem´enykedhet¨ unk, ez´ert uggv´ennyel pr´ ob´ alkoel˝osz¨or a numerikus megold´ ast szolg´altat´ o 6 f¨ zunk:
178
3. Fejezetek a matematik´ab´ ol "1
+ + G ) + Solve::tdep: The equations appear to involve transcendental functions of the variables in an essentially non-algebraic way. 1 + 2 x, x] NSolve[Tan[x] == 4
Az ehhez hasonl´ o esetekben a 9 bels˝o f¨ uggv´enyt haszn´ alhatjuk. A matematik´ aban egyenlet(rendszer)ek numerikus megold´ as´ara sz´amos iter´aci´ os elj´ar´ as ismeretes. Ezek k¨oz¨os von´ asa az, hogy egy (vagy t¨ obb) kezd˝o´ert´ekb˝ ol kiindulva k´epez¨ unk olyan sorozatot, amelynek hat´ar´ert´eke a uggv´eny is ilyen m´odszekeresett (pontos) megold´as. A 9 bels˝o f¨ reket alkalmaz. uggv´enyt Az elmondottakb´ ol az is k¨ovetkezik, hogy ha a 9 f¨ k´ıv´ anjuk haszn´ alni, akkor egyr´eszt kezd˝o´ert´eket (azaz az iter´aci´ os sorozat els˝o tagj´ at) is meg kell adnunk, m´ asr´eszt csup´an egyetlen (a kezd˝o´ert´ekhez legk¨ozelebbi) megold´ ast fogjuk megkapni. A kezdeti k¨ ozel´ıt´es j´ o” megv´a” laszt´as´ahoz (azaz ahhoz, hogy az el´eg k¨ozel” legyen valamelyik megol” d´ ashoz) a Mathematica egy´eb f¨ uggv´enyei ´altal biztos´ıtott lehet˝ os´egeket is felhaszn´ alhatjuk. A feladatunkhoz visszat´erve tekints¨ uk p´eld´ aul a k¨ ovetkez˝o ´abr´ at: & + + G ) + C& & & E CJ C> > 4 2
-1.5
-1
-0.5
0.5
1
1.5
-2 -4
Az ´abr´ ar´ ol leolvashat´o (sz¨ uks´eg eset´en be is bizony´ıthat´ o), hogy az (1) egyenletnek a (−π/2, π/2) intervallumban pontosan h´ arom k¨ ul¨ onb¨ oz˝o val´ os gy¨ oke van. A kezd˝ o´ert´ek megv´alaszt´as´ahoz is kapunk seg´ıts´eget:
3.3. Egyenletek megold´ asa
179
'E
+ + G ) + {x -> 1.21323} 'E
+ + G ) + CBQ {x -> -0.255724} 'E
+ + G ) + CQ {x -> -1.09475}
M´ asik intervallumba es˝ o gy¨ ok¨ ot is hasonl´ o m´odon hat´ arozhatunk meg. uggv´enybe h´ arom k¨ ul¨ onb¨ oz˝o algoritmust ´ep´ıtettek be: a A 9 f¨ Newton-f´ele ´erint˝ om´odszert, a Brent-f´ele elj´ ar´ ast, valamint a szel˝om´odszert. ´ Erdekes m´ odon a felhaszn´ al´ o ebben az esetben nem opci´o megad´as´aval, hanem az utas´ıt´ as szintaxis´ aval tudja kiv´ alasztani a feladat´ anak megfelel˝o algoritmust. Ha az f (x) = 0 ?(x ∈ C) egyenlet megold´as´ahoz a
9*5*, M. -. M/, alakban megadott utas´ıt´ ast haszn´aljuk, akkor a Mathematica a Newton-f´ele m´odszert alkalmazza, azaz az x0 kezdeti k¨ozel´ıt´esb˝ol kiindulva k´epezi az xn+1 := xn −
f (xn ) f (xn )
(n ∈ N)
sorozatot. Az f f¨ uggv´eny deriv´altj´ at szimbolikusan hat´arozza meg. Ha az f f¨ uggv´eny nem differenci´alhat´ o, akkor ennek k¨ ozl´es´evel befejezi a ki´ert´ekel´est: 'E #$ + A + + C FindRoot::frjc: Could not symbolically find the Jacobian of {Abs[x] - Cos[x]}. Try giving two starting values for each variable. FindRoot[Abs[x] == Cos[x], {x, -1}]
A 9 m´asodik argumentum´ aban azonban k´et kezd˝o´ert´eket is megadhatunk:
9*5*, M. -. M. +/,
180
3. Fejezetek a matematik´ab´ ol
A Mathematica ekkor az intervallumfelez´esen alapul´ o Brent-f´ele elj´ ar´ ast haszn´ alja abban az esetben, ha a k´et adott pontban felvett f¨ uggv´eny´ert´ek k¨ ul¨ onb¨ oz˝o el˝ojel˝ u. Egy´ebk´ent a program a szel˝ om´odszert alkalmazza: 'E #$ + A + + C B {x -> -0.739085}
Az f (x) = 0 egyenlet [a, b] intervallumba es˝ o gy¨ ok´et a c kezd˝o´ert´ekb˝ ol kiindulva a
9*5*, M. -. . . &/, utas´ıt´ assal kapjuk meg. A program ebben az esetben a Newton-f´ele ´erint˝ om´odszert alkalmazza. P´eld´ aul: 'E " + C +I) B + {x -> 1.93375}
Az el˝ oz˝oekhez hasonl´ oan k´et kezdeti k¨ozel´ıt´est is megadhatunk:
9*5*, M. -. +. (. . &/, Ez az elj´ar´ as a Brent-f´ele m´odszerrel vagy pedig a szel˝om´odszerrel sz´am´ıtja ki a megold´ ast. P´eld´ aul: 'E " + C +I) B + C C C) -8 {x -> 9.17319 10 }
A k¨ ovetkez˝o szintaxist is haszn´alhatjuk: 'E " + C +I) B + C C C) FindRoot::regex: Reached the point {1.96266} which is outside the region {{-4., 1.}}. {x -> 1.96266}
A 9 f¨ uggv´enyt olyan egyenletrendszerek megold´as´ahoz is haszn´ alhatjuk, amelyekben az egyenletek sz´ama megegyezik az ismeretlenek sz´am´aval. J´ o” kezd˝o´ert´ek megv´alaszt´as´ahoz ebben az esetben a 0F7, ” uggv´eny adhat seg´ıts´eget: a 40 vagy a # f¨ 'E " + G (I G % + G (I C I + G ( G {x -> 2.33687, y -> 0.740478, z
->
> + B ( B 1.92265}
3.4. Anal´ızis
181
3.4. Anal´ızis Ebben a szakaszban azt szeretn´enk megmutatni, hogy az anal´ızis t´emak¨ or´ehez tartoz´o probl´em´ak megold´asa sor´an hogyan haszn´ alhatjuk fel a Mathematic´ a t. A defin´ıci´ okat ´es a t´eteleket kev´es kiv´etelt˝ol eltekintve nem fogalmazzuk meg. Ezeket a [20], [44], [48], [61], valamint a [72] bevezet˝ o k¨ onyvek mindegyike tartalmazza. Sok feladatot a matematik´ aban megszokott m´odon pontosan (szimbolikusan) is megoldhatunk, p´eld´ aul a , a 7, a 6, az elj´ ar´ as seg´ıts´eg´evel. A program ´altal adott eredm´enyek ´ert´ekel´es´en´el azonban vegy¨ uk figyelembe azt, hogy a beadott matematikai f¨ uggv´enyeket a Mathematica a legt¨obb esetben komplex v´ altoz´osaknak, a param´etereket pedig komplex ´ert´ek˝ ueknek tekinti ´es a ki´ert´ekel´es sor´an csak n´eh´ any azonoss´ agot alkalmaz automatikusan. A kapott eredm´enyt m´as elj´ar´ asok seg´ıts´eg´evel vagy transzform´ aci´ os szab´alyok megad´as´aval alak´ıthatjuk a´t az ig´enyeinknek megfelel˝ o alakra. Sok esetben azonban c´elszer˝ ubb numerikus m´ odszereket alkalmaz´ o f¨ uggv´enyekkel (p´eld´ aul , 6 ´es ) kisz´amolni a pontos eredm´eny egy k¨ ozel´ıt˝ o ´ert´ek´et. Ekkor opci´ ok alkalmas megad´as´aval egyr´eszt t¨obb numerikus m´ odszer k¨ oz¨ ul is v´ alogathatunk, m´ asr´eszt igen t´ag hat´ arok k¨ oz¨ott szab´alyozhatjuk a ki´ert´ekel´esn´el felhaszn´ alt pontos sz´amjegyek sz´am´at is. A numerikus f¨ uggv´enyek opci´ oinak optim´alis” vagy az ” ig´enyeinknek megfelel˝ o (p´eld´ aul egy meghat´arozott m´odszerrel k´ıv´ anunk egy feladatot megoldani) megv´alaszt´asa sokszor nem egyszer˝ u feladat. A [89] referenciak¨ onyv¨ on k´ıv¨ ul a [40] ´es a [41] dolgozatb´ ol ismerhetj¨ uk meg a numerikus f¨ uggv´enyek opci´ oinak jelent´es´et ´es haszn´alatuk m´ odj´ at. A szerz˝ok sz´amos p´eld´ aval illusztr´alj´ ak a lehet˝os´egeket. Az alkalmazott numerikus m´ odszerek elm´elet´et illet˝oen a [47], [65], [73] ´es a [78] k¨onyveket aj´ anljuk az Olvas´ o figyelm´ebe. onyvet is szenteltek m´ar anV´eg¨ ul megeml´ıtj¨ uk m´eg azt is, hogy t¨obb k¨ nak a k´erd´esnek a megv´alaszol´as´ara, hogy a Mathematic´ a t mik´eppen lehet felhaszn´ alni az anal´ızis oktat´ as´aban. Az Irodalomjegyz´ekben felt¨ untetett [12], [21] ´es [77] m˝ uveken k´ıv¨ ul tov´ abbiakat is tal´ alhat az ´erdekl˝od˝ o Olvas´ o a MathSource-on.
3.4.1. Be´ ep´ıtett speci´ alis f¨ uggv´ enyek A Mathematica a 3.1.4. pontban felsorolt matematikai f¨ uggv´enyeken k´ıv¨ ul az al´abbi f¨ uggv´enyeket is tartalmazza:
182
3. Fejezetek a matematik´ab´ ol
) ) 0 )L )L0 LL L L W L ; L X L 48&) 8 48&) 8! 4 ; 0 8 08 4 6
: :&4 11 1)M+ 1)++ 1)(+ 1)! W&6 W& W&0 W&6 W&6)& W&Y 0 808 : 088 0): 0) 968 96Y 6 681X Y
A 4 3773 programcsomagban tal´ alhat´ ok az al´abbi elj´ ar´ asok:
77
!6
Speci´ alis f¨ uggv´enyeket k¨ ul¨ onb¨ oz˝o m´odon (p´eld´ aul a norm´ al´ as k¨ ul¨ onb¨ oz˝o megv´alaszt´as´aval) szok´as ´ertelmezni a matematik´ aban. A felsorolt be´ep´ıtett f¨ uggv´enyek pontos defin´ıci´ oj´ at a [89] referenciak¨ onyv tartalmazza. N´eh´ any olyan esetben, amikor a fenti f¨ uggv´enyek argumentum´ aba csak pontos numerikus ´ert´ekeket vagy be´ep´ıtett matematikai ´alland´ okat (l´asd a 3.1.3. pontot) ´ırunk, a pontos helyettes´ıt´esi ´ert´eket kapjuk meg: O00 O00 > [ N &(O00 N 6 137 Sqrt[Pi] 135135 Sqrt[Pi] Pi , , , - EulerGamma} { 2 128 945 60
3.4. Anal´ızis
183
Az f¨ uggv´enyt (l´ asd a 3.1.3. pontot) haszn´ alva azonban b´ armely komplex sz´am eset´en el˝o´ all´ıthatjuk a helyettes´ıt´esi ´ert´ek egy k¨ozel´ıt´es´et: O00 G ) 6 F 0.00522553847136921 - 0.17254707929430019 I
Szeml´eltethetj¨ uk ezeket a f¨ uggv´enyeket. Pr´ ob´ aljuk ki p´eld´ aul a k¨ ovetkez˝o utas´ıt´ ast: & #$ [ G 6R( ( B )B
A program speci´alis f¨ uggv´enyek k¨ oz¨ott fenn´ all´ o sz´amos ¨osszef¨ ugg´est ismer, ´es ezeket alkalmazni is tudja. P´eld´ aul: % '& > + 3 5 15 x - 70 x + 63 x 8 6 % '& > + % '& N + + C 0 D O00 + + 2 Gamma[x] PolyGamma[0, x] + Gamma[x] PolyGamma[1, x]
Itt eml´ıtj¨ uk meg a
#83L Y 3 programcsomagot, amelynek seg´ıts´eg´evel k¨ ul¨ onb¨ oz˝o t´ıpus´ u Bessel-f´ele f¨ uggv´enyek z´erushelyeinek k¨ ozel´ıt˝ o ´ert´ek´et kaphatjuk meg. A 0! @KS[K VSR
utas´ıt´ asok v´egrehajt´ asa ut´ an t´ aj´ekoz´odhatunk a k¨ ozvetlen¨ ul felhaszn´ alhat´ o f¨ uggv´enyek sz´eles k¨ or´er˝ol.
3.4.2. Sz´ amsorozatok ´ es sz´ amsorok Mivel a Mathematica komplex sz´amok kezel´es´ere is k´epes, ez´ert komplex tag´ u sorozatokkal v´egezhet¨ unk k¨ ul¨ onf´ele m˝ uveleteket. Ebben a pontban a programnak azokat a lehet˝ os´egeit ismertetj¨ uk, amelyeket sz´amsorozatok ´es sz´amsorok konvergenci´aj´ anak vizsg´alat´ an´ al felhaszn´ alhatunk.
184
3. Fejezetek a matematik´ab´ ol
• Sorozatok megad´ asa Sz´ amsorozatot (azaz N → C t´ıpus´ u f¨ uggv´enyt) matematikai szempontb´ol korrekt m´odon p´eld´ aul ´ıgy adhatunk meg: , 6 ? // & 1 -
I
Ezt a f¨ uggv´enyt a program is sorozatnak tekinti: CQF B Q> > {a[-1.7], a[0], 1., a[2.5], 1.41421, 1.37973}
A sorozat hat´ar´ert´ek´et azonban csak akkor sz´amolja ki, ha a defin´ıci´ oban nem adunk meg felt´eteleket. Ez´ert a tov´ abbiakban sorozatot ´ıgy fogunk megadni: A , - I $ , - G 6 & I
Sorozat viselked´es´er˝ol gyorsan alkothatunk megb´ızhat´o k´epet, egyr´eszt tetsz˝olegesen sok f¨ uggv´eny´ert´ek meghat´aroz´as´aval. A b sorozat els˝ o 20 helyettes´ıt´esi ´ert´ek´enek egy k¨ ozel´ıt´es´et p´eld´ aul ´ıgy kaphatjuk meg:
$ $ B
Felhaszn´ alhatjuk a Mathematica grafikai lehet˝ os´egeit is. P´eld´ aul az a val´ os uggv´ennyel ´ıgy szeml´eltethetj¨ uk: sorozatot a 0 f¨ = $ = = )B % & =
1.4 1.3 1.2 1.1
10
20
30
40
3.4. Anal´ızis
185
A 3.1.4. pontban volt m´ ar arr´ ol sz´o, hogy rekurz´ıv elj´ ar´ assal ´ertelmezett sorozatokat k´etf´elek´eppen adhatunk meg. Ha a rekurz´ıv m´odon megadott sorozat tagjai k¨ oz¨ott line´ aris vagy konvol´ uci´ os t´ıpus´ u o¨sszef¨ ugg´es ´all fenn, akkor a 7 #83963 programcsomag
96 elj´ ar´ asa az index f¨ uggv´eny´eben a´ll´ıtja el˝ o a tagokat. A 3.6.4. pontban mutatunk erre vonatkoz´ o p´eld´ akat. • Sz´ amsorozat hat´ ar´ ert´ eke ol a Az (an ) : N → C sorozatot konvergencia szempontj´ab´
**,. 2? 5), utas´ıt´ assal vizsg´alhatjuk. A be´ep´ıtett algoritmusok ebben az esetben a sorozat (t´ agabb ´ertelemben vett) hat´ ar´ert´ek´et keresik. P´eld´ aul: %0 C GI G
CJ 6 * (
1 E
%0 G 6 & I
CJ 6 * (
I
%0 IC) CF
CJ 6 * (
Infinity
A sorozat defin´ıci´ oja param´etert is tartalmazhat: %0 RI C
CJ 6 * (
Log[a]
Azt a t´enyt, hogy a beadott sorozat nem konvergens, a Mathematica ´ıgy k¨ ozli a felhaszn´ al´ oval: %0 CI
CJ 6 * (
Indeterminate
N´eh´ any esetben v´ altozatlan form´aban kapjuk vissza a beg´epelt utas´ıt´ ast:
186
3. Fejezetek a matematik´ab´ ol %0 I=I n
CJ 6 * (
k
Limit[ n , n -> Infinity] a
Ez azt jelenti, hogy a program nem tudta meghat´ arozni a k´erdezett hat´ar´ert´eket. Ilyenkor a
4 33 programcsomag nev˝ u f¨ uggv´eny´et ´erdemes kipr´ob´ alni, amely nagyobb teljes´ıtm´eny˝ u, mint bels˝ o t´ arsa: A!K%0 K %0 I=I CJ 6 * ( E
(-Infinity) Sign[Log[a]]
Az a ´es a b sz´am Gauss-f´ele sz´ amtani-m´ertani k¨ ozep´et az
8:#*. &, utas´ıt´ assal kapjuk meg. Eml´ekeztet¨ unk arra (l´ asd p´eld´ aul [78]-at), hogy ha a ´es b nemnegat´ıv val´ os sz´am, akkor az a0 := a, b0 := b, an + bn , bn+1 := an bn (n ∈ N) an+1 := 2 formul´ aval ´ertelmezett (an ) ´es (bn ) sorozat konvergens, ´es lim (an ) = lim (bn ) =: M (a, b).
n→+∞
n→+∞
Ezt a k¨ oz¨os hat´ ar´ert´eket nevezz¨ uk az a ´es a b sz´am Gauss-f´ele sz´ amtanim´ertani k¨ ozep´e nek: # @0 !O0 ! "5 ArithmeticGeometricMean[1, Sqrt[2]]
: B 1.1981402347355922074
Matematikat¨ ort´ √eneti ´erdekess´eg, hogy a tin´edzser Gauss m´ar 1791-ben ozep´enek els˝o 20 pontos meghat´arozta a 2 ´es az 1 sz´amtani-m´ertani k¨ jegy´et. Megjegyezz¨ uk m´eg azt is, hogy az M (a, b) sz´amokat elliptikus integr´alokkal lehet kifejezni. Gauss 1799-ben igazolta az al´ abbi o¨sszef¨ ugg´est:
3.4. Anal´ızis
187
1
0
dt √ 1 − t4
√ π · M ( 2, 1) = . 2
uls˝ o f¨ uggv´eny szimbolikus (analitikus) m´ odszer alkalA bels˝o ´es k¨ uggv´eny, maz´as´aval sz´am´ıtja ki a hat´ ar´ert´eket. A 6 bels˝o f¨ valamint a #833 programcsomagban lev˝o k¨ uls˝ o f¨ uggv´eny a sorozat n´eh´ any tagj´ ab´ ol numerikus m´ odszert felhaszn´ alva adja meg a k´erdezett hat´ar´ert´ek egy k¨ozel´ıt´es´et. A
6 bels˝o f¨ uggv´enyt olyan sorozat hat´ ar´ert´ek´enek meghat´aroz´as´ahoz c´elszer˝ u haszn´ alni, amelynek az n-edik tagja n
Pi (n)λni
k=1
alak´ u, ahol Pi -k polinomok ´es λi -k k¨ ul¨ onb¨ oz˝o sz´amok. Ebbe a f¨ uggv´enybe a Wynn-f´ele ε-algoritmust ´ep´ıtett´ek be. Ezt az algoritmust alkalmazza az
f¨ uggv´eny is, ha a #8 opci´oj´ anak ´ert´eke 6. A hat´ ar´ert´ek egy k¨ozel´ıt˝ o ´ert´ek´et az ´altal´ anos´ıtott Euler-f´ele transzform´aci´ o m´odszer´evel kapjuk meg akkor, ha a #8 opci´o ´ert´eke 6. A fenti f¨ uggv´enyek sz´amos tov´abbi opci´ oval is rendelkeznek. Ezekkel egyr´eszt az alkalmazott numerikus m´odszer param´etereit, m´asr´eszt a ki´ert´ekel´es sor´an felhaszn´alt ´ert´ekes sz´amjegyek sz´am´at m´odos´ıthatjuk (l´ asd a [40] dolgozatot). • Sorok konvergenci´ aja Hasznos seg´ıts´eget ny´ ujthat az &36)&63 programcsomag
6 f¨ uggv´enye. Ismeretes, hogy ha az ak+1 /ak (k ∈ N) h´ anyados a k racion´ alis
188
3. Fejezetek a matematik´ab´ ol
f¨ uggv´enye, akkor a n
ak ,
valamint a
k=1
∞
ak
k=1
¨osszeg kifejezhet˝o a hipergeometrikus f¨ uggv´enyekkel. Ilyen elj´ ar´ asokat ´ep´ıtettek be ebbe a 6 f¨ uggv´enybe (l´ asd [2]-t). Olvassuk be ezt a programcsomagot: #$K"(0$"0K
Ezut´ an a ak sz´amsor konvergenci´a j´ at t¨obbf´ele m´odszerrel is vizsg´alhatjuk. Szerencs´es esetben a r´eszlet¨osszegekre z´art formul´ at kapunk, ´es ekuls˝ o) f¨ uggv´enyt alkalmazhatjuk: kor a (bels˝o vagy k¨ , "0 CI=R)=GM=GR=G> = B n 5 + 3 (-1) + 2 n 3 (5 + 2 n) %0 CJ 6 * ( 1 3
A 6 f¨ uggv´eny seg´ıts´eg´evel sz´amos konvergens sor ¨osszeg´et a f¨ uggv´eny haszn´ alata n´elk¨ ul is meghat´ arozhatjuk. P´eld´ aul: "0 CI=R)=GM=GR=G> = B 6 * ( 1 3
Ha a fenti m´ odszerekkel nem kapjuk meg a k´ıv´ ant eredm´enyt, akkor a konvergencia eld¨ ont´es´ehez az ismert krit´eriumok valamelyik´et haszn´alhatjuk. Tekints¨ uk p´eld´ aul az π A := n tg n+1 2 pozit´ıv tag´ u numerikus sort. Alkalmazzuk p´eld´ aul a h´ anyadoskrit´eriumot: A , -
&I G %0 G CJ 6 * ( 1 2
A sz´oban forg´ o sor teh´at konvergens. A Mathematica t¨ obb lehet˝ os´eget is tartalmaz sz´amsor ¨osszeg´enek k¨ ozel´ıt˝ o meghat´aroz´as´ara. Felhaszn´ alhatjuk egyr´eszt az el˝oz˝oekben eml´ıtett k¨ uls˝ o f¨ uggv´enyt, m´asr´eszt az
3.4. Anal´ızis
189
6 bels˝o f¨ uggv´enyt. K¨ ul¨ onb¨ oz˝o numerikus m´ odszerek term´eszetesen k¨ ul¨ onb¨ oz˝o uggv´enyn´el v´alaszthat´o elj´ ar´ asokat a eredm´enyeket adhatnak. Az 6 f¨ k¨ ovetkez˝ akon mutatjuk be. o p´2eld´ o ´ert´ek´et az Euler–Maclaurin-f´ele A 1/k sor ¨osszeg´enek egy k¨ozel´ıt˝ m´odszerrel ´ıgy sz´amolhatjuk ki: "0 =I = 6 * ( @' CJ 6 6 0 : 1.64493406676001
A ki´ert´ekel´eshez a Wynn-f´ele ε-algoritmust ´ıgy v´ alaszthatjuk: "0 =I = 6 * ( @' CJ "5 !%0 6 0 : 1.643485586660751
Hasonl´ıtsuk most o¨ssze a kapott eredm´enyeket a pontos ´ert´ekkel: "0 =I = 6 * ( 2 Pi 6 : B 1.6449340668482264365
Az el˝ oz˝oekben ´ertelmezett A konvergens sz´amsor ¨osszeg´enek egy k¨ozel´ıt˝ o ´ert´ek´et teh´at ´ıgy kapjuk meg: "0 = = 6 * ( 3.40841
(Az 6 f¨ uggv´eny #8 opci´oja alap´ertelmez´esben . Ez azt jelenti, hogy a program v´ alasztja ki a ki´ert´ekel´esn´el a felhaszn´alt numerikus m´odszert.) A #833 programcsomag
6 f¨ uggv´enye az Euler-f´ele transzform´aci´ os elj´ar´ ast alkalmazza v´ altakoz´ o el˝ ojel˝ u sor ¨osszeg´enek numerikus meghat´ aroz´as´ahoz:
190
3. Fejezetek a matematik´ab´ ol 0! @K%0 K 4"0 CI==G = B 6 * ( X= &! CJ )B 0 CJ B 4+ 0 CJ B 0.785398163397448309615660845791303225402 : C &) )B -29 -2.8572495647 10
Ezzel a f¨ uggv´ennyel n´eh´ any esetben a pontos o¨sszeget is megkaphatjuk: 4"0 =IC)=GI= C )=IC=GI= = 6 * ( 4E CJ 4+ 0 CJ N 0 CJ B X= &! CJ 6 * ( 29 -( ) 4
3.4.3. F¨ uggv´ enyek hat´ ar´ ert´ eke C → C t´ıpus´ u f f¨ uggv´eny x0 pontban vett hat´ ar´ert´ek´et a
*5*,. 2? M, utas´ıt´ assal kaphatjuk meg. Felhaszn´ alhatjuk a bels˝ o f¨ uggv´enyt ´es u f¨ uggv´eny´et is, amely a 4 33 programcsomag azonos nev˝ nagyobb teljes´ıtm´eny˝ u, mint bels˝ o t´ arsa. Sz¨ uks´eg eset´en olvassuk be ezt a programcsomagot: A!K%0 K
A Mathematica a fenti utas´ıt´ as hat´as´ara szimbolikus algoritmusok alkalmaz´as´aval pr´ ob´ alja megadni a pontos eredm´enyt. Kereshetj¨ uk a hat´ ar´ert´eket adott val´ os vagy komplex pontban: %0 " + C + + CJ B 0 %0 I G 6 I) C CJ 6 I 2
3.4. Anal´ızis
191
+∞-ben, valamint −∞-ben: %0 + C +I % G + + CJ 6 * ( 1 2 %0 "5 +IG+GC"5 +IC+G + CJ C6 * ( -2
A f¨ uggv´eny helyettes´ıt´esi ´ert´eke param´etereket is tartalmazhat: %0 C+I C 0C+I0 + CJ
@ : -m + n 2
Egyoldali hat´ ar´ert´eket a
7 opci´o alkalmas megv´alaszt´as´aval vizsg´alhatunk. Ha ennek ´ert´eke @+, akkor ar´ert´eket kapjuk meg: a bal oldali, ha 2+, akkor pedig a jobb oldali hat´ %0 G4+ + + CJ B D! CJ 1 %0 G4+ + + CJ B D! CJ C 0
Az opci´ o alap´ertelmez´es szerinti ´ert´ek´evel (ez ) a program n´eh´ any esetben a jobb oldali, m´ askor pedig az adott pontbeli hat´ ar´ert´eket adja meg: %0 G4+ + + CJ B 0 %0 + + CJ B ComplexInfinity
A k¨ ovetkez˝o p´elda azt mutatja, hogy nem kell feladni a rem´enyt akkor, uggv´ennyel nem kapjuk meg a v´ art eredm´enyt: ha a f¨ * +, - " "5 +G C " "5 + ! * + CJ Sqrt[1 + x] Sqrt[x] Sqrt[1 + x] Sqrt[x] + ] Sin[ ] -2 Cos[ 2 2 2 2
192
3. Fejezetek a matematik´ab´ ol %0 : + CJ 6 * ( 0
K¨ onny˝ u ellen˝ orizni, hogy a k´erdezett hat´ar´ert´ek val´ oban null´ aval egyenl˝ o. Pr´ ob´ aljuk ki ezut´ an a k¨ ovetkez˝o utas´ıt´ ast is: %0 * + + CJ 6 * (
A elj´ ar´ as alap´ertelmez´esben a L’Hospital-szab´aly alapj´ an keresi u opci´ oja a pontos eredm´enyt. Ennek a f¨ uggv´enynek van egy ) nev˝ is. Ha ezt az alap´ertelmez´essel ellent´etben a ´ert´ekre ´all´ıtjuk, akkor a program a Taylor-sorfejt´est haszn´alva pr´ ob´ alja kisz´ am´ıtani a hat´ ar´ert´eket. A #833 programcsomag
f¨ uggv´enye a vizsg´alt pont k¨ ornyezet´eb˝ ol v´ alasztott n´eh´ any pontban felvett f¨ uggv´eny´ert´ekb˝ ol numerikus m´ odszer alkalmaz´ as´aval adja meg a hat´ar´ert´ek egy k¨ozel´ıt´es´et. Tekints¨ uk a k¨ ovetkez˝o p´eld´ at: 0! @K%0 K %0 I+GI+GFI+I+ + CJ B 3.47603
A f¨ uggv´eny egyik attrib´ utuma & ´es ez azt jelenti, hogy az argumentum´ aban lista (vektor) is szerepelhet. A Mathematica ekkor a f¨uggv´enyt a vektor minden elem´ere k¨ul¨on-k¨ul¨on alkalmazza. Ez´ert u f¨ uggv´enyek hat´ ar´ert´ek´et: igen egyszer˝ uen sz´amolhatjuk ki C → Cn t´ıpus´ A * x * +, - A@ + ++ x %0 * + + CJ B {1, 1, 1}
3.4.4. Differenci´ alsz´ am´ıt´ as A C → C t´ıpus´ u f f¨ uggv´eny x pontban vett deriv´ altj´ at a
7*5*,. , utas´ıt´ as eredm´enye adja meg abban az esetben, ha f -et be´ep´ıtett differenci´alhat´ o f¨ uggv´enyekkel defini´ aljuk:
3.4. Anal´ızis
193
A * * +, - " +I D * + + 2 2 x Cos[x ]
Ezt az eredm´enyt ´ıgy is megkaphatjuk: *\ + 2 2 x Cos[x ]
D " +I + 2 2 x Cos[x ]
A Mathematica ismeri ´es alkalmazni is tudja a m˝ uveletek ´es a deriv´alt k¨ oz¨ott fenn´ all´ o o¨sszef¨ ugg´eseket: D * +I + + f[x]
-1 + g[x] g[x]
f’[x]
-
f[x]
1/g[x]
Log[f[x]] g’[x] 2 g[x]
A program a 7 f¨ uggv´eny m´asodik argumentum´ at´ ol k¨ ul¨ onb¨ oz˝o szimb´olumokat param´eternek tekinti. Sz¨ uks´eg eset´en a kapott eredm´enyt m´as elj´ar´ asok felhaszn´ al´ as´aval egyszer˝ us´ıthetj¨ uk: D $R+ G "5 IC$IR #! "5 C$G$R @ + + "0 *( : &Y4+ ' : : Q "5 +, "5 (, CJ "5 + (
@ : "0 *( : a + b Cosh[x] b + a Cosh[x]
Szakaszonk´ent k¨ ul¨ onb¨ oz˝o formul´ aval ´ertelmezett f¨ uggv´eny deriv´altj´ at is ar´ assal ´ertelmezz¨ uk. meghat´arozhatjuk, ha a f¨ uggv´enyt a S88 elj´ +, - X@!@ +JB +I +B C+I \ + 2 2 Which[x >= 0, 3 x , x < 0, -(3 x )]
194
3. Fejezetek a matematik´ab´ ol
Magasabb rend˝ u deriv´ altat ´ıgy sz´amolhatunk ki: D % ++ + > 120 Log[x] 274 6 6 x x
Adott f¨ uggv´eny deriv´ altf¨ uggv´eny´et a
7 elj´ ar´ assal kapjuk meg. Figyelj¨ uk meg, hogy a Mathematica milyen form´ aban adja meg az eredm´enyt (l´ asd a 3.1.4. pontot): @ +, - " + 4+ + D1 1 @ #1 #1 E Cos[#1] + E Sin[#1] &
A deriv´ altf¨ uggv´eny helyettes´ıt´esi ´ert´eke: : + x x E Cos[x] + E Sin[x]
Magasabb rend˝ u deriv´ altf¨ uggv´enyeket is meghat´arozhatunk: D1 1 @ #1 2 E Cos[#1] & @\\ + D1 1 @ + True
Adott f f¨ uggv´eny n-edik deriv´altj´ anak x0 pontbeli k¨ ozel´ıt˝ o ´ert´ek´et az
7*5*,. -. /. M, utas´ıt´ assal kapjuk meg. Ez az elj´ ar´ as a #833 programcsomagban tal´ alhat´ o: 0! @K%0 K D 4+ " + + 0 CJ BC D 4+ " + + Q + CJ 2.23989 10
-7
3.4. Anal´ızis
195
• T¨ obbv´ altoz´ os f¨ uggv´ enyek deriv´ altjai uggv´ennyel sz´amolhatunk ki. Adott n > 1 Parci´ alis deriv´ altakat is a 7 f¨ u f f¨ uggv´eny xj v´ altoz´oja szerinti term´eszetes sz´am eset´en a Cn → C t´ıpus´ parci´ alis deriv´ altf¨ uggv´eny´enek (x1 , · · · , xn ) pontbeli helyettes´ıt´esi ´ert´ek´et a
7*5*+.HHH.,. K, utas´ıt´ assal kapjuk meg. P´eld´ aul: D (I> A + G +I) A ( + 3 5 4 x Cos[y] - y Sin[x] D (I> A + G +I) A ( ( 4 4 5 y Cos[x] - x Sin[y]
Magasabb rend˝ u parci´ alis deriv´ altak at ´ıgy hat´ arozhatunk meg: D (I> A + G +I) A ( + ( 2 2 -60 y Cos[x] + 12 x Sin[y]
A Mathematica felt´etelezi azt, hogy a beadott f¨ uggv´eny elegend˝ oen sokszor differenci´alhat´ o ahhoz, hogy a parci´ alis deriv´ altak sorrendje felcser´elhet˝ o legyen. A k¨ ovetkez˝o p´eld´ akban figyelj¨ uk meg azt, hogy a program hogyan jel¨ oli a parci´ alis deriv´ altakat: D * + ( + (1, 0) f [x, y] D + ( + ( (2, 3, 0) g [x, y, z]
Cn → C t´ıpus´ u f¨ uggv´eny gradiens´et a 7 elj´ ar´ asnak, valamint a listakezel˝o f¨ uggv´enyeknek a seg´ıts´eg´evel ´ıgy ´ertelmezhetj¨ uk: ' *1 (, 1 =,% - D *1 ( ./ 1 =
Itt felhaszn´ altuk a Mathematica tisztaf¨ uggv´eny-fogalm´ at (l´asd a 3.1.4. ponar´ as r¨ovid alakj´ at ($%). Figyelj¨ uk meg azt az ´erdekes t´enyt tot) ´es a # elj´ is, hogy a v´ altoz´ok sz´am´at´ ol f¨ uggetlen¨ ul ´ertelmezt¨ uk a fenti f¨ uggv´enyt.
196
3. Fejezetek a matematik´ab´ ol
A 0 3V4 3 programcsomag : nev˝ u f¨ uggv´enye is ezt a defin´ıci´ ot tartalmazza. Felh´ıvjuk az Olvas´ o figyelm´et arra, hogy a 4 3V ) 3 programcsomagban is tau elj´ ar´ as. l´ alhat´ o egy m´asik, az el˝oz˝ot˝ ol k¨ ul¨ onb¨ oz˝o, : elnevez´es˝ Pr´ ob´ aljuk most ki a fenti defin´ıci´ o m˝ uk¨ od´es´et: ' +I C (I + ( 2 {2 x, -9 y }
' + ( G + G ( + ( {y + z, x + z, x + y}
Sz´ am´ıtsuk most ki az f (x, y, z) := sin xyz (x, y, z) ∈ R3 f¨ uggv´eny3 any ment´en vett ir´ anymenti deriv´ altj´ at a nek az s = (−1, 2, 2) ∈ R ir´ P0 (π, 1/2, 1/2) pontban: * +, (, , - " + ( C 4(8= ,% - "5 & #$ I 4(8= 1 2 2 {- , , } 3 3 3
' * + ( + ( Q 4(8= 2 x z Cos[x y z] y z Cos[x y z] 2 x y Cos[x y z] + 3 3 3
: Q + CJ & ( CJ CJ "0 *( -1 + 8 Pi 12 Sqrt[2]
(A H jel a 7 f¨ uggv´eny r¨ ovid alakja. Ezzel az elj´ar´ assal sz´amolhatjuk ki k´et val´os vektor skal´aris szorzat´at.) u f = (f1 , · · · , fm ) f¨ uggv´eny (tot´ alisan) Ha a Cn → Cm (n, m ∈ N) t´ıpus´ alis) deriv´altja a differenci´ alhat´ o az a ∈ Cn pontban, akkor az a-beli (tot´ k¨ ovetkez˝o m × n-es (Jacobi-)m´atrix: ⎞ ⎛ ∂f ∂f1 1 (a) · · · (a) ∂xn ⎟ ⎜ ∂x1 ⎟. .. .. ⎜ ⎠ ⎝ . . ∂fm ∂fm (a) · · · (a) ∂x1 ∂xn
3.4. Anal´ızis
197
Ezt a m´atrixot adja eredm´enyk´ent a k¨ ovetkez˝o f¨ uggv´eny: " # $ E % $ D1 +
*1 (,% 1 =,% ,% - 2 D *1 ( 1 = Q 1 = CJ
Az els˝ o utas´ıt´ asban a transzform´ aci´ os szab´alyt megad´o 9 f¨ uggv´enyt utummal (l´ asd a 2.3.4. pontot). l´ attuk el a & attrib´ Pr´ ob´ aljuk ki ezt a f¨ uggv´enyt is: D1 + * + ( * + ( * + ( + ( $ +0 f1 f2 f3
(1,0) (1,0) (1,0)
[a, b] [a, b] [a, b]
f1 f2 f3
(0,1) (0,1) (0,1)
[a, b] [a, b] [a, b]
D1 + +I C ( (I C + + + ( +0 : 2 -1 -1 2 1 0
A 0 3V4 3 programcsomagban l´euggv´eny is ezt a m´atrixot sz´ amolja ki. Ilyen elnevev˝ o W&# f¨ z´es˝ u, de az el˝ oz˝ot˝ol k¨ ul¨ onb¨ oz˝o f¨ uggv´eny a 4 3V ) 3 programcsomagban is tal´ alhat´ o. • F¨ uggv´ enyek sz´ els˝ o´ ert´ ekei K´et p´eld´ an kereszt¨ ul ´erz´ekeltetj¨ uk azt, hogy az anal´ızis megfelel˝o eredm´enyeinek felhaszn´ al´ as´aval hogyan haszn´ alhatjuk a Mathematic´ a t bizonyos u f¨ uggv´enyek sz´els˝o´ert´ekeinek kisz´amol´as´ahoz. Line´ aris f¨ uggRn → R t´ıpus´ v´enyek line´ aris felt´etelek melletti sz´els˝o´ert´ekhely´enek meghat´aroz´as´ara szolg´al a line´aris programoz´ as, err˝ol a 3.8.9. pontban lesz sz´o. Hat´arozzuk meg el˝osz¨or az f (x) := x3 e−x/2
(x ∈ R)
f¨ uggv´eny lok´ alis sz´els˝o´ert´ekhelyeit. A lok´ alis sz´els˝o´ert´ek l´etez´es´ere vonatkoz´o els˝orend˝ u sz¨ uks´eges felt´etel alapj´ an kapjuk meg a stacion´ arius pontokat:
198
3. Fejezetek a matematik´ab´ ol * +, +I 4+ C+ " !& = "1 *\ + B + {{x -> 0}, {x -> 0}, {x -> 6}}
Ezt a m´odszert azokban az esetekben haszn´alhatjuk, amikor a program (szimbolikusan vagy numerikusan) el˝ o tudja a´ll´ıtani a deriv´ altf¨ uggv´eny z´erushelyeit (l´ asd a 3.3. szakaszt). Alkalmazzuk most a m´asodrend˝ u el´egs´eges felt´etelt: *\\ + Q " !& = 18 {0, 0, - } 3 E
Az x0 = 6 pont az f f¨ uggv´enynek teh´ at lok´alis maximumhelye. Mivel *\\\ + Q " !& = 6 {6, 6, } 3 E
ez´ert az x1 = 0 pontban f -nek nincs lok´ alis sz´els˝o´ert´eke. Sz´ amos esetben a k¨ovetkez˝o f¨ uggv´ennyel is megkaphatjuk az [a, b] intervallumon ´ertelmezett val´os ´ert´ek˝ u folytonos f f¨ uggv´eny abszol´ ut maximum´ anak egy k¨ ozel´ıt˝ o ´ert´ek´et: 1+00 *, , $, ,-BB - + * ./ $ G = $C = B
Figyelj¨ uk meg azt, hogy az els˝o argumentumba a f¨ uggv´eny nev´et kell be´ırni, a negyedik (opcion´ alis) argumentumba pedig az intervallum oszt´opontjainak a sz´am´at adhatjuk meg: * +, "5 +I) C +I G 1+00 * C 3.60555 A * * +, A + G A + G A + 1+00 * B & BB 1.83333
Abszol´ ut minimum kisz´amol´as´ahoz a # f¨ uggv´eny helyett a # bels˝o f¨ uggv´enyt haszn´ alhatjuk. Hat´arozzuk meg most az f (x, y, z) := x3 + y 2 + z 2 + 12xy + 2z f¨ uggv´eny lok´ alis sz´els˝o´ert´ekhelyeit.
((x, y, z) ∈ R3 )
3.4. Anal´ızis
199
A kor´ abbiakban ´ertelmezett f¨ uggv´enyt haszn´ aljuk a stacion´ arius pontok kisz´ amol´as´ahoz: A * * +, (, , - +I G (I G I G + ( G " !& = "1
' * + ( + ( B + ( {{z -> -1, y -> -144, x -> 24}, {z -> -1, y -> 0, x -> 0}}
A P1 (24, −144, −1) ´es a P2 (0, 0, −1) pontban lehet az f f¨ uggv´enynek lok´ alis sz´els˝o´ert´ekhelye. A m´asodrend˝ u el´egs´eges felt´etel alkalmaz´as´ahoz el˝o kell a´ll´ıtanunk a stauggv´eny m´asodrend˝ u deriv´ altm´atrix´ at cion´arius pontokban az f : R3 → R f¨ (ezt Hesse-f´ele m´ atrix nak is szok´as nevezni). Ezt sz´amolja ki az al´abbi elj´ ar´ as: 7 + *1 (, 1 =,% ,% - D1 +
' *1 ( 1 = 1 =
A k¨ ovetkez˝o f¨ uggv´ennyel pedig n´egyzetes m´atrix sarokaldatermin´ ansait hat´ arozhatjuk meg: "=#' #, - $ # =
= % @ #
A P1 pontban a m´ asodrend˝ u el´egs´eges felt´etel ´es a Sylvester-krit´erium alapj´ an ezt kapjuk: 7 + * + ( + ( ) C)) C +0 144 12 0
12 2 0
0 0 2
"=#' {144, 144, 288}
A P1 (24, −144, −1) pont az f f¨ uggv´enynek teh´ at lok´alis minimumhelye. A P2 (0, 0, −1) pontban: 7 + * + ( + ( B B C
200
3. Fejezetek a matematik´ab´ ol +0 0 12 0
12 2 0
0 0 2
"=#' {0, -144, -288}
A Sylvester-krit´eriumot teh´ at nem alkalmazhatjuk. P´eld´ aul a f¨ uggv´eny defin´ıci´ o j´ at felhaszn´ alva bizony´ıthatjuk be azt, hogy ez a pont nem lok´ alis sz´els˝o´ert´ekhely. u f¨ uggv´eny egyik Numerikus m´odszerrel keresi Rn → R (n ∈ N) t´ıpus´ lok´ alis minimumhely´enek ´es lok´ alis minimum´ anak egy k¨ ozel´ıt˝ o ´ert´ek´et a
# f¨ uggv´eny. A 9 elj´ ar´ ashoz hasonl´ oan itt is egy vagy t¨ obb kezd˝ o´ert´ek megad´asa sz¨ uks´eges. Minimumhelyhez k¨ozeli j´ o” kezd˝o´ert´ek(ek) meg” v´ alaszt´as´ahoz a Mathematica rajzol´ o elj´ ar´ asait haszn´alhatjuk. uggv´eny a konjug´ alt gradiens m´ odszert alkalmazza A # f¨ akkor, amikor egy kezd˝ o´ert´eket adunk meg: ' 00 C+I 4+ C+ + {-10.754, {x -> 6.}} 6 0 : {-10.75400676745861, {x -> 5.999999999977617}} * +, (, , - +I G (I G I G + ( G ' 00 * + ( + B ( CBB C {-6913., {x -> 24.001, y -> -144.012, z -> -0.999346}}
A # f¨ uggv´eny a deriv´ altat nem haszn´ al´ o Brent-f´ele minimaliz´ aci´ os algoritmust alkalmazza (l´asd [40]-et) akkor, amikor k´et kezd˝ o´ert´eket adunk meg: ' 00 C+IR4+ C+ + {-10.754, {x -> 6.}}
' 00 +G(CIC+C(C + B ( -27 6.48478 10 , {x -> 1., y -> 1.}}
3.4. Anal´ızis
201
3.4.5. Integr´ alsz´ am´ıt´ as Ebben a pontban a programnak azokat a lehet˝ os´egeit ismertetj¨ uk, amelyek u f¨ uggv´enyek primit´ıv f¨ uggv´enyeinek ´es hat´aroC → Cn (n ∈ N) t´ıpus´ zott integr´ alj´ anak szimbolikus vagy numerikus meghat´ aroz´as´ahoz, valamint t¨ obbsz¨ or¨ os integr´ alok kisz´amol´as´ahoz ny´ ujthatnak seg´ıts´eget. • Primit´ıv f¨ uggv´ eny keres´ ese C → C t´ıpus´ u f¨ uggv´eny primit´ıv f¨ uggv´eny´enek szimbolikus meghat´aroz´as´aar´ ast haszn´alhatjuk. A program a meghoz az opci´o n´elk¨ uli elj´ adott f¨ uggv´eny primit´ıv f¨ uggv´eny´et a be´ep´ıtett matematikai f¨ uggv´enyekkel pr´ ob´ alja kifejezni. Ha ez siker¨ ul, akkor az
*5*,. , utas´ıt´ as eredm´enye az f f¨ uggv´eny egyik primit´ıv f¨ uggv´eny´enek az x pontban vett helyettes´ıt´esi ´ert´eke. P´eld´ aul: 6 +IG+C +
@ : Q % +, C % (, CJ % +( -1 + x ] Log[ 2 + x 3 6 "5 C" +I + Sqrt[1 + Cos[2 x]] Tan[x] Sqrt[2]
Adott felt´etelt kiel´eg´ıt˝ o primit´ıv f¨ uggv´enyt a matematik´ aban megszokott m´odon hat´ arozhatunk meg. P´eld´ aul ´ıgy: * +, - + $ +, 6 * + + G ! 0' "1 $ ! ! 0'
+ 2 3 x 23 + 2 2
(Figyelj¨ uk meg, hogy azonnali ´ert´ekad´ assal — l´asd a 3.1.4. pontot — defini´ altuk az F f¨ uggv´enyt.)
202
3. Fejezetek a matematik´ab´ ol
Primit´ıv f¨ uggv´eny meghat´ aroz´as´at t¨obb negat´ıv jelleg˝ u elm´eleti eredm´eny is korl´ atozza. Ismeretes p´eld´ aul az, hogy b´ ar minden folytonos f¨ uggv´enynek van primit´ıv f¨ uggv´enye, azonban van olyan elemi f¨ uggv´eny, amelynek a primit´ıv f¨ uggv´enye nem elemi f¨ uggv´eny. M´ asr´eszt: m´eg elemi f¨ uggv´enyek eset´eben sincs olyan, v´eges sok l´ep´est tartalmaz´o ´ altal´ anos m´ odszer , amellyel a primit´ıv f¨ uggv´eny el˝oa´ll´ıthat´ o lenne. Az anal´ızisben sz´amos, j´ol k¨ or¨ ulhat´ arolt f¨ uggv´enyoszt´alyra dolgoztak ki j´ ol haszn´ alhat´ o m´odszereket. 1969-ben R. Risch [68] publik´ alt sz´am´ıt´ og´epen is megval´os´ıthat´ o ´es el´eg nagy f¨ uggv´enyoszt´alyra eredm´enyt ad´ o algoritmust. M´ odszer´enek alapja az, hogy az adott elemi f¨ uggv´enyt u ´gy bontja fel egyszer˝ u szerkezet˝ u” ” uggv´enye m´ar k¨ onnyen f¨ uggv´enyek ¨ osszeg´ere, hogy az egyes tagok primit´ıv f¨ leolvashat´ o legyen. (Az elj´ ar´ as hasonl´ o ahhoz, ahogyan racion´ alis t¨ ortf¨ uggv´enyeket parci´ alis t¨ ortekre szoktunk bontani.) A Risch-algoritmus k´epezi az alapj´ at a Mathematica primit´ıv f¨ uggv´enyt keres˝o elj´ ar´ as´anak. Err˝ ol r´eszletesebben a [69] dolgozatban olvashatunk. A Risch-algoritmus komplex f¨ uggv´enytani eszk¨oz¨oket haszn´al, ez´ert a beg´epelt egyv´ altoz´os f¨ uggv´enyt C → C t´ıpus´ unak tekinti. Ilyen f¨ uggv´eny primit´ıv f¨ uggv´eny´et k¨ ul¨ onb¨ oz˝o alakokban is el˝ o lehet ´all´ıtani. P´eld´ aul az f (x) :=
x2
1 +1
(x ∈ C \ { − i, i})
f¨ uggv´eny egyik primit´ıv f¨ uggv´enye F1 (x) :=
i−x 1 ln 2i i + x
(x ∈ C \ { − i, i}).
Komplex sz´amok felhaszn´ al´ asa n´elk¨ ul (azaz val´ os alakban”) is megad” hatjuk a fenti f f¨ uggv´eny primit´ıv f¨ uggv´enyeit. P´eld´ aul F2 (x) := arctg x
(x ∈ C \ { − i, i})
ar´ asba be´ep´ıtett algoritmusok azt is egy ilyen f¨ uggv´eny. Az elj´ az elvet k¨ovetik, hogy ha a beadott f¨ uggv´eny nem tartalmaz komplex sz´amot, akkor az eredm´enyt is ezek haszn´ alata n´elk¨ ul pr´ ob´ alj´ ak megadni: 6 +IGI + x ArcTan[ ] a a
Racion´ alis t¨ ortf¨ uggv´enyek primit´ıv f¨ uggv´eny´et a program abban az esetben adja meg, ha a nevez˝ o z´erushelyeit pontosan el˝ o tudja a´ll´ıtani:
3.4. Anal´ızis
203
6 +I)+I)G>+IG) + 2 ArcTan[x] 8 ArcTan[ ] x + x + 3 3 6 +I>G+G + 1 Integrate[ , x] 5 1 + 3 x + x
Megeml´ıtett¨ uk m´ ar azt a t´enyt, hogy vannak olyan elemi f¨ uggv´enyek, amelyeknek a primit´ıv f¨ uggv´enyei nem elemi f¨ uggv´enyek. Ilyenek p´eld´ aul a k¨ ovetkez˝o f¨ uggv´enyek: 2 sin x , x → e−x , x → sin x2 . x → x Mivel a matematika k¨ ul¨ onb¨ oz˝o fejezeteiben gyakran haszn´ alj´ ak a fenti f¨ uggv´enyek primit´ıv f¨ uggv´enyeit, ez´ert a Mathematic´ a ba be´ep´ıtett´ek ezeket a nem elemi f¨ uggv´enyeket is. P´eld´ aul: 6 " ++ + SinIntegral[x]
6 4+ C+I + Sqrt[Pi] Erf[x] 2
6 " +I + 2 Pi FresnelS[Sqrt[ ] x] Sqrt[ 2 Pi
A 3.4.1. pont elej´en felsoroltuk a t¨obbi hasonl´ o t´ıpus´ u be´ep´ıtett f¨ uggv´enyt is. Elliptikus integr´ alokat a
4 33 programcsomag f¨ uggv´eny´evel (ez bels˝o t´ ars´anak a kiterjeszt´ese) sz´amolhatunk ki. P´eld´ aul: 6 "5 C0 " @I @ EllipticF[phi, m]
4 ! BQ> BQ > 0.5040488135239274
204
3. Fejezetek a matematik´ab´ ol
• Hat´ arozott integr´ al R → C t´ıpus´ u f¨ uggv´eny hat´ arozott integr´ alj´ anak kisz´ amol´as´ahoz t¨ obb elj´ ar´ ast is haszn´alhatunk. Az
*5*,. -. +. (/, utas´ıt´ as hat´ as´ara a program az x2 f (x)dx = F (x2 ) − F (x1 ) x1
Newton–Leibniz-formul´ at alkalmazza. El˝ osz¨or szimbolikusan meghat´ arozza uaz f f¨ uggv´eny egy F primit´ıv f¨ uggv´eny´et, ezut´an veszi az F (x2 )−F (x1 ) k¨ l¨ onbs´eget. Ha az f f¨ uggv´eny folytonos az [x1 , x2 ] intervallumon ´es a program megtal´alja f egy F primit´ıv f¨ uggv´eny´et, akkor megkapjuk a k´ert eredm´enyt. P´eld´ aul: 6 "5 CA + + B BB & 200 Sqrt[2] 6 +I $ 3 3 a b 3 3
Ha a program nem tudja meghat´ arozni a beadott f¨ uggv´eny primit´ıv f¨ uggv´eny´et, akkor eredm´enyk´ent a beg´epelt sort kapjuk vissza. Ilyenkor az elj´ ar´ ast alkalmazva az integr´al egy k¨ozel´ıt˝ o ´ert´ek´et kapjuk meg: 6 + + + B General::intinit: Loading integration packages -- please wait. Integrate[x Tan[x], {x, 0, 1}]
: 0.428088
A sz´oban forg´ o elj´ ar´ ast improprius integr´ alok meghat´aroz´as´an´ al is haszn´ alhatjuk: 6 "5 + + B 2
3.4. Anal´ızis
205
6 +I + C Integrate::idiv: Integral does not converge. Indeterminate 6 +I + 6 * ( 1
Az f f¨ uggv´eny [x1 , x2 ] intervallumon vett hat´ arozott integr´ alj´ anak egy k¨ ozel´ıt˝ o ´ert´ek´et az
*5*,. -. +. (/, utas´ıt´ as eredm´enye szolg´altatja. A Mathematica ebben az esetben el˝osz¨or az f f¨ uggv´eny helyettes´ıt´esi ´ert´ekeit hat´arozza meg az [x1 , x2 ] intervallum bizonyos pontjaiban, majd ezekb˝ ol a f¨ uggv´eny´ert´ekekb˝ol numerikus m´ odszert alkalmazva adja meg az eredm´enyt. Ha az f f¨ uggv´eny folytonos az [x1 , x2 ] intervallumon, akkor minden esetben megkapjuk a hat´ arozott integr´ al egy k¨ozel´ıt˝ o ´ert´ek´et. P´eld´ aul: 6 4I"5 + + 8.27544
Sok esetben az **,, ´es az elj´ ar´ as ugyanazt az ´ eredm´enyt adja. Erdemes azonban o¨sszehasonl´ıtani a ki´ert´ekel´eshez sz¨ uks´eges id˝ otartamot is:
0 6 + + + B {29.934 Second, 0.428088}
0 6 + + + B {2.801 Second, 0.428088}
Az elj´ ar´ assal improprius integr´ alok ´es szakad´asos f¨ uggv´enyek hat´ arozott integr´ alj´ anak k¨ ozel´ıt˝ o ´ert´ek´et is meghat´arozhatjuk: 6 "5 + + B 2. 6 4+ C+I + B 6 * ( 0.89298
Az integrandus szingularit´ as´at az f¨ uggv´eny csak az intervallum v´egpontjaiban vizsg´alja. Ha olyan f¨ uggv´enyt adunk meg, amelynek az integr´ al´ as intervallum´ anak bels˝ o pontj´ aban van szakad´ asa, akkor a´ltal´ aban figyelmeztet˝ o u ¨zenetek ut´ an kapunk (esetleg rossz) eredm´enyt. Az
206
3. Fejezetek a matematik´ab´ ol
f¨uggv´eny m´asodik argumentum´aba a szingul´aris helyeket is be´ırhatjuk:
*5*,. -. +. '8+. '8(. HHH. (/, A Mathematica ebben az esetben k¨ ul¨ on¨ os gonddal vizsg´alja az adott f¨ uggv´enyt a jelzett pontok k¨ ornyezet´eben: 6 "5 #$ + + C B 4.82843
Ugyanezt a m´odszert alkalmazhatjuk akkor is, ha p´eld´ aul szakaszonk´ent k¨ ul¨ onb¨ oz˝o formul´ aval ´ertelmezett f¨ uggv´eny hat´ arozott integr´ alj´ at szeretn´enk kisz´am´ıtani: * +, - X@!@ +B B + +I + + + ) +J B 6 * + + C B N 7.33333
Az f¨ uggv´eny 9 opci´oj´ aval (ezekr˝ol a program az 2 6
utas´ıt´ as v´egrehajt´ asa ut´ an t´ a j´ekoztat benn¨ unket) avatkozhatunk be a ki´ert´ekel´es folyamat´aba. Megv´alaszthatjuk p´eld´ aul a ki´ert´ekel´es sor´an alkalmazott ´ert´ekes sz´amjegyek sz´am´at ´es a felhaszn´alt numerikus m´ odszert is. M´ odos´ıthatjuk a numerikus algoritmusok bizonyos param´etereit is. Itt csak a #8 opci´o lehets´eges ´ert´ekeit soroljuk fel:
7& : ;
# ' Ennek az opci´ onak az alap´ertelmez´es szerinti ´ert´eke , ami azt uggv´eny bels˝o algoritmusa v´ alasztja ki a jelenti, hogy az f¨ ki´ert´ekel´es sor´an alkalmazott numerikus m´ odszert. A fentebb bemutatott p´eld´ ak azt is mutatj´ ak, hogy az opci´ ok alap´ertelmez´es szerinti ´ert´ek´evel sz´amos esetben megfelel˝o eredm´enyt kapunk. Adott hat´ arozott integr´ al j´ o” k¨ ozel´ıt˝ o ´ert´ek´enek kisz´amol´as´ahoz az opci´ok ” alkalmas megv´alaszt´asa sokszor nem egyszer˝ u feladat. Ehhez sok seg´ıts´eget ny´ ujthat a [40] dolgozat, amelyben az opci´ ok jelent´es´er˝ ol ´es haszn´alat´ ar´ ol olvashatunk. A Mathematica t¨ obb m´ odszert k´ın´ al f¨ uggv´eny hat´ arozott integr´ alj´ anak k¨ ozel´ıt˝ o meghat´aroz´as´ahoz abban az esetben, amikor a f¨ uggv´eny helyettes´ıt´esi ´ert´ekeit csak bizonyos diszkr´et pontokban ismerj¨ uk.
3.4. Anal´ızis
207
A k¨ ovetkez˝o pontban ismertetett elj´ ar´ asok valamelyik´evel p´eld´ aul folytonos f¨ uggv´enyt illeszthet¨ unk az adott pontokra, majd alkalmazhatjuk az f¨uggv´enyt. A #83 3 programcsomagban meglev˝o
f¨ uggv´enyt is haszn´ alhatjuk. A Mathematica ebben az esetben interpol´ aci´ os polinomot illeszt az adott pontrendszerre, ´es az ´ıgy kapott f¨ uggv´eny hat´ arozott integr´ alj´ at sz´amolja ki: 0! @K% 6 K ' = $ I B F {0, 1, 4, 9, 16, 25, 36, 49}
% 6 ' = 343 3
6 +I + B F 343 3
A #8348)0V3 programcsomag
48)0V f¨ uggv´eny´evel improprius integr´ al Cauchy-f´ele f˝ o´ert´ek´enek egy k¨ozel´ıt˝ o ´ert´ek´et hat´ arozhatjuk meg. Tekints¨ uk p´eld´ aul az 1 (x ∈ R \ { − 1, 0}) f (x) := 2 x +x f¨ uggv´enyt. Mivel a 1 −ε1 f (x)dx + f (x)dx lim ε →0+0 1 ε2 →0+0
ε2
−1/2
hat´ ar´ert´ek nem l´etezik, ez´ert a
1 −1/2
f (x)dx
208
3. Fejezetek a matematik´ab´ ol
improprius integr´ al divergens. Bebizony´ıthat´ o azonban az is, hogy 1 −ε f (x)dx + f (x)dx = − ln 2. lim ε→0+0
−1/2
ε
Ez a sz´am a fenti improprius integr´ al Cauchy-f´ele f˝o´ert´eke. Ennek egy k¨ ozel´ıt˝ o ´ert´ek´et ´ıgy kaphatjuk meg: 0! @KA!@(& ! 8K A!@(& ! 8 +IG+ + C B -0.693147 6 0 : -0.6931471805596515
A Cauchy-f´ele f˝o´ert´ek pontos ´ert´ek´et is meghat´arozhatjuk. P´eld´ aul ´ıgy: A * * +, - +IG+ W$$ 6 * + + !I Q % +, C % (, CJ % +( 6 * + + C C!I Q % +, (, CJ % + G % ( $ : Q % +, C % (, CJ % +( $ G W$$ Q % +, G % (, CJ % + ( %0 : ! CJ B Integrate::gener: Unable to check convergence. 1 Log[ ] 2 : 6 0 -0.6931471805599453
• T¨ obbsz¨ or¨ os integr´ alok u Az el˝ oz˝oekben ismertetett elj´ ar´ asokkal Rn → C (n ∈ N \ {1}) t´ıpus´ f¨ uggv´eny adott tartom´ anyon vett hat´ arozott integr´ alj´ at szimbolikusan ´es numerikusan is meghat´ arozhatjuk. A tartom´ any lehet p´eld´ aul Rn -beli t´egla: 6 + ( " +I G (I + B "5 & ( B "5 & 1 2
3.4. Anal´ızis
209
Sz´ am´ıtsuk most ki a k¨ ovetkez˝o hat´ arozott integr´ alt: √ √ 2 2y−x2 2 2y−x2 4y − x2 dxdy = 4y − x2 dx dy. 0
0
0
0
6 "5 ) ( C +I ( B + B "5 (C(I Pi 4 + 3 2
Norm´ altartom´ anyon vett hat´ arozott integr´ al kisz´amol´as´an´ al vigy´ azzunk az integr´ al´ as sorrendj´enek a kijel¨ ol´es´ere. Figyelj¨ uk meg, hogy a Mathematica el˝osz¨or az utols´ok´ent megjel¨olt v´ altoz´o szerint v´egzi el az integr´al´ ast. Improprius integr´ alok at is meghat´arozhatunk: 6 +IG(II + 6 * ( ( C6 * ( 6 * ( Pi 4
3.4.6. F¨ uggv´ enyk¨ ozel´ıt´ esek Az approxim´ aci´ oelm´elet foglalkozik megadott f¨ uggv´eny egyszer˝ u szerkezet˝ u f¨ uggv´enyekkel val´ o megk¨ozel´ıt´es´evel. A leggyakrabban haszn´ alt egyszer˝ u szerkezet˝ u f¨ uggv´enyek: az algebrai ´es a trigonometrikus polinomok, a racion´alis f¨ uggv´enyek ´es a spline-f¨ uggv´enyek sz´am´ıt´ og´ep seg´ıts´eg´evel is j´ol kezelhet˝oek. A matematikai programcsomagok ez´ert az ilyen t´ıpus´ u probl´em´ak tanulm´ anyoz´ as´ahoz is sok seg´ıts´eget adhatnak. A legegyszer˝ ubb esetben az approxim´ aland´ o f¨ uggv´eny az [a, b] ⊂ R intervallumon folytonos, val´ os ´ert´ek˝ u f¨ uggv´enyek C([a, b]) szimb´olummal jel¨ olt halmaz´ahoz tartozik. F¨ uggv´enyek t´ avols´ag´ at m´ar ebben a halmazban is t¨obbf´ele m´odon ´ertelmezhetj¨ uk. Egyszer˝ uen bebizony´ıthat´ o p´eld´ aul az, hogy a (f, g ∈ C([a, b])) (1) ∞ (f, g) := max |f (x) − g(x)| x∈[a,b]
´es a 2 (f, g) :=
a
b
|f (x) − g(x)|2 dx
(f, g ∈ C([a, b]))
(2)
f¨ uggv´eny mindegyike metrika a C([a, b]) halmazon. Jel¨olj¨ uk G-vel az egyszer˝ u szerkezet˝ u f¨ uggv´enyek valamely adott halmaz´at. Ez lehet p´eld´ aul legfeljebb n-edfok´ u (algebrai) polinomok halmaza.
210
3. Fejezetek a matematik´ab´ ol
Tekints¨ unk egy metrik´ at is a C([a, b]) halmazon. Az approxim´ aci´ oelm´elet alapvet˝ o probl´em´ai az im´ent jelzett (speci´alis) esetben a k¨ovetkez˝ok: • Adott f ∈ C([a, b]) f¨ uggv´enyhez l´etezik-e olyan G-beli ϕ(f ) elem, amelyre (f, ϕ(f )) = inf {(f, g) : g ∈ G} =: EG (f ). • Ha f -nek l´etezik a fenti tulajdons´ ag´ u legjobb megk¨ ozel´ıt´ese, akkor az vajon egy´ertelm˝ uen meg van-e hat´ arozva. • L´etez´es ´es egy´ertelm˝ us´eg eset´en hogyan lehet meghat´ arozni vagy jellemezni az f f¨ uggv´enyt legjobban megk¨ ozel´ıt˝ o ϕ(f ) elemet. ol haszn´ alhat´ o als´o ´es fels˝o becsl´est • Hogyan lehet az EG (f ) sz´amra j´ megadni. Alkalmas t´ıpus´ u G halmazok ´es k¨ ul¨ onb¨ oz˝o metrik´ ak megv´alaszt´asa eset´en bizony´ıthat´ o az, hogy minden f ∈ C([a, b]) f¨ uggv´enyhez egy´ertelm˝ uen l´etezik a fenti tulajdons´ ag´ u ϕ(f ) f¨ uggv´eny. Ennek explicit el˝ o´all´ıt´ as´ara nincs a´ltal´ anos m´odszer. Az approxim´ aci´ oelm´eletben sz´amos olyan m´odszert dolgoztak ki, amely seg´ıts´eg´evel adott f¨ uggv´enyt j´ ol k¨ ozel´ıt˝ o G-beli elem explicit m´odon el˝ o´ all´ıthat´ o. Ebben a pontban a Mathematic´ a nak azokat az elj´ ar´ asait soroljuk fel, amelyek seg´ıts´eg´evel adott f¨ uggv´enyhez k¨ ozeli, j´ ol kezelhet˝o f¨ uggv´enyeket uggv´enyeket, illetve (algebrai ´es trigonometrikus polinomokat, racion´ alis f¨ spline-f¨ uggv´enyeket) konstru´ alhatunk . Az approxim´ aci´ oelm´elet megfelel˝o t´eteleinek ´es a Mathematica egy´eb elj´ ar´ asainak felhaszn´ al´ as´aval vizsg´alhatjuk meg azt, hogy a kapott egyszer˝ u szerkezet˝ u f¨ uggv´enyek milyen k¨ ozel vannak a megadott f¨ uggv´enyhez. Ezekkel a k´erd´esekkel a tov´abbiakban nem foglalkozunk. • Polinomapproxim´ aci´ o Elegend˝ oen sokszor differenci´alhat´ o R → R t´ıpus´ u f f¨ uggv´eny a pont k¨ or¨ uli n-edrend˝ u Taylor-polinomj´ at a
*6 *5*,. -. . /, utas´ıt´ as eredm´enye adja meg. P´eld´ aul: 0 " +I+ + 3 2 (-1 + x) + x (-1 + x) + 2
3.4. Anal´ızis
211
A f¨ uggv´enynek ´es k¨ ul¨ onb¨ oz˝o rend˝ u Taylor-polinomjainak a´br´ azol´as´aval gyorsan kaphatunk inform´ aci´ ot a k¨ ozel´ıt´es pontoss´ag´ ar´ ol. Az f (x) := sin x (x ∈ R) f¨ uggv´eny a := 0 pont k¨ or¨ uli harmad- ´es hetedrend˝ u Taylor-polinomjait p´eld´ aul ´ıgy szeml´eltethetj¨ uk: * +, " + +B C & + & B F 0 " * + + F 5 7 3 x x x + x 6 120 5040 F
3 x x 6 & * + F + +B + & E CJ C & " ( CJ @!= BQBBN D@ BQB> BQB 2 1.5 1 0.5 -4
-2 -0.5
2
4
-1 -1.5 -2
Szint´en a 6 elj´ ar´ assal kaphatjuk meg C → C t´ıpus´ u analitikus f¨ uggv´eny Laurent-sor ´ anak szeleteit: " % G B ) 2 3 4 1 z z 19 z 3 z 1 5 + + + + O[z] z 2 12 24 720 160 " " B 1 Series[Sin[ ], {z, 0, 2}] z
212
3. Fejezetek a matematik´ab´ ol " 4+ 6 * ( 4 1 1 1 1 + 1 + 2 + 3 + O[ z ] z 2 z 6 z
Hatv´ anysorok kal kapcsolatos vizsg´alatokn´ al a
7 #83963 programcsomag al´abbi f¨ uggv´enyei jelenthetnek seg´ıts´eget:
: 0B6 :
0B6 6
Tekints¨ uk p´eld´ aul az f (x) :=
x+1 (x − 1)2
(x ∈ R \ {1})
f¨ uggv´enyt. A 0 pont k¨or¨ uli Taylor-sor´ anak egy¨ utthat´ oit a 6 elj´ ar´ as adja meg: " 0 G+C+I + B "0 *( : 1 + 2 n
Mivel %0 GI 1
CJ 6 * (
ez´ert a Cauchy–Hadamard-t´etel alapj´an ∞ (2n + 1)xn f (x) =
(x ∈ (−1, 1)).
n=0
ar´ assal sz´amos hatv´ anysor o¨sszegf¨ uggv´eny´et ´all´ıthatjuk A 0B6 elj´ el˝o. P´eld´ aul: &Y"0 G + "0 *( : 1 + x 2 (-1 + x)
B
A : k¨ uls˝ o f¨ uggv´ennyel pedig olyan hatv´ anysor o¨szszegf¨ uggv´eny´et kaphatjuk meg, amelynek az egy¨ utthat´ oi rekurz´ıv o¨sszef¨ ug-
3.4. Anal´ızis
213
g´essel vannak megadva. P´eld´ aul: O ! G G G B + -3 {{(1 - x) }}
Interpol´ aci´ os polinomok at az
0) bels˝o f¨ uggv´ennyel hat´ arozhatunk meg. Lagrange-f´ele interpol´ aci´ os polinomot p´eld´ aul ´ıgy: 6 &( 0
C C C + "0 *( : 2 3 94 - x - 61 x + 14 x 40
Ellen˝ orizz¨ uk a kapott eredm´enyt: +, : C 1 { , 2, -1, -2} 2
Hermite-f´ele interpol´ aci´ os polinomokat ´ıgy sz´amolhatunk ki: 6 &( 0 C C> ) BL FM MB + "0 *( : 5 3 - 2 x + x
Ezt az eredm´enyt is ellen˝ orizz¨ uk: +, : C -25 {2, 3}
\
) \ ) \\ ) {1019, 1278, 1280}
214
3. Fejezetek a matematik´ab´ ol
A #83 3 programcsomagban tal´ alhat´ o ## elj´ar´as a Remez-algoritmust alkalmazza adott folytonos f¨ uggv´enyt az (1) metrik´ aban legjobban megk¨ ozel´ıt˝ o algebrai polinom numerikus el˝ o´ all´ıt´ as´ara. Ismeretes, hogy minden f ∈ C([a, b]) f¨ uggv´enyhez egy´ertelm˝ uen l´etezik olyan P ∈ Pn polinom (Pn jel¨ oli a legfeljebb n-edfok´ u algebrai polinomok halmaz´ at), amelyre ∞ (f, P ) = inf {(f, p) : p ∈ Pn }. Ennek a P polinomnak egy k¨ ozel´ıt´es´et kaphatjuk meg a
## *5*,. -. -. &/. . M/, utas´ıt´ assal. P´eld´ aul: 0! @K# +0 K +# +0 G+ + B B {{0, 1., 2.}, {0.8571428571428571 0.2857142857142857 x, 0.14285714285714285}}
Figyelj¨ uk meg azt, hogy az eredm´eny k´et list´ab´ ol a´ll´ o lista. Az els˝o lista tartalmazza azokat a pontokat, amelyekben a f¨ uggv´enynek ´es a kapott polinomnak az elt´er´ese maxim´alis. A m´asodik lista els˝ o eleme a keresett polinom, a m´ asodik pedig a f¨ uggv´enynek ´es a k¨ozel´ıt˝ o polinomnak a ∞ t´ avols´aga. Ha az approxim´ al´ o polinom foksz´am´at n¨ ovelj¨ uk, akkor persze jobb k¨ ozel´ıt´est kapunk: +# +0 G+ + B B B % :
-6 1.0223673529609311 10
A Mathematic´ a nak ez az elj´ar´ asa adott f ∈ C([a, b]) f¨ uggv´enyhez olyan ob´ al meghat´arozni, amelyre Q ∈ Pn polinomot pr´ Q(x) p(x) = min max 1 − , max 1 − p∈Pn x∈[a,b] f (x) f (x) x∈[a,b] ez´ert azokban az esetekben, amikor az adott intervallumon az f f¨ uggv´eny nulla ´ert´eket is felvesz, az elj´ar´ as k¨ ozvetlen¨ ul nem haszn´alhat´ o. A [3] referenciak¨ onyvben van p´elda arra, hogy az ilyen f¨ uggv´enyeket hogyan lehet kezelni. Sz¨ uks´eg eset´en innen kaphatunk seg´ıts´eget az elj´ar´ as sz´amos opci´o j´ anak haszn´ alat´ ahoz is.
3.4. Anal´ızis
215
• Racion´ alis approxim´ aci´ o Pad´e-f´ele k¨ ozel´ıt´esek hez a 4 30 3 programcsomagot haszn´alhatjuk. A
0 *5*,. -. . . =/, utas´ıt´ as eredm´enye olyan r = p/q racion´ alis f¨ uggv´eny, amelynek a sz´aml´al´ o ja m-edfok´ u, a nevez˝ o je pedik k-adfok´ u polinom, ´es r kiel´eg´ıti a k¨ ovetkez˝o felt´eteleket: f (i) (a) = r (i) (a)
(i = 0, 1, 2, · · · , m + k).
A k = 0 esetben az f f¨ uggv´eny a pont k¨ or¨ uli m-edfok´ u Taylor-polinomj´ at kapjuk: A!K&'K &' 4+ + + B ' "0 *( : 2 3 120 + 60 x + 12 x + x 2 3 120 - 60 x + 12 x - x
A Taylor-polinomokhoz hasonl´ oan ezek a f¨ uggv´enyek is a megadott pontnak csak valamely kis k¨ ornyezet´eben adnak j´ o k¨ ozel´ıt´est. Az approxim´ aci´ o pontoss´ ag´ at tetsz˝oleges intervallumon is n¨ ovelhetj¨ uk, ha az
' 9 f¨ uggv´enyt (ez szint´en a fenti programcsomagban tal´ alhat´ o) haszn´ aljuk: 4! 0'E # +0 4+ + + C ' "0 *( : 2 3 933217 + 466608 x + 93120 x + 7680 x 2 3 933217 - 466608 x + 93120 x - 7680 x
A fenti k¨ ozel´ıt´esek pontoss´ag´ at szeml´eltethetj¨ uk a k¨ ovetkez˝o utas´ıt´ asok seg´ıts´eg´evel: $ & ' C 4+ + + C
!= CJ C Q BICM D ( ! CJ 6' (
216
3. Fejezetek a matematik´ab´ ol $ & ' C 4+ + + C
!= CJ C )Q BICF D ( ! CJ 6' ( "@Y O @!#( $ $ D ( ! CJ UD ( !
Felhaszn´ alhatjuk m´eg a #83 3 programcsomag al´abbbi elj´ ar´ asait is:
:9 :## ## 9 Interpol´ aci´ os felt´eteleknek eleget tev˝o racion´ alis f¨ uggv´enyt ´ıgy hat´ arozhatunk meg: E 6 A + + C& C&) B & &) : N -18 2 1. - 7.74777 10 x - 0.405285 x -17 2 1. + 4.16334 10 x + 0.0983386 x
Az el˝ oz˝o alpontban ismertetett ## f¨ uggv´enyt racion´alis f¨ uggv´enyekre is haszn´alhatjuk: +# +0 A + G ) + B & :
N 2 5.00022 - 0.459931 x + 0.162379 x 2 1. - 0.0906869 x + 0.126493 x
• Spline-approxim´ aci´ o Adott s´ıkbeli pontokon a´tmen˝o interpol´ aci´ os spline-f¨ uggv´enyt az
bels˝o f¨ uggv´ennyel konstru´ alhatunk. Az illeszt´esn´el alkalmazott polinomok aul: foksz´ am´at az opci´oval adhatjuk meg. P´eld´ ' = $ + A + + B N
3.4. Anal´ızis
217
6 ' = 6 2' CJ & : + + B N
Ismeretes, hogy egyn´el nagyobb foksz´ am´ u interpol´ aci´ os spline-f¨ uggv´enyek egy´ertelm˝ u meghat´ aroz´as´ahoz az adott pontokon k´ıv¨ ul tov´ abbi mell´ekfelt´etelek megad´asa is sz¨ uks´eges. A felhaszn´al´ onak nincs lehet˝ os´ege az ´altala alkalmazni k´ıv´ ant mell´ekfelt´etelek k¨ ozvetlen megad´as´ara. A :8 363 programcsomag
6 valamint a #8363 programcsomag
6 f¨ uggv´eny´evel adott s´ıkbeli pontokhoz konstru´ alhatunk egyr´eszt harmadfok´ u term´eszetes, m´asr´eszt Bezier-f´ele splineg¨ orb´ek et. A k´et elj´ar´ as lehet˝os´egei megegyeznek, k¨ ul¨ onbs´eg csup´an a g¨ orb´ek megjelen´ıt´es´enek m´odj´ aban van. P´eld´ aul: = BB C B B O @!K" K "@Y O @! & " BQB & O @! " = A$!
=
0! @K" K " 1 ( " = A$! &0 !& " 1 ( B) & E CJ # A0 ' CJ
• Trigonometrikus sorok Az R halmazon periodikus, komplex ´ert´ekeket felvev˝o f¨ uggv´eny trigonometrikus Fourier-sor ´ anak tanulm´ anyoz´ as´an´ al az
bels˝o f¨ uggv´enyeken k´ıv¨ ul a
218
3. Fejezetek a matematik´ab´ ol
4 3 53 programcsomag al´abbi elj´ ar´ asait is haszn´alhatjuk:
4 6 455 4 5 6 6 455 6 66 455 6 5 5 6 4 5 6 5 5 A programcsomagban a fenti elj´ ar´ asok (amelyek a pontos eredm´enyt pr´ ob´ alj´ ak meghat´arozni) numerikus t´ ars´at is megtal´alhatjuk. A felhaszn´ alhat´ o f¨ uggv´enyek nev´et az VR
utas´ıt´ as v´egrehajt´ asa ut´an ismerhetj¨ uk meg. Tekints¨ uk most azt az f : R → R 2π szerint periodikus f¨ uggv´enyt, amelyik a (−π, 0] intervallumon null´ aval, a (0, π] intervallumon pedig πvel egyenl˝ o. Meghat´arozzuk ´es ´abr´ azoljuk az f f¨ uggv´eny Fourier-sor´ anak n´eh´ any r´eszlet¨osszeg´et. A sz´amol´asokat pontosan is elv´egezhetj¨ uk, ha a f¨ uggv´enyt ´ıgy ´ertelmezz¨ uk: A!KD!D K * +, - &R " +
Most kisz´ amoljuk az f f¨ uggv´eny Fourier-sor´ anak egyik r´eszlet¨osszeg´et: A!K *0K " * + + C& & > Pi + 2 Sin[x] + 2
2 Sin[3 x] 2 Sin[5 x] + 3 5
A f¨ uggv´enyt ´es Fourier-sor´anak els˝o n´eh´ any r´eszlet¨osszeg´et ´ıgy a´br´ azolhatjuk:
3.4. Anal´ızis
219
= $ "0 :
= = ) & 41 * + = + C& &
!= CJ C& & &
Pi
-Pi
Pi
A Fourier-transzform´ altat az irodalomban k¨ ul¨ onb¨ oz˝o m´odon szok´ as ´ertelmezni. A
5 k¨ uls˝ o f¨ uggv´eny az f : R → R f¨ uggv´enyhez az +∞ f (t)eBixt dt F(x) := A −∞
(x ∈ R)
Fourier-transzform´altat sz´amolja ki, ahol az A ´es a B sz´am alap´ertelmez´es szerinti ´ert´eke 1. Ezeket az ´ alland´ okat vagy a
<4 ´es a <)4 rendszerv´altoz´oval, vagy pedig a
4 ´es a )4 opci´oval v´ altoztathatjuk meg. P´eld´ aul: U21A "5 & U5 !(A C
220
3. Fejezetek a matematik´ab´ ol *0 4+ CI I + 1 2 2 x /(4 a ) Sqrt[2] a E 6 1 *0 : + 2 2 -(a t ) E
Megeml´ıtj¨ uk m´eg azt, hogy a
bels˝o f¨ uggv´enyek a diszkr´et Fourier-transzform´ altat hat´ arozz´ak meg. • N´ egyzetes k¨ ozel´ıt´ esek uk Legyen (xi , yi ) ∈ R2 (i = 1, 2, · · · , n; n ∈ N) adott pontrendszer ´es tegy¨ abb az xi (i = 1, 2, · · · , n) fel, hogy gj (j = 1, 2, · · · , m; m ∈ N) legal´ alappontokban ´ertelmezett R → R t´ıpus´ u f¨ uggv´eny. A
*--+. )+/.HHH.-. )//. -+*,.HHH.*,/. , utas´ıt´ as hat´ as´ara a Mathematica a legkisebb n´egyzetek m´ odszer´e vel numerikusan hat´ aroz meg olyan m cj gj (x) G(x) := j=1
f¨ uggv´enyt, amelyre a k¨ovetkez˝o egyenl˝os´eg teljes¨ ul: n n n (yi − G(xi ))2 = inf { (yi − aj g(xj ))2 : aj ∈ R; j = 1, · · · , m}. i=1
i=1
j=1
A lehet˝os´egeket illusztr´alja a k¨ ovetkez˝o utas´ıt´ assorozat: = $ +I +I) G + C + B ) $ % & = & " ( CJ & " BQB = + +I + $ & : + B N "@Y $ $
3.4. Anal´ızis
221
Ha gj (x) := xj−1 (j = 1, 2, · · · , m), akkor a fenti illeszt´esi feladat egy olyan line´ aris egyenletrendszer megold´ as´ahoz vezet, amelynek az egy¨ utthat´ om´atrixa Hilbert-m´ atrix, ´es ez klasszikus p´eld´ a ja a gyeng´en meghat´arozott m´atrixoknak. A feladat numerikus megold´ asa sor´an viszonylag kicsi m eset´en is a kerek´ıt´esekb˝ol ad´ od´ o hiba m´ert´ektelen¨ ul megn¨ ovekszik. Ismeretes, uggv´enyek hehogy ez a numerikus instabilit´as u ´gy jav´ıthat´ o, hogy a gj alapf¨ lyett a megadott diszkr´et pontrendszerre ortogon´ alis polinomokat vesz¨ unk alapf¨ uggv´enyeknek. Ezt a m´odszert alkalmazza a
#830)3 programcsomag 0) f¨ uggv´enye is. P´eld´ aul: 0! @K&( 0 K ' = $ + E '0 E C G +I + CQ Q BQB> &( 0 ' = & + + C 4+ ' +
Megeml´ıtj¨ uk m´eg azt is, hogy a cj param´eterekben nemline´aris illeszt´esi feladatok megold´ as´ahoz a
6 33 programcsomag f¨ uggv´enye adhat seg´ıts´eget. Alkalmaz´as´ara a 3.11. szakaszban mutatunk p´eld´ at.
3.4.7. Vektoranal´ızis A 4 3V ) 3 programcsomagban meglev˝o f¨ uggv´enyek a vektoranal´ızis alapvet˝ o fogalmainak haszn´ alatakor ny´ ujthatnak seg´ıts´eget. Olvassuk be ezt a programcsomagot: A!K8! # (K
• Koordin´ ata-rendszerek Sz´ amos probl´em´an´ al a der´eksz¨og˝ u koordin´ at´ ak helyett j´ oval el˝ony¨ osebb m´as koordin´ at´ akat alkalmazni. A leggyakrabban haszn´ alt
222
3. Fejezetek a matematik´ab´ ol der´eksz¨og˝ u henger g¨ ombi pol´ ar
(4 *. ). ',), (68*. 8. 8,) ´es (4) *. 8. ',)
koordin´ ata-rendszerek mellett a k¨ovetkez˝okkel is dolgozhatunk:
L L 8 45 450& 4 4)
&68 0&4) 0& 068
(Ezek pontos defin´ıci´ oja [3]-ban sz¨ uks´eg eset´en megtal´alhat´ o.) A koordin´ ata-rendszerek jellemz´es´ere, illetve megv´alaszt´asukra az al´abbi f¨ uggv´enyek haszn´ alhat´ ok:
4 * , 4 4 4 9 * , 4 6) 4 4 0 * , 09 * , 64 Az alap´ertelmez´esben haszn´alt koordin´ ata-rendszer nev´er˝ol, a koordin´ at´ ak elnevez´es´er˝ ol ´es lehets´eges ´ert´ekeikr˝ ol ´ıgy t´ a j´ekoz´odhatunk: A' "( 0 Cartesian A' A' E {{x, y, z}, {-Infinity < x < Infinity, -Infinity < y < Infinity, -Infinity < z < Infinity}}
Az alap´ertelmez´esben haszn´alt koordin´ ata-rendszert is m´odos´ıthatjuk: " A' " @! Spherical[r, theta, phi] A' E {0 <= r < Infinity, 0 <= theta <= Pi, -Pi < phi <= Pi}
3.4. Anal´ızis
223
Tov´abbi lehet˝ os´egeket illusztr´alnak az al´ abbi p´eld´ ak: A' A @ A( '! {r Cos[theta], r Sin[theta], z} A' 0A + ( A( '! {Sqrt[x
2
2 + y ], ArcTan[x, y], z}
• M˝ uveletek vektorokkal Vektorok skal´aris, vektori´ alis ´es vegyesszorzat´at k¨ ul¨ onb¨ oz˝o koordin´ ata-rendszerekben is meghat´arozhatjuk: D &'! 1 1 1 A( '! u3 v3 + u1 v1 Cos[u2] Cos[v2] + u1 v1 Sin[u2] Sin[v2] A&'! 1 1 1 A {-(u3 v2) + u2 v3, u3 v1 - u1 v3, -(u2 v1) + u1 v2} "! &'!
1 1 1 Y Y Y A -u3 v2 w1 + u2 v3 w1 + u3 v1 w2 - u1 v3 w2 u2 v1 w3 + u1 v2 w3
• Skal´ armez˝ ok ´ es vektormez˝ ok u f¨ uggv´eny) gradiens vektor´ at a : Skal´ armez˝ o (azaz R3 → R t´ıpus´ elj´ ar´ assal sz´amolhatjuk ki: O' + 4+ ( G +I I C (I + A y 3 2 y 2 2 {E - y + 2 x z , E x - 3 x y , 2 x z} O' @ A( '! (0,1,0) U [r, theta, z] (1,0,0) , {U [r, theta, z], r (0,0,1) U [r, theta, z]}
Vektormez˝ o (azaz R3 → R3 t´ıpus´ u f¨ uggv´eny) a´br´ azol´as´ar´ ol a 3.5. szaaci´ o jukat pedig a 4 kaszban fogunk sz´ olni. Divergenci´ a jukat a 7, rot´ f¨ uggv´ennyel kapjuk meg:
224
3. Fejezetek a matematik´ab´ ol 1 +, (, , - +( ( + D1 1 + ( A 1 1 + x + y z : Q + CJ ( CJ CJ 11 6 A 1 + ( A y x { , -z, } 2 2 z y
A W&#*. = ', megadja a = ' koordin´ ata-rendszerb˝ ol a Descartes-f´el´ere val´o ´ att´er´es transzform´aci´ o j´ anak deriv´ altm´atrix´ at a pontban. A W&7*. = ', utas´ıt´assal pedig ennek a m´atrixnak a determin´ ans´at kaphatjuk meg. A Laplace- ´es a biharmonikus oper´ atorral is dolgozhatunk: % ! @ A( '! (0,2,0) u [r, theta, z] (0,0,2) + r u [r, theta, z] + r (1,0,0) (2,0,0) u [r, theta, z] r u [r, theta, z]) / r S@0 ! + ( u
(0,0,4) 2 u
[x, y, z] + 2 u
(2,0,2)
(0,2,2)
[x, y, z] + 2 u
[x, y, z] + u
(2,2,0)
(0,4,0)
[x, y, z] + u
Azonoss´agokat is igazolhatunk: D1 O' + ( A A % ! + ( A True A O' + ( A A {0, 0, 0}
[x, y, z] +
(4,0,0)
[x, y, z]
3.5. Differenci´alegyenletek
225
3.5. Differenci´ alegyenletek Az anal´ızis egy bonyolultabb, o¨nmag´ a´ert is vizsg´alt ´es az alkalmaz´asokhoz is k¨ ozel´all´ o fejezet´ehez ´erkezt¨ unk. Meg fogjuk mutatni, hogy a leggyakrabban el˝oker¨ ul˝ o probl´em´ak megold´as´ahoz hogyan lehet hozz´afogni, ha a Mathematic´ a t is seg´ıts´eg¨ ul h´ıvjuk. T¨obb k¨ onyvet is szenteltek m´ar a differenci´alegyenletek ´es a Mathematica kapcsolat´ anak. Ezek k¨ oz¨ ul Abell ´es Braselton [1] k¨onyve arra t¨ orekszik, hogy egyszer˝ u speci´alis alak´ u differenci´alegyenletek megold´as´ara haszn´ alt m´odszereket reproduk´ aljon, a Mathematic´ a val v´egeztetve a r´eszletsz´am´ıt´ asokat. Vvedensky [86] k¨ onyve k¨ oz¨ons´eges ´es parci´alis differenci´ alegyenletekr˝ol sz´ol, els˝ o r´ an´ez´esre a fentin´el sokkal jobbnak l´ atszik, mivel alaposan kihaszn´ alja a Mathematica lehet˝os´egeit ´es sok feladatot tartalmaz. Megeml´ıtj¨ uk m´eg Coombs ´es munkat´ arsainak u ´j k¨ onyv´et [16]. ulnyom´ or´eszt k¨ oz¨ ons´eges differenci´ alegyenletekr˝ol Ebben a szakaszban t´ lesz sz´o; ha a k¨ oz¨ons´eges jelz˝ot elhagyjuk, ilyenekre gondolunk. Parci´ alis differenci´ alegyenletek k¨ oz¨ ul az els˝orend˝ uek — egy u ´jabb programcsomag felhaszn´ al´ as´aval — hasonl´ oan kezelhet˝ok, mint ahogyan pap´ıron-ceruz´ a” val”. M´ asodrend˝ u (line´ aris) egyenletekre vonatkoz´o feladatok k¨ oz¨ ul csak igen egyszer˝ uek oldhat´ ok meg Laplace-transzform´aci´ o, hatv´ anysoros vagy Fourier-m´ odszer seg´ıts´eg´evel. V´eg¨ ul — ahogyan m´ as szerz˝ok is megteszik a differenci´alegyenletek t´argyal´as´an´ al — a vari´ aci´ osz´am´ıt´ as legegyszer˝ ubb feladatair´ ol is sz´ot ejt¨ unk. Ezt a bevezet˝o r´eszt n´eh´ any a´ltal´ anos tan´ accsal z´arjuk. Differenci´ alegyenletek megold´as´an´ al igen gyakran el˝ ofordul, hogy figyelmeztet˝ o vagy hiba¨ uzeneteket kapunk. Ezut´ an m´eg el˝ofordulhat, hogy v´eg¨ ul megkapjuk a helyes eredm´enyt. Amiatt sem ´erdemes t¨ urelmetlenkedn¨ unk, hogy az ereduletnek meg, ugyanis egy differenci´alegyenlet m´enyek esetleg igen sok´a sz¨ megold´asa esetenk´ent n´eh´ anyszor t´ız percig vagy m´eg tov´abb is eltarthat, szemben az egyszer˝ u feladatokn´ al megszokott m´asodpercekkel.
3.5.1. Ir´ anymez˝ o k´ et ´ es h´ arom dimenzi´ oban Kezdj¨ uk azzal, amivel a tank¨ onyvek ´es p´eldat´arak t¨ obbs´ege is kezdi: a´br´ azoljuk n´eh´ any differenci´alegyenlet ir´ anymez˝o j´et. K´etv´ altoz´os egyenletekhez uggv´enyeit haszn´ alhatjuk: a :8 30 3 programcsomag f¨
226
3. Fejezetek a matematik´ab´ ol
0V 0: 01
00) 0V
Els˝ o p´eldak´ent n´ezz¨ uk meg a Lotka–Volterra-egyenletet: O @!K& 'K & 8! ' + C + ( + ( C ( + B ( B
Ha adott egy val´ os ´ert´ek˝ uu ´gynevezett potenci´ alf¨ uggv´eny, amelynek gradiense a differenci´alegyenlet jobb oldala, akkor gradiens-rendszer rel van dolgunk. Az ilyenek ir´ anymez˝o j´enek megrajzol´as´ahoz elegend˝o a potenci´ alf¨ uggv´enyt megadni: & O' ' C+ G (I + B ) ( C # ! E CJ# 0 !
Ugyanilyen egyszer˝ uen lehet megrajzolni olyan egyenletek ir´ anymez˝o j´et is, amelyek jobb oldala egy Hamilton-f´ele f¨ uggv´enyb˝ ol sz´armazik deriv´al´ as u ´tj´ an: & 70 ' C+ G (I + B ) ( C "! ! CJ/ # ! E CJ# 0 !
Az ugyanazon f¨ uggv´enyb˝ ol sz´armaz´o gradiens-rendszer ´es Hamilton-rendszer trajekt´ori´ ai ortogon´ alisak egym´ asra, ez az ir´anymez˝ok¨ on is j´ ol l´ atszik:
3.5. Differenci´alegyenletek
227
"@Y : ::
Megadhatunk egy komplex f¨ uggv´enyt is ahhoz, hogy ezt P´ olya-f´ele reprezent´aci´ oban haszn´ aljuk ir´ anymez˝o k´esz´ıt´es´ere. (Cauchy, Riemann ´es Erugin ´epp´ıgy lehetne a n´evad´ o.) A megadott f¨ uggv´eny val´ os r´esze a jobb oldal els˝o, k´epzetes r´esze pedig m´asodik koordin´ ataf¨ uggv´enye. Legyen a = 1.5, 2.0, 4.0, ´es ezekkel az ´ert´ekekkel sz´am´ıtsuk ki az al´ abbi f¨ uggv´enyt: * , - & &(' + G 6 (I) C + C ( C * )QB
228
3. Fejezetek a matematik´ab´ ol
Mivel a z → z 4 − 1 f¨ uggv´enynek a negyedik egys´eggy¨ok¨ ok a gy¨ okei, ez´ert ezen pontok k¨ ozel´eben kicsi a vektorok hossza. uggv´eny alkalmazhat´ o akkor, ha a jobb olA 0V f¨ dalt egy t´ abl´ azat (p´eld´ aul m´er´esi adatok´e) adja meg; vagy akkor, ha meghat´ arozott pontokban adott nagys´ ag´ u vektorokat akarunk csak kirajzolni. Ez ut´ obbira mutatunk p´eld´ at: 1* ,-% & 8! '
$ " A I " I A B & &N "! ! CJ /
Ha most s = 0.1 ´es s = 1 k¨ oz¨otti ´ert´ekekre elk´esz´ıtj¨ uk az a´br´ akat ´es az eredm´enyb˝ ol anim´ aci´ os filmet k´esz´ıt¨ unk (kijel¨ olj¨ uk az a´br´ akat, majd r´ akattintunk a filmszalagot mutat´ o ikonra vagy a megfelel˝ o men¨ upontra), akkor egy l¨ uktet˝ o (b´ ar kiss´e sz˝or¨ os) sz´ıv jelenik meg el˝ ott¨ unk! Bizonyos esetekben m´eg h´arom dimenzi´oban is ´attekinthet˝ o az ir´anymeuggv´enyei z˝o. Ehhez a :8 30 F73 programcsomag al´abbi f¨ haszn´ alhat´ oak:
0V F7 0: F7
0V F7
H´ıvjuk be a programcsomagot: O @!K& 'DK
A v´ alasz egy figyelmeztet˝o u ¨zenet, amely szerint a 6 ´es a # B8 azonos´ıt´o t¨obb o¨sszef¨ugg´esben is el˝ofordul, s valamelyik defin´ıci´ ojuk elfedheti a m´ asikat. Tanulm´ anyozzuk most a Lorenz-egyenletet dinamikai szempontb´ol ´erdekes param´eter´ert´ekek eset´en! Ezeket az ´ert´ekeket u ´gy v´ alasztottuk meg, hogy az egyens´ ulyi helyzetek sz´ ama ´es min˝os´ege k¨ ul¨ onb¨ oz˝o legyen: B $ M , - & 8! 'D
( C + + C ( C + + ( C $ + C ( C
Tanuls´ agos lehet megvizsg´alni r k¨ ovetkez˝o ´ert´ekeit: 0.9, 1.1, 20, 24.5, 25.
3.5.2. Megold´ as kvadrat´ ur´ aval Line´ aris, valamint egyszer˝ u szerkezet˝ u nemline´ aris egyenletek megold´ as´at elv´ arjuk a matematikai programcsomagokt´ol. A szok´asos krit´erium az, hogy
3.5. Differenci´alegyenletek
229
Kamke [38] gy˝ ujtem´eny´eb˝ ol mennyit k´epesek megoldani. A Mathematica n´eh´ any kiv´etel´evel mindet megoldja, ´es nemcsak explicit megold´asokat ad, hanem — amikor csak erre van m´ od, vagy ez az egyszer˝ ubb — impliciteket is. Mivel r´ an´ez´esre egy egyenletr˝ol m´eg nagy gyakorlat mellett is neh´ez eld¨ onteni, hogy megold´ asa mennyire k¨ onny˝ u vagy nem, ez´ert ´erdemes vizsg´al´ od´ asunk legelej´en beh´ıvni a
4 3763 csomag 76 f¨uggv´eny´et, amely azonos nev˝ u, de nagyobb teljes´ıt˝ ok´epess´eg˝ u, mint bels˝ o t´ arsa. Az eredm´enyeket ´erdemes mindig ellen˝ orizni. Gray [29] sok egy´eb szempontb´ ol is kiv´ al´ o k¨ onyv´eben ezt mindig megteszi; ebb˝ol kider¨ ul, hogy maga az ellen˝orz´es sem mindig teljesen trivi´alis. Az al´abbiakban erre csak n´eh´ any p´eld´ at mutatunk. El˝ osz¨or egy negyedrend˝ u line´ aris egyenletet oldunk meg: ( C>CN+I) ( + G )+ (\ + C )+I (\\ + G +I (\\\ + G N+I) (\\\\ + B ' D"1 ( ( + +
• Hivatkoz´ asi m´ odok Az eredm´eny egy olyan (eset¨ unkben k¨ ozl´esre nem m´elt´oan hossz´ u) lista, amelynek els˝o ´es egyetlen eleme egy lista, amelynek egyetlen eleme egy — lok´ alis ´ert´ekad´ asban felhaszn´ aland´ o — transzform´ aci´ os szab´ aly. Mindezek alapj´ an a megold´as x helyen vett helyettes´ıt´esi ´ert´ek´ere — amit tov´abb szeretn´enk egyszer˝ us´ıteni — az **+. +. (,, jellel hivatkozhatunk, as igen kifihiszen az nevet adtuk az eg´esz eredm´enynek. (A n´evad´ alata a legkisebb zet˝od˝ o befektet´es, ugyanis a T jelnek ´es rokonainak haszn´ jav´ıt´ as vagy m´odos´ıt´ as eset´en is hib´ akra vezet.) A kapott eredm´eny a´ttekinthetetlen, de egyszer˝ ubb alakra lehet hozni: ( !
@ &Y4+ ' '
1/8 3/4 1/4 ((-1) (-((-1) C[1] Cos[x]) -(-1) C[3] Cos[x] 3/4 1/4 (-1) C[1] Cosh[x] + (-1) C[3] Cosh[x] + C[2] Sin[x] - I C[4] Sin[x] + C[2] Sinh[x] + I C[4] Sinh[x]))/ 3 (Sqrt[2Pi ] Sqrt[x])
230
3. Fejezetek a matematik´ab´ ol
Az Olvas´ora (feladatul) hagyjuk annak ki¨ otl´es´et, hogy az eredm´enyt mik´eppen lehet u ´gy a´talak´ıtani, hogy a n´egy trigonometrikus f¨ uggv´eny mindegyike csak egyszer szerepeljen — a megfelel˝o egy¨ utthat´ okkal. uggv´eny h´ arom argumentuma k¨ oz¨ ul az els˝o Mint l´ athat´ o, a 76 f¨ az egyenlete(ke)t tartalmazza, bele´ertve a kezdeti ´es peremfelt´eteleket is. Szintaktikai akad´ alya nincs, hogy szokatlan (p´eld´ aul nemline´ aris, vagy hat´ ar´ert´ekre vonatkoz´o) felt´etelekkel eg´esz´ıts¨ uk ki a differenci´ alegyenleteket; esetenk´ent m´eg kaphatunk is megold´ ast. A m´asodik argumentum a megold´ asf¨ uggv´eny vagy annak helyettes´ıt´esi ´ert´eke. Ha a megold´ ast az egyenletbe vissza szeretn´enk helyettes´ıteni, akkor az els˝o lehet˝os´eget v´ alasszuk, hogy (egyszer˝ uen) ki tudjuk sz´ amolni a sz¨ uks´eges deriv´ altakat is. Egy´ebk´ent pedig a´ltal´ aban a m´ asodik lehet˝os´eg az ´attekinthet˝ obb. A harmadik argumentum a f¨ uggetlen v´ altoz´o(ka)t tartalmazza. A h´ arom argumentum b´ armelyik´et listak´ent kell megadni, ha egyn´el t¨obb ¨osszetev˝oje van. A k¨ ovetkez˝o feladatban az egyenletben bemenetk´ent szerepel egy egys´egugr´ asf¨ uggv´eny. Ennek az egyenletnek a megold´ asa k¨ozben megismerked¨ unk a megold´ asra val´ o hivatkoz´ as egy m´asik m´odj´ aval is: A!KD!D K @ D"1
(\ + G ( + N " + G BQ ( B ( +
´ A megold´asf¨ uggv´eny teh´ at — a fentiek ´ertelm´eben — ϕ. Erdemes a´br´ azolni ezt a f¨ uggv´enyt — a szok´asos m´odon: & @ + + CBQ> BQ>
A legegyszer˝ ubb hivatkoz´ asi m´od teh´ at a k¨ ovetkez˝o: D"1 (\ + C ( +I ( B ( +
Enn´el a m´odn´ al illik arra vigy´ azni, hogy az egyenletben szerepl˝ o ismeretlen f¨ uggv´eny neve ne legyen azonos a konkr´et megold´as nev´evel. Megjegyzend˝ o, hogy (p´eld´ aul m´ asodfok´ u) algebrai egyenletekn´el erre szoktak u ¨gyelni, differenci´ alegyenletekn´el kev´esb´e. ´ Altal´ aban viszont azt a hivatkoz´ asi m´odot szokt´ ak javasolni, amelyn´el az eredm´enyt a tov´ abbiakban transzform´ aci´ os szab´ alyk´ent haszn´ aljuk fel: D"1 + (\\ + G C+I (\ + C + ( + B ( BQ> (\ BQ> ( + + & 41 ( + Q : + CBQ QN
3.5. Differenci´alegyenletek
231
V´eg¨ ul egy p´elda arra az esetre, amikor a megold´ast (hiba¨ uzenetek sorozata ut´ an) implicit alakban kapjuk meg: D"1 (\ + ( +I G $ +IC ( + + Solve[Integrate[ 1 16 3 , y[x]] + y[x] + 2 a x y[x] 3 Sqrt[x] Log[x] == C[1], y[x]] 2
3.5.3. Els˝ o integr´ alok Ha nem tudjuk megoldani kvadrat´ ur´ aval az egyenletet, akkor m´eg mindig lehet, hogy meg tudjuk hat´ arozni egy vagy n´eh´ any els˝o integr´ alj´ at. Az ehhez sz¨ uks´eges k¨ uls˝ o f¨ uggv´enyt a
4 3076+3 programcsomagban tal´ aljuk meg. Hat´arozzuk meg a Volterra–Lotka-rendszer egy els˝o integr´ alj´ at: A!K&D"1K 6 +\ + C+ ( (\ + ( C( + ( # : {-Log[x[t]] - Log[y[t]] + x[t] + y[t]}
3.5.4. Numerikus megold´ as Itt olyan kezdeti´ert´ek-probl´em´akat fogunk megoldani, amelyek megold´ asa kvadrat´ ur´ aval nem hat´ arozhat´ o meg. A megold´as alapvet˝o eszk¨oze az
76 bels˝o f¨ uggv´eny. K´et p´eld´ at mutatunk az elj´ ar´ as haszn´alat´ ara. El˝ osz¨or egy neurobiol´ ogiai modellt vizsg´alunk, amelynek ´erdekess´ege, hogy a fel´ırt differenci´alegyenlet-rendszer merev , azaz az egyes komponensf¨ uggv´enyek deriv´altjai k¨ oz¨ott t¨ obb nagys´ agrend k¨ ul¨ onbs´eg van. Az ilyen
232
3. Fejezetek a matematik´ab´ ol
egyenletek megold´as´ara Gear ´ota speci´alis m´odszereket alkalmaznak. A Mathematica automatikusan vizsg´ alja a merevs´eget ´es sz¨ uks´eg eset´en m´odszert v´altoztat. Vizsg´aljuk el˝ osz¨or a k¨ ovetkez˝o leegyszer˝ us´ıtett form´alis k´emiai reakci´ot [19]: 2X + Y −→ 3X
2X −→ X + Y
Y −→ X −→ O −→ Y
´Irjuk f¨ ol ´es oldjuk meg ennek a reakci´ onak a t¨ omeghat´ as kinetik´ aj´ u induk´ alt differenci´ alegyenlet´et alkalmas sebess´egi ´alland´ okkal: ' $ D"1
+\ BQ+ I ( C BQ+ I G BQB>( C + (\ CBQ+ I ( G BQ+ I C BQB>( G + B B ( B B + ( B >B
Az ´abr´ an j´ ol l´ atszik, hogy egyes id˝ oszakokban nagy k¨ ul¨ onbs´eg van a k´et anyagfajta mennyis´eg´enek deriv´ altja k¨ oz¨ott: & '
'
B >B
8 6 4 2
10
20
30
40
50
Ha az el˝oz˝o utas´ıt´ as elej´ere oda´ırjuk m´eg a 0 sz´ot, akkor a megold´asok helyett a trajekt´ ori´ ak at (szelektivit´ asi g¨ orb´ek et) kapjuk meg. M´ asodik p´eld´ ankban egy egyszer˝ u ir´ any´ıt´ asi feladatot oldunk meg. Egy t´ argy h˝ om´ers´eklet´et adott hat´ arok k¨ oz¨ott kell tartani olyan m´ odon, hogy ha az als´o hat´ art el´eri a test h˝om´ers´eklete, akkor bekapcsolunk valamilyen f˝ ut´est, ha pedig el´eri a f¨ ols˝o hat´ art, akkor kikapcsoljuk azt.
3.5. Differenci´alegyenletek
233
A h˝ ul´es folyamat´at a Newton-f´ele h˝o´atad´ asi t¨orv´eny ´ırja le, amely szerint (¨ onk´enyesen, de alkalmasan megv´alasztott ´alland´ oval): T (t) = −0.1(T (t) − 273). A f˝ ut´es k´et esetben m˝ uk¨ odik: ha a h˝ om´ers´eklet az als´o hat´ ar alatt van, vagy pedig ha a k´et hat´ ar k¨ oz¨ott van ´es m´ar eddig is m˝ uk¨ od¨ ott. ´Irjuk fel a v´egs˝o megold´ast, s majd ut´ olag f˝ uzz¨ unk hozz´ a megjegyz´eseket: D"1 \ CBQR CFQGX@!@
LQ @)Q
JBQ @BQ LQ BQ // @)Q )Q LQ BQ // @BQ BQ
BQFQ BQ NBQ +" CJ6 * ( +" "CJBQB {{T[t] -> InterpolatingFunction[{0., 60.}, <>][t]}} & 41 LQ BQ Q : BQ NBQ 300 295 290 285 280
10
20
30
40
50
60
Tanuls´ agos a l´ep´esek sz´am´at kisebbre vagy a maxim´ alis l´ep´esk¨ozt nagyobbra venni ´es megn´ezni, mi t¨ ort´enik a megold´ assal. Ha a kezdeti felt´etelt magasabbra v´alasztjuk, akkor egy kemenc´eb˝ ol kivett t´ argyra gondolhatunk, amelynek a h˝ om´ers´eklet´et adott hat´ arok k¨ oz¨ott kell tartani. Ez a feladat nyilv´ anval´ oan m´ asutt is alkalmazhat´ o modellk´ent. P´eld´ aul valamilyen gy´ ogyszer szintj´et szeretn´enk adott szinten tartani a v´erben. Ezt nyilv´ an csak adott pontoss´aggal k¨ ovetelhetj¨ uk meg, azaz csak azt ´ırhatjuk el˝o, hogy a szint k´et adott hat´ ar k¨ oz´e ess´ek. Ezt viszont egyszer˝ u esetben a fenti modell j´ ol k¨ ozel´ıti.
234
3. Fejezetek a matematik´ab´ ol
Els˝ o ´altal´ anos´ıt´ ask´ent ´erdemes a Newton-egyenlet helyett nemline´ aris egyenletet venn¨ unk. ´ Ertelmes ´altal´ anos´ıt´ ashoz jutunk, ha a hat´ arokat nem a´lland´ oknak veszsz¨ uk, hanem k´et f¨ uggv´ennyel adjuk meg. Esetleg ezeket a f¨ uggv´enyeket valamilyen differenci´ alegyenlet megold´ asak´ent kapjuk. M´ asik, k´ezenfekv˝ o a´ltal´ anos´ıt´ ashoz u ´gy jutunk, ha differenci´ alegyenletrendszer t tekint¨ unk ´es a megold´ast´ol azt k¨ovetelj¨ uk meg, hogy benne maradjon egy (esetleg id˝ot˝ ol f¨ ugg˝ o) halmazban, ´ıgy bizonyos t´ıpus´ u u ¨ld¨ oz´esi feladatok modellj´ehez jutunk. • Numerikus m´ odszerek uggv´eny t¨ obbl´ep´eses prediktor-korrektor m´odszert haszAz 76 bels˝o f¨ n´ al, amelynek param´eterei az opci´ok seg´ıts´eg´evel m´odos´ıthat´ ok. Amennyiben a program ´erz´ekeli az egyenlet merevs´eg´et, automatikusan implicit differencia-m´odszerre t´er ´at. A Runge–Kutta-m´ odszerrel oldhatjuk meg az egyenletet a
9; f¨ uggv´eny seg´ıts´eg´evel. Ezt a 0 39;3 programcsomagban tal´ alhatjuk meg. A t¨ obbl´ep´eses line´aris Runge–Kutta-t´ıpus´ u m´odszereknek a tanulm´ anyoz´ as´ahoz seg´ıts´eget kaphatunk a
#83L83 programcsomag 9;A f¨ uggv´enyeit˝ol.
3.5.5. Laplace-transzform´ aci´ o A m´ern¨ oki irodalomban a Laplace-transzform´ aci´ ot a leggyakrabban line´aris, a´lland´ o egy¨ utthat´ os k¨oz¨ons´eges differenci´alegyenletekre ´es differenci´alegyenlet-rendszerekre (vagy ilyenekre visszavezethet˝okre) szokt´ak alkalmazni, illetve olyan egyenletekre, amelyek bal oldal´ an egy line´ aris, a´lland´ o egy¨ utthat´ os oper´atornak az ismeretlen f¨ uggv´enyen felvett ´ert´eke, a jobb oldal´ an pedig egy ugyanilyen t´ıpus´ u oper´ atornak egy ismert, u ´gynevezett bemeneti f¨ uggv´enyen felvett ´ert´eke ´all. Az els˝ o k´et t´ıpusra — mint a´ltal´ aban, u ´gy itt is — f¨ ol¨ osleges a Laplace-transzform´aci´ ot alkalmazni, hiszen haszn´ alata a´ltal´ aban semmilyen el˝onnyel nem j´ ar. Kiv´etelt k´epeznek tal´ an
3.5. Differenci´alegyenletek
235
ez al´ol a nem folytonos jobb oldal´ u differenci´alegyenletek (amelyeket p´eld´ aul bekapcsol´ asi jelens´egek modellez´es´ere haszn´alnak). K¨ ovetkezz´ek most egy ilyen p´elda: A!K% ! *0K A!KD!D K ( (\ + G ) ( + " + % ! *0 ( + 4 LaplaceTransform[y[x], x, s] + s LaplaceTransform[y[x], x, s] - y[0] ==
1 s
: Q % ! *0 ( + + CJ ] 1 -y[0] + 4 Y[s] + s Y[s] == s
Kaptunk teh´ at egy (egyszer˝ u, algebrai) egyenletet az Y Laplace-transzform´altra. Oldjuk meg: "1 : Q ( BCJ ] -1 - 2 s )}} {{Y[s] -> -( s (4 + s)
A kapott eredm´enyt vissza kell transzform´alni”: ” 6 1% ! *0 :
+ 7 1 + 4x 4 4E
Integr´ alegyenletekn´el (p´eld´ aul konvol´ uci´ ot tartalmaz´okn´ al) is el˝ ofordul, hogy a megold´ as meghat´aroz´as´aban t´enylegesen seg´ıt a Laplace-transzform´aci´ o. Most megoldunk egy ilyen integr´ alegyenletet: ( 6 4I C B ( % ! *0 ( s
-2
==
LaplaceTransform[g[t], t, s] -1 + s
"1
( Q % ! *0 CJ O O -1 + s {{G[s] -> 2 }} s 6 1% ! *0 :
1 - t
236
3. Fejezetek a matematik´ab´ ol
V´eg¨ ul pedig megeml´ıtj¨ uk, hogy a parci´ alis differenci´ alegyenletekr˝ ol sz´ol´ o r´eszben is alkalmazzuk majd a Laplace-transzform´ aci´ ot.
3.5.6. Megold´ as hatv´ anysorokkal Ha a kvadrat´ ur´ aval nem tudjuk megkapni egy differenci´ alegyenlet megold´as´at, akkor megpr´ ob´ alkozhatunk azzal, hogy hatv´ anysor alakban keress¨ uk a megold´ast. Ennek az elj´ ar´ asnak az elm´eleti h´ atter´et az az Eulert˝ol sz´armaz´o eredm´eny k´epezi, amely szerint analitikus jobb oldal´ u egyenletnek l´etezik analitikus megold´ asa. A Mathematica seg´ıts´eg´evel egy hatv´ anysor alak´ u megold´ as tetsz˝oleges, de v´eges sok tagja meghat´arozhat´ o. Els˝ o p´eld´ ank Grayt˝ ol [29] sz´armazik. Meg akarjuk oldani hatv´ anysor alakban az y (x)2 − y(x) = x differenci´ alegyenletet. K¨ ozel´ıts¨ uk egy hatv´ anysor v´eges szelet´evel az y f¨ uggv´enyt; az ismeretlen egy¨ utthat´ okat jel¨ olj¨ uk a[i]-vel: ( +, - "D + B $ B N ' D ( + +I C ( + + 2 (-a[0] + a[1] ) + (-a[1] + 4 a[1] a[2]) x + 2 2 (-a[2] + 4 a[2] + 6 a[1] a[3]) x + 3 (-a[3] + 12 a[2] a[3] + 8 a[1] a[4]) x + 2 4 (9 a[3] - a[4] + 16 a[2] a[4] + 10 a[1] a[5]) x + 5 (24 a[3] a[4] - a[5] + 20 a[2] a[5] + 12 a[1] a[6]) x + 6 O[x] == x
Szeretn´enk az egy¨ utthat´ okra egy egyenletrendszert kapni: @( %!4+ ' ' 2 -a[0] + a[1] == 0 && -1 - a[1] + 4 a[1] a[2] == 0 && 2 -a[2] + 4 a[2] + 6 a[1] a[3] == 0 && -a[3] + 12 a[2] a[3] + 8 a[1] a[4] == 0 && 2 9 a[3] - a[4] + 16 a[2] a[4] + 10 a[1] a[5] == 0 && 24 a[3] a[4] - a[5] + 20 a[2] a[5] + 12 a[1] a[6] == 0
3.5. Differenci´alegyenletek
237
Ahhoz, hogy ezeket megoldjuk, sz¨ uks´eg¨ unk van m´eg egy kezdeti felt´etelre: @0 "1 @( B $ B N {{a[0] -> 1, a[6] -> 0, a[5] -> 0, a[4] -> 0, a[3] -> 0, a[2] -> 0, a[1] -> -1}, 469 41 5 {a[0] -> 1, a[6] -> , a[5] -> , a[4] -> , 11520 960 96 1 1 a[3] -> - , a[2] -> , a[1] -> 1}} 12 2
Helyettes´ıts¨ uk vissza a k´et megold´ast y-ba, hogy megkapjuk a hatv´ anysor alak´ u k¨ ozel´ıt´est: 0 ( + Q @0 O[x] , {1 - x + 7 2 3 4 5 6 x x 5x 41x 469x 7 1 + x + + + +O[x] } 2 12 96 960 11520
Miel˝ ott ´ abr´ azolhatn´ ank, norm´ alalak´ u kifejez´ess´e kell alak´ıtani ezeket: & 41 0 0 + B
V´eg¨ ul megmutatjuk, hogy hatodrendben” mindk´et f¨ uggv´eny megold´ as: ” ' Q @0 6 6 {x + O[x] == x, x + O[x] == x}
Norm´alform´ aj´ uv´ a alak´ıtva az egyenleteket, pontos egyez´eseket kapunk: 0 : {True, True}
Egyes — k¨ ul¨ on¨ osen kedvez˝o — esetekben el˝ofordulhat, hogy meg tudunk sejteni egy, a hatv´ anysor egy¨ utthat´ oi k¨ oz¨ott fenn´ all´ o rekurz´ıv o¨sszef¨ ugg´est, s ekkor a
7 #83963 programcsomag 96 f¨ uggv´eny´et haszn´alhatjuk. Trivi´ alis p´eld´ at mutatunk. Legyen a megoldand´ o kezdeti´ert´ek-probl´ema: y (x) = y(x)
y(0) = 1.
( +, - "D + B $ B )
238
3. Fejezetek a matematik´ab´ ol ' D ( + + C ( + B (-a[0] + a[1]) + (-a[1] + 2 a[2]) x + 2 (-a[2] + 3 a[3]) x 3 (-a[3] + 4 a[4]) x + 4 O[x] == 0
Az egy¨ utthat´ okra ezt az egyenletrendszert kapjuk: %!4+ ' ' -a[0] + a[1] == 0 && -a[1] + 2 a[2] == 0 && -a[2] + 3 a[3] == 0 && -a[3] + 4 a[4] == 0
Haszn´aljuk f¨ ol a kezdeti felt´etelt, ´es vegy¨ uk ´eszre”, hogy milyen o¨sszef¨ ugg´es ” van az egy¨ utthat´ ok k¨ oz¨ott: D! @KE"1K E"1 G G C B B 1 }} {{a[n] -> n!
Verifik´ aljuk, hogy amit kaptunk, az val´ oban megold´ as: * +, &Y"0 Q : +
# ' *\ + * + * B True
V´eg¨ ul megeml´ıtj¨ uk, hogy Vvedensky [86] k¨ onyv´eben szingul´ aris feladatok megold´as´ara haszn´ alja a hatv´ anysoros m´odszert. Hatv´ anysor alak´ u megold´ asok keres´es´en´el ´erdemes m´eg gondolni a k¨ ovetkez˝o programcsomagokra:
&36)&63 7 #834&653
3.5.7. Szukcessz´ıv approxim´ aci´ o A szukcessz´ıv approxim´ aci´ o m´odszer´et ink´ abb elm´eleti vizsg´alatokn´ al szok´ as alkalmazni, ´eppen az´ert, mivel a konkr´et feladatok megold´ as´an´ al fell´ep˝ o integr´ al´ asok k´ezzel nehezen v´egezhet˝ok el. Legyen a megoldand´ o egyenletek
3.5. Differenci´alegyenletek ´altal´ anos alakja:
239
x (t) = f (t, x(t)) x(τ ) = ξ,
u folytonos f¨ uggv´eny, τ ∈ R, ξ ∈ Rn . Ezek k¨ oz¨ ul ahol f R×Rn → Rn t´ıpus´ egy olyan esettel foglalkozunk, ahol n = 1; konkr´etan az x (t) = x(t)2
x(0) = 1
egyenlet megold´as´at fogjuk megadni az identit´ asf¨ uggv´enyb˝ ol (Mathematiozel´ıt´esb˝ol kiindulva. (Az cai megfelel˝ oje: * . ,) mint kezdeti k¨ al´ abbiakb´ ol ki fog t˝ unni, hogy programoz´ asi szempontb´ol az ´altal´ anos eset megold´asa semmivel sem nehezebb a speci´alisn´ al.) A kezdeti defin´ıci´ ok ut´ an kisz´am´ıtjuk a pontos megold´ ast: B = * , 1, - 1I , D"1
+\ + I + B +
1 1-z
K¨ ovetkezz´ek a differenci´alegyenlettel egyen´ert´ek˝ u integr´ alegyenlet jobb oldal´ at defini´ al´ o integr´ aloper´ ator: # *, - "0 *(
! = G 6 * *
Ez az oper´ ator val´ oban f¨ uggv´enyekhez f¨ uggv´enyeket rendel, ez´ert amikor f¨ uggv´eny´ert´ekekre lesz sz¨ uks´eg¨ unk az al´ abbiakban, alkalmazzuk majd a P*', f¨uggv´eny´ert´ek-sz´amol´o”-t. ” Sz´ am´ıtsuk ki az els˝ o¨ ot k¨ ozel´ıt´est: % # ! >
Az eredm´enyb˝ ol hagyjuk el az els˝ o f¨ uggv´enyt, ´es a list´ahoz vegy¨ uk hozz´ a a pontos megold´ ast az ¨osszehasonl´ıt´ o a´br´ azol´as el˝ok´esz´ıt´ese v´egett, majd ´abr´ azoljuk — a´ttekinthet˝o m´odon — az o¨sszes f¨ uggv´enyt: # ' . / E : & 41 : B BQL & E C J # & " ( CJ @!= BQBB @!= BQBB @!= BQBB @!= BQBB)
240
3. Fejezetek a matematik´ab´ ol @!= BQBB> @!= BQBBN D@ QB> QB EOSA B B
!= CJ BQ BQM ) B
10 8 6 4
0.2
0.4
0.6
0.8
(Hogyan adhatn´ ank meg eleg´ansabban a vonalvastags´ agokat?) ´ Erdemes arra is gondolnunk, hogy a Mathematica megk¨onny´ıtheti az ilyenkor sz¨ uks´eges becsl´esek elv´egz´es´et is.
3.5.8. Stabilit´ aselm´ elet A Lorenz-egyenlet konkr´et p´eld´ a j´ an elv´egezve a line´aris stabilit´asvizsg´alatot megmutatjuk, hogy ez itt l´enyeg´eben azonos a matematikai k´epletek le´ır´ as´aval. A szok´asosan r-rel jel¨ olt param´etert fogjuk v´ altoztatni, a t¨ obbieknek konkr´et ´ert´eket adunk. Els˝ o l´ep´esben meghat´arozzuk a stacion´ arius pontokat: B $ M * +, +, +,- + C + + C + C + + + + C $ + ! "1 * + + + B + + +
(Ha nem ilyen egyszer˝ u polinommal tal´ alkozunk, akkor ´erdemes visszalapozni az egyenletek megold´as´ar´ ol sz´ol´ o 3.3. szakaszhoz.) A k¨ ovetkez˝o l´ep´es a Jacobi-m´atrixnak ´es saj´at´ert´ekeinek kisz´am´ıt´ asa a stacion´arius pontokban:
3.5. Differenci´alegyenletek
241
W!$ +, +, +, - 2 D * + + + + + + 4 1 W!$ + + + Q !
A sz´amol´asok eredm´enyeib˝ ol j´ ol l´ atszik, hogy a saj´ at´ert´ekek val´os r´esz´enek el˝ojele mik´ent v´ altozik, ha ism´et a fent eml´ıtett r = 0.9, 1.1, 20, 24.5, 25 param´etersorozaton vizsg´aljuk. Az els˝ o helyen p´eld´ aul azt kapjuk, hogy az els˝o egyens´ ulyi helyzet stabilis, a m´asik kett˝o pedig instabilis: A@ : Q CJ BQL $0 -2.66667 -10.9083 -0.0916731 0.169767 -10.9736 -2.86284 0.169767 -10.9736 -2.86284
• A Mihajlov-f´ ele krit´ erium Line´ aris stabilit´asvizsg´alatn´ al a v´egs˝o l´ep´esben azt kell meg´allap´ıtanunk, hogy a lineariz´ alt r´esz karakterisztikus polinomj´anak saj´ at´ert´ekei milyen val´ os r´esz˝ uek. Ezt a legnehezebb a k¨ ozismert Hurwitz-m´odszerrel eld¨ onteni. (B´ar ennek alkalmaz´ as´at megk¨onny´ıti a 3.4.4. pontban defini´ alt 6= 2
f¨uggv´eny.) Egy kev´es sz´amol´ast ig´enyl˝o elj´ar´ast ad a Mihajlov-m´odszer, amely szerint az n-edfok´ u f polinom stabilit´as´anak sz¨ uks´eges ´es elegend˝o felt´etele az, hogy ω → f (iω) ne menjen a´t az orig´on ´es ker¨ ulje meg azt nπ/2 sz¨ogben pozit´ıv ir´ anyban, mid˝ on ω befutja a [0, ∞) intervallumot. Illusztr´aljuk a krit´eriumot egy p´eld´ an: * ,- I> G I) G F I G M I G B G N =! &0 !& E * 6 0 60 * 6 0 0 B N
A k¨ ovetkez˝o ´ abr´ an l´ atszik a hossz´ u t´ av´ u viselked´es, de elhelyezt¨ uk benne a kezdeti viselked´est mutat´o r´eszt is: &0 !& E * 6 0 60 * 6 0 0 B N & E CJ # 0 CJ & CJ E! >B BBB BB NBBB =!
242
3. Fejezetek a matematik´ab´ ol
6000
15 10 5
5000 4000
5
3000
10
15
2000 1000 0 0
500
1000
1500
2000
Egy nyilv´ anval´ o potenci´alis alkalmaz´ asi ter¨ uletet a stabilit´ aselm´eleten bel¨ ul csak megeml´ıt¨ unk: igen sok sz´ amol´ast ig´enyel ´altal´ aban, ha adott alak´ u Ljapunov-f¨ uggv´enyt keres¨ unk egy differenci´alegyenlethez. Ehhez esetleg haszn´ alhat´ o lehet az els˝o integr´ al, vagy az´ert, mert deriv´ altja definit, ´es ekkor a stacion´arius pont stabilis, vagy az´ert, mert az egyenlet jobb oldal´ anak egy r´esz´ehez tal´ alunk olyan els˝ o integr´ alt, amely az eg´esz egyenlethez megfelel Ljapunov-f¨ uggv´enynek.
3.5.9. Parci´ alis differenci´ alegyenletek • Els˝ orend˝ u egyenletek Els˝ orend˝ u parci´ alis differenci´ alegyenletek megold´as´ahoz ´altal´ aban ´erdemes azonnal beh´ıvni a 4 3076+3 csomagot: A!K&D"1K
El˝ osz¨or oldjunk meg egy kv´ aziline´ aris egyenletet: D"1 CC+ C ( G + (I G +I D + ( + C D + ( ( B + ( + ( {{u[x, y] -> 2 2 x + y - x C[1][x+y] - x y C[1][x+y] )}} - ( -1+ x C[1][x+y]
3.5. Differenci´alegyenletek
243
M´ıg k¨ oz¨ons´eges differenci´alegyenletek eset´en 4*+,. 4*(,. . . . tetsz˝oleges ´alland´ okat jel¨ olt, itt ezek tetsz˝oleges (elegend˝ oen sokszor differenci´alhat´ o) f¨ uggv´enyek. Az eredm´eny pedig az egyenlet ´ altal´ anos megold´ asa. Most meghat´arozzuk egy line´aris, h´ aromv´ altoz´os f¨ uggv´enyre vonatkoz´ o egyenlet ´altal´ anos megold´as´at: D"1 C+ ( G I D Y + ( G (I D Y + ( ( G +I D Y + ( + B Y + ( + ( x 2 x y z Log[ ] y ) + {{w[x, y, z] -> -( 2 -(x y) + y + x z - y z x 2 x y z Log[ ] 1 1 1 1 z 2 + C[1][ x - y , x - z ]}} -(x y) + x z + y z - z
Az ´altal´ anos megold´as nem mindig adhat´ o meg. Sok esetben viszont megadhat´ o a teljes integr´ al, amelyb˝ ol majdnem minden perem´ert´ek-feladat megold´ asa kvadrat´ ur´ aval el˝ o´ all´ıthat´ o: A0 6
D + ( ( + ( G +I D + ( +I( + ( + ( {{u[x, y] -> 2 2 B[1] Log[x] Log[x] -B[1] + y B[2] }} 4 2 4
Ha nincs a´ltal´ anos megold´as, akkor o¨n´ all´ oan a teljes megold´as meghat´aroz´as´aval k´ıs´erletezik a program: D"1
C! G $ D +( ( G ( D +( + G D +( +I B +( + ( DSolve::nlpde: This is a nonlinear partial differential equation. General solution is not available. Trying to build a complete integral instead. 2 ay B[1] c y + x B[1] {{u[x, y] -> b 2b 2 yB[1] + B[2] + y B[2]}} b
244
3. Fejezetek a matematik´ab´ ol
V´eg¨ ul megeml´ıtj¨ uk, hogy a megold´ o algoritmusok azon alapulnak, hogy meghat´arozz´ak k¨ oz¨ons´eges differenci´alegyenlet-rendszerek els˝o integr´ aljait. uggv´eny seg´ıts´eg´eEzek k¨ ozvetlen¨ ul is megkaphat´ ok a f¨ vel, amelynek haszn´ alat´ ara a k¨ oz¨ons´eges differenci´alegyenletekn´el l´attunk p´eld´ akat. • M´ asodrend˝ u egyenletek El˝ osz¨or megmutatjuk egy olyan (vegyes) feladat megold´as´at, amelyhez a
4 3076+3 csomag nem haszn´alhat´o. Szeretn´enk megoldani a ∂ 2 u(x, t) ∂u(x, t) = ∂t ∂x2 diff´ uzi´ os vagy h˝ ovezet´esi egyenletet az u(x, 0) = 3 sin(2πx)
x ∈ [0, 1]
kezdeti ´es az u(0, t) = u(1, t) = 0 homog´en peremfelt´etel mellett. Alkalmazzuk a Laplace-transzform´aci´ ot: A!K% ! *0K % ! *0
D + D + + s LaplaceTransform[u[x, t], t, s] - u[x, 0] == (2, 0) LaplaceTransform[u [x, t], t, s]
(Vegy¨ uk ´eszre, hogy semmilyen u ¨gyesked´esre nem volt sz¨ uks´eg ahhoz, hogy az egyenlet k´et oldal´ at transzform´ aljuk.) Most a transzform´ alt egyenletet ´attekinthet˝obb´e tessz¨ uk: : Q % ! *0 +, -J + % ! *0 D1 1 + ,B +, -J D + ++ - u[x,0] + s U[x] == U’’[x]
Ez az egyenlet az adott kezdeti felt´etellel k¨onnyen megoldhat´ o: D"1 : Q +, B CJ " & + B B B + + 3 Sin[2 Pi x] }} {{U[x] -> 2 4 Pi + s
A v´egeredm´enyt inverz transzform´aci´ oval kapjuk:
3.5. Differenci´alegyenletek
245
6 1% ! *0 + Q : 3 Sin[2 Pi x] { } 2 4Pi t E
3.5.10.Vari´ aci´ osz´ am´ıt´ as A Mathematica tartalmaz egy k¨ ul¨ on programcsomagot vari´ aci´ osz´am´ıt´ asi ogz´ıfeladatok megold´ as´ara, ez a 4 3V#8 3. Ez r¨ tett v´egpont´ u probl´em´akat tud megoldani, amelyekn´el azonban a f¨ uggetlen ´es a f¨ ugg˝ o v´ altoz´o is lehet vektor. Mindenekel˝ ott h´ıvjuk be a vari´ aci´ osz´am´ıt´ asi programcsomagot: A!K8 @'K
A minim´ alis felsz´ın˝ u forg´ astest meghat´aroz´as´ahoz hat´ arozzuk meg az xmax y(x) 1 + y (x)2 dx xmin
funkcion´ al els˝o vari´ aci´ oj´ at: '0 * 8 D ( + "5 G(\ +I ( + + 2 1 + y’[x] - y[x] y’’[x] 3 2 2 (1 + y’[x] )
Az Euler-f´ele egyenletet — k¨ozvetlen¨ ul is — k¨ onnyen f¨ ol tudjuk ´ırni: 0 * 445 ( + "5 G(\ +I ( + + 2 1 + y’[x] - y[x] y’’[x] == 0 3 2 2 (1 + y’[x] )
Val´ os-val´os f¨ uggv´enyek k¨ or´eben a fenti egyenlet nyilv´an egyen´ert´ek˝ u azzal, amelyn´el a fenti bal oldal sz´ aml´al´ oj´ at tessz¨ uk null´ aval egyenl˝ ov´e: D"1 0 : B ( + + +, :
Q A CJ A CJ B x -2x E (1+E ) 2
246
3. Fejezetek a matematik´ab´ ol
Tal´an nem meglep˝o, hogy eredm´eny¨ ul a l´ ancg¨orb´et kapjuk. A minim´ alis felsz´ın˝ u forg´ astestet a k¨ovetkez˝ok´eppen lehet megjelen´ıteni: O @!K"*!2*E1 K "*!2*E1 + + B E1 #+ CJ B B
• A Ritz-m´ odszer A vari´ aci´ osz´am´ıt´ as alapvet˝o numerikus m´ odszere a Ritz-m´ odszer . Bizonyos speci´alis esetekben ennek alkalmaz´as´ahoz a VL ´es uggv´eny haszn´ alhat´ o. az VL f¨
3.5.11. Gyakorlatok ´ es feladatok 1. Ha egy vektormez˝o ´ abr´ azol´as´an´ al mindk´et ir´ anyban 30–30 pontot akarunk felvenni ´es azt akarjuk, hogy a vektorok alap´ertelmez´es szerinti hossza 0,3-szeres´ere v´altozz´ek, akkor ezt ´ıgy tehetj¨ uk meg: & 8! ' " + ( A + ( + B & ( B & & & CJ B "! ! CJ Q./
2. H´ arom dimenzi´ oban is megadhatunk egy potenci´ alf¨ uggv´enyt: & O' 'D + (I I + C ( C C & O' 'D + (I I + B ( B B & O' 'D A + ( I + BQB BQB> ( BQBL BQ BQBL BQ 8! 7' CJ
3. Hat´arozzuk meg az ∂z(x, y) ∂z(x, y) + yz(x, y) = −xy ∂x ∂y egyenlet ´altal´ anos megold´as´at, valamint azt az integr´ alfel¨ uletet, amely orb´en. atmegy a z(x, x2 ) = x3 g¨ ´ xz
3.5. Differenci´alegyenletek
247
´ Utmutat´ as. Hat´arozzuk meg az egyenlet ´altal´ anos megold´as´at: A# D"1
+ + ( D + ( + G ( + ( D + ( ( C+ ( + ( + ( y 2 Sqrt[y] Sqrt[-x - 2 C[1][ ]] x }, {{z[x, y] -> Sqrt[x] y 2 Sqrt[y] Sqrt[-x - 2 C[1][ ]] x {z[x, y] -> }} Sqrt[x]
[ +, (, - :
[ +, (, - :
+I &Y4+ ' "0 *( [ + ( Q ( CJ +I 3 2 x == -(Sqrt[x] Sqrt[-x - 2 C[1][x]]) "1 : A + 2 3 x (1+x ) }} {{C[1][x] -> 2 "1 +I &Y4+ ' "0 *( [ + ( Q ( CJ +I A + 2 3 x (1+x ) }} {{C[1][x] -> 2
Az Olvas´ora hagyjuk az adott felt´eteleket kiel´eg´ıt˝ o megold´as teljes meghat´ aroz´as´at. 4. Oldjunk meg egy line´ aris ´alland´ o egy¨ utthat´ os rendszert a # f¨ uggv´eny felhaszn´ al´ as´aval.
248
3. Fejezetek a matematik´ab´ ol
3.6. Diszkr´ et matematika A matematik´ anak ez a ter¨ ulete az ut´ obbi ´evtizedekben rendk´ıv¨ ul gyors fejl˝ od´esen ment kereszt¨ ul ´es sz´amos m´as ter¨ ulettel ker¨ ult kapcsolatba. N´eh´ any p´eld´ an kereszt¨ ul bemutatjuk, hogy feladatainak megold´ as´an´ al hogyan haszn´ alhat´ o a Mathematica program. Megeml´ıtj¨ uk, hogy a sz´ amelm´elettel k¨ ul¨ on is foglalkozunk a 3.9. szakaszban, a val´ osz´ın˝ us´egsz´am´ıt´ assal pedig a 3.10. szakaszban. Nem soroltuk fel itt a listakezel˝o f¨ uggv´enyeket (2.3.1. pont ´es 3.1.2. pont) ´es a line´aris algebr´ aban (3.8. szakasz) haszn´alatos f¨ uggv´enyeket, amelyek nyilv´ anval´ oan sok hely¨ utt alkalmazhat´ ok a kombinatorik´ aban. Mind¨ ossze n´eh´ any p´eld´ at adunk ezek alkalmaz´as´ara. Felh´ıvjuk a figyelmet Skiena [76] k¨ onyv´ere, az ´altalunk is bemutatand´ o programcsomag onnan ker¨ ult be a Mathematica programcsomagjai k¨ oz´e. Megadjuk tov´ abb´ a a szerz˝o elektronikus c´ım´et is:
=% & H ) &H A leg´ ujabb v´ altozat anonim ftp-vel let¨ olthet˝ o a H ) &H c´ımr˝ ol. A matematikai fogalmakat illet˝ oen a [23] ´es a [39] jegyzetet aj´anljuk az Olvas´ o figyelm´ebe.
3.6.1. Adott tulajdons´ ag´ u list´ ak N´eh´ any j´ ol haszn´ alhat´ o bels˝o f¨ uggv´enyt sorolunk fel:
0 9
9 6 6W6)& 6 8W6)&
El˝ osz¨or a kombinatorik´ aban el˝ofordul´ o, adott felt´eteleknek eleget tev˝o objektumokat (list´ akat vagy halmazokat) fogunk el˝ o´all´ıtani, k´es˝obb pedig le fogjuk sz´aml´alni ezeket. Az alkalmazott bels˝ o f¨ ugg´enyek egy r´esze szerepel a list´akn´ al ´es a halmazokn´ al, m´as r´esz¨ uk a line´ aris algebr´ an´ al. Itt most a kombinatorika speci´alis objektumainak megszerkeszt´es´ere ¨osszpontos´ıtunk:
3.6. Diszkr´et matematika
249
&0 {{1, 2, 3}, {1, 3, 2}, {2, 1, 3}, {2, 3, 1}, {3, 1, 2}, {3, 2, 1}}
Meghat´arozhatjuk azt is, hogy az egyes permut´ aci´ ok p´ arosak-e vagy p´ aratlanok, azaz p´ aros vagy p´ aratlan sz´am´ u inverzi´ oval ad´ odnak-e a nagys´ag szerint ( lexikografikusan”) sorba a´ll´ıtott sz´amokb´ ol: ” " : {1, -1, -1, 1, 1, -1}
V´ alasszuk ki a permut´ aci´ ok k¨ oz¨ ul a p´ arosakat: "! " . / {{1, 2, 3}, {2, 3, 1}, {3, 1, 2}}
A 6 f¨ uggv´eny f¨ olfoghat´ ou ´gy is, mint egy teljesen antiszimmetrikus tenzor, vagy mint a Levi–Civit` a-f´ele, m´as n´even epszilon-szimb´olum. utthat´ o, valamint a Wignert˝ ol Mint ilyennek, rokona a 4& 8: egy¨ sz´armaz´o 8W6)& ´es a Racah-f´ele 6W6)&. A permut´ aci´ ok a 7 #830 3 programcsomaggal vizsg´alhat´ ok r´eszletesebben. Ebben a k¨ ovetkez˝o f¨ uggv´enyek tal´alhat´ ok:
4) 0
9 0 4)
El˝ osz¨or a´ll´ıtsuk el˝ o 10 sz´am v´eletlen permut´ aci´ oj´ at: D! @K&0 K E '0&0 B {4, 1, 5, 3, 2, 8, 10, 9, 6, 7}
Bontsuk fel a kapott permut´ aci´ ot ciklusokra:
A(! : {{4, 3, 5, 2, 1}, {8, 9, 6}, {10, 7}}
A ciklusokb´ ol kiindulva viszont megszerkeszthet˝o a megfelel˝o permut´ aci´ o; most p´eldak´ent az eredetit ´all´ıtjuk vissza: 0A(! :
Tov´abbi, a permut´ aci´ ok tanulm´ anyoz´ as´ara haszn´ alhat´ o f¨ uggv´enyek vannak a 7 #834&3 programcsomagban:
250
3. Fejezetek a matematik´ab´ ol
0 6& #480
9 0 9 0+ 9 0( 9=0
´ Ugy is el˝oa´ll´ıthatjuk r¨ ogz´ıtett sz´am´ u elem permut´ aci´ oit, hogy a m´ asodikt´ ol kezdve mindegyik egy transzpoz´ıci´ oval a´ll el˝ o az ˝ot megel˝oz˝ob˝ ol: D! @KA0$ !K 00A@ &0 {{1, 2, 3}, {2, 1, 3}, {3, 1, 2}, {1, 3, 2}, {2, 3, 1}, {3, 2, 1}}
Ha el´eg sok v´eletlen permut´ aci´ ot vesz¨ unk, akkor nagy val´ osz´ın˝ us´eggel az ¨osszes el˝o fog fordulni k¨ oz¨ott¨ uk: % @
$ E '0&0 B 6
Permut´ aci´ ok inverze is megkaphat´ o: 6 1&0
> ) > )
{{1, 5, 3, 4, 2}, {5, 3, 1, 4, 2}}
Az inverzi´ ok sz´ama egy permut´aci´ oban ugyannyi, mint az inverz´eben: E '0&0 >B 6 1 6 1 6 1&0 {629, 629}
K´et permut´ aci´ o kompoz´ıci´ oj´ anak el˝o´all´ıt´ as´ara mutatunk egy m´ odszert: E '0&0 > {4, 3, 1, 5, 2}
E '0&0 > {2, 3, 4, 5, 1}
& & ./ E > {5, 4, 2, 1, 3}
A skatulyaelv seg´ıts´eg´evel bebizony´ıthat´ o [39], hogy n2 + 1 k¨ ul¨ onb¨ oz˝o sz´amb´ ol a´ll´ o sorozatb´ol kiv´ alaszthat´o n + 1 hossz´ us´ ag´ u monoton sorozat. Ezt ´ıgy illusztr´alhatjuk:
3.6. Diszkr´et matematika
251
E '0&0 F {12, 6, 1, 4, 3, 2, 8, 5, 13, 7, 14, 9, 15, 10, 16, 11, 17} % 6 ! "$5 ! {1, 2, 5, 7, 9, 10, 11, 17}
A leghosszabb monoton cs¨okken˝ o r´eszsorozatot pedig ´ıgy v´ alaszthatjuk ki: M C % 6 ! "$5 ! M C : {12, 6, 4, 3, 2}
V´eg¨ ul megeml´ıtj¨ uk a 7 #834&3 programcsouggmag f¨ uggv´enyei k¨ oz¨ ul a :)4 , a ;6& ´es az 86& f¨ v´enyt, amelyek adott tulajdons´ ag´ u list´ak el˝o´all´ıt´ as´ara szolg´alnak, s amelyeket r´eszben m´ar m´asutt haszn´ altunk, r´eszben pedig a szakasz v´eg´en fogunk haszn´ alatukra p´eld´ akat mutatni a Gyakorlatok ´es feladatok k¨ oz¨ott.
3.6.2. Lesz´ aml´ al´ as A kombinatorika tipikus feladata a lesz´ aml´ al´ as: adott felt´eteleknek eleget tev˝ o, adott m´eret˝ u objektumok sz´am´at hat´ arozzuk meg ilyenkor. Egy kev´ess´e eleg´ans m´odszer sokszor rendelkez´es¨ unkre a´ll (b´ ar gyakorlatilag esetenk´ent kivitelezhetetlen) lesz´aml´al´ asi feladatok megold´as´ara: megszerkesztj¨ uk a k´ıv´ ant tulajdons´ ag´ u objektumokat, ezut´ an megsz´amoljuk, hogy h´ any van bel˝ ol¨ uk: % @ &0 6
A lesz´aml´al´ asi feladatokhoz seg´edeszk¨ozk´ent a leggyakrabban a k¨ovetkez˝o bels˝o f¨ uggv´enyeket haszn´aljuk:
( : L 8 #
0 0 0 088 6+ 6(
252
3. Fejezetek a matematik´ab´ ol
n elem permut´aci´ oinak sz´ama: n!. A f¨ uggv´eny (ennek r¨ ovid uggv´eny megfelel˝o ´ert´ek´et adja: alakja ) nem eg´esz sz´amokra a : f¨ B; QN; {265252859812191058636308480000000, 13.3813}
anyf´elek´eppen v´ alaszthatunk ki n elem k¨ oz¨ ul kett˝ ot? Az erre adand´ o nH´ v´ a laszt a Mathematic´ a ban ´ ıgy kaphatjuk meg: 2 S 0 (-1 + n) n 2
Hat piros ´es ¨ot feh´er goly´ ot annyif´elek´eppen rakhatunk sorba, ah´ anyf´ele(6+5)! k´eppen 11 goly´ o k¨ o z¨ u l kiv´ a laszthatunk o ¨ t¨ o t (vagy hatot). Ez a sz´ a m 6!5! 11 vagy 5 , ´ert´ek´et ´ıgy sz´am´ıthajuk ki: 0 N > S 0 N {462, 462}
H´ anyf´ele sz´o ´ all´ıthat´ o ¨ossze a Mathematica sz´o bet˝ uib˝ ol? 0 1663200
H´ anyf´elek´eppen lehet 4 t´ argyat u ´gy permut´ alni, hogy egyik se maradjon a hely´en? D! @KA0$ ! K "$*! ) 9
6&5*, ´ert´ek´et az n!
n
k k=0 (−1)
k´eplet felhaszn´al´ as´aval sz´am´ıtja a program. Ugyanebben a programcsomagban megtal´aljuk m´eg a szint´en lesz´aml´ al´ ashoz (p´enzv´alt´ asi probl´ema, bolyong´ asok sz´ama, helyes z´ar´ o jelez´esek 4& k¨ u ls˝ o f¨ u ggv´ e nyt, amelynek az ´ert´eke sz´ama stb.) haszn´ a lt 2n 1 , valamint k´ e t rekurz´ ıve defini´ a lt f¨ u ggv´ e nyt, a 2 az n helyen n+1 n &- ´es a 15 -f¨uggv´enyt is. A Fibonacci-sorozattal rokon h Hofstadter-f¨ uggv´eny defin´ıci´ o ja: h(1) := h(2) := 1
h(n) := h(n − h(n − 1)) + h(n − h(n − 2))
Speci´ alis lesz´aml´al´ asi probl´em´ak a sz´ ampart´ıci´ os probl´em´ak is. H´ anyf´elek´eppen lehet f¨ olbontani az 50 sz´ amot pozit´ıv sz´amok, illetve k¨ ul¨ onb¨ oz˝o pozit´ıv sz´amok ¨osszeg´ere?
3.6. Diszkr´et matematika
253
& & >B & ? >B {204226, 3658}
Tanulm´ anyozzuk az n sz´am felbont´ asainak, illetve az n sz´am k¨ ul¨ onb¨ oz˝o ´ sz´amok ¨osszeg´ere val´o felbont´ asainak sz´am´at! (Erdemes a megadottakt´ol elt´er˝o transzform´ altakkal is k´ıs´erletezni.) % &
$ % & & I BB % &
$ % & ? I BB % &
$
4+ % & ? % & & BB >BB & E CJ#
3.6.3. Egyszer˝ u kombinatorikai azonoss´ agok V´ altoz´okat is tartalmaz´o kombinatorikai kifejez´esek egyszer˝ us´ıt´es´et k¨ ul¨ on programcsomag k¨onny´ıti meg: D! @KA0$ "0 *! K G >; ; (1 + n) (2 + n) (3 + n) (4 + n) (5 + n) S 0 =S 0 =C 1 - k + n k "0 S 0 =RS 0 C = = B 1 n 4 Gamma[ + n] 2 Sqrt[Pi] Gamma[1 + n]
Az al´ abbi o¨sszef¨ ugg´est (ahol f tetsz˝oleges, nemnegat´ıv eg´eszekre defini´alt f¨ uggv´eny) sem kaptuk volna meg, ha csak a magot haszn´ altuk volna: &'! * = = B f[1 + n]
G &'! * = = B
Megjegyzend˝ o, hogy a megfelel˝ o — ¨osszegekre vonatkoz´o — ¨osszef¨ ugg´es as´aval. nem kaphat´ o meg az &36)&63 csomag felhaszn´al´ A programcsomag beh´ıv´ asakor m´odosul a L. ´es 0 f¨uggv´eny defin´ıci´oja.
254
3. Fejezetek a matematik´ab´ ol
3.6.4. Differenciaegyenletek, gener´ atorf¨ uggv´ enyek Tekints¨ uk a m´ asodik Bernoulli-polinomot az x helyen: S S + 1 2 - x + x 6
A Bn (x) Bernoulli-polinomok gener´ atorf¨ uggv´enye: ∞
Bn (x)
n=0
text tn = t . n! e −1
" 4+ + 4+ C B ) 2 2 3 1 x x x x x 1 2 3 + )t + ( + )t + 1 + (-( ) + x)t + ( 2 12 2 2 12 4 6 2 3 4 x x x 1 5 4 ) + + )t + O[t] (-( 720 24 12 24
A Bernoulli-polinomok nulla helyen felvett ´ert´ekei a Bn Bernoulli-sz´ amok: S S B S S B 174611 ), -529.124} {-( 330
Az En (x) Euler-polinomok gener´atorf¨ uggv´enye: ∞ n=0
En (x)
2ext tn = t . n! e +1
" 4+ + 4+ G B ) 2 2 3 x x x 1 x x 1 2 3 )t + 2( + t + 1 + 2(-( ) + )t + 2(- + 4 2 4 4 48 8 12 3 4 x x 5 x 4 + )t + O[t] 2( 48 24 48
A gener´atorf¨ uggv´enyb˝ ol ´eppen azt kapjuk, mint a be´ep´ıtett f¨ uggv´eny haszn´ alat´ aval:
3.6. Diszkr´et matematika
255
44 + 2 -x + x 4+ ' ::
R; 44 + True ; "0 *( A**! ::: I ! 44 + True
Az En Euler-sz´ amok defin´ıci´ oja pedig: 1 En := 2n En ( ) 2 uggv´eny nem rendelkezik a & attrib´ utummal.) (Az f¨ 44 ) > N F {0, -1, 0, 5, 0, -61, 0}
A Gn Genocchi-sz´ amok defin´ıci´ oja: G1 := 1,
G2n := 2(1 − 22n )B2n ,
G2n+1 := 0.
!!@ ,V41 ? - C I S S !!@ ,V2''? - B !!@ !!@ ) > N F M {1, -1, 0, 1, 0, -3, 0, 17} (m)
(m)
Az els˝ o- (Sn ) ´es m´asodfaj´ u (σn ) Stirling-sz´ amok polinomok k´etf´ele el˝o´ all´ıt´ asa k¨oz¨otti a´tv´ alt´ ashoz haszn´alhat´ o egy¨ utthat´ ok: x(x − 1)(x − 2) . . . (x − n + 1) =
n
Sn(m) xm
m=0
xn =
n
σn(m) x(x − 1)(x − 2) . . . (x − m + 1)
m=0
A fenti o¨sszef¨ ugg´eseket azonban u ´gy is felfoghatjuk, mint a Stirling-sz´ amok gener´atorf¨ uggv´enyeinek defin´ıci´ o j´ at. Lesz´aml´al´ asn´ al is el˝ofordulnak, (m) oinak sz´am´at, ameugyanis (−1)n−m Sn megadja n elem azon permut´aci´ (m) lyek pontosan m sz´am´ u ciklust tartalmaznak. σn azt adja meg, hogy
256
3. Fejezetek a matematik´ab´ ol
h´ anyf´elek´eppen lehet egy n elem˝ u halmazt felbontani m sz´am´ u nem u ¨res r´eszhalmazra, teh´at egy halmazpart´ıci´ os feladat megold´ as´at adja:
$ " " > > {24, -50, 35, -10, 1} 4+ ' &'! +C B ) 2 3 4 5 24x - 50x + 35x - 10x + x
Eddig jutottunk bels˝ o f¨ uggv´enyek alkalmaz´as´aval. Most k¨ uls˝ o f¨ uggv´enyekkel el˝ osz¨or differenciaegyenleteket oldunk meg, s a v´eg´en ism´et visszakanyarodunk a gener´ atorf¨ uggv´enyekhez. A 7 #83963 programcsomag elj´ar´ asait haszn´alhatjuk differenciaegyenletek megold´as´ara. Az itt tal´alhat´ o k¨ uls˝ o f¨ uggv´enyek a k¨ ovetkez˝ok:
: 0B6 : 0B6 6 Egy o¨sszetettebb p´eld´ at mutatunk: D! @KE"1K E"1 G C $ C ) G G $ G G $ B $ B B $ n n (-2) 32 4 + - n, {{a[n] -> -( ) 3 6 2 n (-2) 2 n + - 2 + n}} b[n] -> 3 3
A fenti egyenlet a´lland´ o egy¨ utthat´ os line´aris egyenlet volt. Meg tudunk azonban oldani bizonyos v´ altoz´o egy¨ utthat´ os egyenleteket is. Egyr´eszt olyanokat, amelyek homog´enek, els˝orend˝ uek ´es egy¨ utthat´ oik racion´ alis t¨ ortf¨ uggv´enyek. (Sz¨ ulet´esi-hal´aloz´asi folyamatok stacion´ arius eloszl´asa p´eld´ aul igen gyakran ilyen differenciaegyenletnek tesz eleget.) M´ asr´eszt olyanokat, amelyek ugyan v´ altoz´o egy¨ utthat´ osak, de a megold´as valamely val´ os C ´alland´ o al lassabban n¨ ovekszik ´es a differenciaegyenlethez rendelt mellett C n n!-n´ uls˝ o) f¨ uggv´eny meg tudja oldifferenci´ alegyenletet a 76 (bels˝o vagy k¨ dani. L´ assunk erre is egy p´eld´ at:
3.6. Diszkr´et matematika
257
E"1 G G G C G G C B B n n 3 (-1) + }} {{a[n] -> n! n!
Ha egy differenciaegyenletben a nemlinearit´ast konvol´ uci´ o okozza, akkor is rem´enykedhet¨ unk: E"1 ! G "0 ! = ! C= = B ! Binomial[2 n, n] }} {{c[n] -> 1 + n
! B
Eredm´eny¨ ul ´eppen a Catalan-f´ele sz´amokat kaptuk. uggv´eny´et: Most meghat´arozzuk az an := tn n ∈ N0 sorozat gener´atorf¨ &Y"0 I 1 1 - t z
B
A Poisson-eloszl´as gener´atorf¨ uggv´enye pedig ´ıgy kaphat´ o meg: &Y"0 I -t + t z E
4IC ;
B
Ismert gener´ atorf¨ uggv´enyb˝ ol a megfelel˝o sorozat tagjait ´ıgy a´ll´ıthatjuk el˝o: A**! % 0 " : B > 2 3 4 5 t t t t -t t {E , , , , , } t t t t t E 2 E 6 E 24 E 120 E
Most hat´ arozzuk meg az an := n2 sorozat z →
∞
n2 z n /n!
n=0
exponenci´ alis gener´ atorf¨ uggv´eny´et: 4+ &Y"0 I B z E z (1 + z)
258
3. Fejezetek a matematik´ab´ ol
A sorozat defin´ıci´ oj´ aban bizonyos felt´etelek is szerepelhetnek: 4+ &Y"0
I G ) 6* 41 I I G E
z
+ E
z
z (1 + z) + 4 (
3z 3z 2E E
B 3z z 3E z 2z ) + E z + 2z 2
Az itt el˝ ofordul´ o k¨ uls˝ o f¨ uggv´eny csak abban k¨ ul¨ onb¨ ozik az bels˝o f¨ uggv´enyt˝ol, hogy szimbolikus argumentumra nem ´ert´ekel˝odik ki. Megkaphatjuk egy differenciaegyenlettel adott sorozat (p´eld´ aul a Fibonacci-sorozat) gener´atorf¨ uggv´eny´et is: O ! C G C B 1 {{ }} 2 1 - z - z
J
Hasonl´ oan kaphatjuk meg egy differenciaegyenlettel adott sorozat (p´eld´ aul a Bernoulli-sz´amok sorozata) exponenci´alis gener´ atorf¨ uggv´eny´et: 4+ "0 S 6*
z {{ -1 +
O !
0 =S = = B S G B S E
z
}}
´ ıtsuk el˝ All´ o az exponenci´ alis gener´ atorf¨ uggv´enyb˝ ol a sorozat tagjait: A**! % 0 "
:
B B R $ ; B B 1 1 1 1 5 1 , 0, -( ), 0, } {1, -( ), , 0, -( ), 0, 2 6 30 42 30 66
Ezek a sz´amok val´oban a Bernoulli-sz´amok:
$ S S B B 1 1 1 1 5 1 , 0, -( ), 0, } {1, -( ), , 0, -( ), 0, 2 6 30 42 30 66
A : ´altal el˝ o´all´ıtott gener´atorf¨ uggv´eny z helyen vett helyettes´ıt´esi ´ert´ek´ere :5**,,*', n´even, az :2 ´altal el˝o´all´ıtott gener´atorf¨uggv´eny z helyen vett helyettes´ıt´esi ´ert´ek´ere pedig :5**,,*', n´even hivatkozhatunk a k´es˝obbiekben. Ha az egy¨ utthat´ ok t´ ul gyorsan n˝ onek, akkor esetleg saj´at magunknak kell alkalmas m´ odszert v´alasztanunk:
3.6. Diszkr´et matematika
259
0 E"1 B >
C G JB n 1 {674.699 Second, {{T[n] -> (3 + 2( ) ) n!}}} 2
;
Ijesztget˝o hiba¨ uzenetek sor´at is megkapjuk ez alatt a hossz´ u id˝ o alatt:
0 E"1 B >
C G JB @' CJ @'4O n 1 {34.603 Second, {{T[n] -> (3 + 2( ) ) n!}}} 2
;
Az 96 ´es a 6 f¨ uggv´enynek sz´amos opci´o ja van, ezek haszn´ alata megk¨onny´ıti a gener´ atorf¨ uggv´enyekkel ´es differenciaegyenletekkel v´egzett munk´at: E"1 & B & + G & G C G + & G J B & {{P[n] -> LegendreP[n, x]}}
& C B
E"1 & B & + G & G C G + & G & C B J B & " ! ! CJ -n + 2K[1] {{P[n] -> Sum[((-2 x) K[1] Binomial[K[1], n-K[1]] Binomial[2K[1], K[1]])/(-4) , {K[1], 0, n}]}}
3.6.5. Gr´ afok ´ es folyamok Gr´ afokkal kapcsolatban legel˝ osz¨or az mer¨ ul fel, hogyan lehet egy algebrai” ” alakban megadott gr´ af s´ıkbeli reprezent´aci´ o j´ at (vagy t´erbeli reprezent´ aci´ oj´ anak vet¨ ulet´et) megrajzolni. Tegy¨ uk fel, hogy adott az ´elekkel ¨osszek¨ot¨ott cs´ ucsok rendezett p´ arjainak list´aja. (Megjegyezz¨ uk, hogy t¨ obbsz¨ or¨ os ´elek nincsenek megengedve.) Ekkor ´ıgy j´ arhatunk el (az eredm´eny¨ ul kapott a´br´ at itt — ´es az al´abbiakban igen gyakran — nem k¨ oz¨olj¨ uk): D! @KA0$ !K "@YO @ 02''&
) ) D! '
260
3. Fejezetek a matematik´ab´ ol
Egy m´ asik megad´asi m´odn´ al minden egyes cs´ ucshoz megadjuk, mely cs´ ucsokkal van o¨sszek¨otve: "@YO @ 0#'W! !(%
) ) D! '
A cs´ ucsokat meg is c´ımk´ezhetj¨ uk: "@Y%$'O @
=O @ E O . ./ $ !
Nevezetes gr´ af ok egyszer˝ uen valamely f¨ uggv´eny ´ert´ekeik´ent ad´ odnak.
;*, az n sz¨ogpont´u teljes gr´af: "@YO @ P
#'W! !(% P ) 8 ! P >
{{0.309017, 0.951057}, {-0.809017, 0.587785}, {-0.809017, -0.587785}, {0.309017, -0.951057}, {1., 0}}
A legut´ obbi p´elda mutatja, hogy a s´ıkbeli reprezent´aci´ on´ al a program szab´ alyos ¨otsz¨oget haszn´ al. Most hozz´avesz¨ unk egy ´elt egy csillaghoz (a csillag k¨oz´eppontja kapja a legnagyobb sorsz´amot): "@YO @ #''4' " B
(A t´ız´ag´ u csillag k¨ oz´eppontja a 11 sz´ amot kapja.) A gr´ afokkal v´egzett t¨obbi szok´asos m˝ uveletek re is egy-egy f¨ uggv´eny a´ll rendelkez´es¨ unkre (A pontos defin´ıci´ okat illet˝oen ism´et Skiena k¨ onyv´ere [76] utalunk, de a [39] bevezet˝ o jegyzet ´es a hozz´a tartoz´o [23] p´eldat´ar t´ argyal´asm´odja is teljesen hasonl´o az itteniekhez. Mivel a programcsomagok olvashat´ o sz¨oveges ´allom´anyokban vannak, ez´ert amikor t¨ obb defin´ıci´ o is forgalomban van, az a´llom´anyb´ ol is kider´ıthet˝ o, hogy melyikre gondoltak a program k´esz´ıt˝ oi.): "@YO @ O @ P P > > "@YO @ O @&'! P P > "@YO @
1A 02''&
D! '
3.6. Diszkr´et matematika
261
Rendelj¨ unk egy gr´ af ´eleihez cs´ ucsokat, csatlakoz´o ´eleihez pedig az ´eleknek megfelel˝o cs´ ucsokat o¨sszek¨ot˝o ´eleket. A G gr´ afb´ ol ´ıgy sz´armaztatott L(G) uggv´eny adja meg: ´elgr´ af ot a :8 f¨ "@YO @ % O @ P >
Most el˝o´all´ıtunk egy v´eletlen gr´afot, amely a teljes gr´ af ´eleinek fel´et tartalmazza: "@YO @ E '0O @ BQ>
Mivel v´eletlen gr´afot t¨ obbf´elek´eppen is szok´ as defini´ alni, ez´ert ´erdemes f¨ oltenni a QQ9 :8 k´erd´est. A gr´ afelm´eleti szempontb´ol fontos tulajdons´ agok ´ıgy ellen˝ orizhet˝ok: A ! '? D 4' " B B False "*A0 0 (? A(! > // "*A0 0 (? & @ ) True #!(!!? E '0O @ F BQ> D! ' D! ' False
El˝ o´all´ıthatjuk az o¨sszef¨ ugg˝ o (gyeng´en, er˝ osen ¨osszef¨ ugg˝ o) komponenseket: A ! 'A0 O @ P P ) {{1, 2, 3}, {4, 5, 6, 7}}
262
3. Fejezetek a matematik´ab´ ol X=(A ! 'A0 0#'W! !(%
) ) D! ' {{1, 2, 3, 4}}
Fa minden ´ele h´ıd: S' E '0 B {{4, 5}, {4, 7}, {1, 4}, {1, 9}, {2, 8}, {6, 8}, {3, 6}, {3, 10}, {1, 10}}
F´ ak kezel´es´ere van egy k¨ ul¨ on programcsomag, a 7 #833, az al´abbi utas´ıt´ asokkal:
0 #=
0
Meghat´arozhat´ ok az Euler-f´ele ´es a Hamilton-f´ele k¨or¨ ok is: 4 A(! P ) ) {7, 2, 8, 1, 5, 4, 6, 3, 7, 4, 8, 3, 5, 2, 6, 1, 7} 70 A(! P {1, 4, 2, 5, 3, 6, 1}
Hajtsuk v´egre a legut´obbi utas´ıt´ ast u ´gy is, hogy m´asodikk´ent az opcion´ alis argumentumot is be´ırjuk! Meghat´arozhat´ o a minim´ alis ´es a maxim´alis fesz´ıt˝ o fa, a fesz´ıt˝ o f´ ak sz´ama: "@YO @ 00"
P )
0$2*" A(! P B & @ N {3, 100000000, 1}
3.6. Diszkr´et matematika
263
Az 1 jel˝ u forr´ ast´ol a 4 jel˝ u nyel˝ oig az ´aram egy s´ ulyozatlan ´el˝ u ir´ any´ıtott gr´ afban: Y=Y 0#'W! !(%
) ) ) 1
V´eg¨ ul f¨ olsorolunk n´eh´ any, tov´ abbi b´ uv´ arkod´ asra ¨oszt¨ok´el˝o f¨ uggv´enyt ´es opci´ot a 7 #834&3 programcsomagb´ ol:
8 L== 48& 480) 45 7LK6 7K= 4 4 9 1) 1 7 # 8 8
W 8 # 8 #4 # 6 #6 #480 #6 #V4 #& 0 0 6 6 6 L )
3.6.6. Gyakorlatok ´ es feladatok 1. Vegy¨ uk 6 elem egy v´eletlen permut´ aci´ oj´ at, majd a´ll´ıtsuk (v´eletlen) ennek megfelel˝o sorrendbe 3 elem o¨sszes permut´aci´ oj´ at. 2. Tanulm´ anyozzuk az al´ abbi utas´ıt´ asokat: S !@ A(! N +0 !@ P N & ? P > << & ? P
3. H´ anyf´elek´eppen lehet 8 goly´ ot f¨ olf˝ uzni egy nyakl´ ancra, ha k¨ oz¨ott¨ uk m k¨ ul¨ onb¨ oz˝o sz´ın˝ u van? ´ uggv´enyt. Utmutat´ as. Haszn´aljuk a 0)-f¨ 4. ´Irjuk ki a Pascal-h´ aromsz¨og n´eh´ any sor´ at, kiv´eve az els˝o ´es utols´o elemet. Mi a sorok legnagyobb k¨ oz¨os oszt´oja?
264
3. Fejezetek a matematik´ab´ ol
3.7. Geometria Ebben a szakaszban azt ´erz´ekeltetj¨ uk , hogy geometriai vizsg´alatokn´ al hogyan lehet felhaszn´ alni a Mathematic´ a t. A program 2.2.∗ v´ altozatai viszonylag kev´es olyan bels˝o, illetve k¨ uls˝o f¨ uggv´enyt tartalmaznak, amelyeket geometriai probl´em´ak megold´as´an´ al k¨ ozvetlen¨ ul alkalmazhatunk. A be´ep´ıtett grafikus, numerikus ´es szimbolikus elj´ ar´ asok ¨osszekapcsol´as´aval´ırhatunk egy-egy (p´eld´ aul koordin´ atageometriai) feladatt´ıpus megold´ as´at szolg´al´ o f¨ uggv´enyt vagy ak´ ar programcsomagot. Ehhez sok seg´ıts´eget ´es ¨otletet adhatnak a MathSource-on tal´ alhat´ o programcsomagok, amelyekr˝ol a 3.7.2. pontban fogunk sz´ olni.
3.7.1. Geometriai alakzatok K´et ´es h´aromdimenzi´os alakzatok ´abr´ azol´as´an´ al a k¨ ovetkez˝o grafikus elemek et haszn´alhatjuk:
4 4& 7 = 0
0) 9 9
A fenti elemekb˝ol az al´abbi elj´ ar´ asokkal grafikus objektumok at k´esz´ıthet¨ unk:
4:8 :8 F7 7 ):8 65:8 :8 amelyeket azut´an a 68B f¨ uggv´ennyel jelen´ıthet¨ unk meg a k´eperny˝ on. Az ´abr´ azol´as m´odj´ at egyr´eszt a grafikus opci´ok (p´eld´ aul a :8 f¨ uggv´eny opci´ oi) seg´ıts´eg´evel m´odos´ıthatjuk; m´ asr´eszt az al´abbi, u ´gynevezett grafikus direkt´ıv´ ak at is haszn´ alhatjuk:
& 7 8 & 06' & 8= 4#X;4 7 8
:) 1 06' 9:L4 654 8=
3.7. Geometria
265
A grafikus direkt´ıv´ akat k´etf´elek´eppen alkalmazhatjuk. Ezek lehetnek a kor´ abban t´ argyalt grafikus f¨ uggv´enyek opci´ oinak ´ert´ekei. A grafikus objektumokat gener´ al´ o f¨ uggv´enyek els˝o argumentuma mindig egy olyan lista, amelyben grafikus direkt´ıv´ ak (esetleg u ¨ res) sorozata ´es grafikus elemek felv´altva k¨ ovetik egym´ ast. A t¨obbi argumentumba esetenk´ent opci´okat ´ırhatunk. P´eld´ aul: "@Y O @! EOSA B B @!= BQB % C> C EOSA BQ> BQ> @!= BQB % C> C EOSA B & " BQB & C & E CJ C C #+ CJ # ! E CJ # 0 !
Megeml´ıtj¨ uk m´eg azt is, hogy az adott adatok a´ltal meghat´ arozott koordin´ ata-rendszert˝ ol f¨ uggetlen¨ ul a k´eperny˝ o pontjaira is hivatkozhatunk a 6 bels˝o f¨uggv´ennyel. Ez a lehet˝os´eg j´ol haszn´alhat´o p´eld´aul feliratok k´esz´ıt´es´en´el. A fenti f¨ uggv´enyek alkalmaz´as´anak m´ odj´ ara ´es a lehet˝os´egek illusztr´al´ as´ara tekints¨ uk a k¨ ovetkez˝o f¨ uggv´enyt, amellyel k´enyelmesen ´abr´ azolhatunk s´ıkbeli geometriai alakzatokat: EW 0=,% + , ++, ( , (+, - S!= 0= Q & , $, 1, -J # ( "5 ! & $ + 1 $ C C & ' & " QB "@Y O @! # ! E CJ # 0 ! & E CJ + ++ ( (+ #+ CJ
A f¨ uggv´eny m˝ uk¨ od´ese kielemezhet˝o az al´abbi p´eld´ ab´ ol: & B ? E EW & & T&T & ? T?T & E TET EOSA B &( C C C C EOSA B B % & ? E & EOSA B B @!= BQBB A! BB C C
266
3. Fejezetek a matematik´ab´ ol 2
R
1.5
Q
1
0.5
P -3
-2
-1
1
2
3
-0.5
-1
-1.5
-2
Vektorok ´ abr´ azol´as´an´ al a :8 3 B3 programcsomagban megl´ev˝o, sz´amos opci´oval rendelkez˝ o
B f¨ uggv´enyt haszn´ alhatjuk. P´eld´ aul: O @!K#YK "@Y O @!
$ #Y B B " + A + 7'A CJ + 7'% @ CJ BQ + B QN BQ & E CJ CBQ CBQ Q # ! E CJ # 0 !
3.7. Geometria
267
Szab´ alyos soksz¨ ogek ´es szab´ alyos testek ´abr´ azol´as´ahoz ´es geometriai adataiknak meghat´ aroz´as´ahoz a
:)30) 3 programcsomag f¨ uggv´enyei adhatnak seg´ıts´eget. A felhaszn´ alhat´ o szab´alyos soksz¨ogek a k¨ovetkez˝ok:
7 7 7 1 1
0 6 !
Az ¨otf´ele szab´alyos konvex test elnevez´ese:
4& 7 8 8
8 8
Az al´ abbi gegometriai adatok meghat´aroz´as´ara van m´ od:
4 & 4 7
& 685 V V
Szab´ alyos testek tanulm´ anyoz´ as´an´ al felhaszn´ alhatjuk m´eg a
:8 30)8 3 programcsomag elj´ar´ asait is. Itt az al´abbi testeket nevezhetj¨ uk meg:
4& 7 8 :7 8 :6 7 8 : 8 18 8 8 66 7 8 8
268
3. Fejezetek a matematik´ab´ ol
A k¨ ul¨ onb¨ oz˝o st´ılus´ u megjelen´ıt´est seg´ıtik a k¨ ovetkez˝o f¨ uggv´enyek:
: 0)8
6
Felh´ıvjuk az Olvas´ o figyelm´et arra, hogy ezek a f¨ uggv´enyek eleve grafikus objektumot k´esz´ıtenek az adott testr˝ol, a megjelen´ıt´es¨ ukh¨ oz teh´at csak a 68B f¨uggv´enyt kell alkalmaznunk: "@Y 2 ! &(@' D'!@' BQ)
V´eg¨ ul megeml´ıtj¨ uk, hogy a
:)39 3 programcsomagban l´ev˝o
9(7 9F7
9#(7 9#F7
f¨ uggv´enyek alakzatok elforgat´as´an´ al lehetnek hasznosak. P´eld´ aul: O0 (KE K E +D &) +0 1 1 Sqrt[2] Sqrt[2] 1 1 Sqrt[2] Sqrt[2]
3.7. Geometria
269
3.7.2. Tov´ abbi lehet˝ os´ egek K¨ ul¨ on programcsomag a´ll a felhaszn´ al´ o rendelkez´es´ere abb´ ol a c´elb´ ol, hogy geometriai probl´em´ak megold´as´anak hat´ekony algoritmusait tanulm´ anyozhassa:
7 #834:)3 F¨ uggv´enyei a k¨ ovetkez˝ok:
41 7) 7) 70
8& 0:80 650 V7
A tov´ abbiakban a MathSource-r´ ol megszerezhet˝o programcsomagokra szeretn´enk felh´ıvni az ´erdekl˝od˝ o Olvas´ o figyelm´et. Els˝ ok´ent megeml´ıtj¨ uk a 0202–509 sz´am alatt tal´alhat´ o
#87B csomagot, amellyel k´enyelmesen tudjuk rajzolni az o¨sszes k¨orz˝ovel ´es vonalz´ oval megszerkeszthet˝o alakzatot. A 0205–175 sz´am alatt csak demonstr´ aci´ os anyagot tal´ alunk a
7 programcsomagr´ol, amely a szok´ asos alapm˝ uveleteken t´ ul k´epes analitikus vizsg´alatok alapj´an eld¨ onteni olyan tulajdons´ agok megl´et´et, mint: illeszked´es, ´erintkez´es, p´arhuzamoss´ag, koncentrikuss´ ag stb. Ezen eszk¨oz¨ok felhaszn´ al´ as´aval elemi geometriai t´etelek bizony´ıt´ asa (l´asd [90]) ´es geometriai transzform´ aci´ ok hat´ asa szeml´eltethet˝o. A 0205–401 sz´am alatti
#0 program t¨ obbsz´ az f¨ uggv´enyt tartalmaz a klasszikus euklideszi geometria ´es a modern dinamikus geometria alakzatainak a´br´ azol´as´ara ´es anim´al´ as´ara a s´ıkon ´es a t´erben. N´egydimenzi´ os alakzatok h´aromdimenzi´ os metszeteit a 205–108 sz´am alatt megtal´ alhat´ o
E7;5 programcsomag f¨ uggv´enyeivel jelen´ıthetj¨ uk meg.
270
3. Fejezetek a matematik´ab´ ol
3.8. Line´ aris algebra A line´ aris algebr´ ahoz kapcsolhat´ o elj´ ar´ asok vektorok ´es m´atrixok szimbolikus ´es numerikus kezel´es´ere k´epesek. A felhaszn´al´ o igen egyszer˝ uen, a bemen˝o adatok alkalmas megad´ as´aval v´ alasztja ki a k´ıv´ ant kezel´esi m´odot. Ha a vektorok vagy m´ atrixok elemei szimbolikus kifejez´esek vagy pontos numerikus ´ert´ekek, akkor a program a k´ert m˝ uveleteket sz´amos be´ep´ıtett matematikai azonoss´ag felhaszn´ al´ as´aval szimbolikusan v´egzi el, ´es igyekszik megadni a pontos eredm´enyt. Ha a vektorok vagy m´ atrixok elemei val´os vagy komplex sz´amok ´es ezek k¨ oz¨ ul legal´ abb az egyik k¨ ozel´ıt˝ o numerikus ´ert´ek (amit a tizedespont explicit ki´ır´ as´aval jelz¨ unk), akkor a program minden sz´ amot ilyenre alak´ıt a´t, ´es a m˝ uveletek elv´egz´es´ere numerikus m´ odszert haszn´ alva adja meg a pontos eredm´eny egy k¨ ozel´ıt˝ o ´ert´ek´et. Itt is kiemelj¨ uk azt a t´enyt, hogy a legt¨obb be´ep´ıtett f¨ uggv´eny arguatrix (´ altal´ aban lista) is szerepelhet. Ebben az mentum´aban vektor vagy m´ esetben a program a sz´oban forg´ o f¨ uggv´enyt a vektor vagy a m´ atrix minden elem´ere k¨ ul¨ on-k¨ ul¨ on alkalmazza, ha a f¨ uggv´eny rendelkezik a & attrib´ utummal.
3.8.1. Vektorok ´ es m´ atrixok megad´ asa N´eh´ any programnyelvben a vektorok ´es a m´atrixok k¨ ul¨ onb¨ oz˝o t´ıpus´ u objektumok. A Mathematica ezeket egys´eges m´odon, az egyik legalapvet˝ obb be´ep´ıtett adatt´ıpus´ aval, nevezetesen list´ a val a´br´ azolja. assal egyen´ert´ek˝ u -. )/ form´at A tov´ abbiakban a *. ), utas´ıt´ fogjuk haszn´ alni.
-. )/ --. &. /. - . . 5//
az (x, y) vektor a b c az 2×3-as d e f m´atrix
Vektorok, illetve m´atrixok elemei lehetnek val´os vagy komplex sz´amok, matematikai kifejez´esek, s˝ot ak´ ar a´br´ ak is.
3.8. Line´aris algebra
271
Mivel a vektor” kifejez´est a matematik´aban is k¨ ul¨ onb¨ oz˝o fogalmak jel¨ o” l´es´ere szok´ as haszn´alni, ez´ert ´erdemes tiszt´azni azt, hogy a program milyen objektumot tekint vektornak. Err˝ ol a logikai ´ert´eket ad´o
V bels˝o f¨ uggv´eny t´ aj´ekoztatja a felhaszn´ al´ ot. A Mathematic´ a ban vektor on olyan list´at ´ert¨ unk, amelynek egyik eleme sem lista: 8! ? "5 8! ? + " ( {True, True} 8! ? 8! ? {False, False}
Ez a vektorfogalom a matematik´ aban szerepl˝ o rendezett n-es (ilyenek p´eln og. d´ aul az R t´er elemei) fogalm´aval anal´ A program m´ atrix nak olyan list´at tekint, amelynek minden eleme ugyanakkora hossz´ us´ag´ u vektor (ezek a m´atrix sorai). Ezt az a´ltal´ anos ´erv´eny˝ u meg´allapod´ ast a
# f¨ uggv´ennyel ellen˝orizhetj¨ uk: +? ) +? + ( {True, True} +? + ( +? {False, False}
Oszlopvektort, teh´ at p´eld´ aul az R4×1 t´er egy elem´et ´ıgy: ) {{1}, {2}, {3}, {4}}
sorvektort, p´eld´ aul az R1×4 t´er egy elem´et pedig k¨ ovetkez˝o m´odon adhatunk meg: ) {{1, 2, 3, 4}}
A kor´ abban mondottaknak megfelel˝ oen a Mathematica ezeket a kifejez´eseket nem vektoroknak, hanem m´ atrixoknak tekinti.
272
3. Fejezetek a matematik´ab´ ol
A 4 f¨ uggv´eny valamely vektor komponenseit oszlopba rendezve jelen´ıti meg a k´eperny˝ on: A0 0 + ( x y
M´ atrixokat a szok´ asos form´aban a # f¨ uggv´ennyel a´br´ azolhatunk. P´eld´ aul: 0 ) B ) > N F +0 0 1 0 1
2 2 5
3 3 6
4 4 7
A # f¨ uggv´enyt posztfix alakban (l´ asd a 3.1.4. pontot) is haszn´ alhatjuk: 0*0 0 +0
Felh´ıvjuk azonban az Olvas´ o figyelm´et arra, hogy a fenti utas´ıt´ as hat´as´ara altoz´oban nem az m´atrixot (teh´ at list´ak list´aj´ at) a program az 5 v´ abl´ azatos t´ arolja, hanem a #*, kifejez´est, ami az m´atrix t´ ” alakja”. Kihangs´ ulyozzuk azt is, hogy az ut´ obb megeml´ıtett k´et f¨ uggv´eny csup´ an a k´eperny˝ on val´ o megjelen´ıt´es eszk¨ozei. Vektor ´es m´atrix dimenzi´ oj´ at a
7 bels˝o f¨ uggv´ennyel kapjuk meg. P´eld´ aul: D0 + ( D0 0 {{2},
{3, 4}}
Figyelj¨ uk meg, hogy m´ atrix eset´eben az eredm´eny olyan lista, amelynek az els˝o eleme a sorok, a m´asodik eleme pedig az oszlopok sz´ama. Adott lista elemeinek sz´am´at a
8 be´ep´ıtett f¨ uggv´eny adja meg. Ha vektor, akkor a 8*, utas´ıt´ as eredm´enye komponenseinek a sz´ama, ha m´atrix, akkor 8*, sorainak a sz´ ama.
3.8. Line´aris algebra
273
A & ´es az ) f¨ uggv´enyek seg´ıts´eg´evel is defini´ alhatunk vektorokat ´es m´atrixokat. uggv´ eny • A & f¨ A & f¨ uggv´ennyel k´enyelmesen adhatunk meg olyan vektorokat, illetve m´atrixokat, amelyeknek a komponensei matematikai kifejez´esek. A
&*=5K' . -. . . /, utas´ıt´ as eredm´enye olyan vektor, amelynek komponensei a =5K' iter´aci´ os v´altoz´ohoz tartoz´o ´ert´ekei, ahol -t˝ol -ig halad l´ep´esk¨ozzel. os param´eter nem felt´etlen¨ ul eg´esz Az , az ´es a iter´aci´ oveli, am´ıg a k¨ ovetkez˝o sz´am. A program -t -t˝ol l´ep´esk¨ozzel addig n¨ al nagyobb nem lesz. Az iter´aci´ os param´eterek szimbolikus ´ert´eke -n´ kifejez´esek is lehetnek. Az egyetlen megk¨ot´es az, hogy 2 $ val´ os sz´am legyen. uggv´eny bizonyos argumentumai elhagyhat´ ok. Ilyenkor a progA & f¨ ram az alap´ertelmez´es szerinti ´ert´ekeket haszn´alja. A l´ep´esk¨oz ( ) ´es a kezd˝o´ert´ek () alap´ertelmez´es szerinti ´ert´eke 1, ennek megfelel˝oen a k¨ ovetkez˝o form´ akat is haszn´ alhatjuk:
&*=5K' . -. . /, &*=5K' . -. /, Megeml´ıtj¨ uk m´eg, hogy a
&*=5K' . -/, utas´ıt´ as eredm´enye olyan dimenzi´ o j´ u vektor (lista), amelynek mindegyik komponense =5K' . uggv´ennyel m´ atrixot p´eld´ aul ´ıgy adhatunk meg: A & f¨
&*=5. -... /. -K.K.K. K/, Az -... / lista a m´atrix soraira, -K.K.K. K/ pedig a m´atrix oszlopaira vonatkoz´ o inform´ aci´ okat tartalmazza:
$ * W {{f[1,1], f[1,2], f[1,3], {f[2,1], f[2,2], f[2,3], {f[3,1], f[3,2], f[3,3],
W > f[1,4], f[1,5]}, f[2,4], f[2,5]}, f[3,4], f[3,5]}}
274
3. Fejezetek a matematik´ab´ ol +0 : f[1,1] f[1,2] f[2,1] f[2,2] f[3,1] f[3,2]
f[1,3] f[2,3] f[3,3]
f[1,4] f[2,4] f[3,4]
f[1,5] f[2,5] f[3,5]
Az iter´aci´ os param´eterek megad´as´ara vonatkoz´ o fentebb ismertetett szab´ alyok ebben a form´ aban is ´erv´enyesek. uggv´ eny • Az ) f¨ uggv´enyhez hasonl´ o a kev´esb´e rugalmas, de sok esetben igen k´eA & f¨ uggv´eny. Haszn´alata akkor lehet c´elszer˝ u, nyelmesen haszn´alhat´ o ) f¨ ha az elemek egy olyan f¨ uggv´eny ´ert´ekei, amelyre csak nev´evel akarunk hivatkozni, szemben az el˝ oz˝o esettel, ahol a f¨ uggv´eny´ert´ek ´altal´ anos” alakj´ at ” adtuk meg.
)*5. , )*5. -+. (/,
az (f [1], f [2], . . . , f [n]) vektor ⎞ ⎛ f [1, 1] ... f [1, n2 ] ⎠ az ⎝ ... f [n1 , 1] ... f [n1 , n2 ] m´atrix.
Az n, n1 ´es n2 param´eternek tetsz˝oleges nemnegat´ıv eg´esz sz´amnak kell uggv´eny ebben a form´ aban teh´ at az iter´aci´ os v´altoz´ot lennie. Az ) f¨ 1-t˝ol egyes´evel l´epteti. Ha az n sz´am´ u elemet a kezd (tetsz˝oleges komplex) argumentumt´ ol egyes´evel l´epkedve akarjuk felsorolni, akkor a k¨ ovetkez˝o utas´ıt´ asokat haszn´alhatjuk:
)*5. . =' , )*5. -+. (/. =' , Az elmondottakat az al´abbi p´eld´ an illusztr´aljuk: ( 0= +, - +I #( ( 0= > {1, 4, 9, 16, 25}
A k¨ ovetkez˝o eg´eszen m´ast ad: #( ( 0= + > 2 2 2 2 2 {(x )[1], (x )[2], (x )[3], (x )[4], (x )[5]}
3.8. Line´aris algebra
275
Mivel az ) argumentum´ aban a f¨ uggv´enyt, ´es nem annak helyettes´ıt´esi ´ert´ek´et kell megadni, ez´ert itt felhaszn´ alhatjuk a Mathematica tiszta f¨ uggv´eny-fogalm´ at (l´asd a 3.1.4. pontot) is: #( .I/ > {1, 4, 9, 16, 25}
´ Erdemes kipr´ ob´ alni a k¨ ovetkez˝o utas´ıt´ asokat is: #( ( 0= B 6 #( * ) #( * & #( * ) +0 #( * C #( .I./ +0 :
• Speci´ alis m´ atrixok Sz´ amos speci´alis alak´ u m´ atrix k¨ ozvetlen megad´as´ara van m´ od: 6' ( + {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}} D a 0 0 b 0 0
+ $ ! +0 0 0 c
A &3##3 programcsomag tov´ abbi speci´alis m´ atrixok ´ertelmez´es´et tartalmazza. Olvassuk be ezt a programcsomagot: % #$K + K
´es figyelj¨ uk meg a k¨ ovetkez˝o utas´ıt´ asok eredm´eny´et: "5 +? ) > N [ + +0 [ + N D + * %YD + .G./ +0 : 7$ +
276
3. Fejezetek a matematik´ab´ ol 7$ + ) 7 = + ) +0 7 = + $ ! ' +0
Ezeket a m´atrixokat a Mathematica egy´eb f¨ uggv´enyeivel is egyszer˝ uen defini´ alhatjuk. A tov´ abbiakban az eredm´enyek k¨ ozl´ese n´elk¨ ul mutatunk n´eh´ any ilyen p´eld´ at. Als´ o h´ aromsz¨ogm´atrixot p´eld´ aul ´ıgy is megadhatunk: @0 , - $
6* JW W B W +0 @0
Hilbert-m´atrixokat a & f¨ uggv´ennyel defini´ alhatunk: @$ , - $ GWC @$ +0
W
A k¨ ovetkez˝o utas´ıt´ as eredm´enye szint´en harmadrend˝ u Hilbert-m´ atrix: 2 & E E C
Tridiagon´ alis m´ atrixot a felt´eteleket tartalmaz´o kifejez´esek megad´as´an´ al uggv´ennyel adhatunk meg. P´eld´ aul ´ıgy: j´ ol haszn´ alhat´ o 6B8 bels˝o f¨ ' $
"Y !@ CW C B $ ! , B > W > +0 '
A k¨ ovetkez˝o utas´ıt´ as eredm´enye egy 5 × 5-¨os Vandermonde-m´ atrix: 1 '0 ' #( + .I.C/ > > +0 :
amelyre vonatkoz´o ismert ¨osszef¨ ugg´est ´ıgy illusztr´alhatjuk: ! D 1 '0 '
3.8.2. R´ eszm´ atrixok kezel´ ese A 2.3.1. pontban ismertetett m´odon hivatkozhatunk m´ atrix r´eszeire (elem, sor, oszlop), illetve m´odos´ıthatjuk az egyes r´eszeket.
3.8. Line´aris algebra
277
**. K,, **,, *,**K,,
az m m´atrix (i, j) index˝ u eleme az m m´atrix i-edik sora az m m´atrix j-edik oszlopa
A *, az m (tetsz˝oleges t´eglalap-) m´atrix transzpon´ altj´ at adja meg. Az m m´atrix j-edik oszlop´at m´eg ´ıgy is megkaphatjuk:
#*P**K,,. , Az m m´atrix i1 , · · · , ir index˝ u sorainak ´es j1 , · · · , js index˝ u oszlopainak k¨ oz¨os r´eszek´ent ad´ od´ o r × s m´eret˝ u r´eszm´atrix´ at a k¨ ovetkez˝o utas´ıt´ assal jel¨ olhetj¨ uk ki:
**-+.HHH./. -K+.HHH.K /,, Az elmondottakat az al´abbi p´eld´ akon mutatjuk be: A 0 0 > ) F B + F +0 0 2 4 x
3 7 2
5 0 1
1 a 7
0
2
0
{2, 3, 5, 1}
V´ altoztassuk most meg az m m´atrix (3, 2) index˝ u elem´et ´es az els˝o sor´at: 0
C
0
B C F
´es ellen˝orizz¨ uk az eredm´enyt: +0 0 0 4 x
3 7 -1
-2 0 1
7 a 7
278
3. Fejezetek a matematik´ab´ ol
Az al´ abbi utas´ıt´ asok mindegyike az m m´atrix harmadik oszlop´ at adja meg:
0
{-2, 0, 1}
.
/ 0 {-2, 0, 1}
Az m m´atrix egy r´eszm´atrix´ at ´ıgy jel¨ olhetj¨ uk ki: 0
+0 3 7
-2 0
Ezt a r´eszm´atrixot m´eg ´ıgy is megkaphatjuk: 0
E E
A &3##3 programcsomag t¨ obb lehet˝ os´eget is tartalmaz blokkm´ atrixok k´enyelmes kezel´es´ere. Olvassuk be sz¨ uks´eg eset´en ezt a programcsomagot, ezut´an pr´ ob´ aljuk ki a k¨ ovetkez˝o utas´ıt´ asokat: # +0 # S $ $ $ $ +0 S # 'A0 # S +0 : # 'EY # S +0 S!= + # S S B B B B +0 : 0 #( ! ) +0 0
=EY 0 C +0
=A0 0 +0
= + 0 ) "$ + 0
3.8.3. M˝ uveletek vektorokkal ´ es m´ atrixokkal Ebben a pontban az aritmetikai m˝ uveletekkel, m´atrixnak a determin´ ans´aval, a rangj´ aval ´es az inverz´evel, valamint m´ atrixv´ altoz´os f¨ uggv´enyekkel foglalkozunk.
3.8. Line´aris algebra
279
• Aritmetikai m˝ uveletek Egyenl˝ o dimenzi´ oj´ u vektorok, illetve m´ atrixok ¨ osszeg´et a matematik´ aban megszokott m´odon kapjuk meg: 1 $ ! 1 + ( 1 G 1 {a + x, b + y, c + z} # # 1 2
G + +
$ ' S ! ' * @ S +0 c a + d b + e f 3 + g d + h
A vektornak, illetve az
m´atrixnak a sz´ ammal vett szorzat´ at a
vagy a A illetve
vagy a A
utas´ıt´ assal sz´amolhatjuk ki. Egyenl˝ o dimenzi´ o j´ u vektorok skal´ aris szorzat´ anak meghat´aroz´as´ahoz a 7 bels˝o f¨uggv´enyt (ennek r¨ovid alakja a H karakter) haszn´alhatjuk fel. os sz´am vagy val´ os szimHa a + ´es a ( vektor mindegyik komponense val´ b´ olum, akkor ezek skal´ aris szorzata: 1 Q 1 a x + b y + c z
(Komplex esetben a 7 f¨ uggv´eny nem veszi a konjug´ altat.) uggv´ennyel sz´aH´aromdimenzi´ os vektorok vektori´ alis szorzat´at a 4 f¨ m´ıthatjuk ki. Ennek haszn´ alat´ ahoz el˝osz¨or be kell h´ıvni a % #$KA&'! K
programcsomagot. A + ´es ( vektor vektori´ alis szorzata: A 1 1 {-(c y) + b z, c x - a z, -(b x) + a y}
A 4 f¨ uggv´eny ismeri ´es alkalmazni is tudja a skal´ aris ´es a vektori´alis szorzat alapvet˝o tulajdons´ agait. uggv´eny ugyanazt az eredm´enyt adja, amit M´ atrixok szorzat´ ara a 7 f¨ a matematik´ aban sor-oszlopszorz´assal szoktunk megkapni. Ez azt jelenti, hogy a Mathematica kisz´amolja az A ´es a B m´atrix szorzat´at akkor, amikor az A m´atrix oszlopainak a sz´ama (a 7 * , ´altal megadott
280
3. Fejezetek a matematik´ab´ ol
lista utols´ o eleme) megegyezik a B m´atrix sorainak a sz´am´aval (azaz a 72 *L, ´altal megadott lista els˝o elem´evel). Pr´ob´aljuk ki p´eld´aul a k¨ ovetkez˝o utas´ıt´ asokat: A # S # > C S ) C # G S Q # C S # Q # G R# Q S G S Q S
A Mathematica saj´ atos m´odon kezeli vektor ´es m´ atrix szorzat´ at. Sok esetben a matematik´ aban megszokott sor-oszlopszorz´asnak megfelel˝oen ´ertelemszer˝ uen tekint egy vektort sorvektornak vagy oszlopvektornak. Ha p´eld´ aul A # 1 # $ ! ' *
akkor a program meghat´ arozza a H tekinti):
1 + (
szorzatot (ekkor v-t sorvektornak
1 Q # {a x + d y, b x + e y, c x + f y}
az H utas´ıt´ asra azonban hiba¨ uzenetet k¨ uld. M´ asr´eszt A 1 1 + ( # Q 1 {a x + b y + c z, d x + e y + f z}
(ebben az esetben a program -t oszlopvektornak veszi), ´es most a H utas´ıt´ asra kapunk hiba¨ uzenetet. N´eh´ anyszor azonban matematikai szempontb´ ol ´ertelmetlen eredm´enyt is kaphatunk. Tekints¨ uk p´eld´ aul a k¨ ovetkez˝o egyenl˝ os´eget: 1 2 5 1 2 391 578 (5 6) = . 3 4 6 3 4 897 1326 Nem kapjuk meg az elv´art eredm´enyt akkor, ha a k´et bels˝o t´enyez˝ot vektork´ent defini´ aljuk: ) Q > N Q > N Q ) 319 . {{1, 2}, {3, 4}}
Az ilyen esetekben c´elszer˝ u megjel¨olni azt, hogy melyik vektort tekintj¨ uk sorvektornak ´es melyiket oszlopvektornak:
3.8. Line´aris algebra
281
)Q > NQ > NQ ) {{391, 578}, {897, 1326}}
Ezzel a m´odszerrel sz´amolhatjuk ki a Mathematic´ a val k´et vektor diadikus szorzat´ at, azaz egy oszlopvektornak ´es egy sorvektornak a m´atrix-szorzat´at: + ( Q $ ! +0 a x b x c x a y b y c y
Az bels˝o f¨ uggv´enynek ´es a L=# k¨ uls˝ o f¨ uggv´enynek (ez a &3##3 programcsomagban tal´alhat´o) felhaszn´ al´ as´aval adhatunk meg olyan u ´j elj´ ar´ ast, ami k´et m´atrix Kroneckerszorzat´ at hat´ arozza meg: % #$K + K P !=" , $, - S!= + 2
0 $
Tekints¨ uk ezut´ an a k¨ ovetkez˝o m´atrixokat: # #( {{a[1, 1], a[1, 2]}, {a[2, 1], a[2, 2]}} S #( $ {{b[1, 1], b[1, 2]}, {b[2, 1], b[2, 2]}}
Az indexek u ¨gyesebb elhelyez´es´evel ´attekinthet˝ obb eredm´enyt ´ıgy kaphatunk: P !=" # , W, CJ $ , W, CJ +0 a11 b11 a11 b12 a11 b21 a11 b22 a21 b11 a21 b12 a21 b21 a21 b22
S Q "$! ' "5 !0 W "$! ' $ "5 !0 W a12 a12 a22 a22
b11 b21 b11 b21
a12 a12 a22 a22
b12 b22 b12 b22
N´egyzetes m´atrix pozit´ıv eg´esz kitev˝oj˝ u hatv´ any´ at a
#0B f¨ uggv´ennyel hat´ arozhatjuk meg. Tekints¨ uk p´eld´ aul a k¨ ovetkez˝o A ∈ R2×2 m´atrixot:
282
3. Fejezetek a matematik´ab´ ol # C +0 # 1 1 -1 3
Ennek a n´egyzet´et, azaz az A2 ∈ R2×2 m´atrixot ´ıgy sz´amolhatjuk ki: +&Y # +0 0 4 -4 8
Vigy´ azzunk azonban arra, hogy az C( utas´ıt´ ast (ennek teljes alakja: 0B* . (,) is haszn´alhatjuk. Mivel a 0B f¨uggv´eny rendelkezik a & attrib´utummal, ez´ert a sz´oban forg´o utas´ıt´as eredm´enye nem az
A m´atrix n´egyzete, hanem az elemek n´egyzet´eb˝ ol a´ll´ o m´atrix: #I +0 1 1 1 9
• N´ egyzetes m´ atrix determin´ ansa Az
n´egyzetes m´atrix determin´ ans´ at ´ıgy kaphatjuk meg:
7* , A Zp v´eges sz´amtestben is dolgozhatunk, ha a
7* . # 2? , utas´ıt´ ast haszn´aljuk. A # opci´o alap´ertelmez´es szerinti ´ert´eke 0. Ekkor a program a C sz´amtestben v´egzi el a m˝ uveleteket. A k¨ ovetkez˝o p´eld´ akban a m´ atrix elemei pontos numerikus ´ert´ekek, illetve szimb´olumok, ez´ert a determin´ ans pontos ´ert´ek´et kapjuk meg: D C> > C > > CL )> > CF F CF F 1 35 # $ ! ' C$ ' C! C! C' $ C' ! C$ D #
3.8. Line´aris algebra
283
! : (a
2
+ b
2
+ c
2
2 + d )
2
Az al´ abbi p´eld´ aban a m´ atrix egyik eleme k¨ozel´ıt˝ o numerikus ´ert´ek. A
7 f¨uggv´eny ebben az esetben a k´ert eredm´enynek egy k¨ozel´ıt˝o ´ert´ek´et hat´ arozza meg: S "5 Q "5 "5 > "5 "5 N "5 "5 B C "5 "5 B "5 > > "5 N "5 N "5 B "5 > D S 9.04581
A program a fenti eredm´enyt g´epi pontoss´ ag´ u sz´amok (l´asd a 3.1.3. pontot) felhaszn´ al´ as´aval sz´am´ıtotta ki. Eml´ekeztet¨ unk arra, hogy a t¨ obbi ´ert´ekes jegyet ´ıgy jelen´ıthetj¨ uk meg: 6 0 : 9.04580658046875
Ha enn´el t¨obb ´ert´ekes jegyre szeretn´enk a determin´ anst meghat´arozni, akuggv´enyt kell alkalmaznunk. kor az f¨ • M´ atrix rangja Adott m´ atrix rangj´ anak meghat´aroz´as´ahoz a Mathematica t¨ obb be´ep´ıtett f¨ uggv´eny´et is felhaszn´alhatjuk. atrix rangja az r (≤ min {n, m}) term´eszeAz A ∈ Cn×m (n, m ∈ N) m´ tes sz´am, ha A-nak van r-edrend˝ u, null´ at´ol k¨ ul¨ onb¨ oz˝o aldetermin´ ansa, de minden (r + 1)-edrend˝ u aldetermin´ ansa (ha egy´ altal´ an van ilyen) nulla. uggv´eny seg´ıtA fenti tulajdons´ agokkal rendelkez˝ o r sz´amot a # f¨ s´eg´evel kereshet¨ unk. A
# * . =, utas´ıt´ as eredm´enye ugyanis egy olyan m´ atrix, amelynek minden eleme A valamely k × anak determin´ ansa. (Ha A n × m-es, akkor ez k-s r´ eszm´atrix´ m´ e ret˝ u .) P´ e ld´ a ul: a m´atrix nk × m k A # # C C ) C C C CF > C C C> C C
284
3. Fejezetek a matematik´ab´ ol # ) {{0, 0, 0, 0, 0}} # {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {2, 24, 36, 6, 10, 12, -8, -12, 0, 4}, {-4, -48, -72, -12, -20, -24, 16, 24, 0, -8}, {-2, -24, -36, -6, -10, -12, 8, 12, 0, -4}}
Ennek a m´ atrixnak a rangja teh´ at 3. Egy m´ atrix rangj´ at a fentin´el kevesebb sz´amol´ast ig´enyl˝o elj´ ar´ assal is meghat´arozhatjuk. Az ezzel kapcsolatos ´all´ıt´ as azt mondja ki, hogy egy m´atrix rangja nem v´ altozik meg akkor, ha a sorain u ´gynevezett elemi sorm˝ uveleteket hajtunk v´egre. Ilyen m˝ uveletek a k¨ovetkez˝ok: k´et sor felcser´el´ese, egy sornak null´ at´ ol k¨ ul¨ onb¨ oz˝o sz´ammal val´o megszorz´asa, valamelyik sor tetsz˝oleges sz´ammal vett szorzat´anak egy m´asik sorhoz val´ o hozz´aad´ asa. Ilyen a´talak´ıt´ asokat alkalmaz a
9B9 bels˝o f¨ uggv´eny. Az eredm´enyk´ent ad´ od´ o m´atrix rangja (ami megegyezik a kiindul´ asi m´atrix rangj´ aval) sok esetben m´ar k¨ ozvetlen¨ ul leolvashat´ o. P´eld´ aul: EYE'! # +0 1 0 0 -4 -6 0 1 0 -3 -5 0 0 1 12 18 0 0 0 0 0
A Mathematic´ a nak ezzel az elj´ar´ as´aval illusztr´alhatjuk a m´ atrix rangj´ anak egy m´asik lehets´eges (az el˝oz˝ovel ekvivalens) defin´ıci´ oj´ at is. Nevezetesen: egy m´atrix rangja egyenl˝ o a line´ arisan f¨ uggetlen sorvektorainak a maxim´ alis arisan f¨ uggetlen sz´am´aval. A fentebb megadott m´atrixnak pontosan 3 line´ sorvektora van, ez´ert a rangja 3. A Mathematica 2.2.x v´ altozataiban nincs olyan be´ep´ıtett f¨ uggv´eny, amelyik eredm´enyk´ent m´atrix rangj´ at adja meg. A sokat sejtet˝o 9= bels˝o f¨ uggv´enyt erre nem haszn´ alhatjuk. A legegyszer˝ ubben tal´ an a
6 bels˝o f¨ uggv´eny felhaszn´ al´ as´aval defini´ alhatunk m´ atrix rangj´ at kisz´amol´o
3.8. Line´aris algebra
285
elj´ ar´ ast. Ha A ∈ Cn×m , akkor a 6* , utas´ıt´ as eredm´enye a ker(A) := { x ∈ Cm : Ax = 0 } ⊂ Cm alt´er b´ azisvektorainak list´ aja: " ! # {{6, 5, -18, 0, 1}, {4, 3, -12, 1, 0}}
Bebizony´ıthat´ o az, hogy az A m´atrix rangja (a fenti jel¨ ol´eseket haszn´alva) megegyezik az m − dim ker(A) sz´ammal. Ez´ert m´atrix rangj´ at megad´o f¨ uggv´enyt ´ıgy defini´ alhatunk a Mathematic´ a ban: 0 +, - % @
+ C % @ " ! +
A kor´ abban ´ertelmezett m˝ uk¨ od´es´et:
m´atrixot felhaszn´ alva ellen˝ orizz¨ uk az u ´j elj´ ar´ as
0 # 3
• N´ egyzetes m´ atrix inverze Most a n´egyzetes ´es regul´aris (azaz null´ at´ol k¨ ul¨ onb¨ oz˝o determin´ ans´ u) m´ atrix inverz´enek kisz´amol´as´ahoz haszn´ alhat´ o
f¨ uggv´eny lehet˝ os´egeit ismertetj¨ uk. M´ atrix a´ltal´ anos´ıtott inverz´er˝ol a 3.8.8. pontban lesz sz´ o. A Mathematica a megfelel˝ o m˝ uveleteket a Zp v´eges sz´amtestben v´egzi el, ha a
# 2? opci´ot (ennek alap´ertelmez´es szerinti ´ert´eke 0) adjuk meg. uggv´enyn´el is a bemen˝o adatok szintaxis´ aval v´ alaszthatjuk Az f¨ meg a ki´ert´ekel´es szimbolikus (pontos) vagy numerikus (k¨ ozel´ıt˝ o) m´odj´ at. N´ezz¨ uk el˝ osz¨or azt az esetet, amikor a m´atrixot csak pontos numerikus ´ert´ekek, be´ep´ıtett matematikai ´alland´ ok vagy pedig szimb´olumok felhaszn´ al´ as´aval adjuk meg. A program ebben az esetben a pontos eredm´enyt keresi. Ezt illusztr´alj´ ak a k¨ ovetkez˝o p´eld´ ak:
286
3. Fejezetek a matematik´ab´ ol 6 1 ) LinearSolve::nosol: Linear equation encountered which has no solution. Inverse[{{1, 2}, {2, 4}}]
6 1 $ > >$ Inverse::sing: Matrix {{a, b}, {5 a, 5 b}} is singular. Inverse[{{a, b}, {5 a, 5 b}}]
G "5 C "5 G "5 C "5 6 1 : +0 -1 + Sqrt[2] 2 - Sqrt[3] 2 2 2 + Sqrt[3 -1 - Sqrt[2] 2 2
Bonyolultabb a helyzet akkor, amikor a m´ atrix elemei k¨oz¨ott szimb´olumok is vannak. Az invert´ alhat´ os´ag probl´em´a j´ anak eld¨ ont´es´ehez ´es az inverz meghat´aroz´as´ahoz ebben az esetben k¨ ul¨ onb¨ oz˝o t´ıpus´ u azonoss´ agok felhaszn´ al´ as´aval kell matematikai kifejez´eseket kezelni, illetve ´atalak´ıtani. Tekints¨ uk p´eld´ aul a k¨ ovetkez˝o m´atrixot: # " +I C A + +0 : 2 1 2 Sin[x] 1
1 - Cos[2 x]
Mivel cos 2x = 1 − 2 sin2 x (x ∈ R), ez´ert a fenti m´ atrix minden x ∈ R eset´en szingul´aris (azaz nem invert´ alhat´ o). Hajtsuk v´egre az 6 1 #
utas´ıt´ ast, ´es figyelj¨ uk meg, hogy a Mathematica ´altal adott eredm´eny matematikai szempontb´ol ´ertelmetlen (a k´eperny˝ on megjelen˝o t¨ ortek nevez˝o je uggv´eny nem alkalmazta az emugyanis nulla). Vil´ agos, hogy az f¨ l´ıtett azonoss´agot. Ilyen t´ıpus´ u probl´em´ak kezel´es´ere szolg´al a
Y opci´o, amelyben kijel¨ olhetj¨ uk a felhaszn´ alni k´ıv´ ant azonoss´ agok k¨ or´et. Ennek az opci´ onak az alap´ertelmez´es szerinti ´ert´eke:
3.8. Line´aris algebra
287
2 6 1 [ {ZeroTest -> (#1 == 0 &)}
Ez azt jelenti, hogy az f¨ uggv´eny a m˝ uveletek elv´egz´es´en´el csak az o¨sszevon´asok ut´ an 0-nak ad´ od´ o kifejez´eseket tekinti z´erusnak. uggv´eny isEgyszer˝ uen ellen˝ orizhetj¨ uk azt, hogy p´eld´ aul a 65) f¨ meri a fentebb megeml´ıtett azonoss´agot. A k¨ ovetkez˝o m´odon k¨ oz¨olhetj¨ uk al is a Mathematic´ a val azt, hogy az m´atrix inverz´enek meghat´aroz´as´an´ uggvegye figyelembe az ¨osszes olyan azonoss´agot, amelyeket a 65) f¨ v´eny ismer: 6 1 # [ CJ "0 *( . B / Inverse::sing: 2 Matrix {{1, 2 Sin[x] }, {1, 1 + <<1>>}} is singular. 2 Inverse[{{1, 2 Sin[x] }, {1, 1 - Cos[2 x]}}, ZeroTest -> (Simplify[#] == 0 &)]
A Y opci´ot az ´ert´ekkel is haszn´alhatjuk. Ha a m´atrix elemei k¨oz¨ott k¨ ozel´ıt˝ o numerikus ´ert´ekek is vannak, akkor az inverz´enek is egy k¨ ozel´ıt˝ o ´ert´ek´et kapjuk meg: 6 1 Q >QF )Q >QN {{-0.3252, 0.3310}, {0.2439, -0.06968}}
Nagypontoss´ag´ u sz´amok alkalmaz´asa eset´en a Mathematica bizonyos hibabecsl´est is v´egez. Ezt illusztr´alja a k¨ ovetkez˝o utas´ıt´ assorozat: S
$ GWC N W N >B S Q 6 1 S
{1., 0., 0., 0., 0., 0., 0.} #!!!( : 38
Az f¨ uggv´eny ezekben az esetekben is ellen˝orzi a megadott m´atrix invert´ alhat´ os´ag´at. A helyzetet itt az a t´eny bonyol´ıtja, hogy invert´ alhat´ o ´es nem invert´alhat´ o m´atrixok k¨ oz¨otti ´eles matematikai k¨ ul¨ onbs´egt´etel csak a val´ os sz´amok ide´ alis vil´ ag´aban l´etezik. Mihelyt a m´ atrixokat kerek´ıt´esi m˝ uveleteknek vetj¨ uk al´ a, a megk¨ ul¨ onb¨ oztet´es sz¨ uks´egk´eppen m´eg zavarosabb lesz. ´Igy bizonyos nem-szingul´aris m´atrixok szingul´ ariss´ a tehet˝ok a kerek´ıt´es ´altal keletkez˝o perturb´ aci´ o r´ev´en. M´eg gyakrabban, egy val´ oban szingul´aris m´atrix a kerek´ıt´es ´altal egy k¨ ozeli, nem-szingul´aris m´atrixba perturb´ al´ odhat.
288
3. Fejezetek a matematik´ab´ ol
• M´ atrixf¨ uggv´ enyek Ismeretes, hogy b´armely A ∈ Cn×n (n ∈ N) m´atrix eset´en a konvergens. Az o¨sszeg´enek kisz´amol´as´ahoz, azaz az ∞ Ak A e := k!
Ak /k! sor
k=0
m´atrix meghat´ aroz´as´ahoz a
# bels˝o f¨ uggv´enyt haszn´ alhatjuk fel. P´eld´ aul: A # # ) C> N ) CL > CF +4+ # +0 -1 + 3 E 3 E -1 + 3 E
E 3 + E 1 + E
1 - 3 E -3 - 3 E -3 E
A kisz´amol´ashoz sz¨ uks´eges id˝ otartamot is ´erdemes megn´ezni:
0 +4+ 0 {3.296 Second, Null}
3.8.4. Vektornorm´ ak ´ es m´ atrixnorm´ ak A Mathematica bels˝o ´es k¨ uls˝ o f¨ uggv´enyei k¨ oz¨ott nincs olyan, amellyel vektor (m´atrix) valamelyik norm´ aj´ at k¨ ozvetlen¨ ul ki tudn´ ank sz´amolni. Ebben a pontban megmutatjuk, hogyan defini´ alhatunk ilyen f¨ uggv´enyeket. Ismeretes, hogy a k¨ovetkez˝o lek´epez´esek mindegyike norma a Cn (n ∈ N) line´ aris t´eren: x∞ := max { |xk | } 1≤k≤n
(x = (x1 , · · · , xn ) ∈ Cn )
(vektor maximum-norm´ aja), xp :=
n k=1
aja). (vektor lp -norm´
|xk |p
1/p
(x ∈ Cn , p ≥ 1)
3.8. Line´aris algebra
289
Vektor maximum-norm´ aj´ at kisz´amol´o f¨ uggv´enyt ´ıgy adhatunk meg: 8= +0 +,V8! ? - + #$ +
A NQV mint´ azattal k¨ oz¨olt¨ uk a Mathematic´ a val azt, hogy a O jelsorozat jobb oldal´ an l´ev˝o m˝ uveleteket csak akkor v´egezze el, ha a f¨ uggv´eny argumentum´ aba vektor ker¨ ul. Figyelj¨ uk meg azt is, hogy a dimenzi´ osz´am uggv´eny ugyanis renmegjel¨ol´ese n´elk¨ ul adtuk meg ezt a norm´ at. Az & f¨ utummal: delkezik a & attrib´ # $ #$ {Listable, Protected}
Ez azt jelenti, hogy ha az argumentum´ aba vektort (list´ at) ´ırunk, akkor a uggv´enyt. program a lista minden elem´ere k¨ ul¨ on-k¨ ul¨ on alkalmazza az & f¨ Pr´ ob´ aljuk most ki ezt az u ´j elj´ ar´ ast: 1 C 1 ) > N F CM 8= +0 1 8= +0 1 {3, 8} 1 8= +0 1 VektorMaxNorma[{1, {1, 3}}]
Vektor lp -norm´ aj´ at adja meg a k¨ ovetkez˝o f¨ uggv´eny (a %% jelsorozat az
) f¨uggv´eny r¨ovid alakja):
8= 0 +,V8! ? , J - & #$ +I I 8= 0 1 8= 0 1 {Sqrt[13], 5}
Tekints¨ uk ezut´ an a k¨ ovetkez˝o m´atrixnorm´ akat: AE :=
n
|aij |2
1/2
(A ∈ Cn×n )
i,j=1
(m´atrix euklideszi norm´ aja), AS := max
1≤i≤n
(m´atrix sor¨ osszeg-norm´ aja),
n j=1
|aij |
(A ∈ Cn×n )
290
3. Fejezetek a matematik´ab´ ol
AO := max
1≤j≤n
n
|aij |
(A ∈ Cn×n )
i=1
(m´atrix oszlop¨ osszeg-norm´ aja). Ezek kisz´amol´as´ahoz haszn´ alhatjuk a k¨ ovetkez˝o f¨ uggv´enyeket: +40 +, - & #$ +II +"0 +, - + # ( & #$ + +20 +, - +
# ( & #$
+
Ezeknek a f¨ uggv´enyeknek a m˝ uk¨ od´es´et is kipr´ob´ aljuk: # #( .I G .I/ +0 : 2 9 5 12 +40 # +"0 # +20 # {Sqrt[254], 17, 21}
Az A n´egyzetes m´atrix · m´atrixnorm´ ara vonatkoz´ o kond´ıci´ osz´ ama az −1 os sz´am. Ezt a Mathematic´ a ban p´eld´ aul ´ıgy defini´ alhatjuk: A · A val´ P '"0 +,
0,- +40 - 0 + 0 6 1 +
A ; 6' f¨ uggv´enyt k´et argumentummal ´ertelmezt¨ uk. Az els˝obe kell be´ırni a m´ atrixot, a m´ asodikba pedig egy kor´ abban m´ ar defini´ alt m´atrixnorma nev´et. Ez ut´ obbi argumentum elhagyhat´ o. Ebben az esetben a program an megadott m´atrixnorm´ aval sz´amolja ki a kond´ıci´ osz´amot: a O jel ut´ P '"0 # P '"0 # +40 254 254 , } { 21 21 P '"0 # +"0 P '"0 # +20 {17, 17}
3.8. Line´aris algebra
291
3.8.5. A Gram–Schmidt-f´ ele ortogonaliz´ aci´ os elj´ ar´ as V´eges dimenzi´os euklideszi terekben v´egezhet¨ unk bizonyos sz´ amol´asokat a &38'3 programcsomag al´abbi f¨uggv´enyeivel:
:68 '
0K
Az alap´ertelmez´es az (Rn , ·, ·) euklideszi t´er, ahol n adott term´eszetes sz´am ´es ·, · a szok´asos skal´aris szorzat: x, y :=
n
xk yk
(x, y ∈ Rn ),
k=1
ami az
n |xk |2 x2 :=
(x ∈ Rn )
k=1
euklideszi norm´at induk´ alja. Olvassuk be a sz´oban forg´ o programcsomagot: % #$K2 @ K
Adott v ∈ Rn vektor eset´en a '*, utas´ıt´ as eredm´enye olyan R -beli vektor, amelynek euklideszi norm´aja 1: n
1 0 1 1 1 1 1 { , , , } 2 2 2 2
A 0K*+. (, utas´ıt´ as a v1 ∈ Rn vektornak a v2 ∈ Rn vektor ir´ any´ aba es˝o mer˝oleges vet¨ ulet´et, azaz a v1 , v2 · v2 v2 , v2 vektort adja meg. P´eld´ aul: 1 1 C CN &W! 1 1 30 90 15 } { , - , 41 41 41
292
3. Fejezetek a matematik´ab´ ol
Az f1 , f2 , · · · , fm ∈ Rn vektorok a´ltal meghat´ arozott alt´erben a Gram– Schmidt-f´ele ortogonaliz´aci´ os elj´ar´ assal ad meg egy ortonorm´alt b´ azist a
:68 *-5+. 5(. HHH. 5/, utas´ıt´ as. Ugyanezt norm´al´ as n´elk¨ ul ´ıgy kapjuk meg: * C * C> * M CF O0"!@0' * * * 0' CJ {{1, 2, 2, -1}, {2, 3, -3, 2}, {2, -1, -1, -2}}
Az el˝ oz˝oekben ismertetett m˝ uveleteket m´asik skal´aris szorzattal ell´atott euklideszi t´erben is elv´egezhetj¨ uk. A skal´ aris szorzatot az
0 opci´oval defini´ alhatjuk. A felsorolt f¨ uggv´enyek mindegyike rendelkezik ezzel az opci´oval, ami alap´ertelmez´esben a pont elej´en megadott skal´ aris szorzat. Ezt a Mathematica ´ıgy fejezi ki: 0 2? 7, ami ekvivalens a k¨ ovetkez˝ovel: 0 2? P+HP( . Egyetlen p´eld´ an mutatjuk meg skal´ aris szorzat megad´as´anak m´ odj´ at. oli a legfeljebb n-edfok´ u Tekints¨ uk a (Pn , ·, ·I ) euklideszi teret, ahol Pn jel¨ val´ os algebrai polinomok line´ aris ter´et, ´es a skal´aris szorzatot ´ıgy ´ertelmezz¨ uk: 1 f (t)g(t) √ dt (f, g ∈ Pn ). f, gI := 1 − t2 −1 Ismeretes, hogy ha p´eld´ aul az fi (x) := xi (x ∈ R, i = 0, 1, · · · , 4) polinomokra a Gram–Schmidt-f´ele elj´ ar´ ast alkalmazzuk, akkor a megfelel˝o index˝ u els˝ofaj´ u Csebisev-polinomokat kapjuk: O0"!@0' + +I +I +I) 0' CJ 6 &'! CJ 6 . ."5 C+I + C / 1 2 -3 x 3 1 2 4 + x , - x + x } {1, x, - + x , 2 4 8
Az els˝ ofaj´ u Csebisev-polinomok be´ep´ıtett f¨ uggv´enyk´ent is szerepelnek a Mathematic´ a ban. N´ezz¨ uk meg most ezeket is:
$ A@$(@1 = + = B ) 2 3 2 4 {1, x, -1 + 2 x , -3 x + 4 x , 1 - 8 x + 8 x }
3.8. Line´aris algebra
293
3.8.6. Line´ aris egyenletrendszerek megold´ asa Ebben a pontban a line´ aris egyenletrendszerek megold´as´ahoz seg´ıts´eget ad´o
6 6
9 6
bels˝o f¨ uggv´enyek, valamint a &3 3 programcsomagban megl´ev˝o
6 k¨ uls˝ o f¨ uggv´eny a´ltal ny´ ujtott lehet˝ os´egeket ismertetj¨ uk. utthat´ om´atrixszal ´es a Tekints¨ uk el˝ osz¨or az A ∈ Cm×n (m, n ∈ N) egy¨ n b ∈ C vektorral megadott Ax = b
?(x ∈ Cn )
line´ aris egyenletrendszert. uggv´eny (l´ asd a 3.3.1. pontot) line´ aris egyenletrendszerek megA 6 f¨ old´ as´ahoz az LU-algoritmust alkalmazza. Ha az egyenletek megad´as´an´ al pontos numerikus ´ert´ekeket haszn´alunk, akkor a pontos megold´ ast kapjuk meg: ( +G(G )+G>(GN F+GM(G) "1 ( + ( 35 34 , z -> 0}} {{x -> - , y -> 3 3
Az egyenletrendszert ´ıgy is megadhatjuk: # ) > N F M $ ) A + + + + + "1 # Q + $ + 35 34 , x3 -> 0}} {{x1 -> - , x2 -> 3 3
A 6 f¨ uggv´eny a matematik´aban megszokott m´odon oldja meg az egyenletrendszert akkor is, amikor annak v´egtelen sok megold´asa van: # C C) B C B C B CF $ ) C C
294
3. Fejezetek a matematik´ab´ ol A + + + + + +) 0 "1 # Q + $ + {{x1 -> -8, x3 -> 6 + 2 x4, x2 -> 3 + x4}}
Ennek az egyenletrendszernek az a´ltal´ anos megold´asa: 0 0
0
0
+) {-8, 3 + x4, 6 + 2 x4, x4}
¨ Ures list´at kapunk eredm´enyk´ent abban az esetben, ha az egyenletrendszernek nincs megold´ asa: # C C> ) CF $ L C) > A + + + + + "1 # Q + $ + {}
A 6 bels˝o f¨ uggv´eny szint´en az LU-algoritmust haszn´alja line´ aris egyenletrendszerek megold´as´ahoz: % "1 # $ 34 35 , 0} {- , 3 3 % "1 # $ {-8, 3, 6, 0} % "1 # $ LinearSolve::nosol: Linear equation encountered which has no solution. LinearSolve[{{2, -1, 3}, {3, -5, 1}, {4, -7, 1}}, {9, -4, 5}]
A m´asodik p´eld´ aban figyelj¨ uk meg azt is, hogy ezzel az elj´ar´ assal abban az esetben is csak egyetlen megold´ast kapunk meg, amikor az egyenletrendszernek v´egtelen sok megold´asa van. aris egyenletrendszer Ismeretes, hogy az Ax = 0 (∈ Cn ) homog´en line´ azis´ at megold´asainak a halmaza a Cn t´er egy altere. Ennek az alt´ernek egy b´ as eredm´enyek´ent. P´eld´ aul: kapjuk meg a 6* , utas´ıt´ " ! # {{0, 1, 2, 1}}
3.8. Line´aris algebra
295
Tridiagon´ alis m´ atrixszal megadott egyenletrendszert megoldhatjuk az im´ent megeml´ıtett f¨ uggv´enyek seg´ıts´eg´evel is, de haszn´alhatjuk a hat´ekouls˝ o f¨ uggv´enyt is. Olnyabb algoritmust tartalmaz´ o 6 k¨ vassuk be az ezt tartalmaz´o programcsomagot: % #$K ' K
Tekints¨ uk a k¨ ovetkez˝o tridiagon´ alis m´atrixot: $ ! F ) M > L # $ "Y !@
WC C
W B $
W !
WC , B ) W ) +0 # 4 7 0 0
5 8 1 0
0 9 2 11
0 0 3 12
Oldjuk most meg az Ax = r egyenletrendszert: ) >
' "1 $ ! {-
5 20 28 26 , , , } 9 9 27 81
V´eg¨ ul hasonl´ıtsuk o¨ssze a k¨ ul¨ onb¨ oz˝o elj´ ar´ assal v´egzett ki´ert´ekel´eshez sz¨ uks´eges id˝ otartamokat: A + + + + + +)
0 "1 # Q + + {4.723 Second, Null}
0 % "1 # {2.472 Second, Null}
0
' "1 $ ! {0.55 Second, Null}
Param´etereket tartalmaz´o egyenletrendszereket is megoldhatunk. P´eluggv´eny a param´eterek ¨osszes lehets´eges komplex ´ert´ek´et d´ aul a 9 f¨ figyelembe v´eve adja meg a megold´ast.
296
3. Fejezetek a matematik´ab´ ol
Oldjuk meg p´eld´ aul a tx + y + z = 1 x + ty + z = t
?((x, y, z) ∈ C3 )
x + y + tz = t2 egyenletrendszert, ahol t tetsz˝oleges komplex param´eter: E'! R+G(G +G R(G +G(G R I + ( x == 1 - y - z && t == 1 || -1 + t != 0 && 2 + t != 0 && 1 -1 - t && y == && x == 2 + t 2 + t 2 1 + 2 t + t z == 2 + t
A kapott eredm´eny teh´ at azt jelenti, hogy ha t ∈ C \ {1, −2}, akkor az egyenletrendszernek egyetlen megold´asa a t + 1 1 (t + 1)2 , , − t+2 t+2 t+2 vektor. Ha t = 1, akkor az (1 − y − z, y, z)
(y, z ∈ C)
sz´amh´ armasok mindegyike kiel´eg´ıti a fenti egyenleteket. A t = −2 esetben az egyenletrendszernek nincs megold´asa. Val´oban: C E'! R+G(G +G R(G +G(G R I + ( False
3.8.7. M´ atrix saj´ at´ ert´ ekei ´ es saj´ atvektorai A λ0 ∈ C sz´amot az A ∈ Cn×n (n ∈ N) m´atrix saj´ at´ert´ek´e nek nevezz¨ uk, n ha l´etezik olyan nemnulla s ∈ C vektor (az ilyen s-re azt mondjuk, hogy at´ert´ek´ehez tartoz´ o saj´ atvektora), amelyre az As = λ0 s az A m´atrix λ0 saj´ at´ert´ekhez tartoz´o saj´atvektorokhoz a nulegyenl˝ os´eg teljes¨ ul. Ha a λ0 saj´ la vektort is hozz´ avessz¨ uk, akkor a Cn t´er egy alter´et kapjuk. Ennek az at´ert´ek geometriai multiplicit´ asa. alt´ernek a dimenzi´ o ja a λ0 saj´
3.8. Line´aris algebra
297
Ismeretes, hogy a λ0 sz´am pontosan akkor saj´ at´ert´eke az A m´atrixnak, ha λ0 megold´asa a det (A − λIn ) = 0
?(λ ∈ C)
os egys´egm´atrixot jel¨ olt¨ uk), amelyet az A egyenletnek (In -nel az n-dimenzi´ m´atrix karakterisztikus egyenlet´e nek szok´as nevezni. Azt mondjuk, hogy at´ert´ek algebrai multiplicit´ asa l, ha λ0 a karakterisztikus egyena λ0 saj´ letnek l-szeres gy¨oke. Egyszer˝ uen bebizony´ıthat´ o, hogy b´ armely A m´atrix at´ert´ek´enek geometriai multiplicit´asa nem nagyobb, mint az algebrai λ0 saj´ multiplicit´ asa. A Mathematica egyenletmegold´o algoritmusait haszn´alja az
f¨ uggv´eny n´egyzetes m´atrix saj´ at´ert´ekeinek meghat´aroz´as´ahoz. A 3.3. szakaszban le´ırtaknak megfelel˝oen, ha a m´ atrixot csak pontos numerikus ´ert´ekekkel vagy be´ep´ıtett matematikai ´alland´ okkal adjuk meg, akkor ez az elj´ ar´ as a pontos saj´at´ert´ekeket pr´ ob´ alja meghat´arozni. Az al´ abbi p´eld´ akban figyelj¨ uk meg azt is, hogy az eredm´enyk´ent ad´ od´ o list´aban minden saj´ at´ert´ek annyiszor szerepel, amennyi annak az algebrai multiplicit´ asa: # B C B C C B 4 1 # {0, -I Sqrt[14], I Sqrt[14]} # C C C) C C) B 4 1 # {-5, 2, 2} # C C C C C 4 1 # {1, 1, 1}
Szimbolikus sz´amol´asok eredm´enyei esetenk´ent nehezen a´ttekinthet˝ oek. Ezt is illusztr´alja a k¨ ovetkez˝o utas´ıt´ assorozat, amelynek eredm´eny´et itt nem k¨ oz¨olj¨ uk: #) B>BBBB B)BBB BBBB BBBB BBBB BBBBB 4 1 #)
Ilyen esetekben az bels˝o f¨ uggv´enyt alkalmazva a saj´ at´ert´ekek egy k¨ ozel´ıt˝ o ´ert´ek´et kapjuk meg:
298
3. Fejezetek a matematik´ab´ ol : ) A@ {-1.889, 1.889, -0.6167, 0.6167, -3.324, 3.324}
A program figyelmeztet˝o u ¨zenetet k¨ uld akkor, ha nem tal´ alja meg a karakterisztikus egyenlet pontos megold´as´at: #> > ) ) N B ) B F N > ) N M F > F L 4 1 #> Eigenvalues::eival: Unable to find all roots of the characteristic polynomial. Eigenvalues[{{5, 4, 3, 2, 1}, {4, 6, 0, 4, 3}, {3, 0, 7, 6, 5}, {2, 4, 6, 8, 7}, {1, 3, 5, 7, 9}}] : B {22.4068753075804106731, 7.5137241542053727579, 4.8489501203161481508, 1.32704559955676522789, -1.09659518165869680963}
Az f¨ uggv´eny numerikus m´odszert alkalmazva hat´arozza meg a saj´at´ert´ekek egy k¨ ozel´ıt˝ o ´ert´ek´et abban az esetben, ha a m´atrix elemei k¨oz¨ott k¨ ozel´ıt˝ o numerikus ´ert´ekek is szerepelnek: 4 1 Q Q) >QN FQM {9.97083, -0.970832}
Szimb´ olumot tartalmaz´o m´atrix saj´ at´ert´ekeit is meghat´arozhatjuk: 4 1 B C B {-I a, I a}
Saj´ atvektorok kisz´amol´as´an´ al az
f¨ uggv´eny szint´en a bemen˝o adatok szintaxis´ at´ol f¨ ugg˝ oen v´ alasztja meg a ki´ert´ekel´es szimbolikus (pontos) vagy numerikus (k¨ ozel´ıt˝ o) m´odj´ at. (Az 2 ) f¨uggv´eny a saj´at´ert´ekeket ´es a saj´atvektorokat is megadja.) P´eld´ aul: 4 1! Q Q) >QN FQM {{-0.361441, -0.932395}, {-0.842853, 0.538144}}
3.8. Line´aris algebra
299
4 1! # {{1, 3, 2}, {1, 0, 1}, {2, 1, 0}}
4 1! # {{1, 0, 1}, {1, 1, 0}, {0, 0, 0}}
Az F m´atrixnak egyetlen h´ aromszoros saj´at´ert´eke van, ennek algebrai multiplicit´ asa teh´at 3. Az ehhez tartoz´o line´ arisan f¨ uggetlen saj´ atvektorok sz´ama, azaz a saj´at´ert´ek geometriai multiplicit´asa azonban 2. A harmadik p´eld´ aban figyelj¨ uk meg azt, hogy a Mathematica ezt a t´enyt nulla vektor ki´ır´ as´aval jelzi.
3.8.8. M´ atrix felbont´ asa M´ atrix felbont´ as´ahoz ´es ´altal´ anos´ıtott (vagy Moore–Penrose-f´ele) inverz´enek meghat´ aroz´as´ahoz az al´abbi bels˝ o f¨ uggv´enyek a´llnak rendelkez´es¨ unkre:
1 W 7 !7 0
97 687 6V
Felhaszn´ alhatjuk m´eg a &348 =)3 programcsomag
48 =)7 f¨ uggv´eny´et, valamint a &3: 3 programcsomag
! f¨ uggv´eny´et is. A fentiek k¨ oz¨ ul r´eszletesebben csak a t´eglalapm´atrixokra alkalmazhat´ o
6V bels˝o f¨ uggv´enyt tanulm´ anyozzuk, amely m´ atrix szingul´ aris felbont´ as´ at szolg´altatja.
300
3. Fejezetek a matematik´ab´ ol
Legyen n, m ∈ N (n ≤ m), ´es tekints¨ unk egy A ∈ Cn×m m´atrixot: # B B C B B
Jel¨olje A∗ az A m´atrix transzpon´ altj´ anak a komplex konjug´ altj´ at: #! A W
# {{1, 0, 1}, {0, 1, 1}, {1, -1, 0}, {1, 0, 1}}
´es r az A m´atrix rangj´ at: % @ " !
# 2
Ismeretes, hogy A-hoz l´etezik olyan U ∈ Cr×n ,
D ∈ Cr×r ,
valamint
V ∈ Cr×m
m´atrix, amelyre a k¨ ovetkez˝ok teljes¨ ulnek: atrix nul• a D m´atrix diagon´ alis, ´es f˝oa´tl´ o j´ aban az AA∗ hermitikus m´ l´ at´ ol k¨ ul¨ onb¨ oz˝o (teh´ at pozit´ıv) saj´ at´ert´ekei ´allnak (Ezeknek a n´egyzetgy¨okei A szingul´ aris ´ert´ekei.); • az U ´es a V m´atrix sor-ortonorm´ alt; • A = U ∗ DV . as eredm´enye a fenti felt´eteleket kiA 6V ** ,, utas´ıt´ el´eg´ıt˝ o U , D ´es V m´atrixot (ebben a sorrendben) tartalmaz´ o lista. A D diagon´ alis m´ atrixot a program csak a f˝ o´atl´ oban lev˝ o elemek ki´ır´ as´aval jelzi. Felh´ıvjuk a figyelmet arra, hogy a f¨ uggv´eny argumentum´ aba az A m´atrix egy k¨ozel´ıt˝ o numerikus ´ert´ek´et (l´asd a 3.1.3. pontot)´ırtuk be. Ez a f¨ uggv´eny ugyanis csak k¨ ozel´ıt˝ o numerikus ´ert´ekeket tartalmaz´o m´atrix felbont´ as´at adja meg. ´ ıtsuk most el˝ All´ o a fenti A m´atrix egy szingul´ aris felbont´ as´at (A D-t a 7 v´altoz´oval fogjuk jel¨olni.): *$ " 8 # -16 {{{-0.707107, 1.51097 10 , -0.707107}, {0.408248, -0.816497, -0.408248}}, {2.23607, 1.73205}, {{-0.632456, -0.316228, -0.316228, -0.632456}, -16 {-1.12989 10 , -0.707107, 0.707107, -17 -8.09818 10 }}}
3.8. Line´aris algebra
301
A t´enyez˝oket ebb˝ ol ´ıgy v´ alaszthatjuk ki: *$
D D + *$
8 *$
Ellen˝ orizz¨ uk a kapott eredm´enyt: 3 A W
Q D Q 8 A@ # 3 True
A 6V f¨ uggv´eny numerikus m´odszerek felhaszn´al´ as´aval hat´ arozza meg a szingul´aris felbont´ ast. A v´egeredm´eny ´ert´ekes jegyeinek sz´am´at a opci´oval ´es az bels˝o f¨ uggv´ennyel (l´asd a 3.1.3. pontot) szab´alyozhatjuk. P´eld´ aul ´ıgy: " 8 # >B
Komplex elem˝ u t´eglalap alak´ u A ∈ Cn×m m´atrix a´ltal´ anos´ıtott (vagy Moore–Penrose-f´ele) inverz´et, azaz a (fenti jel¨ ol´eseket haszn´alva) az A+ := V ∗ D−1 U ∈ Cm×n m´atrixot ´ıgy kapjuk meg a Mathematic´ a ban:
0 * , Az al´ abbi p´elda mutatja, hogy itt pontos numerikus ´ert´ekekkel is dolgozhatunk: &'6 1 # 1 1 1 4 1 }, {{ , 0, }, {- , , 5 5 15 3 15 1 1 1 1 4 }} { , - , - }, { , 0, 15 3 15 15 15
3.8.9. Line´ aris programoz´ as A gyakorlat sz´amos olyan probl´em´at vet fel, amelyben val´ os ´ert´ek˝ u f¨ uggv´eny sz´els˝o´ert´ekhelyeit (optimumhelyeit) ´es az ezekben felvett f¨ uggv´eny´ert´eket (optimumot) kell meghat´ arozni. A matematika ´ altal´ anos m´ odszerek kidolgoz´ as´aval igyekszik v´ alaszt adni ilyen jelleg˝ u k´erd´esekre.
302
3. Fejezetek a matematik´ab´ ol
Ha a sz´oban forg´ o f¨ uggv´eny p´eld´ aul differenci´alhat´ o, akkor felhaszn´ alhatjuk az anal´ızis megfelel˝o eredm´enyeit. Ezekkel a m´odszerekkel sok esetben lok´ alis optimumokat tudunk egyszer˝ uen meghat´ arozni. A gyakorlat azonban glob´ alis (abszol´ ut) sz´els˝o´ert´ekek keres´es´et is ig´enyelheti. Az anal´ızis m´odszereivel ez t¨obb esetben nem egyszer˝ u feladat. Az alkalmaz´ asok szempontj´ab´ ol fontos feladatoszt´alyok eset´eben a glob´ alis sz´els˝o´ert´ek-probl´em´akat a line´ aris algebra m´odszereivel is vizsg´alhatjuk. Ezek k¨ oz¨ ul a legegyszer˝ ubb feladatt´ıpusnak, a line´ aris programoz´ as feladat´ anak megold´as´ahoz ny´ ujtanak seg´ıts´eget a Mathematica al´ abbi f¨ uggv´enyei:
4 # 4 #
0
A line´ aris programoz´ as ´altal´ anos feladat´anak l´enyege az, hogy az Rn t´er bizonyos r´eszhalmaz´an ´ertelmezett val´os ´ert´ek˝ u line´ aris f¨ uggv´eny abszol´ ut sz´els˝o´ert´ekeit keress¨ uk. A sz´ oban forg´ o f¨ uggv´eny ´ertelmez´esi tartom´any´ at a v´ altoz´okra vonatkoz´ o egyenl˝ otlens´egrendszerrel adjuk meg. Pontosabban: legyen adott az n, az m, az r1 ´es az r2 (r1 < r2 < m) term´eszetes sz´am, olje D az az A = (aij ) ∈ Rm×n m´atrix, a b ∈ Rm ´es a c ∈ Rn vektor. Jel¨ at, amelyekre teljes¨ ulnek a Rn t´er azon x = (x1 , · · · , xn ) pontjainak halmaz´ k¨ ovetkez˝o felt´etelek: (j = 1, 2, · · · , n), 0 ≤ xj n aij xj ≤ bi (i = 1, 2, · · · r1 ), j=1 n j=1 n
aij xj = bi
(i = r1 + 1, r1 + 2, · · · r2 ),
aij xj ≥ bi
(i = r2 + 1, r2 + 2, · · · m).
j=1
Hat´arozzuk meg az L : D −→ R,
L(x) :=
n
cj xj
j=1
f¨ uggv´eny abszol´ ut sz´els˝o´ert´ekhelyeit ´es az itt felvett f¨ uggv´eny´ert´ekeket. A D defin´ıci´ oj´ aban szerepl˝ o 0 ≤ xj felt´eteleket nem kell a programmal k¨ ul¨ on k¨ oz¨olni. Alap´ertelmez´esben nemnegat´ıv koordin´ at´aj´ u pontok k¨ or´eben keresi a megold´ast.
3.8. Line´aris algebra
303
Minimum keres´es´ere vonatkoz´o feladatot ´ıgy oldhatunk meg: A ' + G ( C+ G ( + G ( L + G ( J + ( 9 9 { , {x -> , y -> 0}} 2 2
Maximumot pedig ´ıgy hat´ arozhatunk meg: A '+ + G ( C+ G ( + G ( L + G ( J + ( {7, {x -> 2, y -> 5}}
Figyelmeztet˝o u ¨zenetet kapunk akkor, ha a vizsg´ alt f¨ uggv´eny ´ertelmez´esi tartom´any´ at megad´o felt´etelek az u ¨ res halmazt hat´ arozz´ak meg: A '+ + + + J + ConstrainedMax::nsat: Specified constraints cannot be satisfied.
Megjegyezz¨ uk m´eg azt is, hogy a Mathematica fenti f¨ uggv´enyeinek m´aaci´ os jelet is haszsodik argumentum´ aban a > (?) jel helyett a > (?) rel´ ´ n´ alhatjuk. Erdemes megfigyelni, hogy a program hogyan kezeli az ilyen feladatokat: A '+ + + + {1, {x -> 1}]
A 0 f¨ uggv´enyt is az el˝ oz˝oekben ismertetett feladatt´ıpus megold´ as´ahoz haszn´ alhatjuk. Itt csak a probl´em´at meghat´aroz´o m´atrixot ´es vektorokat kell megadnunk. A
0*.
. &,
utas´ıt´ as eredm´enye az L(x) := c, x,
x ∈ {x ∈ Rn : x ≥ 0, A · x ≥ b}
ut minimumhely´et tartalmaz´o lista. f¨ uggv´eny (c ∈ Rn adott vektor) abszol´ % &00 C C L 9 { , 0} 2
304
3. Fejezetek a matematik´ab´ ol
3.9. Sz´ amelm´ elet A sz´amelm´elet a matematik´anak egy olyan ter¨ ulete, amely r´eg´ota komoly feladatokat ad a sz´ am´ıt´ astechnik´ anak: feladatainak megold´ asa ´altal´ aban igen hossz´ u id˝ ot vesz ig´enybe. M´ asr´eszt ez a t´eny a hat´ekony algoritmusok fejleszt´es´ere k´enyszer´ıt˝ o er˝ovel hat. A Mathematic´ a ban szerepl˝ o sz´amelm´eleti algoritmusok t¨obb ´ertelemben uggv´eny is val´ osz´ın˝ us´egi jelleg˝ uek. Az egyik lehet˝os´egre p´elda a 0 f¨ ´ert´ekeit (, ha az argumentum pr´ımsz´am, egy´ebk´ent) kisz´amol´o algoritmus, amely kis sz´amokra biztosan, nagyobbakra nagy val´ osz´ın˝ us´eguls˝ o gel ad j´ o v´ alaszt. Az egy t´enyez˝ot lev´alaszt´o 4# k¨ o v´ af¨ uggv´eny (&8)34#3) viszont biztosan j´ laszt ad, de ezt (amint az a v´alasz megad´as´ahoz sz¨ uks´eges id˝ otartamb´ ol is kit˝ unik) v´eletlen algoritmussal teszi. A sz´amelm´elet ´es az algoritmusok szempontj´ab´ ol is igen hasznos Wagon [87] k¨ onyve. V´eg¨ ul m´eg egy ´altal´ anos megjegyz´es: nehezen v´ alaszthat´o sz´et a sz´amelm´elet a diszkr´et matematik´at´ol. Ez azzal j´ ar, hogy esetenk´ent a´tfed´esek fordulnak el˝ o, illetve esetenk´ent egyes f¨ uggv´enyeket nem azon a helyen ismertet¨ unk, ahov´ a azok a program k´esz´ıt˝ oinek sz´and´ekai szerint ker¨ ultek. • Sz´ amok alakjai A sz´amok k¨ ul¨ onf´ele alak´ u reprezent´ al´ as´ar´ ol m´ar sz´oltunk a 3.1.3. szakaszban. A sz´ amelm´elet els˝osorban eg´esz sz´amokkal foglalkozik. Azt, hogy az x sz´am eg´esz-e, t¨obbf´elek´eppen d¨ onthetj¨ uk el. Ha az, akkor *, ´ert´eke , 1 *, ´ert´eke pedig lesz. Ha azt akarjuk kik¨otni, hogy a tov´ abbiakban x eg´esz sz´am legyen, akkor ezt ´ırhatjuk: +- 6 ? +
Ett˝ ol m´eg x feje nem lesz , ha nem adunk neki ´ert´eket: 7' + Symbol
Ha pedig egy val´ os sz´amb´ ol eg´eszet akarunk csin´ alni, akkor a 4. . 9 kerek´ıt˝o f¨uggv´enyek valamelyik´et haszn´alhatjuk.
3.9. Sz´amelm´elet
305
3.9.1. Sz´ amrendszerek A k¨ ul¨ onb¨ oz˝o sz´amrendszerek k¨oz¨otti a´tv´ alt´ as igen k¨onnyen v´egezhet˝o el.
L *++F. (, megadja a t´ızes sz´amrendszerbeli 113 sz´am kettes sz´amrendszerbeli alakj´ at. Az F A0F16 (tizenhatos sz´amrendszerbeli) sz´amot decim´alisba pedig egyszer˝ u (az al´ abbi szintaxisnak megfelel˝ o) beg´epel´es eredm´enyek´ent kapjuk: NII*B* 64015
Sokszor sz¨ uks´eg¨ unk van az n eg´esz sz´am sz´amjegyeinek list´aj´ ara. Ezt uggv´eny, a 97 *, pedig szolg´altatja az 7 *, f¨ megadja az x val´ os sz´am sz´amjegyeit, valamint a tizedespont el˝ott a´ll´ o sz´amjegyek sz´am´at. Ha ennek a k´et f¨ uggv´enynek m´ asodik argumentumk´ent a b sz´amot is megadjuk, akkor az adott sz´ am b alap´ u sz´amrendszerbeli alakj´ anak anal´ og o¨sszetev˝oit ( jegyeit”) kapjuk. ” Tanuls´ agos ´atv´ altani arab sz´amokat r´ omai sz´amm´a. L´ep´esenk´ent oldjuk meg a feladatot. Bizonyos oszt´opontok” fontos szerepet j´ atszanak az ´atv´ alt´ asn´ al; el˝ osz¨or ” ezek halmaz´at ´ep´ıtj¨ uk fel: E1 &Y B E B $ E1 L E > E ) E B
Most ´ all´ıtsuk el˝ o az oszt´opontoknak megfelel˝o r´ omai sz´amokat: 0 " A D AD A 3A % 3% 3 63 8 68 6
F¨ uggv´eny¨ unk neve 9 lesz. Egyszerre akarjuk megadni az ¨osszes oszt´ opontban felvett ´ert´ek´et, ehhez kell, hogy list´ara lehessen alkalmazni: " # $ E0 % $ @' " D(' E0 $ 0
A defin´ıci´ o l´enyeges r´esz´et rekurz´ıve adjuk meg: * +, B+)BBB - "! $ .+/ E0 +,6 B+)BBB - "5 !0
E0 * + E0 +C* +
306
3. Fejezetek a matematik´ab´ ol
Alkalmazzuk f¨ uggv´eny¨ unket 2 n´eh´ any hatv´ any´ ara: E0
$ I B
{I, II, IV, VIII, XVI, XXXII, LXIV, CXXVIII, CCLVI, DXII, MXXIV, MMXLVIII, toRoman[4096]}
Ezek ut´ an az Olvas´ o megpr´ ob´ alkozhat azzal is, hogy r´ omai sz´amokat alak´ıt arab sz´amokk´a.
3.9.2. Oszthat´ os´ ag Az oszthat´os´aggal kapcsolatos k´erd´esek vizsg´alat´ ahoz leggyakrabban a k¨ ovetkez˝o f¨ ugv´enyeket haszn´aljuk:
7 :47 :47 9
4# #
0B#
Az *, kifejez´es ´ert´eke , ha n p´ aros sz´am, az
*, kifearatlan sz´am. jez´es´e pedig akkor , ha x p´ # *. , megadja az m sz´am oszt´asi marad´ek´at n-nel val´o oszt´as anyados eg´esz r´esz´et. Az ut´ an, *. , pedig a h´ 0
? 0
G ' 0
kifejez´es ´ert´eke minden konkr´et m ´es n eg´esz sz´am mellett . Ugyanez ´all az 0
OAD 0
%A 0
rel´ aci´ ora, ugyanis :47 a legnagyobb k¨ oz¨os oszt´ot (greatest common divisor), 4# pedig a legkisebb k¨oz¨os t¨obbsz¨or¨ost (least common multiple) adja meg (nemcsak k´et, hanem ak´arh´ any argumentum eset´ere). ´Igy teh´ at m ´es n pontosan akkor relat´ıv pr´ım, ha OAD 0
1
Ha az ab hatv´ any n-nel val´ o oszt´asi marad´ek´at akarjuk kisz´ am´ıtani, akkor uk meg, hanem (ab kisz´am´ıezt nemcsak # *C&. , seg´ıts´eg´evel tehetj¨ t´ asa n´elk¨ ul, teh´ at gyorsabban) ´ıgy is: 0B# *. &. ,.
3.9. Sz´amelm´elet
307
0 ' BIBBBBB F
0 &Y' B BBBBB F -14 {{33.285 Second, 2},{2.59237 10 Second, 2}}
Negat´ıv eg´esz b sz´amokkal pedig modul´ aris inverz meghat´aroz´as´ara haszuggv´eny, ilyenkor ugyanis olyan k sz´amot ad eredn´ alhat´ o a 0B# f¨ ul: m´eny¨ ul (ha van ilyen), amelyre # *=$C&. ,+ teljes¨ &Y' C F 5
´ val´ Es oban: ' : F 1
Az :47*. , kifejez´es ´ert´eke egy olyan {d, {r, s}} lista, amelynek els˝o eleme a d legnagyobb k¨ oz¨os oszt´o, tov´ abb´ a d = rm + sn. uggv´eny, amely (Lenstra, Tov´abbi a´ltal´ anos´ıt´ ast jelent a 9 f¨ Lenstra ´es Lov´asz algoritmusa [50] alapj´an) eg´esz koordin´ at´aj´ u vektorok list´aj´ ahoz speci´alis tulajdons´ ag´ u b´ azist a´ll´ıt el˝ o az eg´esz sz´amok f¨ ol¨ ott: % !E'! B B )> B B )> B B )> {{-1, 0, 1, 9}, {9, 1, -10, 0}, {85, -143, 59, 6}}
A majdnem p´ arhuzamos, hossz´ u vektorokb´ ol majdnem mer˝ oleges, r¨ovid vektorokb´ ol a´ll´ o b´ azist kaptunk. Egydimenzi´ os vektorokhoz a f¨ uggv´eny — nem t´ uls´ agosan meglep˝o m´odon — a legnagyobb k¨ oz¨os oszt´ot rendeli: % !E'! )M B {{24}}
Ha az n sz´am pozit´ıv oszt´oinak list´a j´ at akarjuk megkapni, ezt a 72
*, utas´ıt´as kiad´as´aval ´erhetj¨uk el.
Amennyiben egy nagy” binomi´ alis egy¨ utthat´ o adott pr´ımsz´am melletti ” oszt´asi marad´ek´at akarjuk kisz´ amolni, akkor a term´eszetesen ad´od´ o megold´ as helyett haszn´alhatjuk a &8)3L3 csomag megfelel˝o utas´ıt´ as´at; ez ´altal´ aban (de nem mindig) gyorsabban vezet c´elhoz: 0$ @(KS 0K 0 ' S 0 BBB>BBL
0 S 0' BBB>BBL {{1.483 Second, 0}, {0.33 Second, 0}}
308
3. Fejezetek a matematik´ab´ ol
J´ o tudni, hogy ugyanitt tal´ alhatunk egy L ´es egy 2 f¨uggv´enyt is. • Polinomok Polionomok t´enyez˝ore bont´ asa, oszthat´os´aggal kapcsolatos vizsg´alata — az al´ abbi f¨ uggv´enyek felhaszn´ al´ as´aval — hasonl´ oan v´egezhet˝o, mint az eg´esz sz´amok´e:
6 6 0):47
0)4# 0)# 0) 0) 0)9 9
A fenti f¨ uggv´enyek n´emelyik´evel m´ar foglalkoztunk a 3.2.1. pontban, most n´eh´ any tov´ abbi p´eld´ at mutatunk: &( 0E0 ' +I + G + &( 0? +I + G + {1, -1 + x}
Az eredm´enyek term´eszetesen f¨ uggnek att´ ol, hogy mit tekint¨ unk f¨ uggetlen v´ altoz´onak: &( 0E0 ' + G ( + C ( + &( 0? + G ( + C ( ( {2y, 2x}
A legnagyobb k¨ oz¨os oszt´ot ´ıgy kaphatjuk meg: &( 0OAD C+I G+ G+ C+ G+ G+ (1 - x) (2 + x)
Hat´arozzuk meg egy polinom egy¨ utthat´ oit modulo 2: &( 0' 4+ ' G+IN 1 + x
2
+ x
4
+ x
6
Bontsuk t´enyez˝okre az eredm´enyt az eg´esz sz´amok f¨ ol¨ ott:
3.9. Sz´amelm´elet
309
! : 2 4 (1 + x )(1 + x )
Ha a polinomok egy¨ utthat´ oit modulo 2 tekintj¨ uk, akkor a felbont´ ast tov´abb folytathatjuk: ! : ' CJ 6 (1 + x)
(V´eletlen, hogy az eredeti polinomot kaptuk vissza?) uggv´eny csak szorz´asokat ´es kivon´asokat v´egez, m´ıg A 0)# f¨ azza az al´abbi eredm´ea 0)9 oszt´asokat is; ez magyar´ nyeket: &( 0' +I + G &( 0E0 ' +I + G + 2 1 {x , } 4
3.9.3. L´ anct¨ ortek Tetsz˝oleges val´os sz´amot l´anct¨ortekkel k¨ ozel´ıthet¨ unk a
&8)34 3 k¨ onyvt´ ar f¨ uggv´enyeivel. Az x val´ os sz´am l´ anct¨ ortbe fejt´ese: 1 . a0 + 1 a1 + a2 + . . . alis h´ anyadosok. Racion´ alis sz´amoknak v´eAz itt szerepl˝o ai sz´amok a parci´ ges sok parci´alis h´ anyadosuk van, m´ıg irracion´ alis sz´amok l´anct¨ortbe fejtett arozott pn /qn racion´ alis alakja v´egtelen. Az a0 , . . . an sz´amok ´altal meghat´ sz´am az n-edik szelet. A szeletek bizonyos ´ertelemben egy adott val´ os sz´am kis nevez˝o j˝ u legjobb racion´ alis k¨ ozel´ıt´es´et szolg´altatj´ ak: 0$ @(KA '! K A '! "5 )LL >B B ContinuedFractionForm[{22, 2, 1, 21, 1, 2, 44, 2, 1, 21, 1, 2, 44, 2, 1, 21, 1, 2, 44, 2, 1, 21, 1, 2, 44, 2, 1, 21, 1, 2}]
310
3. Fejezetek a matematik´ab´ ol
Az eredm´eny tipikus: pozit´ıv eg´esz sz´am n´egyzetgy¨ok´enek l´anct¨ort alakj´ aban ism´etl˝ od˝ o peri´ odusok vannak. (Bizony´ıtsuk be!) ´ hogyan ´ırjuk f¨ Es ol mag´at a l´ anct¨ortet? P´eld´ aul ´ıgy: ! +, , - 7'0 G+ ! , - G ' ! % E E1 E ! $ ! ' * 1 a + 1 b + 1 c + 1 d + 1 e + f ! A '! "5 N
1
1 +
1
2 +
1
2 + 2 +
1 2 +
1 2
Tipogr´ afiai szempontb´ ol a l´ anct¨ortek legk´enyelmesebb jel¨ol´ese: 1 1 1 ... . a0 + a1 + a2 + +an Megpr´ ob´ alhatjuk ezt is el˝ o´ all´ıtani programmal. Fejts¨ uk l´ anct¨ortbe az aranymetsz´est megad´o ar´ anyt ´es sz´am´ıtsuk ki a k¨ ozel´ıt˝ o t¨ orteket. Egy lehets´eges megold´as: A '! O' E )B B ContinuedFractionForm[{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}]
Teh´at az ¨osszes szerepl˝o egy¨ utthat´ o ´ert´eke 1.
$ 0 A '! 0
$ 3 5 8 13 21 34 55 89 144 , , , , , } {1, 2, , , , 2 3 5 8 13 21 34 55 89
Az is j´ol l´ athat´ o, hogy a t¨ ortek — amelyek a szomsz´edos Fibonacci-sz´amok h´ anyadosai — tartanak az aranymetsz´es ´ert´ek´ehez:
3.9. Sz´amelm´elet
311
: C O' E {-0.618034, 0.381966, -0.118034, 0.0486327, -0.018034, 0.00696601, -0.00264937, 0.00101363, -0.00038693, 0.000147829, -0.0000564607}
Racion´ alis sz´ammal val´o k¨ ozel´ıt´est v´egez a 9' f¨ uggv´eny, amely erre a c´elra a l´ anct¨orteket haszn´alja. F B 0.428571428571428571428571428571
megadja 3/7 ´ert´ek´et 30 jegy pontoss´ aggal. Ha ezut´ an adjuk ki a 92 '*TT, parancsot, akkor az el˝oz˝o ´ert´ek racion´alis k¨ozel´ıt´esek´ent ´eppen 3/7-et kapunk. E 4 2.71828
a szok´asos 6 jegynyi pontoss´ aggal szolg´altatja az e sz´am racion´alis k¨ ozel´ıt´es´et (´es nem tal´al jobbat, mint e kerek´ıtett alakja). E 4 BIC) 193/71
olyan k¨ ozel´ıt´est ad, amelynek hib´ a ja nem nagyobb, mint 10−4 . Ha a hibahat´ art 0-nak v´ alasztjuk, akkor csak a bemen˝ o ´ert´ek pontoss´aga korl´ atozza a racion´ alis k¨ ozel´ıt´es pontoss´ag´ at. Javasoljuk az Olvas´ onak, hogy hat´ arozza meg az e−2 sz´am l´anct¨ortekkel val´ o k¨ ozel´ıt´es´et j´ on´eh´ any (p´eld´ aul 40) jegyre. Az eredm´eny azt sugallja, hogy az egym´as ut´ an k¨ ovetkez˝o sz´amok: 1, 2, 1, 1, 4, 1, 1, 6, 1, · · ·, 1, 2n, 1. Ez a megd¨obbent˝ o a´ll´ıt´ as Perron t´etelek´ent ismert. ´ Erdemes m´eg belen´ezni a &8)39'3 programcsoulmagba, ahol az 559' ´es a 0K9' k¨ s˝o f¨ uggv´enyt tal´ aljuk; tov´ abb´ a kipr´ ob´ alni a &8)39'3 programcsomag 9' f¨ uggv´eny´et is.
3.9.4. Pr´ımsz´ amok. A sz´ amelm´ elet alapt´ etele A pr´ımsz´amokkal kapcsolatos vizsg´alatokban haszn´alt bels˝o f¨ uggv´enyek:
0. 00. 0
312
3. Fejezetek a matematik´ab´ ol
A 0 *, kifejez´es ´ert´eke , ha n pr´ımsz´am, egy´ebk´ent pedig 2 . (Nagy sz´amok eset´en el˝ofordulhat, hogy ezt a kifejez´est ki tudja ´ert´ekelni a program, annak ellen´ere, hogy n-et t´enyez˝okre bontani nem tudja.) A k-adik pr´ımsz´amot adja meg 0*=,, m´ıg 00*, az x val´ os sz´amn´ al nem nagyobb pr´ımsz´amok sz´am´at adja meg. Tanulm´ anyozhatjuk a pr´ımsz´amok elhelyezked´es´et:
'', - % &
$ = &0 = = ''
Az al´ abbi defin´ıci´ oval megadott f¨ uggv´enyt tal´ an m´eg ´erdekesebb: * '', - % &
$ = % = &0& == = '' * >BB 1.26 1.24 1.22 100
200
1.18
300
400
500
1.16 1.14
1.12
Jones ´es munkat´ arsai [37] szerint a pr´ımsz´amok halmaza megegyezik azon pozit´ıv eg´eszek halmaz´aval, amelyeket az eg´esz koordin´ at´aj´ u pontokban ´ert´ekk´ent felvesz az al´abbi 25-¨ odfok´ u 26-v´ altoz´os polinom: 9 , $, !, ', , *, , @, , W, =, , 0, , , , 5, , , , , 1, Y, +, (, ,- =GCY G@GWC5IC =GG=G@GWG@CI C G G5GCICN=GI =G GIGC*II CI GGIGCIICIC(IGC+II CNI (I)ICGCII CGIICIC G)' (IGC+G! II C GG1C(ICICIGC0IIC G=GCCI C GC CG$ GC IC CC0I C5G(C CG GC IC CC+I CG C G C ICC 0I
Ellen˝ orizz¨ uk az a´ll´ıt´ ast n´eh´ any helyen:
3.9. Sz´amelm´elet
313
D & $ E '0 6 CB B N & 1W@ 9 6* 1W@JB & &0? 1W@ B
A &8)3&8) 3 programcsomag 2 0 f¨uggv´enye az argumentum´at k¨ovet˝o legkisebb pr´ımsz´amot adja meg. Az n sz´am pr´ımt´enyez˝os felbont´ as´at a *, olyan lista form´a j´ aban adja meg, amelynek elemei az n felbont´ as´aban szerepl˝ o pr´ımekb˝ ol ´es azok kitev˝o j´eb˝ ol a´ll´ o list´ak. H´ uszn´ al kevesebb jegy˝ u sz´amokn´ al az utas´ıt´ as biztosan eredm´enyre vezet. Nagyobb sz´ amokn´ al egy alkalmas opuk, hogy csak egyetlen ci´o-be´all´ıt´ assal (42? ) el´erhetj¨ t´enyez˝ot keressen meg a program, s ezzel esetleg t¨obb l´ep´esben elv´egezhetj¨ uk a t´enyez˝okre bont´ ast. A Gauss-eg´eszek feletti (egy´ebk´ent szint´en egy´ertelm˝ u) felbont´ ast egy opci´o megfelel˝ o be´all´ıt´ as´aval kaphatjuk meg:
*. : 2?, (A program a nem val´ os t´enyez˝oknek csak a fel´et adja meg, a t¨ obbit az el˝o jelek megfelel˝o megv´altoztat´ as´aval kapjuk meg, m´egpedig komplex konjug´ altak k´epz´es´evel.) ! 6 O 6 CJ {{-I, 1}, {1 + I, 2}}
Tegy¨ uk fel, hogy egy nagy sz´ amr´ol akarjuk meg´allap´ıtani, hogy milyen uggv´enyt. Ha kider¨ ul, t´enyez˝okb˝ ol a´ll. Els˝ o l´ep´esben haszn´aljuk a 0 f¨ hogy a sz´am nem pr´ım, akkor m´ asodik l´ep´esben alkalmazhatjuk a 2 &8)34#3 k¨onyvt´ar 4# f¨uggv´eny´et: 0$ @(K! 6 4AK &0? INF G False ! 6 4A INF G 3
Alkalmazzuk ugyanezt a f¨ uggv´enyt k´et nagy pr´ımsz´am szorzat´ara: &0 BI> &0 BIN 20127115513867
&0? False
314
3. Fejezetek a matematik´ab´ ol ! 6 4A 1299709
A pr´ımsz´amokkal kapcsolatos vizsg´alatokhoz a k¨ovetkez˝o k¨ uls˝ o f¨ uggv´enyek tal´ alhat´ ok a &8)30 3 programcsomagban:
0 45 0 4548= 0&0 a &8)3&8) 3 programcsomagban pedig a 0.
3.9.5. Sz´ amelm´ eleti f¨ uggv´ enyek Az eg´eszr´esz ´es a t¨ortr´esz f¨ uggv´eny a sz´amelm´eletben is fontos szerepet j´ atszik. Kiindul´ ask´ent v´ alaszoljuk meg azt a j´ol ismert k´erd´est, hogy 100! h´ any null´ ara v´egz˝odik. K¨ onnyen ´ırhatunk ezut´ an f¨ uggv´enyt annak meghat´ aroz´as´ara, hogy az n! sz´am t¨orzst´enyez˝os felbont´ as´aban a p pr´ımsz´am milyen kitev˝ovel szerepel: * , , - = 1 , , - # (
& +'& % * . / = 1 BB > 24
Az n sz´am pozit´ıv oszt´oinak list´aj´ at 7 *, ´all´ıtja el˝ o, teh´at n (pozit´ıv) oszt´oinak sz´am´at p´eld´ aul ´ıgy hat´ arozhatjuk meg: ' , - % @ D1
Ugyanerre a c´elra egy m´asik megold´as: ' , - #
(
0 ! 6
G
A harmadik megold´ ast pedig ' , - D1"0 B
adja, ugyanis 7 6*=. , az n term´eszetes sz´am pozit´ıv oszt´oi k-adik hatv´ anyainak o¨sszege. A pozit´ıv oszt´ok o¨sszege teh´at 7 2 6*+. ,. A Moebius-f´ele µ f¨ uggv´eny 0 ´ert´eket vesz fel azokon az n sz´amokon, amelyek oszthat´ok egy 1-n´el nagyobb sz´ am n´egyzet´evel; azokon a sz´amokon
3.9. Sz´amelm´elet
315
pedig, amelyek n´egyzetmentesek, ´ert´eke (−1)k , ahol k az n sz´am t¨orzst´enyez˝oinek sz´ama. (Speci´alisan teh´at µ(1) = 1.) Egyszer˝ uen alkalmazhat´ o ez a f¨ uggv´eny a n´egyzetmentess´eg vizsg´alat´ ara: Z( 0 , - $ ; B
(A Mathematic´ a ban az ilyen f¨ uggv´enyeket szok´as egysorosk´ent eml´ıteni, b´ ar itt a r¨ ovids´eg oka nem valamilyen m´ely programoz´ asi ismeret, hanem valamilyen matematikai ´ all´ıt´ as.) A n´egyzetmentess´eg ellen˝orz´es´ere egy term´eszetesebbnek t˝ un˝ o defin´ıci´ ot ´ıgy kaphatunk: ( 0 ,- +
! 6
J B
V´eg¨ ul megeml´ıtj¨ uk, hogy a &8)3&8) 3 csomagban k´eszen is megtal´alhat´ o a 6 f¨ uggv´eny. Itt jegyezz¨ uk meg, hogy az anal´ızis Newton–Leibniz-f´ele alapt´etel´enek sz´amelm´eleti megfelel˝oje a Moebius-f´ele megford´ıt´ asi (inverzi´ os) formula, amely szerint, ha f (d), ∀n ∈ N g(n) = d|n
akkor ∀n ∈ N
f (n) =
µ(d)g(n/d).
d|n
(Ekkor azt mondjuk, hogy a g f¨ uggv´eny f ¨ osszegz´esi f¨ uggv´enye.) Az Euler-f´ele ϕ f¨ uggv´eny megadja a 1, 2, . . . , n sorozat n-hez relat´ıv pr´ım ´ ekeit az 2 elemeinek sz´am´at minden pozit´ıv eg´esz n sz´am eset´ere. Ert´ 08 bels˝o f¨uggv´eny sz´amolja ki. Sz´ amos tov´abbi hasznos sz´amelm´eleti f¨ uggv´eny tal´ alhat´ oa
&8)3&8) 3 programcsomagban, p´eld´ aul:
48 9 8 4 4 & 9 Ezek n´emelyik´evel m´eg fogunk tal´ alkozni.
09 6# 6
316
3. Fejezetek a matematik´ab´ ol
3.9.6. Kongruenci´ ak • Els˝ ofok´ u kongruenci´ ak Az ax ≡ 1 (mod m) alak´ u kongruenci´ akat m´ar megoldottuk, a megold´ ast 0B# *. 2+. , adja. Az ax + by = c line´aris k´etv´altoz´os diophanc c toszi egyenlet egy megold´as´at - . / adja, ha d
d
4+ ''OAD $ {d, {r, s}}
Mivel az ax ≡ b (mod m) els˝ofok´ u egyismeretlenes kongruencia azt jelenti, hogy l´etezik olyan y ∈ Z, amellyel ax − b = my, vagyis ax − my = b, ez´ert az ilyen kongruenci´ ak megold´as´at visszavezett¨ uk az el˝ oz˝o feladatra. • Els˝ ofok´ u kongruenciarendszerek (szimult´ an kongruenci´ ak) onyvt´ arban tal´ alhat´ o az A &8)3&8) 3 k¨ a k¨ uls˝ o f¨ uggv´eny (48 9 8), amely megadja azt a legkisebb sz´ amot, amelynek egy adott lista elemeivel vett oszt´asi marad´eka megegyezik egy m´asik adott lista elemeivel. Ha az els˝o lista elemei relat´ıv pr´ımek, akkor ilyen sz´am biztosan l´etezik. Haszn´ alat´ at a k¨ ovetkez˝o k¨ ozismert feladaton mutatjuk be. Karcsi Mikul´ as-zacsk´okat t¨ olt¨ ott meg di´ oval. Ha mindegyik zacsk´oba 9 darabot tett, akkor az utols´ oba csak 8 darab ker¨ ult, ha mindegyikbe 8 szemet tett, akkor az utols´oba 7 szem jutott, ha hetet tett egy-egy zacsk´ oba, akkor az utols´ oba 6 darab ker¨ ult, amikor hatos´ aval osztotta sz´et a di´ okat, akkor az utols´ oba 5 maradt. H´ any darab di´ oja volt Karcsinak, ha 600-n´ al kevesebb di´ ot sz´ant az aj´ and´ekoz´asra? (Ez a feladat el szokott hangzani sorba´all´ıtott o´lomkaton´akkal ´es k¨ ul¨ onf´elek´eppen u ¨ltetett gyerekekkel is.) 0$ @(K0$ @( ! K A@ E0 ' @0 N F M F M L 503
Mivel ' >B N F M L {5, 6, 7, 8}
ez´ert 503 t´enyleg j´o megold´as.
3.9. Sz´amelm´elet
317
• Magasabb fok´ u kongruenci´ ak, binom kongruenci´ ak Ezek megoldhat´ ok egy v´eges algoritmussal: be kell helyettes´ıten¨ unk egy mod m teljes marad´ekrendszer elemeit a kongruencia bal oldal´an a´ll´ o polinomba. Vannak egyszer˝ us´ıt´esi m´odszerek, p´eld´ aul binom kongruenci´ ak megu kongruenci´ at old´ as´ara. (Binom kongruenci´ anak az axk ≡ b (mod m) alak´ nevezz¨ uk. — Amint m´ ar eml´ıtett¨ uk, a b = 1 speci´alis eset megold´as´at 02 B# megadja.) Az a´ltal´anos eset l´atsz´olag nagyon egyszer˝uen kezelhet˝o: uggv´enynek megadhatjuk egyenletk´ent a modulus ´ert´ek´et, vagy a 6 f¨ assal el´erhetj¨ uk, hogy a program maga kea # 2?# opci´o-be´all´ıt´ ressen alkalmas modulust, amely mellett van az egyenletnek megold´asa: "1 >G+GF+IGF+IGN+I)G+I>B 'L + {{Modulus -> 19, x -> -18}, {Modulus -> 19, x -> -16}, {Modulus -> 19, x -> -12}, {Modulus -> 19, x -> -7}, {Modulus -> 19, x -> -1}} "1 +I G B +I G B + ' CJ ' {{Modulus -> 2, x -> -1}}
L´assunk egy p´eld´ at ellen˝orz´essel egy¨ utt: * +, (, +I G )+ G F "1 * + ( D * + ( + B + ' CJ ' {{Modulus -> 8059, x -> 1001}} * + ( D * + ( + Q : {{1003007022, 3006007}} ' : MB>L {{0, 0}}
• Kvadratikus reciprocit´ as A m´asodfok´ u kongruenci´ ak vizsg´alat´ ahoz haszn´ alatos Jacobi-f´ele ( m n ) szimaratlan pr´ımsz´am, b´ olumot W&6)&*., sz´amolja ki. Amikor n p´ akkor ´ert´eke a Legendre-f´ele szimb´ olumra specializ´al´ odik. A kvadratikus reciprocit´ asi t´etel szerint, ha p ´es q p´ aratlan pr´ımsz´amok, akkor p−1q−1 q p 2 . ( ) = ( )(−1) 2 q p
318
3. Fejezetek a matematik´ab´ ol
El˝ osz¨or oldjunk meg k´etf´elek´eppen egy kvadratikus kongruenci´ at: "1 +I ' + {{Modulus -> 11, x -> -6}, {Modulus -> 11, x -> -5}}
Val´ oban: ' NI 3 ' >I 3
A m´asik megold´asi m´od: 0$ @(K0$ @( ! K "5 ' 5
Ha a modulus nem pr´ımsz´am, akkor a 6 f¨ uggv´eny nem tal´ alja meg a megold´ast: "1 +I ' I + Roots::modp: Value of option Modulus -> 1331 should be a prime number. 2 {ToRules[Modulus == 1331 && Roots[x == 3, x, Modulus -> 1331]]}
A k¨ uls˝ o 6# f¨ uggv´eny ilyenkor is bev´alik: "5 ' I 578
Most tanulm´ anyozzuk a Legendre-szimb´olumot: ' E >CI > {0, 1, 4, 4, 1} 9!$"(0$ E >C > {0, 1, -1, -1, 1}
3.9. Sz´amelm´elet
319
3.9.7. Tov´ abbi fejezetek V´egezet¨ ul n´eh´ any tov´ abbi sz´amelm´eleti ´erdekess´egre h´ıvjuk fel a figyelmet. • A Collatz-f¨ uggv´ eny A Collatz-f´ele f¨ uggv´ennyel — amelynek ´ert´eke az 1 helyen 1, p´aros helyen az argumentum fele, p´aratlan helyen pedig az argumentum h´ aromszorosa plusz 1 — is k´ıs´erletezhet¨ unk, ugyanis t¨ obb helyen is megtal´alhatjuk. Az 34'3 programcsomagban tal´aljuk a 4' valamint a 6 f¨uggv´enyt, a 0 34'3 csomagban pedig a 4'. # ´es a 6 f¨ uggv´enyt. • Ramanujan A &8)39K3 programcsomagot teljes eg´esz´eben Ramanujan munk´ ass´aga induk´ alta. Ebben a k¨ ovetkez˝o f¨ uggv´enyeket tal´aljuk:
9K 9K786 9K:
9K8 9KY
• Sz´ ampart´ıci´ ok A sz´amelm´elet ´es a diszkr´et matematika nehezen sz´etv´ alaszthat´o ter¨ uletek, ez´ert nem meglep˝o, hogy az el˝obbi ir´ ant ´erdekl˝od˝ ok sz´amos hasznos ´es ul¨ onb¨ oz˝o ´erdekes dolgot fognak tal´ alni a 7 #8 programcsomag k¨ uben: k¨ onyvt´ araiban, p´eld´ aul a 34&3 elnevez´es˝
4 7 6& &5&
0 0 9 & &
320
3. Fejezetek a matematik´ab´ ol
3.9.8. Gyakorlatok ´ es feladatok 1. Hat´arozzuk meg az Avogadro-f´ele ´alland´ o karakterisztik´a j´ at ´es mantissz´a j´ at: ! K&@(! K 4+ #1'A {0.6022136699999999, 24}
2. Hat´arozzuk meg az n-edik sz´amjegy´et annak a sz´amnak, amelyet u ´gy kapunk, hogy egym´ as mell´e le´ırjuk a term´eszetes sz´amokat: * * , - # @ , - *
0 @ >B {1.483 Second, 3}
' * C 6 D
= = , - = # , - =
0 >B {0.824 Second, 3}
' = C 6 D
(A m´asodik f¨ uggv´eny nagyobb sz´ amokra gyorsabban sz´ amol.) u f¨ uggv´enyt, amely a utas´ıt´ as 3. ´Irjunk olyan = nev˝ eredm´eny´et a szok´ asos form´aban adja meg, teh´ at p´eld´ aul = ! 6 ) 3 2 · 3
4. Hasonl´ıtsuk o¨ssze az oszt´ok sz´am´at sz´amol´o h´ arom f¨ uggv´eny gyorsas´ag´ at. 5. Hat´arozzuk meg az x pozit´ıv val´ os sz´amhoz azokat a legkisebb p ´es q pozit´ıv eg´esz sz´amokat, amelyekre a p/q t¨ ort ε-n´ al kisebb hib´ aval k¨ ozel´ıti az x sz´amot: E & BIC./ E B M 22 22 355 355 355 355 104348 104348 , , , , , , , } {3, 7 7 113 113 113 113 33215 33215
3.9. Sz´amelm´elet
321
6. H´ any sz´amjegyet ´ırunk le, ha a pozit´ıv eg´eszeket 1-t˝ol 1996-ig bez´ ar´ olag fel´ırjuk 10-es sz´ amrendszerben? ´ Utmutat´ as. Nyilv´ an a´ltal´ anosabb feladatot old meg az al´abbi f¨ uggv´eny. =, $, - "0 % @ 6 D $ = . B/ L LL LLN {9, 189, 6877}
´ ıtsuk 7. Tegy¨ uk fel, hogy adott egy sz´ am b-alap´ u sz´amjegyeinek list´aja. All´ el˝o a sz´am t´ızes sz´amrendszerbeli alakj´ at! ´ Utmutat´ as. J. Adams egysorosa: ' 0$ , $, - ' .R$G./ B ' 0$ > F 527
2 ≤ b ≤ 10 eset´en ´ertelmes bemen˝o adatokra m˝ uk¨ odik. Milyen ellen˝ orz´esre lenne sz¨ uks´eg? Hogyan lehetne kiterjeszteni 10 < b ≤ 36 eset´ere? 8. ´Irjunk olyan f¨ uggv´enyt, amely el˝o´all´ıtja az x ∈ [0, 1) t´ızes sz´amrendszerbeli sz´am faktori´ alisos sz´amrendszerbeli alakj´ anak els˝o n´eh´ any jegy´et. Az x sz´am el˝oa´ll´ıt´ asa faktori´ alisos sz´amrendszerben ([81]): x=
∞ αn (n!)2 n=2
0 ≤ αn ≤ n2 − 1.
9. ´Irjunk olyan f¨ uggv´enyt, amely el˝o´all´ıtja az x ∈ [0, 1) t´ızes sz´amrendszerbeli sz´am Cantor-f´ele felbont´ as´at. (Tekints¨ uk pozit´ıv eg´eszek egy qn ≥ 2 n ∈ {1, 2, . . . } sorozat´at. Az x sz´am Cantor-f´ele felbont´ asa [66]: x=
∞
αn /(q1 q2 . . . qn ) 0 ≤ αn ≤ qn − 1.)
n=1
10. ´Irjunk k¨ ul¨ on f¨ uggv´enyt a h´ettel val´o oszthat´os´ag ellen˝orz´es´ere: 0 2*"1 ? ,6 - ' FB
´ 11. Allap´ ıtsuk meg egy pozit´ıv eg´eszekb˝ol a´ll´ o lista elemeir˝ol, hogy p´ aronk´ent relat´ıv pr´ımek-e. Egy lehets´eges megold´as:
322
3. Fejezetek a matematik´ab´ ol D! @0 !KA0$ !K = , - P"$ ) N L + OAD = J True
Tanuls´ agos a feladatot megoldani hagyom´anyos programoz´ asi st´ılusban is, felt´etelekkel ´es ciklusokkal, majd az eredm´eny gyorsas´ag´ at nagy list´ akra o¨sszevetni az itt adott megold´assal. uggv´eny gyorsas´ag´ at az al´abbiakban de12. Hasonl´ıtsuk o¨ssze a :47 bels˝o f¨ fini´ alt, az euklideszi algoritmusra ´ep¨ ul˝ o egysoros´eval (J. Adams): = , $, - 6* $B = $ ' $ = ) 6
(L´enyeg´eben ez a megold´as szerepel a programoz´asi tank¨ onyvekben is a rekurz´ıv algoritmus mintap´eld´ ajak´ent.) od˝ o ´es nem rel folytat´ od´ o 13. Alkalmazzuk az ¨osszes ral kezd˝ nev˝ u f¨ uggv´enyt a 4+ ' G+I G+ G+
polinomra! 14. Legyen az f f¨ uggv´eny o¨sszegz´esi f¨ uggv´enye g. Ellen˝ orizz¨ uk az al´abbi f¨ uggv´enyp´ arokra az inverzi´ os formul´ at n n´eh´ any ´ert´ek´ere. a) Ha ∀n f (n) = 1, akkor ∀n g(n) = d(n). b) Ha ∀n f (n) = n, akkor ∀n g(n) = σ(n). c) Ha ∀n f (n) = µ(n), akkor ∀n g(n) = δ1,n , ahol δn,m a Kronecker-f´ele szimb´olumot jel¨ oli. uggv´eny felhaszn´ al´ as´aval sz´am´ıtja 15. ´Irjunk olyan f¨ uggv´enyt, amely a :47 f¨ ki az Euler-f´ele ϕ f¨ uggv´eny ´ert´ek´et.
3.9. Sz´amelm´elet
323
16. Ellen˝ orizz¨ uk az Euler–Fermat-f´ele t´etelt, amely szerint ' I4&@ 1
minden olyan a sz´amra, amely relat´ıv pr´ım n-hez. 17. Oldjuk meg a 176x ≡ 118
(mod 206) kongruenci´ at.
18. H´ anyf´elek´eppen a´ll´ıthat´ o el˝o az n pozit´ıv eg´esz sz´am k´et n´egyzetsz´am osszegek´ent, ha az el˝ojelekre ´es a sorrendre is tekintettel vagyunk? ¨ ´ Utmutat´ as. J. Adams egysoros megold´asa: 02*"5 , - 6* 41 ? 02*"5 6* 6I C6 B )& 60 6ID1 sumOfSquares /@ {1, 2, 3, 4, 5}
19. H´ anyf´elek´eppen a´ll´ıthat´ o el˝o az 50 pozit´ıv eg´esz sz´am k´et n´egyzetsz´am osszegek´ent, ha az el˝ojelekre ´es a sorrendre nem vagyunk tekintettel? ¨ ´ Utmutat´ as. L´ep´esenk´ent f¨ ol´ep´ıt¨ unk egy egysorost (A MathUser alapj´ an.): D1 >B O 6 CJ {1, 1 + I, 1 + 2 I, 1 + 3 I, 1 + 7 I, 2, 2 + I, 2 + 4 I, 3 + I, 3 + 4 I, 4 + 2 I, 4 + 3 I, 5, 5 + 5 I, 5 + 10 I, 5 + 15 I, 6 + 8 I, 7 + I, 8 + 6 I, 10, 10 + 5 I, 10 + 20 I, 15 + 5 I, 20 + 10 I, 25, 25 + 25 I, 50} "! D1 >B O 6 CJ #$ .I>B/ {1 + 7 I, 5 + 5 I, 7 + I} E . 60 ./ "! D1 >B O 6 CJ #$ .I>B/ {{1, 7}, {5, 5}, {7, 1}} " E . 60 ./ "! D1 >B O 6 CJ #$ .I>B/ {{1, 7}, {5, 5}}
324
3. Fejezetek a matematik´ab´ ol "02* Y"5 , - " E . 60 ./ "! D1 O 6 CJ #$ .I /
$0
$ 6* "02* Y"5 ; "02* Y"5 BB >B
20. Hat´arozzuk meg azon tagok szorzat´anak a maximum´ at, amelyeket egy adott n pozit´ıv eg´esz sz´am pozit´ıv eg´eszek ¨osszeg´ere val´o felbont´ asakor kapunk. ´ Utmutat´ as. (Nem a felbont´ast adjuk meg.) D! @KA0$ !K W , - + # (
0 ./ & W ) M N {2, 4, 18, 324}
T¨om¨orebben: W , - + 0 ./ & W ) M N {2, 4, 18, 324}
21. (Armstrong-f´ele sz´amok.) Hat´arozzuk meg azokat a h´aromjegy˝ u sz´amokat, amelyeknek a jegyeit k¨ obre emelve ´es ¨osszeadva eredm´eny¨ ul mag´ at a sz´amot kapjuk. ´ Utmutat´ as. Procedur´ alis nyelvekhez ill˝ o megold´ast adunk: D D D
6* BB+GB(G+IG(IGI & + ( B L ( B L + B L 000 001 153 370 371 407
Oldjuk meg a feladatot n´egyjegy˝ u sz´amokkal ´es negyedik hatv´anyokkal ´es ´ıgy tov´ abb. Ezut´ an a´ltal´ anos´ıtsuk a feladatot arra az esetre, amikor tetsz˝oleges alap´ u sz´amrendszerben fel´ırt sz´amokr´ ol van sz´ o.
3.10. Val´ osz´ın˝ us´egsz´am´ıt´ as
325
3.10. Val´ osz´ın˝ us´ egsz´ am´ıt´ as A val´ osz´ın˝ us´egsz´am´ıt´ as Kolmogorov-f´ele fel´ep´ıt´ese halmazelm´eleti eszk¨ oz¨oket haszn´ al. Ezekkel kapcsolatos tov´abbi p´eld´ akat a 3.1.2. szakaszban megadottakon t´ ul nem adunk. A diszkr´et val´ osz´ın˝ us´egi mez˝okn´el fell´ep˝ o probl´em´ak lesz´aml´al´ assal, kombinatorikai ismeretekkel oldhat´ ok meg; erre mutatunk majd n´eh´ any p´eld´ at. A val´ osz´ın˝ us´egsz´ am´ıt´ as ´es az anal´ızis hat´ arter¨ uletein (a val´ osz´ın˝ us´egi v´altoz´ok jellemz˝oi, val´ osz´ın˝ us´egi v´altoz´ok f¨ uggv´enyeinek jellemz˝oi, peremeloszl´asok kisz´am´ıt´ asa, gener´atorf¨ uggv´enyek, karakterisztikus f¨ uggv´enyek stb.) lehet tal´ an a legjobban alkalmazni a Mathematic´ a t; ezekre fogunk els˝ osorban koncentr´ alni. ´Igy teh´ at itt fogjuk t´ argyalni t¨ obb szempontb´ ol is a
6 34 7 & 3 ´es a 6 37 7 & 3 programcsomag f¨ uggv´enyeit is. V´eletlent˝ol f¨ ugg˝ o jelens´egek ´es id˝obeli folyamatok szimul´ al´ asa: ez olyan ter¨ ulet, amely sz´am´ıt´ og´ep n´elk¨ ul nem is tanulm´ anyozhat´ o. Meg fogjuk mutatni, hogyan gener´ alhat´ ok adott (ismert vagy felt´etelekkel meghat´arozott) eloszl´as´ u v´eletlen sz´amok (ha sz¨ uks´eges — mint p´eld´ aul u ´j statisztikai m´odszerek tanulm´ anyoz´ as´an´ al —, reproduk´ alhat´ o m´odon). Egyszer˝ ubb, diszkr´et ´es folytonos idej˝ u Markov-folyamatokat is fogunk tanulm´ anyozni, illetve megmutatjuk azt is, hogy line´ aris algebrai ´es gr´afelm´eleti m´odszereket hogyan lehet ezek le´ır´ as´an´ al ig´enybe venni.
3.10.1. Klasszikus val´ osz´ın˝ us´ egi mez˝ ok A lesz´aml´al´ asi feladatokhoz felhaszn´alhat´ o f¨ uggv´enyeket a diszkr´et matematik´ ar´ ol sz´ol´ o 3.6. szakaszban m´ar f¨ olsoroltuk. Ezek a magon k´ıv¨ ul els˝ osorban az al´abbi programcsomagokban tal´ alhat´ ok:
7 #834& 3 7 #834&653 7 #834&3 7 #830 3
326
3. Fejezetek a matematik´ab´ ol
L´ assunk n´eh´ any p´eld´ at. Mi annak a val´ osz´ın˝ us´ege, hogy egy, az 1, 2, 3, 4 sz´amokb´ ol alkotott n´egyjegy˝ u sz´am egyetlen jegye sincs a hely´en? D! @KA0$ ! K "$*! )); 3/8
Kilenc vend´eg rendel egy-egy t´etelt, ¨osszesen kett˝o u ¨veg s¨ort, n´egy s¨ utem´enyt ´es h´arom k´ av´et. Mi annak a val´ osz´ın˝ us´ege, hogy a feled´ekeny pinc´er helyesen osztja sz´et, amit hozott? 0 ) . / 0.00079
Mennyi annak a val´ osz´ın˝ us´ege, hogy k´et, egym´ast´ol f¨ uggetlen¨ ul kit¨ olt¨ ott lott´ oszelv´eny k¨ oz¨ ul legal´ abb az egyik n´egytal´alatos? S 0 > ) S 0 M> S 0 LB > C I 0.000019
1000 villanyk¨ orte k¨ oz¨ ul egyenl˝ o val´ osz´ın˝ us´eggel lehet 0, 1,. . . , 5 darab selejtes. Ha m´ar 100 k¨ ort´et megvizsg´altunk az 1000-b˝ ol, ´es j´onak tal´ altuk mindet, mi annak a val´ osz´ın˝ us´ege, hogy mind az 1000 j´ o? Alkalmazzuk Bayes-t´etel´et a k¨ ovetkez˝o szereposzt´assal. Legyen • A az az esem´eny, hogy 100 k¨ ort´et megvizsg´altunk, ´es mind j´ o volt; oz¨ott i darab hib´ as van. • Ci az az esem´eny, hogy az 1000 k¨ osz´ın˝ us´eFeltev´eseink szerint P (Ci ) = p (i = 0, 1, . . . , 5), ´es a P (C0 |A) val´ get kell kisz´amolnunk a P (C0 |A) =
P (A|C0 )P (C0 ) 5 P (A|Ci )P (Ci ) i=0
k´eplet alapj´ an. Legyen qi := P (A|Ci ). 5 , - S 0 BBB C BBS 0 BBB BB ' QBR "0 R5 B > 0.213485
A klasszikus val´osz´ın˝ us´egeloszl´asok legt¨obbje megtal´ alhat´ oa
6 37 7 & 3
3.10. Val´ osz´ın˝ us´egsz´am´ıt´ as
327
programcsomag f¨ uggv´enyei k¨ oz¨ott:
L7 & L7 & 7 !57 & :7 & 1)7 & L7 & 0 7 & H´ıvjuk be ezt a programcsomagot ´es v´alasszunk egy binomi´ alis eloszl´ast: " !KD! D $ K $ S 0D $ ) BQ $ 10.2
A medi´ant k´etf´elek´eppen is el˝ oa´ll´ıthatjuk: ? $ BQ> ' $ {10.2, 10.2}
Ezek az eloszl´asok szimbolikusan is haszn´alhat´ ok: . &D . =/ S 0D $ {n p, If[0 <= k <= n, n-k k If[IntegerQ[k], Binomial[n, k] p (1-p) , 0], 0]]}
3.10.2. Gener´ atorf¨ uggv´ enyek Diszkr´et eloszl´asok sz´amos jellemz˝oje kisz´am´ıthat´ o gener´atorf¨ uggv´eny¨ ukb˝ ol vagy momentumgener´al´ o (esetleg: kumul´ ansgener´al´ o) f¨ uggv´eny¨ ukb˝ ol. Ezek kezel´es´ehez els˝osorban a
7 #83963 programcsomag f¨ uggv´enyeit alkalmazhatjuk, amelyeket m´ ar a 3.4.2. ´es a 3.6.2. szakaszban is haszn´ altunk. Egy binomi´ alis eloszl´ascsal´ad gener´ atorf¨ uggv´enye ´ıgy kaphat´ o meg: ! &Y"0 &D S 0D $ F = = 17 (1 - p + p z)
328
3. Fejezetek a matematik´ab´ ol
Hat´arozzuk meg m´asf´ele m´odon a Poisson-eloszl´as gener´atorf¨ uggv´eny´et:
E
, 0$', "0 *(
&Y"0 0$'I 4+ C0$' ; B lambda (-1 + z)
Ismeretes, hogy el´ agaz´ o folyamatok eset´en, amennyiben G a gener´atorf¨ uggv´enye az ut´ odok eloszl´as´anak, akkor az n-edik nemzed´ek eloszl´as´anak a gener´atorf¨ uggv´eny´et G ¨ onmag´ aval vett n-szeres kompoz´ıci´ o ja adja. Ha teh´ at az ut´ odok eloszl´asa Poisson-eloszl´as, akkor az o¨t¨odik nemzed´ek eloszl´ as´anak gener´atorf¨ uggv´eny´et p´eld´ aul ´ıgy kaphatjuk meg:
)
A folyamat kihal´ as´anak val´ osz´ın˝ us´eg´et pedig a G(z) = z egyenlet kisebok). Legyen a fenti folyamatban bik gy¨ oke adja (z1 := 1 ugyanis mindig gy¨ a Poisson-eloszl´as param´etere (vagyis az ut´odok v´ arhat´ o sz´ama) 2, ekkor ezt kapjuk: 'E B {z -> 0.203188}
Megeml´ıtj¨ uk m´eg, hogy egy eloszl´as kumul´ ansgener´ ator-f¨ uggv´enye ´eppen az eloszl´asnak mint sorozatnak az exponenci´ alis gener´ atorf¨ uggv´enye.
3.10.3. Tetsz˝ oleges val´ osz´ın˝ us´ egi v´ altoz´ ok Felsoroljuk a szakasz t¨obb pontj´ aban ´es a matematikai statisztik´ar´ ol sz´ol´ o 3.11. szakaszban is haszn´alt, eloszl´asokat el˝oa´ll´ıt´ o f¨ uggv´enyeket:
L7 & 48)7 & 4867 & 7 & V7 & 97 & :7 & 7 &
7 & 7 & 7 & 9)87 & 6 7 & !57 & S&7 &
Az eloszl´asok jellemz˝o param´etereit megad´o f¨ uggv´enyeket a matematikai statisztik´ar´ ol sz´ol´ o, k¨ ovetkez˝o szakaszban soroljuk fel. A Γ-eloszl´ast igen sokszor haszn´alj´ ak — k¨ ul¨ on¨ osen a matematikai statisztik´ aban —, mert k´et param´eter´enek v´altoztat´ as´aval szinte b´ armilyen —
3.10. Val´ osz´ın˝ us´egsz´am´ıt´ as
329
p´eld´ aul adatokb´ ol becs¨ ult — eloszl´as j´ ol k¨ ozel´ıthet˝ o. Megjegyzend˝o, hogy speci´alis esetek´ent ad´ odik az exponenci´ alis eloszl´as: " !KA D $ K &D O00D $ 0$' + &D 4+ D $ 0$' + lambda lambda { lambda x , lambda x } E E O00D $ 0$' 8 ! O00D $ 0$' 1 -2 , lambda } { lambda
A Weibull-eloszl´as alkatr´eszek ´elettartam´anak eloszl´as´ara haszn´ alatos, mivel az exponenci´ alis eloszl´as olyan ´altal´ anos´ıt´ asa, amelynek k´et param´etere van, s ez´altal finomabb illeszt´est tesz lehet˝ov´e: AD X$D $ ! * + x ] 1 - Exp[-c alfa
A lognorm´ alis eloszl´as gyakran fordul el˝ o apr´ıt´ asi feladatok n´ al. A leggyakrabban el˝ ofordul´ o abszol´ ut folytonos eloszl´ asok a Pearson-f´ele eloszl´ascsal´adba tartoznak, azaz logaritmikus deriv´altjuk racion´ alis f¨ uggv´eny. Ezt most csak a norm´alis eloszl´asra mutatjuk meg, a t¨ obbi eloszl´as (egyszerre v´egrehajtand´ o!) vizsg´alat´ at az Olvas´ora hagyjuk: 0 +, &D 0D $ 0 0 + "0 *( 0\ + 0 + m - x 2 sigma
´ Allap´ ıtsuk meg, hogy az A, a, b param´eterek milyen ´ert´ekein´el lesz s˝ ur˝ us´egf¨ uggv´eny az A (x ∈ R) x → 1 + a(x − b)2 f¨ uggv´eny: "1 6 G +C$I + C6 * ( 6 * ( Sqrt[a] }} {{aa -> Pi
A program csak a sz´amol´asban seg´ıtett, a diszkusszi´oban term´eszetesen √ nem. A pontos v´ alasz: b tetsz˝oleges val´os sz´am, a pozit´ıv sz´am, A = a/π.
330
3. Fejezetek a matematik´ab´ ol
K¨ ovetkez˝o k´erd´es¨ unk hasonl´ o: eloszl´asf¨ uggv´eny-e az x → exp(− exp(−x))
x∈R
f¨ uggv´eny? Meg kell vizsg´ alnunk, hogy • monoton n¨ ov˝ o-e, • balr´ ol folytonos-e, • hat´ ar´ert´eke −∞-ben nulla-e ´es +∞-ben 1-e? Az igenl˝ o v´ alaszt al´at´ amasztj´ak a k¨ ovetkez˝o sz´amol´asok: * +, 4+ C4+ C+ %0 * + + CJ C6 * ( %0 * + + CJ 6 * ( {0, 1}
*\ + -x -E - x E
Ismeretes, hogy ha a ξ val´ osz´ın˝ us´egi v´altoz´o s˝ ur˝ us´egf¨ uggv´enye f , U pedig szigor´ uan monoton f¨ uggv´eny, akkor az U ◦ ξ val´ osz´ın˝ us´egi v´altoz´o g aul ξ adott pas˝ ur˝ us´egf¨ uggv´enye g = (f /U ) ◦ U −1 . Legyen p´eld´ ram´eter˝ u exponenci´ alis eloszl´as´ u val´ osz´ın˝ us´egi v´altoz´o, ´es hat´arozzuk meg n´egyzetgy¨ok´enek s˝ ur˝ us´egf¨ uggv´eny´et: (=*1 (, &Y4+ '
&D 4+ D $ 0 (I R D "5 + + Q + CJ (I 2 param y 2 param y E
3.10.4. Karakterisztikus f¨ uggv´ enyek K¨ onnyen kisz´ am´ıthatjuk egy eloszl´ as karakterisztikus f¨ uggv´eny´et: A@! ! ! A!@(D $ B E
-(t Sign[t])
Az itt haszn´alt 48 f¨ uggv´eny szint´en a
3.10. Val´ osz´ın˝ us´egsz´am´ıt´ as
331
6 34 7 & 3 programcsomagban tal´ alhat´ o. A centr´ alis momentumok ´es a karakterisztikus f¨ uggv´eny deriv´altjai k¨ oz¨otti n´eh´ any o¨sszef¨ ugg´est ´ıgy illusztr´alhatunk a standard norm´ alis eloszl´as p´eld´ a j´ an: ' 0D $ B !0 , - D A@! ! ! ' CJB
$ !0 ) ' 8 ! ' "=Y ' P '
Q
{0, 1, 0, 3} {0, 1, 0, 3}
3.10.5. Hat´ areloszl´ as-t´ etelek A Moivre–Laplace-t´etel szerint a binomi´ alis eloszl´as j´ ol k¨ ozel´ıthet˝ o vele azonos v´arhat´ o ´ert´ek˝ u ´es sz´or´ as´ u norm´ alis eloszl´assal. Illusztr´aljuk ezt egy p´eld´ an. El˝ osz¨or a´br´ azoljuk a (10, 0.5) param´eter˝ u binomi´ alis eloszl´ast: $ S 0D $ B BQ> $ 0 +, - &D $ + $ % &
E B B
$ $ 0 + + B B & " ( CJ #$ & "
Most ´ att´er¨ unk a k¨ ozel´ıt˝ o norm´ alis eloszl´as ´abr´ azol´as´ara: $ "5 8 ! $ 0D $ = +, - &D + = & = + + B B & " ( CJ @!= BQBB
Tekints¨ uk meg egy¨ utt a k´et ´abr´ at: "@Y $ =
332
3. Fejezetek a matematik´ab´ ol
3.10.6. V´ eletlensz´ am-gener´ al´ as Enn´el a t´emak¨orn´el els˝osorban k´et bels˝o f¨ uggv´enyre van sz¨ uks´eg¨ unk, ezek: 9 ´es 6 9 . Kezdj¨ uk egy megjegyz´essel. Azt gondoln´ank, hogy az x − x kifejez´es ´ert´eke mindig nulla. Ha azonban x egy val´ osz´ın˝ us´egi v´altoz´o ´ert´eke, akkor ez nem igaz: + - E '0 +C+ -0.319965
Ha viszont azonnali ´ert´ekad´ assal sz´am´ıtjuk ki x ´ert´ek´et, akkor nem sz´ amol´ odik u ´jra minden haszn´ alatn´ al: ( E '0 0.799367
( C ( 0.
A [0, 1] intervallumban egyenletes eloszl´ as´ u v´eletlen sz´amokb´ ol a´ll´ o 3 elem˝ u list´at ´ıgy kaphatunk:
$ E '0 {0.5886454, 0.567327, 0.970526}
Ha a gener´alt val´ os t´ıpus´ u [0, 1]-beli v´eletlen sz´amokat 25 jegy pontoss´ aggal akarjuk megkapni, akkor ezt ´ırhatjuk:
$ E '0 E B >
A v´eletlensz´am-gener´ator term´eszetesen itt is determinisztikus algoritmust haszn´ al. Az eredm´enyek reproduk´ alhat´ ok lesznek (erre sz¨ uks´eg¨ unk lehet p´eld´ aul akkor, ha egy statisztikai m´ odszert akarunk ellen˝ orizni), ha uggv´enyt azonos (eg´esz) argugener´al´ as el˝ott megh´ıvjuk a 6 9 f¨ mentummal. Ezt most a komplex s´ık −1 − i ´es 1 + i pontok mint a´tellenes cs´ ucsok ´altal meghat´ arozott n´egyzet´eb˝ ol egyenletes eloszl´as szerint vett mint´ an mutatjuk meg: "'E '0 )M>F
$ E '0 A0 + CC6 G6 {-11. + 1. I, -6.37 + 0.795 I}
3.10. Val´ osz´ın˝ us´egsz´am´ıt´ as
333
"'E '0 )M>F
$ E '0 A0 + CC6 G6 {-11. + 1. I, -6.37 + 0.795 I}
Szab´ alyos p´enz´erm´evel v´egzett p´enzfeldob´ asok egy 17 elem˝ u sorozat´ at p´eld´ aul az al´ abbi m´ odon szimul´ alhatjuk:
$ 6* E '0 6 BTTT6T F {F, F, I, F, I, F, F, F, F, F, F, I, F, I, I, F, F}
Egyenletes eloszl´as´ u v´eletlen sz´amokat arra is szok´as haszn´alni, hogy seg´ıts´eg¨ ukkel valamely sokdimenzi´os t´er egys´egkock´aj´ an defini´ alt f¨ uggv´eny hat´ arozott integr´ alj´ at sz´am´ıtjuk ki olyan m´ odon, hogy megsz´ amoljuk, az egys´egkock´ab´ ol v´eletlen¨ ul v´ alasztott pontok h´ anyad r´esze esik a megadott f¨ uggv´eny grafikonja al´ a. El˝ osz¨or kisz´am´ıtjuk az integr´ al pontos ´ert´ek´et: ) 6 + B ( B "5 C +I Pi
Egy procedur´alis st´ılus´ u sorsol´ o modult k´esz´ıt¨ unk: , - ' = W B D 6* +I G (I WGG W = & ) W BBB
3.196
Eleg´ ansabb (´es gyorsabb) megold´as ugyanerre a feladatra: , - % @ "! ) A
$
E '0 E '0 .I G .I /
$ BB BB 4., 3.08911, 3.28358, 3.20266, 3.19202, 2.99401, 3.09484 3.17832, 3.14107, 3.10766, 3.0969
Ez a p´elda term´eszetesen csak egyszer˝ u illusztr´aci´ o; ahhoz, hogy p´eld´ aul parci´ alis differenci´ alegyenleteket tudjunk megoldani Monte–Carlo-m´ odszerrel, j´ oval bonyolultabb algoritmusra van sz¨ uks´eg¨ unk, l´ asd ehhez a megfelel˝ o szakirodalmat. Az ilyen egyszer˝ u p´eld´ akat, ahol az integr´ al ´ert´eke m´as m´odszerrel egyszer˝ uen kisz´ am´ıthat´ o, ´eppen a v´eletlensz´am-gener´ator ellen˝orz´es´ere szok´ as felhaszn´ alni. Felmer¨ ul az a k´erd´es, hogy a gener´ alt sz´amok f¨ uggetleneknek, illetve egyenletes eloszl´ as´ u aknak tekinthet˝ ok-e. Ezekre a k´erd´esekre a matematikai statisztika m´odszereivel kaphatunk v´ alaszt.
334
3. Fejezetek a matematik´ab´ ol
Tetsz˝oleges eloszl´as´ u v´eletlensz´amokat k´etf´ele m´odon gener´ alhatunk. Az egyik lehet˝os´eg: a 9 *, olyan v´eletlensz´amot ad, amelynek eloszl´ asa a megadott eloszl´as. A m´asik (gyakran alkalmazott) lehet˝ os´eg: uggv´eny´eegyenletes eloszl´as´ u v´eletlensz´amokra alkalmazzuk eloszl´asf¨ nek inverz´et. Ez ut´ obbi elj´ ar´ ashoz rendelkez´es¨ unkre a´llnak a
6 3 6 3 programcsomag f¨ uggv´enyei:
L9' 5
5 :9'
Standard norm´ alis eloszl´as´ u v´eletlensz´amokat teh´at ´ıgy gener´ alhatunk: '' 0D $ B
$ E '0 '' >
Exponenci´ alis eloszl´as´ uak gener´ al´ as´ara is alkalmazhatjuk a fenti m´ odszert: + 4+ D $
$ E '0 + >
T´amaszkodhatunk arra a t´enyre is, hogy az exponenci´ alis eloszl´as a Γeloszl´as speci´alis esete: + O00D $
$ E '0 + >
Most alkalmazzuk a m´ asodikk´ent le´ırt m´ odszert: " !K6 1" ! ! K $ $ E '0 > 6 1S E' B . / $ {0.618788, 0.797721, 0.44583, 0.482795, 0.483111}
3.10.7. Markov-l´ ancok Diszkr´et idej˝ u, diszkr´et ´allapotter˝ u Markov-l´ ancok kezel´es´ere a line´aris algebra (3.9. szakasz) ´es a gr´afelm´elet (3.6. szakasz) eszk¨ozeit szok´ as haszn´ alni. Egy egyszer˝ u p´eld´ at mutatunk.
3.10. Val´ osz´ın˝ us´egsz´am´ıt´ as
335
Legyen egy Markov-l´anc a´tmenetval´osz´ın˝ us´egi m´atrixa ⎛
1/2 P1 = ⎝ 1/3 1
1/2 0 0
⎞ 0 2/3 ⎠ 0
´es rajzoljuk meg a l´anc gr´ afj´ at: B B B B "!
$ W W
. . J B/ ./ {{1, 1}, {1, 2}, {2, 1}, {2, 3}, {3, 1}} "@YO @ 02''& : D! '
Hat´arozzuk meg az egyes ´allapotok val´ osz´ın˝ us´eg´et az ¨ot¨odik id˝ opontban, ha a rendszert az els˝ o a´llapotb´ ol ind´ıtottuk: +&Y >Q B B 79 149 259 , , } { 288 432 144
Sz´ am´ıtsuk ki a l´ anc hat´ areloszl´as´at: %0 +&Y CJ6 * ( 2 3 6 2 3 6 2 3 6 , }, { , , }, { , , }} {{ , 11 11 11 11 11 11 11 11 11
(Ismeretes, hogy azonos, a stacion´arius eloszl´asb´ol a´ll´ o sorokat kapunk.)
3.10.8. Folytonos idej˝ u Markov-folyamatok A (skal´ aris) tiszta ugr´o Markov-folyamatok k¨ oz¨ ul a sz¨ ulet´esi-hal´aloz´asi t´ıpus´ uak stacion´ arius eloszl´asa igen gyakran explicite megoldhat´o differenciaegyenletnek tesz eleget. Tekints¨ uk p´eld´ aul azt a folyamatot, amelynek infinit´ezim´alis a´tmenetval´osz´ın˝ us´egei: n → n + 1 k1 nh + o(h) n → n − 1 k2 n(n − 1)h + o(h). o Ekkor a (pn ) stacion´arius eloszl´asra vonatkoz´
336
3. Fejezetek a matematik´ab´ ol
0 = k1 (n − 1)pn−1 + k2 (n + 1)npn+1 − (k1 n + k2 n(n − 1))pn egyenlet (amint ez teljes indukci´oval l´ athat´ o) egyen´ert´ek˝ u a k¨ ovetkez˝ovel: k1 pn = k2 (n + 1)pn+1 . Oldjuk meg ezt az egyenletet: D! @KE"1K E"1 = = G n k1 ( ) p[0] k2 }} {{p[n] -> n!
G
L´athat´ o, hogy ez, a felt´etelek figyelembev´etel´evel, ´eppen Poisson-eloszl´ as: #$K"(0$!"0K "1 "0 :
B 6 * ( B :: Q : n k1 ( ) k2 {{p[n] -> }} k1 E k2 n!
Folytonos idej˝ u, folytonos a´llapotter˝ u folyamatok k¨ oz¨ ul tekints¨ unk most egy olyat, amelynek az abszol´ ut eloszl´asf¨ uggv´enye f (x, t) = √
(x − m(t))2 1 exp − . 2σ(t)2 2πσ(t)
Az m ´es a σ f¨ uggv´eny alkalmas megv´ alaszt´as´aval tanulm´ anyozhatjuk a val´ osz´ın˝ us´egi s˝ ur˝ us´egf¨ uggv´eny sz´etken˝od´es´et. Ebb˝ ol kider¨ ul, hogy a folyamat a legnagyobb val´ osz´ın˝ us´eggel a v´arhat´ o ´ert´ekhez k¨ozel tart´ozkodik, de az is j´ ol l´ athat´ o, hogy az id˝ o m´ ult´ aval egyre pontatlanabb j´ osl´asokat tehet¨ unk csak az ´ert´ek´ere, mivel sz´or´ asa v´egtelenhez tart. Ez a viselked´es tipikusnak tekinthet˝ o: 0 , - " 0 , - "5 * , +, - 4+ C+ C 0 I 0 I "5 & 0
3.10. Val´ osz´ın˝ us´egsz´am´ıt´ as
337
& D * + BQBB )& G BQBB + CQ> Q> & & CJ B
0.3 0.2 0.1
1 0 0 5 10
-1
3.10.9. Gyakorlatok ´ es feladatok 1. Hat´arozzuk meg az m v´ arhat´ o ´ert´ek˝ u σ sz´or´ as´ u norm´ alis eloszl´as s˝ ur˝ us´egf¨ uggv´eny´enek inflexi´os pontjait. Mi annak a val´ osz´ın˝ us´ege, hogy az adott s˝ ur˝ us´egf¨ uggv´eny˝ u val´ osz´ın˝ us´egi v´altoz´o ´ert´eke a k´et inflexi´ os pont abszcissz´a ja k¨ oz´e esik? 2. Milyen m ´ert´ekekre lesz az ⎛ 1 f (x) := √ 2 2π
⎞ 2 2 (x − m) (x + m) − ⎝e− ⎠ 2 2 +e
s˝ ur˝ us´egf¨ uggv´enynek k´et maximuma? 3. Szimul´ aljuk a Galton-deszka m˝ uk¨ od´es´et.
(x ∈ R)
338
3. Fejezetek a matematik´ab´ ol
3.11. Matematikai statisztika A statisztikai programcsomagok ´altal´ aban j´ o numerikus elj´ ar´ asokat tartalmaznak, de nem j´ol programozhat´ ok, nem interakt´ıvak, grafikai k´epess´egeik gyeng´ek, szimbolikus sz´am´ıt´ asokat nem lehet vel¨ uk v´egezni ´es az u ´j m´ odszereket neh´ez bel´ej¨ uk illeszteni. A Mathematica teh´ at akkor lehet igaz´an seg´ıts´eg¨ unkre, ha a probl´em´ak megold´asa sor´an az eml´ıtett akad´ alyokba u ¨tk¨ oz¨ unk. Az al´ abbiakban amellett, hogy bemutatjuk a szok´ asos m´odszerek alkalmaz´ as´anak m´ odj´ at, els˝ osorban arra o¨sszpontos´ıtunk, hogy megmutassuk a Mathematica el˝onyeit a fentiekben v´azolt k¨ or¨ ulm´enyek k¨ oz¨ott. Itt is felh´ıvjuk a figyelmet arra, hogy a MathLink seg´ıts´eg´evel C nyelven meg´ırt f¨ uggv´enyt f¨ olhaszn´ alhatunk a Mathematic´ a ban. A MathLink for Excel pedig arra ad m´ odot, hogy az Excel t´ abl´ azatkezel˝ovel begy˝ ujt¨ ott adatokra az Excelen bel¨ ul haszn´ alhassuk a Mathematica f¨ uggv´enyeit. (Az Excel ´ altal elk´esz´ıtett adat´ allom´ anyokat minden el˝ ok´esz¨ ulet n´elk¨ ul be tudjuk olvasni.)
3.11.1. Az adatok el˝ ok´ esz´ıt´ ese A tulajdonk´eppeni statisztikai elemz´es elkezd´ese el˝ott ´altal´ aban t¨ obbf´ele el˝ok´esz¨ uletre van sz¨ uks´eg. • Adatbevitel A statisztikai adatfeldolgoz´ asn´ al t¨ obbnyire sok adattal van dolgunk, amelyeket k¨ uls˝ o´ allom´anyokban t´ arolunk, ahov´ a azok esetleg m´as programokb´ ol ´ vagy m´er˝oberendez´esb˝ol ker¨ ultek. Allom´ anykezel´esr˝ol m´ar m´asutt (2.4.1. szakasz) esett sz´o, itt most csak a hi´anyz´ o adatok statisztikai szempontb´ ol ´erdekes eset´enek kezel´es´et mutatjuk meg. Az adatokat igen gyakran sz¨ oveges ´allom´anyba gy˝ ujtj¨ uk. Egy sorba ker¨ ul egy egyed ¨osszes adata, ezt nevezik ´altal´ aban rekordnak; egym´as alatt helyezkednek el az azonos jelent´es˝ u (k¨ ul¨ onb¨ oz˝o egyedekre vonatkoz´o) mez˝ o k. allom´anyban hi´ anyz´ o adatok vannak, amit megtekint´eskor Ha a & ´ is l´ athatunk: ;;$0 2.1 77 51 2.2 49 1.9 80
3.11. Matematikai statisztika
339
akkor a beolvas´askor a k¨ ovetkez˝ok´eppen j´ arhatunk el. El˝ osz¨or megnyitunk ´ır´ as c´elj´ ab´ ol egy bemen˝ o´ aramot: $* 2 E' T$0 T
Ezut´ an rekordonk´ent beolvassuk a t´ abl´ azatot, figyelve a kihagyott ´ert´ekeket (Ez az´ert fog sikerrel j´ arni, mert az adatokat tabul´ ator karakter v´ alasztja el egym´ ast´ol.): E'% $* X' E!'% CJ X' CJ 4+ {{2.1, 77, 51}, {2.2, Null, 49}, {1.9, 80, Null}}
V´eg¨ ul pedig lez´ arjuk a bemen˝ o ´aramot: A $0
• Az adatok rendezget´ ese El˝ ofordulhat, hogy az adatokb´ ol bizonyosakat akarunk csak haszn´ alni, illetve hogy m´ar beolvas´as ut´ an azonnal el akarunk k´esz´ıteni n´eh´ any elemi statisztik´at. Ehhez ny´ ujtanak seg´ıts´eget a (line´ aris algebra feladataihoz is hasznos)
6 37#3 programcsomag f¨ uggv´enyei:
L6 4 47 4W 4= 46 7
74 8S8 9BW =S8
Ezek n´emelyik´ere — mint azt a nevek is el´arulj´ ak — az´ert van sz¨ uks´eg, mert a m´atrixokat a program olyan listak´ent kezeli, amelynek elemei a sor okat tartalmaz´o list´ak. A statisztik´ aban (´es az adatb´azis-kezel´esben) viszont t¨ obbnyire egy m´ atrix sorai jellemeznek egy egyedet, amint f¨ontebb eml´ıtett¨ uk, a vizsg´ aland´ o val´ osz´ın˝ us´egi vektorv´altoz´o egy koordin´ at´aj´ anak ´ert´ekei teh´at egy oszlopban helyezkednek el.
340
3. Fejezetek a matematik´ab´ ol
N´eh´ any egyszer˝ u p´eld´ at mutatunk a fentiek k¨ oz¨ ul az adatmanipul´ aci´ os f¨ uggv´enyek alkalmaz´as´ara: " !KD K ' $ N ! ) ' > * ) A0 ' {3, 6, 4, i, 5, 4} W' D 0! {3, 6, 4, 5, 4}
=X@ 0$? {3, 6, 4}
´ azol´ • Abr´ as Statisztikai c´el´ u sz´am´ıt´ asok megkezd´ese el˝ott szinte mindig aj´ anlatos az adatokat k¨ ul¨ onf´ele m´odokon a´br´ azolni, hogy valamilyen el˝ ozetes elk´epzel´es¨ unk legyen arr´ ol, milyen sz´am´ıt´ ast ´erdemes v´egezn¨ unk. Ilyenkor a A A f¨ uggv´enyek valamelyike lehet a seg´ıts´eg¨ unkre: ' BQ BQ) BQ BQL BQ) QB BQF Q QB Q Q Q Q BQM Q BQ % & ' & " ( CJ #$ & " % & ' & E CJ B Q> & 9 ' CJ #+2 CJ QM Q) #+%$ CJ TT T@T
´ k´epzelj¨ Most az hoz egy kis zajt adunk. Ugy uk, hogy az els˝o koordin´ ata pontosan be´ all´ıtott, a m´ asodik pedig a sz´ amunkra ´erdekes, m´ert mennyis´eg: 1'
.
.
G E '0 E CBQ> BQ>/ ' 0'= % & 1' & 9 ' CJ & " ( CJ D@ BQB BQB
Javasoljuk az Olvas´ onak, hogy n´ezze meg egy¨ utt a k´et ´abr´ at: "@Y 0'= #+%$ CJ T'T T =T #+2 CJ B & E CJ B QM B QM & %$ CJ T2@ T
3.11. Matematikai statisztika
341
Vektorv´ altoz´ ok alkalmaz´ as´ara is l´ assunk p´eld´ akat. Kezdj¨ uk u ´gy a vizsg´ alatot, hogy a koordin´ at´ ak o¨sszef¨ ugg´eseit p´aronk´ent a´br´ azoljuk: 1= ' $ + E '0 C+I +I + B BQB>
Milyen viszonyban van egym´ assal az els˝o k´et koordin´ ata? % & = . / 1= ' 0 CJ & " ( CJ #$ & " EOSA B B
Benyom´asunk val´ osz´ın˝ uleg az lesz, hogy a m´asodik f¨ uggetlen az els˝ot˝ol, ezt f¨ uggetlens´egvizsg´ alattal ak´ ar ellen˝orizhetn´enk is. Most elk´esz´ıtj¨ uk a hasonl´ o a´br´ akat az ¨osszes koordin´ atap´ arra, de az a´br´ at nem jelen´ıtj¨ uk meg azonnal, amit a 7 ) opci´o ´ert´ek´enek alkalmas megv´alaszt´as´aval ´er¨ unk el: =W
$ % & .
.
W/ 1= ' 0 CJ 0 != CJ # ! E CJ & " ( CJ #$ & " EOSA GW B WGW D ( ! CJ 6' ( ) W )
Megn´ezz¨ uk egyszerre az a´br´ akat: "@Y O @!#( =W D ( ! -J UD ( !
Az ´atl´ os elemek term´eszetesen ´erdektelenek.
342
3. Fejezetek a matematik´ab´ ol
3.11.2. Statisztik´ ak A leggyakrabban haszn´ alt statisztikai f¨ uggv´enyek vagy statisztik´ ak kisz´am´ıt´ as´ahoz haszn´ alhatunk n´eh´ any bels˝o f¨ uggv´enyt:
4 4 # #
6 6 = !
Tov´abbi gazdag v´ alaszt´ekot k´ın´ al a
6 37 6 3 programcsomag, amelyben az al´abbi f¨ uggv´enyek tal´alhat´ ok:
4# 7 9 :# 1# 9 ; ; 9 # #7 # # 7 # 0 6=B +
0 6=B ( 7 6=B 9#6 69 689 6=B 6 7 # V V# V56#
A 6 37#3 programcsomagban is tal´ alhatunk m´eg n´eh´ any hasznos f¨ uggv´enyt:
46
Megjegyzend˝ o, hogy a k¨ ul¨ onb¨ oz˝o programcsomagokban azonos n´even szerepl˝o f¨ uggv´enyek nem teljesen azonos m´odon m˝ uk¨ odnek.
3.11. Matematikai statisztika
343
L´ assunk n´eh´ any p´eld´ at. Egy minta a´tlag´at a # f¨ uggv´eny sz´amolja ki: ' Q Q) >Q QN Q) BQ) ' T" !KD! 1" !KT ' 2.55
Vektorv´ altoz´okra ez csak ´ertelemszer˝ u m´ odos´ıt´ assal alkalmazhat´ o. A fenti = sorai egy val´osz´ın˝us´egi vektorv´altoz´ora vonatkoz´o minta egyes elemei: 1= ' 0.5, 0.50373, -0.341667, 0.2625
A kiugr´ o adatok t´ ol ´ıgy szabadulhatunk meg: = QF QM Q> QN QL QL QN QN QF Q
00' = BQ 1.65
(A terjedelem 0,3 r´esz´et mind a k´et oldalon lev´agtuk a mint´ ab´ ol.) Gyakran haszn´ alt mintajellemz˝ ok a centr´ alis momentumok: ha ´ert´ek¨ uk k¨ ozel van a megfelel˝ o elm´eleti ´ert´ekhez, akkor ´erdemes alaposabban megvizsg´alni az adott minta eloszl´as´at: A 0
QF QM Q> QN QL QN QN QF Q -0.00545953
Az eloszl´as alakj´anak sz´amos jellemz˝oj´et egyszerre megkaphatjuk ´ıgy: D E . %! E . "@ E ./ = {Variance -> 49.665, StandardDeviation -> 7.04734, SampleRange -> 22.7, MeanDeviation -> 4.01, MedianDeviation -> 0.1, QuartileDeviation -> 0.1}, {Mean -> 3.85, HarmonicMean -> 1.76206, Median -> 1.65}, {Skewness -> 2.27381, QuartileSkewness -> 0.5, KurtosisExcess -> 3.56113}}
Mivel az eredm´eny transzform´ aci´ os szab´alyok o¨sszess´ege, ez´ert egyes r´eszeire a szok´asos m´odon hivatkozhatunk: *' "=Y Q : 2.27381
344
3. Fejezetek a matematik´ab´ ol
A fenti eredm´eny¨ ul kapott transzform´ aci´ os szab´alyok bal oldal´ an a´ll´ o azonos´ıt´ ok o¨n´ all´ oan is haszn´ alhat´ ok f¨ uggv´enyekk´ent: "=Y = 2.27381
A k¨ ovetkez˝okben s˝ ur˝ us´eghisztogramot k´esz´ıt¨ unk. Beh´ıvjuk az adatgener´ al´ ashoz ´es az ´abr´ azol´ashoz sz¨ uks´eges csomagokat: ' T" !KA D $ KT T" !KD KT TO @!KO @!KT
Adatokat gener´ alunk: '
$ E '0 0D $ C B
$ E '0 0D $ B
Elk´esz´ıtj¨ uk a rendezett mint´ at, majd ezek felhaszn´ al´ as´aval meghat´arozzuk, hogy a terjedelem egyes r´eszintervallumaiba az adatok k¨ oz¨ ul mennyi esik. uggv´eny nem a´ll´ıtja el˝ o a minta terjedelm´et, Megjegyzend˝ o, hogy a 9 f¨ o: erre a 69 val´ ' " ' (=0 M ' % ' @ "0 E ' (=0 (= S A ' @ {3, 3, 4, 11, 7, 2, 5, 4}
(A rendezett minta els˝ o elem´et a L4 f¨ uggv´eny figyelmen k´ıv¨ ul hagyta.) Ez a r´eszeredm´eny term´eszetesen esetenk´ent ett˝ol elt´erhet az aktu´ alisan el˝ofordul´ o v´eletlensz´amok miatt: SA@
(= E G @ @
(Figyelj¨ uk meg, hogyan v´ altozik az ´abra, ha nyolc oszt´ opont helyett t¨ obbet ¨ vagy kevesebbet vesz¨ unk.) Osszek¨otj¨ uk” a pontokat interpol´ aci´ oval: ” @0 ' *1 6
@0
A ' +, .C@ + .G@@R% @ ' / @0
3.11. Matematikai statisztika
345
*1
& *1 + + != CJ CC Q Q) 0.4 0.3 0.2 0.1
-3
-2
-1
1
2
3.11.3. Becsl´ esek Megmutatjuk — els˝osorban folytonos eloszl´asokon —, hogy hogyan lehet param´etereikre pontbecsl´eseket konstru´ alni a leggyakoribb m´ odszerek alapj´ an. Ezut´ an a´tt´er¨ unk az intervallumbecsl´esek, vagy m´ask´eppen megb´ızhat´ os´ agi (konfidencia-) intervallumok megszerkeszt´es´ere. • A legnagyobb val´ osz´ın˝ us´ eg (maximum likelihood) elve Mutatunk egy p´eld´ at arra, hogy hogyan szerkeszthet¨ unk becsl´est a legnagyobb val´ osz´ın˝ us´eg elve alapj´an. F¨ uggetlen, nulla v´ arhat´ o ´ert´ek˝ u norm´ alis eloszl´as´ u koordin´ at´akkal b´ır´ o pont t´ avols´aga az orig´ot´ ol Rayleigh-eloszl´ as u ´. Ha (egyetlen pozit´ıv) param´eter´et σ-val jel¨ olj¨ uk, akkor s˝ ur˝ us´egf¨ uggv´eny´enek ´ert´eke az x ∈ R+ helyen x 2 /2σ 2 2 . x e σ uggv´eny — Reproduk´alhat´ o m´odon — err˝ ol gondoskodik a 6 9 f¨ sorsolunk ilyen pontokat: "'E '0 BB ' = $ E '0 E(@D $ QB B
Meg szeretn´enk szerkeszteni a log-likelihood f¨ uggv´enyt, ehhez sz¨ uks´eg¨ unk
346
3. Fejezetek a matematik´ab´ ol
van arra, hogy a f¨ uggv´eny rendelkezz´ek a val´os sz´amokn´ al megszokott tulajdons´ agokkal: ! % % , $, - % G % $ % ,I$,- $ % & ! % 0+1 0, # ( &
% &D E(@D $ 0 ./ ' = 78.44 - 40 Log[sigma] 16.42972 sigma
A Mathematic´ a ban haladottabbak ink´ abb ´ıgy sz´amolnak: 0+1 0, & % &D E(@D $ 0 ./ ' =
Durv´ an sz´olva azt a σ param´eter´ert´eket szeretn´enk elfogadni, amelyn´el az adott minta bek¨ ovetkez´es´enek a val´ osz´ın˝ us´ege maxim´alis. A sz´amol´as el˝ott ´abr´ azoljuk a likelihood-f¨ uggv´enyt: & 0+1 0 0 QB FQB
-35 -40 -45 -50 -55 1
2
3
4
5
6
7
A deriv´ altat null´ aval tessz¨ uk egyenl˝ ov´e, ehhez a deriv´ altat szimbolikusan sz´amoljuk. A kapott egyenleteket m´ar numerikusan oldjuk meg: "1 D 0+1 0 0 B 0 {{sigma -> -1.78056}, {sigma -> 1.78056}}
Term´eszetesen a pozit´ıv ´ert´eket v´alasztjuk. Vajon a kapott pontok k¨ oz¨ ul az ´ertelmes m´asodikban a m´ asodik deriv´ alt negat´ıv-e, vagyis t´enyleg maximumhoz jutottunk?
3.11. Matematikai statisztika
347
D 0+1 0 0 Q :
-25.23359660282691
Az utols´ o el˝otti l´ep´esben haszn´alhatjuk a # f¨ uggv´enyt is; erre r´ a is k´enyszer¨ ul¨ unk, amikor a deriv´ altat nem tudjuk szimbolikusan meghat´ arozni. M´ asr´eszt ehhez a sz´amol´ashoz f¨ ol tudunk haszn´ alni egy, az a´br´ ar´ ol leolvashat´ o, j´ o kezdeti becsl´est: ' 00 C0+1 0 0 QB {30.038, {sigma -> 1.78056}}
Tanuls´ agos megvizsg´alni, hogy a becsl´es a minta elemsz´am´anak n¨ ovel´es´evel hogyan javul. • Becsl´ es a momentumok m´ odszere alapj´ an A momentumok m´odszere alapj´an u ´gy becs¨ ulhet¨ unk param´etereket, hogy egyenl˝ ov´e tessz¨ uk az elm´eleti ´es az adatokb´ol becs¨ ult momentumokat, majd ezeket az egyenl˝os´egeket megoldjuk az eloszl´as ismeretlen param´etereire. Alkalmazzuk a m´odszert a fenti feladat megold´as´ara: "1 E(@D $ 0 ' = 0 {{sigma -> 1.767684646314304}}
L´athat´ o, hogy a kapott becsl´es el´eg j´ol megegyezik az el˝oz˝ovel. Ezzel a m´odszerrel gyorsabban jutunk eredm´enyhez, m´ıg a legnagyobb val´ osz´ın˝ us´eg elve alapj´an meghat´arozott param´etereknek statisztikai szempontb´ol bizony´ıtottan j´ o tulajdons´ agaik vannak. • A legkisebb n´ egyzetek m´ odszere Ennek alapj´ an a param´etereket u ´gy v´ alasztjuk meg, hogy a bel˝ ol¨ uk sz´amolt, valamint a m´ert f¨ uggv´eny´ert´ekek n´egyzetes elt´er´ese a lehet˝o legkisebb legyen. Err˝ ol a m´odszerr˝ ol a regresszi´or´ ol sz´ol´ o r´eszn´el fogunk r´eszletesebben sz´olni. (Itt is megpr´ ob´ alkozhatn´ ank azzal, hogy a — valamilyen o¨nk´enyes feloszt´assal sz´amolt — empirikus s˝ ur˝ us´egf¨ uggv´eny ´es az elm´eleti s˝ ur˝ us´egf¨ uggv´eny n´egyzetes elt´er´es´et minimaliz´aljuk, de a s˝ ur˝ us´egf¨ uggv´enyek becsl´es´ere enn´el sokkal jobb m´ odszerek vannak.)
348
3. Fejezetek a matematik´ab´ ol
• Megb´ızhat´ os´ agi intervallumok Sok eszk¨oz ´all rendelkez´es¨ unkre megb´ızhat´os´agi intervallumok szerkeszt´es´ere: " !KA *' !6 1K ' Q Q Q> )Q )Q QM QL Q> QM
A Student-f´ele t-eloszl´as alapj´ an 95%-os szint˝ u megb´ızhat´os´agi intervallumot kaphatunk a v´ arhat´ o ´ert´ekre: A6 ' {1.72263, 2.91737}
A tov´ abbi felt´etelek ´es v´altoztat´ asi lehet˝os´egek innen l´ athat´ ok, ´epp´ ugy, ahogyan az is, mik´ent kell norm´ alis eloszl´ast felt´etelezve elk´esz´ıteni a megb´ızhat´ os´agi intervallumot: 2 A6 {ConfidenceLevel -> 0.95, KnownStandardDeviation -> None, KnownVariance -> None}
Term´eszetesen ´ıgy is ugyanazt kapjuk: " ' A6 ' " ''42*"0 ' % @ ' C {1.72263, 2.91737}
Az utols´ o param´eter a szabads´ agfok. K´et popul´ aci´ o v´ arhat´ o ´ert´ek´enek a k¨ ul¨ onbs´eg´ere is kaphatunk megb´ızhat´ os´agi intervallumot • ismert sz´or´ asokat haszn´alva a norm´alis eloszl´as, • egyenl˝o, de ismeretlen sz´or´ asokat felt´etelezve a t-eloszl´as, • becs¨ ult sz´or´ asokat felt´etelezve pedig a Welch-f´ele eloszl´as alapj´ an: ' Q )Q) Q Q )Q) Q Q Q Q D** !A6 ' ' 458 ! CJ {-1.3841, 0.64632}
Ha nem felt´etelezhetj¨ uk, hogy azonosak a sz´or´ asok, akkor term´eszetesen nagyobb intervallumot kapunk: D** !A6 ' ' {-1.42443, 0.686655}
3.11. Matematikai statisztika
349
Kider¨ ul, hogy a megb´ızhat´ os´agi szint is v´ altoztathat´ o: 2 D** !A6
Egy popul´ aci´ o sz´or´ asn´egyzet´ere a χ2 -eloszl´as alapj´ an kaphatunk megb´ızhat´ os´agi intervallumot: 8 !A6 ' {0.32992, 2.32411}
8 !A6 ' {0.705401, 5.6745}
K´et sz´or´ asn´egyzet h´anyados´ ara 90%-os megb´ızhat´os´agi intervallumot ´ıgy kaphatunk: 8 !E A6 ' ' A *' !%1 CJ BQL {0.113119, 1.45662}
Ha olyan intervallumot keres¨ unk, amelyre nagyobb annak a val´ osz´ın˝ us´ege, hogy tartalmazza a sz´or´ asn´egyzetek h´anyados´ at, akkor az term´eszetesen nagyobb lesz: 8 !E A6 ' ' A *' !%1 CJ BQL> {0.103512, 1.85008}
Ha valamilyen ismert eloszl´as´ u statisztik´ ara akarunk megb´ızhat´os´agi intervallumot szerkeszteni, akkor el˝ obb alkalmazzuk az eredeti adatokra valamelyik le´ır´ o statisztikai f¨ uggv´enyt, majd az al´abbi f¨ uggv´enyek k¨ oz¨ ul v´ alogathatunk: 4. 6 4. 4864. 94.
3.11.4. Hipot´ ezisvizsg´ alat A matematikai statisztika tipikus feladata az, amelyn´el azt akarjuk eld¨ onteni, hogy valamely feltev´es (hipot´ezis) a m´er´esi adatoknak ellentmond-e ´ vagy nem. Altal´ aban azt vizsg´aljuk teh´ at, hogy ha sokszor v´egezn´enk el a m´er´eseinket, az esetek h´anyad r´esz´eben kapn´ ank az adott esethez hasonl´o jelleg˝ u eredm´enyeket a tett hipot´ezis mellett. Ha az esetek nagy r´esz´eben ilyen t´ıpus´ u eredm´enyt kapunk, akkor azt mondjuk, hogy adataink nem mondanak ellent a tett hipot´ezisnek, m´ıg ha val´ osz´ın˝ utlen az eredm´eny, akkor a hipot´ezist elvetj¨ uk.
350
3. Fejezetek a matematik´ab´ ol
K¨ ul¨ on programcsomag a´ll rendelkez´es¨ unkre hipot´ezisvizsg´alat c´elj´ ara, ennek neve:
6 31)8 3 Fontosabb f¨ uggv´enyei:
4860V 90V #755 #
0V 6 0V V9 V
K´etoldali ellenhipot´ezissel szemben ellen˝orizni szeretn´enk, hogy k´et minta azonos sz´or´ as´ unak tekinthet˝ o-e: " !K7( @ K 8 !E ' '
Y"'' CJ E CJ {FullReport -> Ratio TestStat NumDF DenDF, 0.451024 0.451024 9 8 FRatioDistribution, TwoSidedPValue -> 0.257104}
Megkaptuk teh´ at a sz´or´ asn´egyzetek ar´any´ at, a pr´ oba alapj´ aul szolg´al´ o statisztik´at (ez ´eppen az ar´ any), a sz´ aml´al´ o ´es a nevez˝o szabads´ agi fok´ at, azt, hogy milyen eloszl´ast haszn´al a program a pr´ ob´ ahoz, v´eg¨ ul azt a val´ osz´ın˝ us´eget, amilyen szinten a k´et sz´or´ asn´egyzet megegyez´es´enek hipot´ezis´et, a nullhipot´ezist, el kell vetn¨ unk. Vagyis az esetek mintegy 25,7 %-´aban sz´ am´ıthatunk arra, hogy ilyen sz´ or´ asn´egyzetar´anyt kapunk, annak ellen´ere, hogy a k´et sz´or´ asn´egyzet megegyezik. Term´eszetesen ugyanarra az eredm´enyre jutunk, ha a sz´ or´ asn´egyzeteket, valamint a sz´aml´al´ o ´es a nevez˝o szabads´ agfok´ at magunk szolg´altatjuk: E &8 8 ! ' 8 ! ' % @ ' C % @ ' C
Y"'' CJ TwoSidedPValue -> 0.257104
3.11.5. Korrel´ aci´ o- ´ es regresszi´ oanal´ızis. Sz´ or´ asanal´ızis. Val´ osz´ın˝ us´egi v´altoz´ok k¨ oz¨otti o¨sszef¨ ugg´esek elemz´es´ere szolg´al a c´ımben eml´ıtett ter¨ ulet.
3.11. Matematikai statisztika
351
• Line´ aris regresszi´ o Ha csak line´ aris param´eterbecsl´est akarunk v´egezni a legkisebb n´egyzetek m´odszere alapj´ an (azaz felt´etelezz¨ uk, hogy az illesztend˝o f¨ uggv´eny param´etereiben line´ aris, ´es nem akarjuk az eredm´enyeket k¨ ul¨ on¨ osebb statisztikai elemz´esnek al´avetni), akkor elegend˝ o ennyit ´ırnunk: ' BQ >B BQ)M ML BQ> > BQM ) BQBL LF BQNF ) BQ F BQB>> LB BQM) BL BQM BF ' + +I + 2 70.9638 + 196.053 x + 965.336 x
Ez a feladat teh´ at a bels˝o f¨ uggv´ennyel megoldhat´ o. • Sz´ or´ asanal´ızis M´ od van azonban arra is, hogy r´eszletesebb elemz´est: sz´ or´ asanal´ızist v´egezz¨ unk. Ehhez (valamint az ezzel rokon k´ıs´erlettervez´eshez) a
6 39 3 programcsomag al´abbi f¨ uggv´enyei haszn´ alhat´ ok:
7 # 7 9
9
Vegy¨ uk el˝ o m´eg egyszer a fenti p´eld´ at: " !K% E K E ' + +I + ParameterTable -> Estimate SE 1 70.9638 10.7948 x
196.053
115.029
TStat 6.5739
PValue, 0.000311792
1.70437 0.132087
2 x 965.336 280.95 3.43597 0.0108966 RSquared -> 0.985311, AdjustedRSqured -> 0.98111114, EstimatedVariance -> 52.429,
352
3. Fejezetek a matematik´ab´ ol ANOVATable ->
Model
DoF SoS 2 24617.1
MeanSS 12308.5
Error
7
367.003
52.429
Total
9
24984.1
FRatio 234.766
PValue 0
A t´ abl´ azat n´eh´ any elem´enek jelent´ese nyilv´ anval´ o, a t¨ obbiek jelent´es´et illeuggv´eny t˝ oen a matematikai statisztika tank¨onyveire utalunk. A 9 f¨ ut, amellyel a s´ ulyoz´ ast ´alsz´amos opci´o ja k¨ oz¨ ul kiemelj¨ uk a S8 nev˝ l´ıthatjuk be statisztikai modell¨ unknek megfelel˝ oen. uggv´eny k´ıs´erlettervez´eshez A 7 9 ´es a 7 # f¨ haszn´ alhat´ o. Amennyiben az illesztend˝o f¨ uggv´eny m´eg param´etereiben sem line´aris, a
6 33 programcsomag f¨ uggv´enye lehet seg´ıts´eg¨ unkre. Illessz¨ unk u f¨ uggv´enyt el˝ oz˝o adatainkra (A fut´ asi eredm´enyeknek x → a+bx+ecx alak´ csak az utols´o l´ep´es´et k¨oz¨olj¨ uk.): ' G $ + G 4+ ! + + FB $ BB ! "@Y& CJ #!!!(O CJ > &! O CJ > ... Iteration:13 ChiSquared:577.2309320244032 Parameters: {53.395, 442.14, 11.0429} {a -> 53.395, b -> 442.14, c -> 11.0429}
3.11.6. Id˝ osorok Id˝ oben v´ altoz´o v´eletlen folyamatok k¨ oz¨ ul a legegyszer˝ ubb, leg´ attekinthet˝ obb szerkezet˝ uek tal´ an a diszkr´et idej˝ u, stacion´ arius id˝ osor ok. Elm´elet¨ uket illet˝oen a [82] cikkgy˝ ujtem´enyre utalunk, alkalmaz´ asukra Cs´aki P. p´eld´ a j´ at [82, 79–83. oldal] mutatjuk meg. A Drosophila melanogaster t¨ orzs albumin szekr´eci´o j´ at 60 gener´aci´ on kereszt¨ ul m´ert´ek. Ez a sorozat az ¨or¨ okl˝ od´esi szab´alyok miatt egy els˝orend˝ u autoregressz´ıv folyamat realiz´ aci´ o j´ anak tekinthet˝o 1/2 autoregresszi´os egy¨ utthat´ oval ´es 5 v´arhat´ o ´ert´ekkel:
3.11. Matematikai statisztika ' @ )QFN >QB >QLN )QNFF )Q)M) NQLN NQM>L NQ))N >QFL NQB) )QNFL )QMB >QF >QNB )QM NQN )QLF Q>L QM> QLML NQL FQB)N >QFB) )QLF>
353
>QN )QBN >QB) NQ>LF >QLMF QNN Q)MM >Q>BB QBN )QMF >QNFM )QL
Q>M >QF >QL)B >QFN >QF )Q) Q)> )QM>F QN QFL) )QF)F QMM
NQBBM )QFNF NQLM) NQBF >QB >QM>B QF )Q>> )QFN >QFL >QF )QBB)
Levonjuk a v´ arhat´ o ´ert´eket, hogy egy nulla v´ arhat´ o ´ert´ek˝ u folyamatot kapjunk: ' @ ' @ C >
´ azoljuk a m´ert ´ert´ekeket: Abr´ $ % & ' @ & 9 ' CJ $ % & ' @ & " ( CJ #$ & " $ & > NB & " ( CJ @!= BQB "@Y $ $ $ 7 6 5 4 3 2 1 10
20
30
40
50
60
354
3. Fejezetek a matematik´ab´ ol % @ ' @ 60
Meghat´aroztuk a nemzed´ekek sz´am´at. Szeretn´enk meghat´ arozni a legfontosabb jellemz˝oket: " !KD! 1" !K . ' @/ 8 ! 8 !%4 {4.89887, 1.48025, 1.45558}
Az ut´ obbi a korrig´ alt tapasztalati sz´ or´ asn´egyzet. Most kisz´am´ıtjuk az empirikus autokovariancia-f¨ uggv´enyt: ! $ "0
' @
C ' @R ' @
G= C ' @ C = = B M {1.45558, 0.859109, 0.44711, 0.28646, 0.140774, 0.0508499, 0.011371, -0.0191493, -0.163013}
Ebb˝ ol az empirikus autokorrel´ aci´ os f¨ uggv´eny egyszer˝ uen ad´ odik: !!
´ azoljuk is ezt a f¨ Abr´ uggv´enyt. % &
E B M & 9 ' CJ & " ( CJ @!= BQBBM % &
E B M & " ( CJ #$ & " "@Y 1 0.8 0.6 0.4 0.2
2
4
6
8
3.11. Matematikai statisztika
355
K¨ ovetkezz´ek az autokorrel´ aci´ os m´atrix: =0 + $
$ E E@
= = W W B =C = M
Most sz´am´ıtsuk ki a parci´ alis autokorrel´ aci´ os f¨ uggv´enyt: = $
D # ' D =0 +
= C E
= = G D =0 +
= = M {0.590216, -0.0632035, 0.047947, -0.0349174, -0.00855083, -0.0023358, -0.0101465, -0.0922125}
A mint´ ab´ ol becs¨ ult els˝ o parci´ alis autokorrel´ aci´ o ´ert´eke 0,59, a nagyobb index˝ uek´e beleesik a nulla k¨ or¨ uli megb´ızhat´os´agi intervallumba, azaz nem t´er el szignifik´ ansan a null´ at´ol. A Yule–Walker-egyenletek eset¨ unkben ´ıgy ´ırhat´ ok fel: ( , - # '
$
!
=G "0 !
=GC = = !
"0 !
G G 1 ( {0.859109 == 1.45558 a[1], 1.45558 == var + 0.859109 a[1]}
Most pedig n´eh´ any p ´ert´ekre megoldjuk az egyenleteket: "1 ( 1 {a[1] -> 0.590216, var -> 0.948524} "1 ( 1 {a[1] -> 0.590216, a[2] -> -0.0411863, var -> 0.966939} "1 ( 1 {a[1] -> 0.590216, a[2] -> -0.0411863, a[3] -> 0.039814, var -> 0.955533}
A p´elda f˝ o tanuls´ aga, hogy a matematikai k´epleteket szinte v´altoztat´ as n´elk¨ ul be´ırhattuk a programba. A legk´ezenfekv˝ obb, amit egy v´eletlen hib´ aval terhelt m´er´esi sorozattal tehet¨ unk, hogy sim´ıtjuk. Ez a 6 3# 3 programuggv´eny´evel v´egezhet˝o, ak´ ar szimbolikusan is: csomag # f¨
356
3. Fejezetek a matematik´ab´ ol ' $ ! ' * 1 #1 ' a+b+c b+c+d c+d+e d+e+f , , , } { 3 3 3 3
Vektor´ert´ek˝ u sorozatokra a # f¨ uggv´eny ugyan´ıgy haszn´alhat´ o. Az adatokat u ´gy kell elhelyezn¨ unk, hogy az egy id˝ oponthoz tartoz´ o ´ert´ekek az adatm´atrix oszlopait alkoss´ak.
¨ 3.11.7. Osszetett feladatok, u ´j m´ odszerek N´eh´ any olyan o¨sszetett feladatot sorolunk fel, amelyeknek a megold´ asa megtal´ alhat´ o valamelyik programcsomagban vagy id´ezett cikkben. Tukey eredm´enyei alapj´ an nemparam´eteres sim´ıt´ asra vonatkoz´ o elj´ ar´ asokat tartalmaz´o programcsomagot ´ır le [88, 331. oldal]. Ugyanott megad egy genetikai algoritmust a t˝ ozsd´en szerezhet˝o haszon maximaliz´al´ as´ara. Martin fejlettebb m´ odszereket le´ır´ o cikk´eben [55] bemutatja a s˝ us˝ us´eguggf¨ uggv´enyek Edgeworth-f´ele sorfejt´es´et, ahol j´ ol haszn´ alhat´ o a 6 f¨ v´eny a sz¨ uks´eges szimbolikus sz´amol´asok elv´egz´es´ehez. Megmutatja, hogy hogyan lehet finom´ıtani a nemline´ aris param´eterbecsl´es eredm´enyek´ent kapott param´eteregy¨ uttest, ´es hogy mik´ent kell ´ert´ekelni az eredm´enyeket. Ismertet egy programot a g¨ orb¨ uleten alapul´ o diagnosztik´ ara is, amely Bates ´es Watts egy 1980-as cikk´en alapul. Ezut´ an t´ argyal robosztus becsl´eseket, a medi´an fogalm´ anak (nemtrivi´ alis) k´etdimenzi´os ´altal´ anos´ıt´ as´at, valamint egy m´odszert, amely adatok t´erbeli elhelyezked´es´et vizsg´alja statisztikai szempontb´ol, ´ıgy ak´ ar a t´erinformatik´ ahoz t¨ ort´en˝ o statisztikai hozz´a j´ arul´ asnak is tekinthet˝o.
3.11.8. Gyakorlatok ´ es feladatok ´ azoljuk az u-pr´ 1. Abr´ oba er˝ of¨ uggv´eny´et a param´eter ´es a mintaelemsz´am f¨ uggv´eny´eben. 2. ´Irjunk f¨ uggv´enyt, amellyel a Sarkadi-pr´oba [85, 137. oldal] alapj´ an adott mint´ ar´ ol eld¨onthet˝ o, hogy valamely minta norm´ alis eloszl´asb´ol sz´armaz´onak tekinthet˝ o-e, ha sem a sz´or´ ast, sem a v´arhat´ o ´ert´eket nem ismerj¨ uk. 3. D¨ onts¨ uk el v´eletlen´ıtett (randomized) pr´ oba alapj´ an, hogy egy k ´es egy l elem˝ u minta k¨ oz¨ ul melyik a ”nagyobb”.
4. A Mathematica programoz´as´ar´ ol
Megeml´ıtett¨ uk m´ ar azt, hogy a Mathematica magasszint˝ u programoz´ asi nyelvnek is tekinthet˝ o. Az el˝oz˝o fejezetben sz´amos p´eld´ at l´ attunk arra, hogy a bels˝o ´es a k¨ uls˝ o f¨ uggv´enyek ¨osszekapcsol´as´aval hogyan defini´ alhatunk u ´j elj´ ar´ ast, azaz hogyan ´ırhatunk programot. Ebben a fejezetben azt szeretn´enk kihangs´ ulyozni, hogy a Mathematica haszn´ alhat´ o k¨ ul¨ onb¨ oz˝o st´ılus´ u programok k´esz´ıt´es´ere. • ´Irhatunk programokat a hagyom´ anyos procedur´ alis (vagy imperat´ıv) programoz´ asi nyelvek (Basic, C, FORTRAN, Pascal) st´ılus´ aban, szekvenci´ akat, elj´ ar´ asokat, ciklusokat, blokkokat ´es felt´eteles utas´ıt´ asokat haszn´ alva. • Ut´ anozhatjuk a logikai vagy szab´ alyalap´ u nyelvek (PROLOG) logik´ aj´ at, transzform´ aci´ os szab´alyok megad´as´aval ´es mint´azatok illeszt´es´evel. • Funkcion´ alis programoz´ asi nyelvek (APL, LISP, LOGO, Miranda) st´ıatorokkal, rekurlus´ aban is´ırhatunk programokat f¨ uggv´enyekkel, oper´ zi´oval ´es a programszerkezetet befoly´asol´o m˝ uveletekkel. (A funkcion´ alissal majdnem azonos jelent´es˝ u a listakezel˝ o.) • Objektum-orient´ alt programoz´ asi nyelvek (C++, SIMULA, SMALLTALK, Actor, a Turbo Pascal 5.5 ut´ ani v´ altozatai) eszk¨ozeit (oszt´alyok, polimorfizmus, o¨r¨ okl˝ od´es) is alkalmazhatjuk. Az els˝ o h´ arom programoz´ asi st´ılust be´ep´ıtett bels˝o ´es k¨ uls˝ o f¨ uggv´enyek t´ amogatj´ ak. Ha objektum-orient´ alt st´ılusban szeretn´enk programjainkat meg´ırni, akkor ehhez a MathSource-on a 0200–293 ´es a 0205–186 sz´am alatt tal´ alhat´ o kieg´esz´ıt´eseket haszn´alhatjuk, vagy a [29] k¨ onyv 9. fejezet´ere t´amaszkodhatunk. A p´eldak´ent eml´ıtett programnyelvek ´altal´ aban nem k´epviselik tiszt´ an valamelyik programoz´ asi st´ılust, hanem egyik vagy m´ asik st´ılus jellegzetess´egei domin´ alnak benn¨ uk. B´ ar a Mathematic´ a r´ ol azt mondtuk, hogy ebben mindegyik st´ılus teljes eg´esz´eben megval´os´ıthat´ o, ez l´enyeg´et tekintve (t¨obb odszert ´eppen maszerz˝o szerint) funkcion´ alis programoz´ asi nyelv . Ezt a m´ tematikai feladatok hat´ekony megold´as´ara fejlesztett´ek ki [8], hiszen
358
4. A Mathematica programoz´ as´ar´ ol f¨ ol¨ osleges r´eszeikre szedni a matematikai objektumokat, csak az´ert, hogy azut´ an u ´jra o¨sszerakjuk ˝oket.
(L´ asd [29], 8. fejezet.) K¨ ul¨ onb¨ oz˝o st´ılusban meg´ırt elj´ ar´ asok ki´ert´ekel´es´ehez sz¨ uks´eges id˝ otartamok l´enyegesen k¨ ul¨ onb¨ oz˝ok lehetnek, adott feladat megold´ as´ahoz a leghat´ekonyabb st´ıluselemek kiv´alaszt´asa sokszor nem egyszer˝ u feladat. Ehhez a programcsomagok sz¨oveges ´allom´ anyainak tanulm´ anyoz´ asa adhat seg´ıts´eonyvt´ arakban tal´ alhat´ o get. Az ´es a alk¨ r¨ ovid programcsomagokb´ ol sokat mer´ıthet az ´erdekl˝od˝ o Olvas´ o. R. Maeder [51] k¨onyv´eb˝ ol l´ep´esr˝ol l´ep´esre tanulhatjuk meg nagyobb programok ´ır´ as´anak fort´elyait. J. W. Gray [29] k¨ onyve pedig k¨ ul¨ onb¨ oz˝o st´ılus´ u programok ´ır´ as´ara mutat be sz´amos p´eld´ at. A MathSource-r´ ol megszerezhet˝o dokumentumok (p´eld´ aul a 0203–904, 0203–926, 0205–748 sz´am alattiak) is sz´amos hasznos inform´ aci´ ot tartalmaznak a Mathematica programoz´ as´aval kapcsolatosan. A programoz´ asn´ al is nagy jelent˝ os´ege van annak, hogy szimb´ olumokat is tudunk kezelni, nem csak sz´amokat. A meg´ırt programok t¨ obbf´elek´eppen futtathat´ ok: beg´epel´es ut´an azonnal (hiszen a Mathematica alapvet˝oen ´ertelmez˝o m´odban, m´ ask´eppen interakt´ıvan m˝ uk¨ odik), a´llom´anyb´ ol k¨ otegelt u ¨zemm´odban, valamint a meg´ırt programr´eszeket elrakt´arozhatjuk b´ armikor felhaszn´ alhat´ o programcsomaod van arra is, hogy a Mathematica nyelv´en ´es m´as nyelven gokban is. M´ meg´ırt programjainkat o¨ssze´ep´ıts¨ uk a MathLink program felhaszn´ al´ as´aval. Oktat´ asi szempontb´ol k¨ ul¨ on¨ os jelent˝os´ege van annak, hogy a Mathematic´ a n bel¨ ul mindegyik programoz´ asi st´ılus teljes eg´esz´eben bemutathat´ o.
4.1. Programnyelvi elemek Az al´ abbiakban felsoroljuk a Mathematic´ a nak mint programoz´ asi nyelvnek az elemeit: • • • • • •
karakterk´eszlet, alapszavak, adatt´ıpusok (f¨ uz´erek, sz´amok, szimb´olumok; adatellen˝ orz´es), adatszerkezetek (kifejez´es, lista, f¨ uggv´eny, t¨ omb), transzform´ aci´ os szab´alyok, mint´ azatok, adatszerkezetek ´atalak´ıt´ asai (´ert´ekad´ as, listam˝ uveletek),
4.1. Programnyelvi elemek
359
• programszerkezetek (szekvencia, el´agaz´as, ciklus; blokk, modul, programcsomag), • nyomk¨ ovet´es ( , , , , , ), • u ¨zenetek (, ). Ezek egy r´esz´evel a 2. fejezetben m´ar foglalkoztunk. A tov´ abbiakban csak az eddig nem t´argyalt elemekr˝ol sz´olunk. • Szekvencia P´eld´ aul a Pascal nyelvben szerepl˝ o ¨osszetett utas´ıt´ asnak felel meg a Mathematic´ a ban a szekvencia fogalma. Ha arra van sz¨ uks´eg¨ unk, hogy egym´ as ut´ an v´egrehajtand´ o utas´ıt´ assorozatot egyetlen utas´ıt´ asnak tekints¨ unk, akkor az utas´ıt´ asokat egym´ast´ol pontosvessz˝ovel v´ alasztjuk el, ´es g¨omb¨ oly˝ u z´ar´ o jelek k¨ oz´e tessz¨ uk:
Ez r¨ ovid alakja a
!" " # kifejez´esnek. (A egy´ebk´ent a $
f¨ uggv´eny r¨ ovid, infix alakja.) • El´ agaz´ as Sz´ amos eszk¨oz ´all rendelkez´es¨ unkre alternat´ıv´ ak kezel´es´ere. El˝ ofordul, hogy egy logikai kifejez´es ´ert´ek´et˝ol szeretn´enk f¨ ugg˝ ov´e tenni, hogy h´ arom kifejez´es k¨oz¨ ul melyiket ´ert´ekelje ki a program. Erre szolg´ al a legegyszer˝ ubb a felt´eteles utas´ıt´ as:
%!" &" " ' # Ha a ´ert´eke igaz ( ), akkor a & utas´ıt´ as, ha a ( ´ert´eke hamis (), akkor a utas´ıt´as, ha pedig a ( ´ert´eke nem sz´am´ıthat´o ki (p´eld´aul az´ert, mert a benne szerepl˝o v´alas hajt´ odik v´egre. A toz´ok nem kaptak ´ert´eket), akkor az ' utas´ıt´ f¨ uggv´eny utols´ o vagy utols´ o k´et argumentuma (´ertelemszer˝ u hat´ asokkal) elhagyhat´ o: 8
360
4. A Mathematica programoz´ as´ar´ ol 3
Ha t¨obbir´ any´ u el´ agaz´assal van dolgunk, akkor is haszn´ alhatjuk az % f¨ uggv´enyt, de ebben az esetben bonyolult kifejez´esekhez jutunk. Ez elker¨ ulhet˝ o, ha a
) !&" " &" " ***# konstrukci´ ot alkalmazzuk. Ekkor az els˝ o olyan utas´ıt´ as hajt´ odik v´egre, amelyik el˝ ott igaz ´ert´eket felvev˝o logikai kifejez´es ´all. P´eld´ aul: # $ %
! "
{16, 1, 12}
+ , ´ert´eke pontosan akkor , amikor argumentuma p´aros. — A fenuggv´eny a Collatz-f´ele probl´ema (vagy 3a + 1 probl´ema) vizsg´alat´ an´ al ti f¨ haszn´ alhat´ o; l´ asd m´eg az ´es a (egyu prgoramcsomagj´ at. m´ast´ol k¨ ul¨ onb¨ oz˝o!) & nev˝ Ha egy (nem felt´etlen¨ ul logikai) kifejez´es ´ert´ek´et˝ol akarunk f¨ ugg˝ ov´e tenni uggv´enyt: egy kifejez´est, akkor haszn´ aljuk a - f¨ - ! " " " " " ***# Oldjuk meg az el˝ obbi feladatot ezzel a konstrukci´ oval is: &' ( ( " # $ % {16, 1, 12}
L´athat´ o, hogy az . jelet itt is tetsz˝oleges kifejez´es jel¨ol´es´ere haszn´altuk. El˝ ofordul az is, hogy egy ´ altal´ anos´ıtott list´ab´ ol szeretn´enk kiv´alasztani az els˝o n´eh´ any olyat, amely kiel´eg´ıt egy bizonyos krit´eriumot (logikai ´ert´ekeket felvev˝ o f¨ uggv´enyt). Ilyenkor ezt ´ırjuk:
! " "
'#
4.1. Programnyelvi elemek
361
P´eld´ aul: &) $ * *% +,-! {3, 4}
Ha viszont egy (´altal´ anos´ıtott) lista adott mint´azatnak megfelel˝ o elemeit akarjuk kiv´ alasztani, akkor a
! " &# utas´ıt´ asra van sz¨ uks´eg¨ unk: .//$ 0 0% 1 {-4, -2} .// " 20 34& **203 1 {-4, -2}
Az adott mint´ azatnak megfelel˝ o listaelemek sz´am´anak meghat´aroz´as´ara k´et p´elda: .( $ * *% * 2 .( $ * *% *5 3
Itt a
! " &# szerkezetet haszn´altuk, ´es a m´asodik esetben utaltunk a kitev˝ o alap´ertelmez´esbeli ´ert´ek´ere. • Ciklus A szok´asos ciklusutas´ıt´ asok mindegyike haszn´ alhat´ o a Mathematic´ a ban. A assunk egy p´eld´ at: legegyszer˝ ubb k¨ oz¨ ul¨ uk tal´ an a / . L´ 6 +6(7 8(9! :: : 6: 6 $ % a=1 L[a]=0 a=2 L[a]=0.693147 a=3 L[a]=1.09861
362
4. A Mathematica programoz´ as´ar´ ol
L´athat´ o, hogy a ciklus t¨ orzs´et jelent˝o utas´ıt´ as ´all el¨ ol, m´ asodikk´ent pedig a ciklusv´altoz´ot, kezd˝ o- ´es z´ar´ o´ert´ek´et tartalmaz´o list´at kell ´ırnunk. ant el¨ oltesztel˝ o, a´ltal´ anos alakjuk: A ´es a ) egyar´
! " &" + '" &# ) !&" &# Pr´ ob´ aljuk ki p´eld´ aul a k¨ ovetkez˝o k´et parancsot: ;(! *1 "" * " 9! 1 + x
2 2
2
2 + (1 + x ) 2 3 + 2 + (1 + x )
2
2
¨ Ugyelj¨ unk a k¨ ul¨ onf´ele ´ır´ asjelekre! < )2 ;)((!3 = 1 9! 8 4 2 1
B´ar az ´ert´ekad´ as ´es a felt´etelvizsg´alat ¨osszekapcsol´asa t¨om¨or´ır´ asm´odot tesz lehet˝ov´e, m´egis ezek a m´odszerek a Mathematic´ a ban a´ltal´ aban kev´esb´e hat´ekonyan m˝ uk¨ odnek, mint a funkcion´ alis st´ılust t´ amogat´o
$ $ 0 $ $0
1 10 2
f¨ uggv´enyek. Ezt illusztr´alj´ ak a k¨ ovetkez˝o p´eld´ ak. Els˝ ok´ent meghat´ arozzuk uggv´eny fixpontj´ at: a f¨ (/ +.(/ ; >9( (/ 0.739085
4.1. Programnyelvi elemek
363
M´ asodikra szimul´alunk egy szimmetrikus v´eletlen bolyong´ ast: -()(7/ ;()>6 / 9)/ 1 -)?>(, 0 $% 6 / 9)( -()(7/1 9)( @( > 0A !
Harmadikk´ent bemutatjuk Novak megold´ as´at a Gram–Schmidt-f´ele ortogonaliz´al´ asra, amely a 0 32 4
&
4 csomagj´ aban is szerepel. A p´elda r´eszletes elemz´es´et az Olvas´ora hagyjuk. / 2 5 3 2 53 ) / ! / B (!) / 9)/ ## 2 / CD # B (!) / 3 E!,&, > , ! ;()>@( C $C 0 ) / ! /C C%D $ % , !
• Lok´ alis v´ altoz´ ok haszn´ alata uggv´enyek lehet˝ov´e teszik lok´alis A ) , a $ ´es a 5 bels˝o f¨ ´alland´ ok ´es lok´ alis nev˝ u, illetve lok´ alis ´ert´ek˝ u v´ altoz´ok haszn´ alat´ at. Ezek a konstrukci´ ok a struktur´ alt nyelvekben megszokott blokk oknak felelnek meg. Lok´ alis v´ altoz´okat haszn´ alhatunk a 5 ´es a $ szerkezetben. A modul haszn´ alat´ at az indokolhatja, hogy • ne u ¨tk¨ ozzenek a v´ altoz´ ok; • egyszer kisz´amolt ´ert´eket t¨obbsz¨ or akarunk haszn´ alni; • n¨ ovelni akarjuk a program a´ttekinthet˝ os´eg´et. o el˝onyben. Ha viszont A kett˝ o k¨ oz¨ ul a´ltal´ aban a $ r´eszes´ıtend˝ alata. interakt´ıv sz´amol´asokra k´esz¨ ul¨ unk, akkor aj´ anlatosabb a 5 haszn´ Ezzel elker¨ ulhetj¨ uk a v´ altoz´onevek u ¨tk¨ oz´es´et. Tekints¨ uk az al´abbi utas´ıt´ assorozatot: , * 2 i F)(B$ % " , 2 a + a G(>)$ % " , 2 a + i
364
4. A Mathematica programoz´ as´ar´ ol
L´athat´ o, hogy az els˝o esetben a blokk lok´ alis v´ altoz´o ja az 6 kifejez´es ki´ert´ekel´es´eben v´egig szerepet j´atszik. A modul ki´ert´ekel´es´en´el a lok´alis v´ altoz´ora vonatkoz´ o ´ert´ekad´ as csak a ki´ert´ekelend˝o 6 kifejez´esben explicite szerepl˝o helyre vonatkozik. Ez´ert mondjuk azt, hogy az els˝ o szerkezetben lok´ alis ´ert´ek˝ u, m´ıg a m´asodikban lok´ alis nev˝ u v´ altoz´o szerepel. uggv´enynek k´et argumentuma van. Az els˝ o a lok´ alis v´ altoA $ f¨ z´ok list´a ja, amelyben esetleg kezdeti ´ert´ekad´ as is szerepel. A m´asodik argumentum (´ altal´ aban o¨sszetett) kifejez´es. Az eredm´eny az utols´ o utas´ıt´ as osebb, mint a " jel, elt´er˝oen v´egeredm´enye. Figyelj¨ unk arra, hogy a jel er˝ a legt¨obb m´ as nyelvben megszokottakt´ ol. A k¨ ovetkez˝o p´eld´ aban lok´ alis ´ alland´ o szerepel, azaz olyan azonos´ıt´ o, amelyhez egyetlen egyszer rendel¨ unk hozz´ a valamilyen ´ert´eket (Ez´ert azt o a $ konstrukci´ onak speci´alis mondhatjuk, hogy a ) konstrukci´ esete: mintha csak a kezdeti ´ert´ekad´ as hajt´ odn´ek v´egre.):
< 17 ' $ " % " * ' 3 1 + a + (1 + a)
17
Teh´at a program k¨ ul¨ onbs´eget tett k´et k¨ ul¨ onb¨ oz˝o el˝ofordul´ asa k¨oz¨ott, a glob´ alis ´ert´ek´et megtartotta. Programjainkban haszn´ alhatjuk a m´ as nyelvekben megszokott megszak´ıt´ asokat ´es visszat´er´eseket is:
5
7
02 8 -
4.2. Gyorsas´ ag, gyors´ıt´ as Ebben a szakaszban azzal fogunk foglalkozni, hogy milyen gyorsan sz´ amol ki valamit a Mathematica, ´es hogy ez a sz´amol´asi id˝ o milyen m´odszerekkel r¨ ovid´ıthet˝ o.
4.2. Gyorsas´ag, gyors´ıt´ as
365
4.2.1. Tipikus m˝ uveletek id˝ oig´ enye Miel˝ ott r´ at´ern´enk a programok gyors´ıt´ as´anak m´ odszereire, ´erdemes t´a j´ekoz´od´ asul n´eh´ any id˝ oadatot megn´ezn¨ unk. Ezek ´ert´ekel´es´en´el figyelembe kell venni, hogy nemcsak a Mathematica aktu´ alisan haszn´ alt v´ altozat´ anak sz´am´at´ ol ´es az adott g´ep konfigur´ aci´ o j´ at´ol f¨ uggenek, hanem m´eg att´ol is, hogy az adott alkalmon bel¨ ul az adott m˝ uvelet mikor, milyen el˝ozm´enyek ut´ an ker¨ ult sorra. A t´ abl´ azat bemutat´ asa el˝ott, annak meg´ert´es´ehez ´es reproduk´ al´ as´ahoz n´emi seg´ıts´eget adunk. Ha meg akarjuk tudni, hogy mennyi ideig dolgozik a k¨ ozponti egys´eg az 700 polinom kifejt´es´en, akkor a k¨ ovetkez˝ot kell be´ırnunk: (a + bx) , 7H>2 " - 3*<11
Ennek hat´ as´ara visszakapjuk a m˝ uvelet elv´egz´es´ehez sz¨ uks´eges id˝ otartamot m´asodpercben ´es az eredm´enyt. Az id˝otartam null´ anak mutatkozik, ha kisebb egy minim´ alis ´ert´ekn´el, ami rendszerint a m´ asodperc hatvanadvagy sz´azadr´esze. Amikor a g´ep teljes´ıt˝ ok´epess´eg´et vizsg´aljuk, el˝ ofordulhat, hogy mag´ ara a sz´am´ıt´ asi eredm´enyre nincs is sz¨ uks´eg¨ unk. Ekkor az eredm´eny k´eperny˝ ore val´ o ki´ır´ as´at az utas´ıt´ as ut´ an tett pontosvessz˝ovel akad´ alyozzuk meg: , 7H>2 " - 3*<11
M´ atrixok invert´ al´ as´anak id˝ oig´eny´et a k¨ ul¨ on¨ osen rosszul kondicion´ alt Hilbert-f´ele m´atrixok (amelyek i-edik sor´aban ´es j-edik oszlop´aban az 1/(i+j) sz´am ´all) p´eld´ a j´ an tanulm´ anyoztuk. ovid´ıt´ese, A t´ abl´ azatban a (3x+4y +5z)20 szorzatt´a” kifejez´es annak a r¨ ” hogy el˝ obb kifejtj¨ uk az adott polinomot, majd megvizsg´ aljuk, hogy mennyi id˝ o alatt alak´ıtja az ¨osszeget szorzatt´a a program. Ekkor teh´ at k´et egym´ as ut´ ani m˝ uvelet egy¨ uttes elv´egz´es´ehez sz¨ uks´eges id˝ o az, amit m´er¨ unk. Ehhez a k¨ ovetkez˝oket ´ırjuk be: , 7; (!H>2 " " I3*1
Fibonacci20 a rekurzi´ oval a k¨ ovetkez˝o pontban defini´ alt Fibonacci-sorozat 20-adik tagj´ at jelenti. A megadott faktoriz´aland´ o sz´amok pedig olyan nagy sz´ amok, amelyeknek legkisebb pr´ımt´enyez˝o j¨ uk is nagy, ezeket szok´as g´epek gyorsas´ag´ anak ellen˝ orz´es´ere haszn´alni. A m´er´eseket IBM PC t´ıpus´ u g´epeken v´egezt¨ uk; egy-egy adatot k¨ozl¨ unk:
366
4. A Mathematica programoz´ as´ar´ ol
Feladat
Id˝ otartam (sec) G´ep I. G´ep II. 486 386SX 50 MHz 20 MHz 8 MB 10 MB
1111111
0.879
13.566
(a + bx)100 (a + bx)500 (a + bx)700 (a + bx)1000 (a + bx)2000
0.164 0.934 1.373 2.032 4.944
2.472 13.787 18.894 25.43 59.594
(1/(i + j − 1))5×5 (1/(i + j − 1))−1 10×10 −1 (1/(i + j − 1))20×20 −1 (1/(i + j − 1))30×30
0.604 0.659 8.128 54.156
2.087 9.777 143.19 856.171
(3x + 4y + 5z)10 szorzatt´a (3x + 4y + 5z)20 szorzatt´a (3x + 4y + 5z)30 szorzatt´a
2.636 7.58 27.792
19.553 114.904 396.119
−1
Fibonacci10 Fibonacci20 Fibonacci25 Fibonacci50 FactorInteger[267 − 1] FactorInteger[2201 − 1]
0.055 0.055 −1.1279910−13 0.109
0.494 0.824 0.22 1.098
10.82 Nem bontja f¨ ol
140.333 Nem bontja f¨ ol
Ha azt gyan´ıtjuk, hogy valaminek a kisz´ amol´asa sok id˝ot fog ig´enybe venni, akkor ´erdemes a k¨ovetkez˝ok´eppen elj´ arni. K´esz´ıt¨ unk egy olyan f¨ uggv´enyt, amelyben a feladat m´erete az egyetlen v´altoz´o, ´es k¨ ul¨ onb¨ oz˝o m´eretek uggv´eny felhaszn´ al´ as´aval megm´erj¨ uk, hogy a feladat v´egeset´en a f¨ rehajt´ as´anak id˝ otartama hogyan f¨ ugg a m´erett˝ol. Sajnos, b´ ar ez nem meglep˝ o, az ´erdekes esetekben azt fogjuk tapasztalni, hogy a v´egrehajt´ asi id˝ oa m´eretnek exponenci´ alis f¨ uggv´enye. Az el˝ozetes k´ıs´erletez´esbe fektetett munka ekkor sem volt f¨ol¨ osleges, mert extrapol´aci´ oval megbecs¨ ulhetj¨ uk, hogy az igazi m´eret mellett feladatunk elfogadhat´ o id˝ on bel¨ ul megoldhat´ o-e. K¨ ul¨ on¨ osen sok´aig tart az ´ abr´ ak ´es hangok el˝oa´ll´ıt´ asa; ilyen p´eld´ at nem szerepeltett¨ unk a t´ abl´ azatban.
4.2. Gyorsas´ag, gyors´ıt´ as
367
4.2.2. Gyors´ıt´ as eml´ ekez˝ o f¨ uggv´ enyekkel Ha a szok´ asos m´odon, a /'$ (r¨ oviden: 9:) utas´ıt´ as felhaszn´ al´ as´aval adunk meg egy f¨ uggv´enyt, akkor annak ´ert´ek´et minden megh´ıv´ as alkalm´ aval kisz´amolja a program. El˝ ofordul viszont, hogy egy f¨ uggv´enynek egy adott helyen f¨ olvett ´ert´ek´et sokszor akarjuk f¨ olhaszn´ alni. Ekkor a Mathematica r´ avehet˝o arra, hogy megjegyezze a m´ar egyszer kisz´amolt ´ert´eket. Ez a technika k¨ ul¨ on¨ osen j´ ol haszn´ alhat´ o rekurz´ıv m´odon defini´ alt f¨ uggv´enyekn´el: -7(!/ -7(!/ -7(!/ 0 " -7(!/ 0 -7(!/1 -7(!/ , 7 -7(!/ {0.329 Second, 233}
Ha most kiadjuk a ; 2' k´erd´est, akkor a v´ alasz mutatja, hogy val´ oban, az argumentum 12 ´ert´ek´eig a program megjegyezte a kisz´am´ıtott f¨ uggv´eny´ert´ekeket. Ha m´eg egyszer megk´erdezz¨ uk a 12. tagot, sokkal gyorsabban kapunk v´ alaszt: , 7 -7(!/ {0. Second, 233}
A fenti megold´ ast Gray igen tal´ al´ oan dinamikus programoz´ asnak nevezi.
4.2.3. Gyors´ıt´ as a f¨ uggv´ ennyel Tetsz˝oleges argumentumra defini´ aljuk a f¨ uggv´eny-t az al´abbi m´ odon: 77 &
vagyis argumentuma lehet val´ os vagy komplex sz´am, lista, kifejez´es stb. Ha nem kell az o¨sszes lehet˝os´egre f¨olk´esz¨ ulni, hanem feltehet˝o, hogy az argumentum csak g´epi pontoss´ ag´ u sz´am (vagy logikai ´ert´ek) lehet, akkor a ki´ert´ekel´es jelent˝osen meggyors´ıthat´ o. A gyors´ıt´ as k¨ ul¨ on¨ osen akkor jelent˝os, ha a f¨ uggv´eny ´ert´ek´et sz´amol´o k´epletben sok egyszer˝ u (p´eld´ aul aritmetikai) m˝ uvelet van: 7 ; ( & Function[x, x Sin[x]]
368
4. A Mathematica programoz´ as´ar´ ol 7. .(,H ) & CompiledFunction[{x}, x Sin[x], -CompiledCode-]
K´esz´ıts¨ unk most egy-egy t´abl´ azatot mindk´et f¨ uggv´enyb˝ ol: , 7 -)7 $ 15 5 151% {1.044 Second, Null}
, 7 -)7. $ 15 5 151% {0.714 Second, Null}
N´ezz¨ unk meg egy m´asik p´eld´ at is: )9. .(,H ) ) 67>!91 2 4 CompiledFunction[{x}, (-63 + 3465 x - 30030 x + 6 8 10 90090 x - 109395x + 46189x )/256, -CompiledCode-] , 7 -)67>!91 $ 15 5 151% {4.285 Second, Null} , 7 -))9.1 $ 15 5 151% {0.934 Second, Null}
Ezzel szemben, ha olyan f¨ uggv´ennyel van dolgunk, amilyen p´eld´ aul a 5( < vagy az +, akkor nem tapasztalunk jelent˝os gyors´ıt´ast, mivel a sz´amol´asi id˝ o nagy r´esze a Mathematica bels˝o algoritmusainak v´egrehajt´ as´aval telik, amire a ford´ıt´ as (ford´ıtsuk ´ıgy a compilation sz´ot) nincs hat´ assal. Most arra mutatunk egy p´eld´ at, hogy hogyan gyors´ıthat´ o meg az ´ abr´ aas felhaszn´ al´ as´aval. Az al´ abbi f¨ uggv´enyt szeretn´enk zol´ as a utas´ıt´ ´abr´ azolni: , ( J-/ " *20 2< 9 " 9 .(/ 33 " *20 2< 9 " 9 .(/ 33 , 79()!9)( , ( $ 09 9 % 9)( !7 0A J)) {583.743 Second, Graphics}
Ez igen sok´ aig tartott. A defini´ alt f¨ uggv´eny t´ ul sokat tud: argumentuma lehet val´ os sz´am, eg´esz sz´am, szimbolikus kifejez´es stb. Nek¨ unk viszont a rajzol´ ashoz elegend˝o egy olyan f¨ uggv´eny, amely csak val´ osakra van ´erteluggv´eny rendelkezik a = $3 attrib´ utummal, ez´ert mezve (A f¨ uggv´enyt.): kell alkalmaznunk az + f¨
4.2. Gyorsas´ag, gyors´ıt´ as
369
, (. .(,H )$$ ?)%% ) , ( , 79()!9)( , (.H $H 09 9 % 9)( ?7 0A J)) {4.449 Second, Graphics}
2
1
-2 -1.5
-1 -0.5
0.5
1
1.5
-1
-2
Most rajzoljunk Mandelbrot-halmazt: ,>)-!( . .(,H )$ ) ,% G(>)$I 1% I " )J-/I 51 DD ) , I I* " 2 " 3 "" 8/ 9)( 0,>)-!( .1 $055% $055% 9)( 9( / 0A 1 G/ 0A ;)/
V´eg¨ ul megeml´ıtj¨ uk, hogy sz´ amos be´ep´ıtett f¨ uggv´eny rendelkezik a ( $ opci´oval, amelynek ilyenkor az alap´ertelmez´es szerinti ´ert´eke . Egy´ebk´ent amikor csak lehets´eges, be´ep´ıtett f¨ uggv´enyt ´erdemes haszn´alnunk, mert a legt¨ obb esetben ´ıgy kaphatjuk meg a leggyorsabb megold´ ast.
4.2.4. Gyors´ıt´ as listam˝ uveletekkel Az al´ abbiakban egy lista minden elem´ehez t¨obbf´ele m´odon hozz´ a fogjuk adni az 1 sz´amot. Kider¨ ul majd, hogy a m˝ uvelet id˝ oig´enye jelent˝osen f¨ ugg att´ ol, hogy mennyire haszn´ aljuk ki a Mathematica lehet˝os´egeit: ) / -)?>(, 7! $ 1% $111% , 7K) / $% ;(! 67 ) / "" JHH> (K) / ) / "
370
4. A Mathematica programoz´ as´ar´ ol {70.304 Second, Null}
M´ asodik megold´ ask´ent a 2 utas´ıt´ assal hozunk l´etre egy u ´j list´at: , 7K) / -)) / " $ 67 ) / % {6.92 Second, Null}
M´eg gyorsabban jutunk c´elhoz, ha nem hivatkozunk az egyes elemekre, uggv´enyt: hanem alkalmazzuk a f¨ , 7 " K) / GH ) / {4.394 Second, Null}
Mivel a f¨ uggv´eny list´ara alkalmazhat´ o (rendelkezik a 0 2 attrib´ utummal), ez´ert a legegyszer˝ ubb (´es leggyorsabb) megold´ast ´ıgy kapjuk: , 7K) / ) / " {2.252 Second, Null}
Term´eszetesen mindig ugyanazt az eredm´enyt kaptuk: K) / K) / K) / K) / True
V´eg¨ ul m´eg egy (kezdetben ijeszt˝onek hat´ o) p´eld´ at eml´ıt¨ unk. A Mathematica bizonyos be´ep´ıtett f¨ uggv´enyei k¨ oz¨ott is vannak egyenl˝ obbek” (Az ” al´ abbi sz´amol´asokat nem ugyanolyan g´epen v´egezt¨ uk, mint a f¨ ontebbieket, ez´ert csak az egym´as k¨oz¨otti ar´ anyokra ´erdemes figyelni, illetve azokra az id˝ oadatokra, amelyeket az Olvas´o saj´at g´ep´en kapott.): , 7 -) * $ 111% {0.15 Second, Null}
, 7?7111* {0.0833333 Second, Null}
, 7C*D # ?7111 {0.06666667 Second, Null}
Ezek szerint teh´ at az el˝oz˝o p´eld´ aban a el˝o´all´ıt´ as´anak c´elszer˝ u m´odja a k¨ ovetkez˝o: ) / ?>(, 7! $ 1%D # ?7111
Vizsg´aljuk meg, hogy a m´ert id˝ oadatok al´ at´ amasztj´ak-e a fenti felt´etelez´est!
4.3. Tan´acsok programok k´esz´ıt´es´ehez
371
4.3. Tan´ acsok programok k´ esz´ıt´ es´ ehez B´ar a Mathematica magja ´es programcsomagjai ¨osszesen t¨obb, mint k´etezer bels˝o ´es k¨ uls˝ o f¨ uggv´enyt tartalmaznak, a felhaszn´ al´ o gyakran tal´ alkozik olyan feladattal, amelyet nem tud egyetlen f¨ uggv´eny seg´ıts´eg´evel megoldani. A tov´ abbiakban az ilyen esetekhez szeretn´enk tan´ acsokat adni. Egy procedur´ alis nyelven meg´ırt program minden neh´ezs´eg n´elk¨ ul a´t´ırhat´ o a Mathematica programnyelv´ere. J. W. Gray [29] k¨ onyv´eben a 8.4. szakaszban mutat p´eld´ akat C ´es Pascal nyelv˝ u programok k¨ ozvetlen ´at´ır´ as´ara. A szerz˝o ugyanitt azt is megmutatja, hogy a Mathematica funkcion´ alis st´ıluselemeit felhaszn´alva hogyan lehet a feladatot j´ oval r¨ ovidebben megoldani. Itt ism´et kiemelj¨ uk azt, hogy a feladatokat a´ltal´ aban k¨ ul¨ onb¨ oz˝o st´ıluselemeket haszn´alva is megoldhatjuk. A ki´ert´ekel´eshez sz¨ uks´eges id˝ otartamok azonban l´enyegesen k¨ ul¨ onb¨ oz˝ok lehetnek; tapasztalatunk az, hogy a´ltal´ aban a funkcion´ alis st´ılus´ u ´ır´ asm´odot t´ amogatja a legjobban a program. Amikor g´epid˝ oig´enyes feladatunk van, akkor ´erdemes szem el˝ott tartani a gyors´ıt´ as´ar´ ol fentebb mondottakat. Adunk n´egy k¨ ul¨ onb¨ oz˝o megold´ast Novak [60] alapj´ an a faktori´ alis kisz´am´ıt´ as´ara: H!(>!) / G(>)$7K ( >% +( 7! DD 9(/ ? !:L -/ -, : 7K ( > ) > 7K ( 7K (4 > > > " ? !7K ( H!(- $ 0 M5% H!(>!) / # H!(- {1, 2, 6, 24, Hibas bemenet, Hibas bemenet} B () / ? ! ? ! B () / 0 B () / # H!(- {1, 2, 6, 24, 1, 621344.}
/I-)(/ /I-)(/ 7!N9(/ /I-)(/ 0 /I-)(/ # H!(- {1, 2, 6, 24, szabalyos[-5], szabalyos[9.2]}
372
4. A Mathematica programoz´ as´ar´ ol (B 7!N9(/ ,/ ## ?7 (B # H!(- {1, 2, 6, 24, fofunkci[-5], fofunkci[9.2]}
Hasonl´ıtsuk o¨ssze az id˝oeredm´enyeket! , 7H!(>!) / # ?711 {17.852 Second, Null}
, 7B () / # ?711 {17.026 Second, Null}
, 7/I-)(/ # ?711 {15.434 Second, Null}
, 7(B # ?711 {1.428 Second, Null}
Ez el´eg meggy˝oz˝o lehet! Fontoljuk meg azonban azt is, hogy milyen v´ alaszt ¨ v´ arunk, ha a bemenet nem pozit´ıv eg´esz sz´am. Ugyelj¨ unk arra is, hogy a cs´ab´ıt´ oan t¨ om¨or ´es eleg´ans funkcion´ alis st´ılus´ u programokat is el kell l´ atnunk ellen˝ orz´esekkel ´es v´edelemmel.
4.4. Saj´ at programcsomagok k´ esz´ıt´ ese Ha hosszabb ideig ´es gyakran haszn´ aljuk a Mathematic´ a t, akkor felmer¨ ulhet benn¨ unk az ig´eny saj´ at programcsomagok k´esz´ıt´es´ere. Ennek egyik c´elja az lehet, hogy a saj´ at magunk a´ltal defini´ alt gyakran haszn´ alt f¨ uggv´enyeket ugyan´ ugy szeretn´enk haszn´ alni, mint a Mathematica k¨ uls˝ o f¨ uggv´enyeit, m´asik c´elja pedig az lehet, hogy alkot´ asainkat k¨ ozkinccs´e szeretn´enk tenni p´eld´ aul a MathSource-on, vagy valamelyik foly´ oiraton, p´eld´ aul a Mathematica Journalon kereszt¨ ul. Ebben az esetben a fent le´ırtakb´ ol levonhat´ o tanuls´ agokon k´ıv¨ ul a leghasznosabb, ha valamelyik programcsomagot tanulm´ anyozzuk. K¨ ul¨ on felh´ıvjuk a figyelmet az
k¨ onyvt´ arakban tal´ alhat´ o csomagokra. A m´asik j´ ol haszn´ alhat´ o mank´ o pedig az eml´ıtett u ´js´ag szerz˝oi utas´ıt´ asai, ahol tov´ abbi formai ´es tartalmi tan´ acsok tal´ alhat´ ok.
5. Matematik´an k´ıv¨ uli alkalmaz´asok
M´ ar az eddigiekb˝ol is kit˝ unhetett, hogy a Mathematica program a matematik´ an k´ıv¨ ul is sz´amos ter¨ uleten alkalmazhat´ o. Ebben a fejezetben azt k´ıv´ anjuk a´ttekinteni ´es n´eh´ any p´eld´ aval illusztr´alni, hogy melyek azok a bels˝o ´es k¨ uls˝ o f¨ uggv´enyek, amelyek ilyen c´elokra k¨ ozvetlen¨ ul alkalmazhat´ ok. A legtipikusabb ´es leggyakoribb (nem t´ ul m´elyen sz´ant´ o) felhaszn´ al´ asi lehet˝os´eg a fizika, f¨ oldrajz ´es k´emia ter¨ ulet´en u ´gy ad´ odik, hogy k´ezik¨ onyvek ´es t´abl´ azatok helyett a megfelel˝o programcsomagokb´ ol olvassuk ki a sz¨ uks´eges adatokat. Igazi, komplex alkalmaz´ asokat itt nem adunk, ezekr˝ ol egy gondolat´ebreszt˝o bevezet˝o k¨ onyv: [18]. Megeml´ıtj¨ uk, hogy a Mathematica (k´ezenfekv˝ o) term´eszet- ´es m˝ uszaki tudom´ anyos alkalmaz´asain k´ıv¨ ul k¨ ozgazdas´ agi alkalmaz´ asair´ol [84] vagy o k¨ onyv d¨ ont´est´amogat´o rendszerekkel kapcsolatos felhaszn´al´ asair´ol [43] sz´ol´ is jelent m´ ar meg.
¨ 5.1. Uzleti grafika A t´ abl´ azatkezel˝okh¨ oz vagy a hagyom´ anyos programoz´asi nyelvek u ´jabb, mindennel felszerelt v´ altozat´ ahoz szokott felhaszn´al´ o elv´arja, hogy rendelkez´es´ere ´alljanak azok a grafikai eszk¨ oz¨ok, amelyekkel az u ¨zleti ´es a politikai ´eletben megszokott ´abr´ ak elk´esz´ıthet˝ ok. A Mathematica k´esz´ıt˝ oi a
7 47 4 programcsomag jelent˝os r´esz´et ennek a feladatnak a megold´ as´ara szentelt´ek. Az al´ abbi f¨ uggv´enyekre gondolunk:
5 7 &$5 5
$5
374
5. Matematik´ an k´ıv¨ uli alkalmaz´ asok
A 7 47 /4 programcsomag tartalmazza a k¨ovetkez˝o, hasonl´ o c´ellal k´esz´ıtett f¨ uggv´enyeket:
5 /
7
A felsorolt f¨ uggv´enyek sz´amos opci´oval rendelkeznek. A lehet˝os´egek illusztr´al´ as´ara l´ assunk n´eh´ any p´eld´ at: E!H /OE!H /O 8 /H) (7 !J!! 9 .! $15 15 15% 9 6-)/ 0A $:: : : :P:% 9 .! $15 15 15% 9 H)(>> 0A J)) 9)( 6-) 0A :G : 9 .! $15 15 15% 9 H)(>> 0A $$ 15%% 9 & ) 0A $E!6)15 E!6)15 E!6)15%
Mi En
1
1 Te
O
2
3
2
3
Tortadiagramokat teh´at ak´ ar a Mathematic´ a val is elk´esz´ıthet¨ unk. K´etdimenzi´os oszlopdiagramot szolg´altatnak az al´abbi utas´ıt´ asok: F!.! $ 0 % F!& ) 0A 2 CA ?EF.()(!1 1 C1 ?EF.()(! 1 1 ! ?EF.()(! 1D3 E! >6 / 0A J (, 9! )F!.! $ 0 5 % $0 % F!& )0A $?EF.()(!1 1 ?FE.()(! 1% F!P! ( 0A L(! I( ) J/ 0A ;)/ ;!, 0A
H´ aromdimenzi´ os oszlopdiagramot ´ıgy k´esz´ıthet¨ unk: E!H /OE!H /8O F!.! 8$$ % $ %% F(> 0A ;)/ J/ 0A ;)/ ;E! >/ 0A J)) 9)( ?7 0A J))
!
5.2. Hang
375
A k¨ ovetkez˝o utas´ıt´ as eredm´enye pedig azt mutatja, hogy f¨ uggv´enyek egy diszkr´et param´etert˝ol f¨ ugg˝ o sorozata hogyan a´br´ azolhat´ o c´elszer˝ uen: (I, -) 9)( 111B, 2 " B, 113* >( $ >( 1% 8 /H); ( 0A > $B, 1 % &('& BE!H /(I,
5.2. Hang A matematikai programcsomagok k¨oz¨ott sem gyakori, hogy egy programban hanggal kapcsolatos f¨ uggv´enyek is vannak (procedur´ alis nyelvekben — Pascal, BASIC — ink´ abb). A magban a k¨ ovetkez˝o f¨ uggv´enyeket tal´aljuk:
' $ $
$ $0 $
A 43$ 4 programcsomag f¨ uggv´enyei:
3 $ $
' $
0 )+
8$ $ )+ "
376
5. Matematik´ an k´ıv¨ uli alkalmaz´ asok
tov´ abb´ a a 4 4 csomag f¨ uggv´enyei:
= & = &
a hang finomabb m´ odos´ıt´ as´at ´es zenei hat´asok el´er´es´et seg´ıtik. (A hangseoval m´asutt — a bess´eggel — $ $ — mint fizikai a´lland´
4'
4 programcsomagban — tal´alkozunk.) Ahhoz, hogy a k¨ ul¨ onb¨ oz˝o hangokat lej´ atszhassuk, kell, hogy a sz´am´ıt´ og´epben alkalmas hangk´ artya legyen. Els˝ o p´eldak´ent g´epelj¨ uk be a k¨ ovetkez˝oket: 9)& 11 " & 11 $ 1 %
Kett˝os eredm´enyt kapunk: megkapjuk a lej´ atszand´ o f¨ uggv´eny k´ep´et, valauggv´eny els˝o mint azt a hangjelens´eget, amelynek amplit´ ud´ o j´ at a ' f¨ argumentuma ´ırja le. K¨ ovetkezz´ek egy f´elelmetesebb, ¨osszetett hanghat´ast mutat´ o p´elda: 9)& 2& * & &Q! " 1 3 4 & &Q! " * & 111 $ 1 1%
Ha u ´jra meg szeretn´enk hallgatni, akkor kattintsunk k´etszer a k´epet tartalmaz´o cell´ anak arra a r´esz´ere, ahol a kicsi hangsz´ or´ o l´ athat´ o. K´etsz´ olam´ u zene el˝o´ all´ıt´ as´ahoz k´etelem˝ u list´at kell megadnunk a ' f¨ uggv´eny argumentum´ aul. Adott alak´ u hanghull´ amokat ´ıgy a´ll´ıthatunk el˝ o: G /))(/OJ> (O /Q! 1 (!,&Q! 1 15 P! (/ 0A {-Sound-}
(A n´egyzetalakon k´ıv¨ ul m´eg n´eh´ any tov´ abbi is v´ alaszthat´o: " $" -
.) Amit kaptunk, az egy hangobjektum (hasonl´o, mint az ´abr´ azol´asn´ al szok´asosan el˝oa´ll´ o 7 objektum), megsz´olaltatni is hasonl´ oan lehet, mint a grafikus objektumokat megtekinteni: &('/Q! 1 {-Sound-}
Saj´ at magunk is alkothatunk egy hangszert”: ”
5.3. Id˝ o
377
7/I! $$ % $5 15% $5 15M% $5 15% $5 15 % $5 15% $5 15<% $5< 15 % $5 15% $5M 15%%
Hozzunk l´etre egy hat hangb´ ol a´ll´ o kromatikus hangsort a fenti alak´ u hangokb´ ol a 440-es rezg´esssz´am´ u hangb´ ol kiindulva: /Q -)6 / (!,7/I! 1 *23 15 &(' {-Sound-}
Amplitud´ o- ´es frekvenciamodul´ aci´ ot is alkalmazhatunk: $/ / /% $(!,&' ((
1 J,H) >G(>) ( 1 11 ;!QG(>) (1 $$11 11% $11 11%% H 0A 9!)))% &(' Graphics
K¨ ovetkezz´ek egy d´ ur sk´ ala: G /))(/OG/ O &)@/ GK(! 1 &(' -Sound-
V´ alaszthatunk pitagoraszi, temper´ alt stb. sk´ al´ at is. Most egy tiszta kvintet fogunk hallani: 9)& 9 J) " & 9 ) $ 1 15% -Sound-
Term´eszetesen a Mathematica lehet˝os´egeinek f¨olhaszn´ al´ as´aval — nem kev´es munk´ aval — zen´et is szerezhet¨ unk, ak´ ar megadott st´ılusban.
5.3. Id˝ o Az al´ abbi bels˝ o f¨ uggv´enyek a d´ atum ´es az id˝opont megad´ as´ahoz ´es k¨ ul¨ onb¨ oz˝o ´ atsz´am´ıt´ asokhoz haszn´alhat´ ok:
32 / /
>
/
378
5. Matematik´ an k´ıv¨ uli alkalmaz´ asok
A 4 $ 4 programcsomag f¨ uggv´enyei a napt´ arakkal kapcsolatos sz´amol´asokhoz haszn´alhat´ ok:
$ /') /'5- /'
$' $'7 $ ?- 1-@
A (mindenf´ele) sz´am´ıt´ asok elv´egz´es´ehez sz¨ uks´eges id˝ otartammal kapcsolatosak a
$
A B B$
bels˝o f¨ uggv´enyek ´es a 2.4.2. pontban m´ ar t´ argyalt B 4 - 4 programcsomag. A mai d´ atumot — ahogyan azt a sz´ am´ıt´ og´ep oper´ aci´ os rendszere megadja — ´ıgy kaphatjuk meg: 8 {1995, 12, 10, 19, 32, 33}
Az id˝ oz´on´ at a >
f¨ uggv´eny szolg´altatja. A Jap´ anban haszn´ alt id˝ o a +9-es z´on´ anak felel meg, ez´ert az ottani id˝ o: 8 M {1995, 12, 11, 1, 34, 42}
Szeretn´enk megtudni, hogy h´ any m´ asodperc telt el 1900. janu´ ar elseje ´ota, a Mathematica mostani ind´ıt´ asa ´ota, ´es hogy a mostani alkalommal mennyi id˝ ot dolgozott a k¨ ozponti egys´eg (CPU): $J-/() , &// ( ,
,R/> %
{3124160301, 456.78, 23.5}
K´erdezz¨ uk meg ugyanezt 10 m´asodperc v´ arakoz´as ut´ an, vagyis !C# kiad´ as´aval, ´es figyelj¨ uk meg, hogy a k¨ ozponti egys´eg a sz¨ unet k¨ ozben nem dolgozott. uggv´eny ad, az Az abszol´ ut id˝ ob˝ ol szok´asos alak´ u d´ atumot a / f¨ uggv´eny feladata. ellenkez˝o ir´ any´ u a´talak´ıt´ as a / f¨
5.4. Fizika (m´ert´ekegys´egek)
379
A 4B 4 programcsomagban az id˝ o legk¨ ul¨ onb¨ oz˝obb m´ert´ekegys´egei tal´ alhat´ ok meg. N´eh´ any p´elda:
$
$ @
S ha nem lenne el´eg, akkor u ´jat is defini´ alhatunk: , )) , 5 G )) ,
5.4. Fizika (m´ ert´ ekegys´ egek) A fizik´ aban el˝ofordul´ o m´ert´ekegys´egek k¨ oz¨ ul neh´ez olyat megnevezni, amelyik ne lenne haszn´ alhat´ o, ez´ert megel´egsz¨ unk csup´ an a m´ert´ekegys´egek csoportjainak felsorol´ as´aval: az er˝o egys´egei a t´ avols´ag reciprok´anak egys´egei t´erfogategys´egek viszkozit´asegys´egek f´enyenergia- ´es intenzit´ asegys´egek a sug´ arz´as egys´egei sz¨ogek a teljes´ıtm´eny egys´egei
ter¨ uletegys´egek anyagmennyis´eg gravit´aci´ os gyorsul´ as m´agneses egys´egek egys´egszorz´ok nyom´ asegys´egek energiaegys´egek frekvenciaegys´eg sebess´egegys´eg
Mindezek — az ´atalak´ıt´ asaikhoz haszn´alhat´ o
+
+ 7 f¨ uggv´enyekkel egy¨ utt — a
4B 4 programcsomagban tal´ alhat´ ok.
< %
380
5. Matematik´ an k´ıv¨ uli alkalmaz´ asok
L´ assunk p´eld´ at arra, hogyan lehet az egyes m´ert´ekegys´egeket a k¨ ul¨ onb¨ oz˝o rendszerekben megkapni: G /))(/OR /O $.E&C GS&C & C%DG {429.234 Gram, 0.429234 Kilogram, 0.429234 Kilogram} $.E&C GS&C & C%D#$9(> T!> % {{453.592 Gram, 0.45359237 Kilogram, 0.45359237 Kilogram}, {91.44 Centimeter, 0.9144 Meter, 0.9144 Meter}, {2.54 Centimeter, 0.0254 Meter, 0.0254 Meter} .(! G 9(> 0.9463 Pound
K¨ ul¨ on f¨ uggv´eny kell a h˝ om´ers´eklet egys´egeinek ´atsz´am´ıt´ as´ahoz, mert ott a kapcsolatok a´ltal´ aban nem homog´en line´ arisak: .(! ,H! !11 ;! CD # $.)/ / ?B ?,!% {37.7778, 559.67, ConvertTemperature[310.928, Kelvin, Reaumur]}
A R´eaumur-f´ele sk´ al´ at teh´at nem ismeri a program. Tartalma miatt nem meglep˝o, hogy n´eh´ any k´emiaik´ent besorolt f¨ uggv´enyt, amelyek a 4 4 csomagba tartoznak, is itt aduk meg:
/ ' =
=D
2%
$ + '
Tekints¨ uk a k¨ ovetkez˝o p´eld´ akat: L P;/ (+ !(7 0.72 Joule Kilo Mole 8/ + !(7 Density::temp: Returned density is for Nitrogen at 21 Kelvin. 1026. Kilogram 3 Meter
5.5. F¨ oldrajz (t´erk´epek)
381
A 4'
4 programcsomag sokf´ele fizikai (´es n´eh´ any k´es˝obb megeml´ıtend˝ o k´emiai) ´alland´ ot tartalmaz:
3
/ 7 + ' 3B + 3+ $
5 8$ 5 &
8$ 8$
)+
7
$'
7 +
=22
% , 7
D
8$$
8'$2
8$ $0 $ $
) 3
Fejezz¨ uk ki a F¨ old t¨ omeg´et, a Planck-f´ele t¨omeget ´es a proton t¨ omeg´et az elektron t¨omeg´evel: G /))(/O9/ ).(/ /O $! G// 9)BG// 9!( (G//%) !(G// 54 22 {6.56026 10 , 2.38952 10 , 1836.15}
Az utols´ o sz´am feltehet˝oleg mindenkinek ismer˝ os.
5.5. F¨ oldrajz (t´ erk´ epek) A geogr´afia v´ altozni nem sz˝ un˝ o tud´ asanyag´ anak egy r´esz´et is megtal´aljuk a Mathematic´ a ban — az ´eppen aktu´ alis a´llapotnak megfelel˝oen. A v´ arosokra vonatkoz´ o adatokat a 4 '/4 programcsomag al´ abbi f¨ ugv´enyeivel ´all´ıthajuk el˝ o:
'/ '/
'
A ' $
382
5. Matematik´ an k´ıv¨ uli alkalmaz´ asok
K¨ ul¨ onb¨ oz˝o m´odokon megadott t´erk´epeket tal´ alunk a
4) $ 4 programcsomagban, amelynek f¨ uggv´enyeit az al´abbiakban adjuk meg:
) $/
) $7 ) $
´ Az orsz´agok k¨ oz¨ott megtal´ alhatjuk (ilyen csoportos´ıt´ asban) Eszak-Ame´ ´ rika, Eur´ opa, D´el-Amerika, Oce´ania (ebbe bele´ertik Ausztr´ali´ at), Azsia, K¨ ozel-Kelet ´es Afrika orsz´agait. Els˝ osorban ide tartoznak a (
4'
4 csomag bizonyos ´alland´oi:
3
/ 7 + ' 3B +
V´eg¨ ul megeml´ıtj¨ uk m´eg a 47 $'4 programcsomagot, mint rokon vonatkoz´ as´ ut. Hat´arozzuk meg Budapest ´eszaki sz´eless´eg´et ´es keleti hossz´ us´ ag´ at: G /))(/O. 8 O . 8 :F>H/ : {{CityPosition, {{47, 30}, {19, 5}}}}
Mennyi Budapest ´es Boston t´avols´aga? . 8 / :F>H/ : :F(/ (: 6707.98
A m´ert´ekegys´egr˝ol nem esik sz´o. Az al´ abbiak szerint val´ osz´ın˝ u, hogy m´erf¨ old: . 8 / :F>H/ : CD # $:U : :9!7: :!/':% {217.773, 445.438, 545.69}
´ azol´as c´elj´ Abr´ ab´ ol kiv´ alaszthatunk f¨ oldr´eszeket ´es orsz´agokat is. A sokf´ele lehet˝os´eg illusztr´al´ as´ara itt csak az al´abbi p´eld´ akat k¨ oz¨olj¨ uk: G /))(/O(!)>9)( O !B(!/I7 &' (!/I7 :+ 7! : E!6)15 :&( J! : E!6)15M E!6)15
5.6. K´emia (elemek)
383
(!)>9)( $J! !B% (!)>9!(K ( 0A & /( >)
K¨ ul¨ onb¨ oz˝o st´ılus´ u vil´ agt´erk´epeket ´ıgy k´esz´ıthet¨ unk: (!)>9)( $(!)> ?>(,E!/% (!)>9)( $(!)> ?>(,E!/% (!)>?( ( 0A $M1 1 1% (!)>?7 0A $$1 M1% $0 1 1%% (!)>9!(K ( 0A 6,-!JI , )
5.6. K´ emia (elemek) J´ ol tanulm´ anyozhat´ ok a k´emiai elemek a
4 4 programcsomag f¨ uggv´enyeivel:
322 +
3 12 3 )
5 / '
384
5. Matematik´ an k´ıv¨ uli alkalmaz´ asok
=
=D
$ + ' 2%
Szeretn´enk megtudni n´eh´ any fontos adatot a hidrog´enr˝ ol, a k´ aliumr´ ol ´es a n´ atriumr´ ol: G /))(/O., )), /O $J (, 7 C L P;/ (C 8/ C !,).(> C ) !(.( 7! (;(!, C%D # $L>!(7 9( // , &(> ,% Density::temp: Returned density is for Hydrogen at 11 Kelvin. ThermalConductivity::form: Returned thermal conductivity is for the gaseous form of Hydrogen. {{1.00794,
0.1815 Watt 0.12 Joule Kilo 76. Kilogram , , , 3 Mole Kelvin Meter Meter
1 1s }, 2.4 Joule Kilo 862. Kilogram 102.4 Watt , , , 3 Mole Kelvin Meter Meter 2 2 6 2 6 1 1s 2s 2p 3s 3p 4s },
{{39.0983,
2.64 Joule Kilo 971. Kilogram 141. Watt , , , 3 Mole Kelvin Meter Meter 2 2 6 1 1s 2s 2p 3s }}
{{22.98977,
Irodalomjegyz´ek
[1] Abell, M. L. and Braselton, J. P., Differential Equations with Mathematica, Academic Press, New York, 1993. [2] Adamchik, V., Finite and Infinite Series, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0204–006). [3] Adamchik, V. et al., Guide to Standard Mathematica Packages (Version 2.2.), Technical Report, Wolfram Research, Inc., 1993. [4] Andr´ asfai B., Ismerked´es a gr´ afelm´elettel, Tank¨ onyvkiad´ o, Budapest, 1971. [5] Andr´ asfai B., Gr´ afelm´elet, folyamok, m´ atrixok , Akad´emiai Kiad´o, Budapest, 1983. [6] Arnold, V. I., K¨ oz¨ ons´eges differenci´ alegyenletek , M˝ uszaki K¨ onyvkiad´ o, Budapest, 1987. [7] Becker, T. and Weispfenning, V. (In Cooperation with H. Kredel), Gr¨ obner Bases (A Computational Approach to Commutative Algebra), Springer-Verlag, 1993. [8] Bird, R. and Wadler, P., Introduction to Functional Programming, Prentice Hall, New York, 1988. [9] Blachman, N., Mathematica: Quick Reference, Version 2 , Variable Symbols, Inc., Oakland, CA, 1992. [10] Bocharov, A. V., Solving Equations Symbolically with Mathematica, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0204–017). [11] Bocharov, A.V., Solving Nonlinear Differential Equations with DSolve, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0203–960).
386
Irodalomjegyz´ek
[12] Braden, B., Krug, D.K., McCartney, P.W. and Wilkinson S., Discovering Calculus with Mathematica, John Wiley & Sons, New York etc. 1992. [13] Bressoud, D., Factorization and Primality Testing, Springer-Verlag, 1989. [14] Buchberger, B., An Algorithm for Finding a Basis for the Residue Class Ring of a Zero-Dimensional Polynomial Ideal, Ph.D. Thesis. Math. Inst. Univ. of Innsbruck, Austria, 1965. [15] Castillo, E., Solving a Functional Equation, The Mathematica Journal, Volume 5, Issue 1 (1995) 82–86. [16] Coombs, K. R., Differential equations with Mathematica, John Wiley and Sons, New York etc., 1995. [17] Coxeter, H. S. M., A geometri´ ak alapjai , M˝ uszaki K¨ onyvkiad´ o, Budapest, 1973. [18] Crandall, R. E., Mathematica for the Sciences, Addison-Wesley, New York, 1991. [19] Cs´asz´ar, A., Jicsinszky, L. and Tur´ anyi, T., Generation of Model Reactions Leading to Limit Cicle Behavior , React. Kinet. Catal. Let. 18(1–2), (1981), 65–71. ´ Val´ [20] Cs´asz´ar A., os anal´ızis I.-II., Tank¨ onyvkiad´ o, Budapest, 1983-84. [21] Davies, B., Porta, H. and Uhl, J., Calculus&Mathematica, Addison Wesley, New York, 1994. [22] De´ak I., V´eletlensz´ am-gener´ atorok ´es alkalmaz´ asuk , Akad´emiai Kiad´ o, Budapest, 1986. [23] Elekes Gy., Kombinatorika feladatok , (Egyetemi jegyzet), ELTE Budapest, 1992. [24] Ellis, W. Jr. and Lodi, E., A Tutorial Introduction to Mathematica, Brooks/Cole, 1991. [25] Feagin, J. M., Quantum Methods with Mathematica, Springer-Verlag, 1994. [26] Gaylord, R. J., Kamin, S. N., and Wellin, P. R., Introduction to Programming with Mathematica, Springer-Verlag, 1993. [27] Gaylord, R. J. and Wellin, P. R., Computer Simulations with Mathematica, Springer-Verlag, 1994.
Irodalomjegyz´ek
387
[28] Geddes, K.O., Czapor, S.R. and Labah, G., Algorithms for Computer Algebra, Kluwer Academic Publishers, Boston, 1992. [29] Gray, J.W., Mastering Mathematica, (Programming Methods and Applications), Academic Press, New York Professional, Boston, 1994. [30] Gray, T.W. and Glynn, J., Exploring Mathematics with Mathematica, Addison-Wesley, New York, 1991. [31] Haj´ os Gy., 1964.
Bevezet´es a geometri´ aba,
Tank¨ onyvkiad´ o, Budapest,
[32] Halmos, P. R. – Sigler, L.E., Elemi halmazelm´elet – Halmazelm´eleti feladatok , M˝ uszaki K¨ onyvkiad´ o, Budapest, 1981. [33] Harper, D., Waoff, Ch., Hodgkinson, D., A Guide to Computer Algebra Systems, J. Wiley & Sons, Chichester, New York, Brisbane, Toronto, 1991. [34] Heck, A., Introduction to Maple, Springer-Verlag, 1993. [35] Helzer, G., Gr¨ obner Bases, The Mathematica Journal, Volume 5, Issue 1 (1995) 67–73. [36] Hironaka, H., Resolution of Singularities of an Algebraic Variety over a Field of Characteristic Zero, Ann. Math. 79 (1964) 109–326. [37] Jones, J.P., Sato, D., Wada, H. and Wiens, D., Diophantine Representation of the Set of Prime Numbers, Amer. Math. Monthly 83 (6) (1976), 449–464. [38] Kamke, E., Differentialgleichungen (L¨ osungsmethoden und L¨ osungen), Leipzig, 1959. [39] Katona Gy. Y. ´es Recski A., Bevezet´es a v´eges matematik´ aba, (Egyetemi jegyzet), ELTE Budapest, 1992. [40] Keiper, J., Mathematica Numerics: Controlling the Effects of Numerical Errors in Computation, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0203–937). [41] Keiper, J., The N Functions of Mathematica, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0203–948). [42] Klincsik M. ´es Mar´oti Gy., Maple 8 t´etelben, Novadat, 1995. [43] Korsan, R. J., Decision Support Systems in Mathematica, SpringerVerlag, 1994. onyvkiad´ o, [44] K´osa A., Ismerked´es a matematikai anal´ızissel, M˝ uszaki K¨ Budapest, 1981.
388
Irodalomjegyz´ek
[45] Kuros, A. G., Fels˝ obb algebra, Tank¨ onyvkiad´ o, Budapest, 1967. [46] Lavrov, I. A., Makszimova, L. L., Halmazelm´eleti, matematikai logikai ´es algoritmuselm´eleti feladatok , M˝ uszaki K¨ onyvkiad´ o, Budapest, 1987. ´ ´es Sz´ava G., Numerikus anal´ızis p´eldat´ [47] Ledneczkin´e V´arhelyi A. ar szem´elyi sz´ am´ıt´ og´epekhez , (Egyetemi jegyzet), ELTE Budapest, 1990. [48] Leindler L. ´es Schipp F., Anal´ızis I., (Egyetemi jegyzet), ELTE Budapest, 1994. [49] Lenstra, H.W., Factoring Integers with Elliptic Curves, Annals of Mathematics, 126 (1987). [50] Lenstra, H.W.Jr., Lenstra, A.K., Lov´ asz, L., Factoring polynomials with rational coefficients, Math. An. 261 (1982), 515–534. [51] Maeder, R., Programming in Mathematica, Second Edition, AddisonWesley, New York, 1991. [52] Maeder, R., Programming in Mathematica, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0203–904). [53] Maeder, R., The Mathematica Programmer , Academic Press, New York Professional, Cambridge, 1994. [54] Martin, E., Introductory Statistics, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0203–915). [55] Martin, E., Advanced Statistics, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0203–916). [56] Moln´ arka Gy., Gerg´ o L., Wettl F., Horv´ ath A. ´es Kall´os G., A MapleV ´es alkalmaz´ asai , Springer Hungarica Kiad´ o Kft., Budapest, 1996. [57] M´ ori T. F. ´es Sz´ekely J. G. (szerk.), T¨ obbv´ altoz´ os statisztikai anal´ızis, o, Budapest, 1986. M˝ uszaki Kiad´ [58] Nakos, G. and Glinos, N., Computing Gr¨ obner Bases over the Integers, The Mathematica Journal, Volume 4, Issue 3 (1994) 70–75. [59] Niven, I., Zuckerman, H. S., Bevezet´es a sz´ amelm´eletbe, M˝ uszaki K¨ onyvkiad´ o, Budapest, 1978. [60] Novak, J.M., Mathematica Programming Style, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0203–926). [61] P´ al J., Simon P. ´es Schipp F., Anal´ızis II., (Egyetemi jegyzet), ELTE Budapest, 1994.
Irodalomjegyz´ek
389
[62] Pontrjagin, L. Sz., K¨ oz¨ ons´eges differenci´ alegyenletek , Akad´emiai Kiad´ o, Budapest, 1972. [63] Press, W. H., Flannery, B. P., Teukolsky, S. A. and Vetterling, W. T., Numerical Recipes in Pascal, Cambridge University Press, Cambridge, 1992. [64] Pr´ekopa A., Val´ osz´ın˝ us´egelm´elet m˝ uszaki alkalmaz´ asokkal, M˝ uszaki K¨ onyvkiad´ o, Budapest, 1974. [65] Ralston, A., Bevezet´es a numerikus anal´ızisbe, M˝ uszaki K¨ onyvkiad´ o, Budapest, 1972. [66] R´enyi A., A sz´ amjegyek eloszl´ asa val´ os sz´ amok Cantor-f´ele el˝ o´ all´ıt´ asaiban, Mat. Lapok 7 (1956) 77–100. [67] R´enyi A., Val´ osz´ın˝ us´egsz´ am´ıt´ as, Tank¨ onyvkiad´ o, Budapest, 1966. [68] Risch, R., The Problem of Integration in Finite Terms, Trans. Amer. Math. Soc. 139 (1965) 167–189. [69] Roach, K., Indefinite and Definite Integration, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0203–993). [70] Ross, C. C., Introductory Ordinary Differential Equations with Mathematica, Springer-Verlag, 1994. [71] R´ozsa P., Line´ aris algebra ´es alkalmaz´ asai , M˝ uszaki K¨ onyvkiad´ o, Budapest, 1974. [72] Rudin, W., A matematikai anal´ızis alapjai, M˝ uszaki K¨ onyvkiad´ o, Budapest, 1978. [73] Simon P., Ismerked´es a numerikus anal´ızissel, ELTE TTK Tov´ abbk´epz´esi Csoportj´anak kiadv´ anya, Budapest, 1990. [74] Simonovits M., Sz´ am´ıt´ astechnika, Tank¨ onyvkiad´ o, Budapest, 1983. [75] Skeel, R. D. and Keiper, J. B., Elementary Numerical Computing with Mathematica, McGraw-Hill, 1993. [76] Skiena, S., Implementing Discrete Mathematics: Combinatorics and Graph Theory with Mathematica, Addison-Wesley, New York, 1991. [77] Stroyan, K. D., Calculus Using Mathematica (Preliminary Edition), Academic Press, New York, 1992. [78] Todd, J., Basic Numerical Mathematics, Vol. 1, Vol. 2 , Academic Press, New York, 1980. [79] T¨or¨ ok T., Sz´ am´ıt´ og´ep a matematika´ or´ an, 1994.
TYPOTEX, Budapest,
390
Irodalomjegyz´ek
[80] Trott, M., The Mathematica Guidebook , Springer-Verlag, 1994. [81] Tur´ an P., Faktori´ alisos” sz´ amrendszerbeli sz´ amjegyek” eloszl´ as´ ar´ ol, ” ” Mat. Lapok 7 (1956) 71–76. [82] Tusn´ ady G. ´es Ziermann M. (szerk.):, Id˝ osorok anal´ızise, Kiad´ o, Budapest, 1986.
M˝ uszaki
[83] Varga T., Matematikai logika 1.-2., Tank¨ onyvkiad´ o, Budapest, 1966. [84] Varian, H. (et. al), Economic and Financial Modeling with Mathematica, Springer-Verlag, 1993. [85] Vincze I., Matematikai statisztika ipari alkalmaz´ asokkal, M˝ uszaki K¨ onyvkiad´ o, Budapest, 1968. [86] Vvedensky, D., Partial Differential Equations with Mathematica, Addison-Wesley, New York, 1993. [87] Wagon, S., Mathematica in Action, W. H. Freeman, New York, 1991. [88] Withoff, D., Statistics Examples, Reprint from The Mathematica Conference, Boston, 1992 (MathSource 0201–508). [89] Wolfram, S., Mathematica: A System for Doing Mathematics by Computer , Second edition, Addison-Wesley, New York, 1993. [90] Wu, Wen–Tsun, Basic Principles of Mechanical Theorem Proving in Elementary Geometries, J. Automated Reasoning 2 (1986) 221–252.
T´argymutat´ o
; (CompoundExpression) 22 % (Out[]) 23 %n (Out[n]) 23 ? (Names) 24 ?? (Information) 25 (*...*) (komment´ ar) 22 && (And) 70 | (Alternatives) 70 || (Or) 70 ! (Not) 70 + (Plus) 87 - (Subtract) 87 * (Times) 22, 87 / (Divide) 87 ^ (Power) 87 . (Dot) 279 ’ (Derivative) 194 ! (Factorial) 23, 252 !! (Factorial2) 23, 252 ^^ 91 = (Set) 22, 36 := (SetDelayed) 22, 37 == (Equal) 22 === (SameQ) 22 != (Unequal) 22 =!= (UnsameQ) 22 < (Less) 84 <= (LessEqual) 84 > (Greater) 84 >= (GreaterEqual) 84 {...} (List) 22 [...] 22 [[...]] (Part) 22, 31 & (Function) 107 # (Slot) 107 ## (SlotSequence) 108 _ (Blank) 37 __ (BlankSequence) 39 ___ (BlankNullSequence) 39 ? (PatternTest) 109 -> (Rule) 35
:> (RuleDelayed) 36 @ (f¨ uggv´enyalkalmaz´ as) 110 @@ (Apply) 72, 77, 289 /@ (Map) 34, 77 //@ (MapAll) 34, 77 /. (ReplaceAll) 35, 155 //. (ReplaceRepeated) 36, 155 /; (Condition) 39, 109 Abs 89, 100 AccountingForm 49, 92 Accuracy 94 alapszavak 23 AlgebraicRules 144 Alternatives 70 And 70 Apart 146 Apply 72, 77, 289 approxim´ aci´ o Pad´e 215 polinom 210 racion´ alis 215 spline 216 Arg 89, 101 ArithmeticGeometricMean Array 34, 274 atom 30 Attributes 44 Automatic 43 BaseForm 90 be´ep´ıtett f¨ uggv´eny 23 bels˝ o f¨ uggv´eny 23 BesselZeros 183 Binomial 251 Cancel 146 CartesianMap Cases 361
131
186
392 Catalan 89 Cauchy-f´ele f˝ o´ert´ek 207 CauchyPrincipalValue 207 Ceiling 98 CForm 50 Circle 264 Clear 45 ClearAll 45 ClearAttributes 45 Close 51 Coefficient 137 CoefficientList 137 Collect 137 ColumnForm 272 Complement 77 Complex 88 ComplexExpand 148 ComplexMap 131 ComposeList 113 Composition 112 computer algebra systems 14 Condition 109 Conjugate 89 ConstrainedMax 302 ConstrainedMin 302 ContourPlot 123 CopyDirectory 58 Count 38, 361 CountRoots 166 Cuboid 264 CylindricalPlot3D 130 D 192 Decompose 113, 140 Denominator 146 DensityPlot 124 Derivative 194 Descartes-szorzat 82 Det 282 DiagonalMatrix 275 Dimensions 272 DiracDelta 77 Dirichlet-mag 157 $DisplayFunction 122 DisplayFunction 122 Do 361 Dot 279 Drop 77 DSolve 229
T´argymutat´ o E 22, 89 Eigenvalues 297 Eigenvectors 298 Eliminate 145 elj´ ar´ as 23 EllipticIntegrate 203 EngineeringForm 92 Equal (==) 22, 70 EulerGamma 89 Euler–Maclaurin-f´ele m´ odszer EulerSum 189 Evaluate 48 EvenQ 90 Expand 136 ExpandAll 146 ExpandDenominator 146 ExpandNumerator 146 ExpPlot 32 ´ert´ekad´ as azonnali 36 glob´ alis 36 k´esleltetett 36 lok´ alis 35
189
Factor 138, 308 Factorial (!) 23, 251 Factorial2 (!!) 23, 251 FactorInteger 313 FactorList 140, 308 FactorSquareFree 138, 308 FactorSquareFreeList 140, 308 FactorTerms 137, 308 FactorTermsList 140, 308 felhaszn´ al´ oi fel¨ ulet 20 FindMinimum 200 FindRoot 179 First 33 Fit 220 FixedPoint 113 FixedPointList 113 Flat 44 Flatten 34 FlattenAt 34 Floor 98 Fold 310 For 362 FortranForm 50 Fourier 220 Fourier-transzform´ alt 219
T´argymutat´ o FreeQ 77 FullForm 30 FullOptions 43 Function 106 f¨ uggv´enyek be´ep´ıtett 23 bels˝ o 23 k¨ uls˝ o 23 matematikai 100 Mathematica 30 megad´ asa 103 primit´ıv 201 speci´ alis 181 sz´els˝ o´ert´ekei 197 tiszta 106 f¨ uggv´enyjel¨ ol´esi m´ odok
393
110
GaussianIntegers 90 GCD 306 Get 51 g´epi pontoss´ ag´ u sz´ amok 93 GoldenRatio 89 grafikus direkt´ıv´ ak 264 elemek 264 objektumok 264 Graphics 264 GraphicsArray 132 GroebnerBasis 143, 171 Gr¨ obner-b´ azisok 141, 170 hat´ ar´ert´ek sorozat´e 185 f¨ uggv´eny´e 190 hatv´ anyhalmaz 83 Head 30 Hesse-f´ele m´ atrix 199 Hold 48 HoldAll 48 HoldFirst 48 HoldForm 49 HoldRest 48 I 89 Identity 107 IdentityMatrix 275 If 359 igazs´ agt´ abl´ azat 71 Im 89, 149
ImplicitPlot 128 Implies 70 Indeterminate 185 inform´ aci´ oszerz´es 24 Infinity 89 Inner 34 InString 51 Integer 88 IntegerDigits 91 IntegerQ 90 Integrate 201, 204 InterpolatingPolynomial 213 Interpolation 216 Interval 85 IntervalIntersection 86 IntervalMemberQ 86 IntervalUnion 86 Inverse 285 InverseFourier 220 InverseFunction 114 Jacobi-m´ atrix 196 jegyzetf¨ uzet (notebook) 20 Join 33 JordanDecomposition 299 karakterk´eszlet 22 kernel (mag) 20 ki´ert´ekel´es elvei 95 szab´ alyos 47 k¨ ul¨ on¨ os 48 kifejez´es matematikai 135 Mathematica 29 k¨ ozel´ıt˝ o aritmetika 92 k¨ ozel´ıt˝ o numerikus ´ert´ek 88 k¨ uls˝ o f¨ uggv´eny 23 kvadratikus reciprocit´ as 317 $Language 49 LatticeReduce 307 LCM 306 LeafCount 59, 135 odszere legkisebb n´egyzetek m´ Length 272 Less (<) 84 LessEqual (<=) 84 Level 32
220
394 Limit 185, 190 line´ aris regresszi´ o 351 LinearProgramming 303 LinearSolve 293 List 33 lista 33, 78 megad´ asa 34, 78, 270 -m˝ uveletek 34, 369 Listable 44 ListContourPlot 130 ListDensityPlot 130 ListIntegrate 207 ListPlot 130 ListPlot3D 130 LogicalExpand 70 logikai azonoss´ agok 74 LUDecomposition 299 $MachineID 58 $MachineName 58 MachineNumberQ 93 $MachinePrecision 93 $MachineType 58 mag (kernel) 20 MantissaExponent 92 Map 77 MapAll 77 MapAt 77 MapIndexed 77 MapThread 77 MathLink 62 MatrixExp 288 MatrixForm 272 MatrixPower 281 MatrixQ 271 m´ atrix determin´ ansa 282 felbont´ asa 299 inverze 285 megad´ asa 270 m˝ uveletek 278 rangja 283 speci´ alis 275 $MaxMachineNumber 96 MaxMemoryUsed 59 $MaxNumber 94 $MaxPrecision 94 MemberQ 78 mem´ oriakezel´es 59
T´argymutat´ o MemoryConstrained 59 MemoryInUse 59 Mihajlov-krit´erium 241 $MinMachineNumber 96 $MinNumber 94 Minors 283 mint´ azat 37 Mod 306 Module 333 Modulus 139, 162 Multinomial 252 N 96 nagypontoss´ ag´ u sz´ amok NDSolve 231 Needs 26 Negative 90 Nest 362 NestList 362 NIntegrate 205 NLimit 187, 192 NonlinearFit 221 NonNegative 90 Not 70 NRoots 177 NSolve 177 NSum 189 Numerator 146 OddQ 90 opci´ ok 41 $OperatingSystem Options 41 Or 70 Orderless 44 Outer 34, 82 $Output 51 OutputForm 49
58
Pade 215 ParametricPlot 125 ParametricPlot3D 125 Part 31 Partition 77, 82 Permutations 248 Pi 89 Plot 118 Plot3D 123 Plus 87
93
T´argymutat´ o
395
Point 264 PolarMap 131 PolarPlot 129 polinom interpol´ aci´ os 213 kifejt´ese 136 szorzatt´ a alak´ıt´ asa 138 polinomegyenletek 164 Polygon 264 PolynomialFit 221 PolynomialGCD 308 PolynomialLCM 308 PolynomialMod 308 PolynomialQ 308 PolynomialQuotient 308 PolynomialRemainder 308 pontos aritmetika 92 pontos numerikus ´ert´ek 88 Positive 90 Power 87 PowerExpand 154 PowerMod 307 Precision 94 Prime 311 PrimePi 311 PrimeQ 90, 311 Print 49 PrintForm 49 Product 155 programcsomag matematikai 13 Mathematica 20, 25 numerikus 17 szimbolikus 14 programoz´ asi st´ılusok 357 Protect 44 Protected 45 PseudoInverse 301 Put 52 PutAppend 52 QRDecomposition Quit 21 Quotient 306 Random 332 Range 34 Rational 88 Rationalize 311
299
Re 89, 149 Read 54 ReadList 54 ReadProtected 45 Real 88 RecordLists 53 Rectangle 264 Reduce 158, 162 ReIm 149 rel´ aci´ ok 84 Remez-algoritmus 214 Remove 28 rendszerv´ altoz´ o 24 ReplaceAll 35, 155 Resultant 141 Reverse 33 Risch-algoritmus 202 Roots 158 Round 98 RSolve 185, 237, 256 Rule 35 Runge–Kutta-m´ odszer 234 SameQ (===) 22 Save 62 SchurDecomposition 299 ScientificForm 92 SeedRandom 332 Select 360 Series 211 Set 36 SetAccuracy 95 SetAttributes 45 SetDelayed 37 Short 49 Show 122 Simplify 135 SingularValues 299 Slot (#) 107 Solve 158 SolveAlways 158, 174 sor konvergenci´ aja 187 Laurent 211 Taylor 210 trigonometrikus 217 sorozat megad´ asa 184 hat´ ar´ert´eke 185
396
T´argymutat´ o
Sound 375 Splice 57 Sqrt 100 Subtract 87 Sum 155, 187 Switch 360 Symbol 30 $System 58 szab´ alyos soksz¨ ogek 267 testek 267 sz´ amok alakjai 304 sz´ amrendszerek 305 sz´ amtani-m´ertani k¨ oz´ep sz´ amt´ıpusok 88 sz´ or´ asanal´ızis 351
Wallis-formula 157 Which 360 While 362 With 364 Write 51 WriteString 51 Xor 70
186
Table 273 Take 33 Thread 34 Through 111 Times 87 Timing 59 ToCharacterCode 50 ToExpression 50 Together 146 Trace 47 Transpose 277 transzform´ aci´ os szab´ aly 35 TreeForm 32 TridiagonalSolve 293 Trig 150 Trigonometry 151 Union 78 UnitStep 77 VectorQ 271 VectorAnalysis 221 VectorCalculus 196 vektor abr´ ´ azol´ asa 266 megad´ asa 271 m˝ uveletek 278 $Version 58 $VersionNumber 58