Mathcad'i tutvustusSissejuhatusSisukord
Kõik Mathcad'i töölehel sisalduv paikneb ristkülikulaadsete piirkondade e. plokkidena. Põhilised on arvutus-, teksti- ja graafikapiirkonnad. Oluline erinevus muude matemaatikapakettidega seisneb selles, et plokke võib paigutada meelevaldselt kogu töölehe ulatuses (nagu pliiatsiga paberile kirjutades), samas määrab valemite ja graafikute paigutus ka arvutuste järjekorra (vasakult paremale ning ülevalt alla). Iga avaldise (või graafiku) arvutamine (uuendamine) toimub automaatselt niipea kui seda on muudetud või kui sellest eespool on modifitseeritud muutujaid, millest see piirkond sõltub (tingimusel, et Tools → Calculate → Automatic Calculation on sisse lülitatud). Selle tõttu tunduvad Mathcad'i töölehed "elavamad" kui mõnes konkureerivas programmis. Lisaks graafikute vormistamisele võimaldavad Origin-i taolised programmid mõnikord üsna mugavalt (visuaalselt) teostada ka keerukaid andmetöötlusoperatsioone nagu funktsioonide sobitamine katseandmetega, andmete silumine ja Fourier' analüüs. Võrreldes aga Mathcad-i taoliste programmidega on nende tegevuste omavaheline seostamine, automatiseerimine ja parametriseerimine komplitseeritum.Mathcad on eelkõige arvutusvahend ja ei ole ette nähtud esitlus- või publitseerimiskvaliteediga graafikute vormistamiseks, milleks kasutatakse spetsiaalseid programme nagu Origin, SigmaPlot jpt (ka Exceli graafikavahendid on paremad). Samal põhjusel on ka Mathcad'i tekstitöötlusvahendid võrdlemisi primitiivsed ja sobilikud eelkõige arvutuskäigu kommenteerimiseks. RedigeerimineArvutuspiirkonna tekitamiseks tuleb kursor (punane ristike) liigutada soovitud kohta töölehel (hiirega klikkides või nooleklahvidega) ja asuda valemit sisse toksima. Redigeerimise klahvid on võrdlemisi intuitiivsed: * tekitab korrutise, / tekitab murru, ^ tekitab astendaja, \ tekitab ruutjuure jne, sisestuskoha muutmine toimub nooleklahvidega (mängida tasub ka tühiku- ja Insert-klahviga). Kui midagi läheb valesti, siis Ctrl+Z.Sulgavaldisi tekitatakse ( ja ) klahvidega ja Mathcad otsustab ise kas kuvada ümar- või kandilised sulud. Elegantsema väljanägemise huvides saab matemaatikaploki asetada ka tekstipiirkonna sisse kasutades käsku Insert → Math Region (Ctrl+Shift+A) või siis lõika-kleebi meetodil.Tekstipiirkonna tekitamise kiirkorralduseks on jutumärgid (või toksida esimene sõna tekstist ja vajutada tühikuklahvi). Kuivõrd Mathcad pole tekstitoimeti tavapärases mõttes, siis sisestamisel ei toimu plokkide automaatset ümberpaigutamist vältimaks kattumisi. Enter-klahvi vajutamine lükkab kõiki piirkondi ühe rea võrra allapoole, Del või Backspace teeb vastupidist. Tekstipiirkonna omaduste dialoogis (kohtmenüüst Properties) saab siiski märgistada suvandi Push regions down as you type.Hiirega on võimalik märgistada üks või mitu plokki ja lohistada neid kogu töölehe ulatuses kindlustamaks soovitud paigutust ja õiget arvutuste järjekorda. Lihtsad arvutused
Nagu näha, esineb Mathcad'is mitmesuguseid "võrdusmärke". Võrdusmärkide (ja ka korrutusmärgi) väljanägemist saab muuta töölehe seadetest (Tools → Worksheet Options → Display).Muutuja defineerimiseks on omistamise sümbol Funktsiooni väljakutsumiseks tuleb, nagu ikka, lisada funktsiooni nime järgi sulgudesse argument (või komaga eraldatud argumendid):
Arvutusresultaadi vormingu (kuvatavate komakohtade arv jpm) muutmiseks tuleb teha topelt-klõps tulemuse peal ja määrata soovitud seaded avanevas dialoogikastis. Skaalarid, stringid ja massiividMathcad'is (nagu pea igas programmeerimisvahendis) saab opereerida kolme tüüpi andmetega: skaalarite, stringide ja massiividega. Olgu märgitud, et Mathcad'i on sisse ehitatud toetus kompleksarvudele, ka enamus funktsioone on "teadlikud" kompleksarvulistest argumentidest.Skaalar on tavaline arvmuutuja, nagu kõigis seni vaadeldud näidetes. String sisaldab meelevaldset teksti (nt failinime). Stringi väärtused kuvatakse jutumärkide vahel. Näited:
Massiiv (array) on mingite (enamasti ühetüübiliste) elementide indekseeritud järjend või tabel. Massiivi iga elemendi poole saab individuaalselt pöörduda tema järjekorranumbri abil, mis kuvatakse alaindeksina. Ühemõõtmelist (ühe indeksiga adresseeritavat) massiivi nimetatakse vektoriks, kahemõõtmelist massiivi maatriksiks. Massiivi elementideks võivad olla skaalarid, stringid või ka teised massiivid. Massiivi esimese elemendi indeksi määrab Mathcad'i sisemine muutuja ORIGIN, mille vaikeväärtus on null. Mõningail juhtudel võib mugavam olla siiski loendamise alustamine 1-st. Massiivide tekitamiseks on mitmeid võimalusi. Suhteliselt vähe elemente sisaldava massiivi võib sisse toksida käsitsi. Kasutada saab nii traditsioonilist maatriksi kuva (Insert → Matrix ehk Ctrl+M) kui ka veidi mugavamat tabelit (Insert → Data → Table):
Siinkohal tasub tähele panna, et Mathcad'is esineb kahte tüüpi alaindekseid: massiivi indeks, millega pöördutakse massiivi konkreetse elemendi poole (kiirkorraldus [), ja nn "iluindeks", mis on lihtsalt osa muutujanimest kuid ei kanna iseseisvat tähendust (kiirkorraldus .). Seega massiivi indeks on täisarvulise väärtusega muutuja või konstant, "iluindeks" võib olla aga meelevaldne sümbolite jada. Sageli tekib vajadus massiivide järgi sellest, et tarvis on läbi töötada suur hulk ühetaoliseid andmeid. Näiteks mõõdetud andmemassiiv võib sisaldada 1000 katsepunkti. Veelgi enam, eksperimendi tulemuseks võib olla suur hulk sarnase iseloomuga andmemassiive, mille analüüs või teisendamine oleks mõistlik automatiseerida. Selliseid mahukaid andmeid on mõistlik Mathcad'i massiivi sisse lugeda failist. Mõõteaparatuuri poolt väljastatav mõõtmistulemus (nt mingi optilise signaali sõltuvus lainepikkusest) on enamasti võimalik salvestada struktureeritud tekstiformaadis, kus arvutulbad on eraldatud tühikute või tabulatsioonisümbolitega. Kõige lihtsam ja paindlikum viis sellise faili sisu lugemiseks vastavasse Mathcad'i maatriksmuutujasse on funktsiooniga READPRN. Viimane tahab oma argumendiks faili nime (stringi). Tavaliselt andmefail asetatakse samasse kataloogi, kus paikneb Mathcad'i töölehe fail; sel juhul kataloogi ei pea funktsioonile READPRN antavas failinimes ära näitama. Peale andmete töötlemist võib vaja minna ka analoogilist funktsiooni WRITEPRN WRITEPRN-iga kirjutatava faili formaati saab kontrollida süsteemimuutujatega PRNPRECISION ja PRNCOLWIDTH (Tools → Worksheet Options → Built-in Variables ). töödeldud massiivi väljastamiseks faili (et seda oleks võimalik mingis teises programmis vormistada või edasi töödelda).
Viimaks, massiivi saab luua (ja selle elemente modifitseerida) ka arvutuslikult. Selleks on tarvilik nn indeksmuutujate defineerimine (kiirkorraldus ;), mis lubab järgemööda läbi käia kõik massiivi elemendid. Indeksmuutuja on erivariant üldisemast vahemikmuutujast erinedes viimasest vaid selle poolest, et väärtused on täisarvulised ja samm on 1 (seetõttu viimast ei pea ära näitama).
Niisiis indeksi(te) abil saab lugeda/kirjutada massiivi üksikuid elemente. Lisaks on olemas ka veeruoperaator (Ctrl+6), mille kaudu saab pöörduda maatriksi veeruvektori poole. Viimane on samuti nii loetav kui ka ülekirjutatavMärgime, et otseselt reavektori poole pöördumise võimalust ei ole, ilmselt sellepärast, et mälus säilitatakse maatriksit veeruvektorite kaupa. . Viimaks, funktsiooni submatrix abil saab väljastada etteantud piirides alam-maatriksi.
Tundmatu või varieeruva suurusega massiivide töötlemisel tuleks kasutada vastavaid funktsioone massiivi suuruse määramiseks (võimalusel tuleks algoritmid disainida nii universaalsed, et nad töötaksid mistahes mahuga sisendandmete korral):
Veel mõningaid kasulikke vektor- ja maatriksfunktsioone:
Mathcad püüab kõiki operatsioone massiivide vahel tõlgendada lineaaralgebra mõttes. Selleks et massiividega meelevaldseid arvutusoperatsioone läbi viia (mis ei ole esitavad lineaaralgebralise tehte kujul), tuleb need arvutused kas otse elementide kaupa välja kirjutada (kasutades indeksmuutujaid) või siis (erijuhtudel) rakendades avaldisele nn vektoriseerimisoperaatorit (vectorize, kiirkorraldus Ctrl++):
Funktsioonide defineerimine ja programmeerimineKuigi Mathcad pakub üsna suure valiku funktsioone mitmesuguste ülesannete täitmiseks (vt Insert → Function), muutub vähegi keerulisema loogikaga andmetöötluse organiseerimisel vajalikuks ka uute funktsioonide defineerimine ning programmeerimisvahendite kasutamine (märksõnad if, for, while jne). Ainus erinevus muutuja ja funktsiooni definitsioonide vahel on argumentide e. parameetrite nimistu lisamine funktsiooni nime järgi:
GraafikudGraafiku loomiseks tuleb esmalt tekitada graafiku toorik valides sobiva graafikutüübi alam-menüüst Insert → Graph (või graafikute tööriistaribalt). Kõige lihtsam ja kõige sagedamini vaja minev on ristkoordinaadistikuga 2D graafik (X-Y Plot, kiirkorraldus @). Tooriku kummalgi tejel (all ja vasakul) on kolm tühja kastikest (placeholder). Keskmistesse kastikestesse tuleb kirjutada avaldised, mida soovitakse graafikul kuvada, äärmistesse kastikestesse aga (vajadusel) skaala algus- ja lõppväärtused. Graafikud on sisendandmete tüübi suhtes võrdlemisi paindlikud, võimalikud variandid:
Rohkem kui ühe kõvera kuvamiseks tuleb avaldised eraldada komaga.
Graafiku üldine väljanägemine (värvid jm) on kohendatav topeltklõpsuga avanevast dialoogist. Lisaks on graafiku kohtmenüüst käivitatavad kasulikud vahendid Trace (hiirekursori kohal oleva punkti koordinaatide näitamine) ja Zoom. SümbolarvutusMathcad'i numbrilised arvutused toetuvad 32 bitiste protsessorite topelt-täpsusega ujukomaarvudele (programmeerimises tuntud kui double), mille võimalikud väärtused jäävad vahemikku 10-307…10307 ja täpsus on 15 tüvenumbrit. Kui sellest ei piisa, siis sümbolarvutus pakub piiramatu arvutustäpsuse (kuid mõistagi kiiruse arvelt).Oma põhiolemuselt on Mathcad ette nähtud numbriliste arvutuste teostamiseks, kuid ta suudab vahendada käske ka arvutialgebrat (e. sümbolarvutust) võimaldavale süsteemile (Maple või Mupad). See lubab Mathcad-i kasutada ka lihtsamate analüütiliste teisenduste teostamiseks (muutuja avaldamine võrrandist, tuletise või integraali võtmine jms). Lihtsamal juhul piisab muutujanime või avaldise selekteerimisest ja sobiliku käsu valimisest menüüst Symbolics. Paindlikumaid võimalusi pakub sümboolse arvutamise operaatori
Ilma täiendavate märksõnadeta on sümboolse võrduse tähenduseks simplify (avaldise lihtsustamine). Mõningaid kasulikke funktsiooneLähendussirge arvutamineMitmeid sõltuvusi füüsikas saab (vähemalt peale sobivat teisendust) esitada lineaarse seosena y=ax+b, kus x ja y on eksperimentaalsetest mõõtmistest saadud suurused. Lineariseerige harjutuseks järgmised sõltuvused: InterpoleerimineKuna mistahes eksperimentaalne sõltuvus (antud andmevektoritega X ja Y) võetakse paratamatult üles lõpliku sammuga, võib tekkida vajadus mõõdetava suuruse väärtuse hindamiseks ka katsepunktide vahel. Juhul kui teoreetiline sõltuvus x ja y vahel on teada (ja piisavalt lihtne), kasutatakse funktsiooni sobitamist nagu kirjeldatud eelpool lineaarse sõltuvuse näitel. Vastasel korral kasutatakse interpoleerimist, st konstrueeritakse katsepunkte ühendav (võimalikult sile) kõver, millel füüsikalist põhjendust ei pruugi olla. Kõige lihtsam on olukord juhul, kui katsepunktid paiknevad tihedalt või on üsna suure müraga. Sel juhul on õigustatud lineaarne interpolatsioon, st naabersõlmed ühendatakse sirgjoonega. Olgu märgitud, et interpoleerimisalgoritmid eeldavad lähteandmete sorteeritust x väärtuste järgi. Selle probleemi lahendamiseks võib kasutada, olenevalt olukorrast, kas funktsiooni reverse või csort.Mathcad'is saab lineaarselt interpoleeritud y-väärtuse kohal x leida avaldisega Vastupidisel juhul, kui katseandmed on antud võrdlemisi hõredalt kuid samas nende määramatus e. müra on piisavalt väike, kasutatakse katsepunkte läbiva sileda kõvera konstrueerimiseks enamasti kuupsplaini. Viimane koosneb tükati kuuppolünoomidest, mis on sõlmpunktides võimalikult siledalt kokku seotud (matemaatilistes terminites: esimene ja teine tuletis on sõlmpunktides pidevad). Esmalt tuleb tekitada vektor V, mis sisaldab splaini teise tuletise väärtusi sõlmpunktides. Selleks saab kasutada ühte kolmest funktsioonist: Täiendavad infoallikaidTäienduseks eelnevale infole võib soovitada Toomas Planki videoloengut, mis annab ekraanivisiooni vormis algteadmised Mathcad'is toimetamise kohta. Käesolevale lisaks leidub ka rida teisi eestikeelseid konspekte (nt siin ja siin). Sirvida tasub ressursikeskuse töölehti, kus saab kohe katsetada "elavate" näidetega (Help menüüst Tutorials, QuickSheets). Põhjalikult lahti kirjutatud ülevaate annab Mathcad'iga kaasa tulev "Mathcad User's Guide" (leitav Mathcad'i kataloogi alamkaustast "doc"). Konkreetsemate probleemidega (nt teada saamaks, milliseid parameetreid tuleb mingile funktsioonile "ette sööta" vms) võib pöörduda juba abiinfo poole (Help → Mathcad help). Mathcad-i abiinfosüsteem on üsna hästi indekseeritud, mistõttu sobilike märksõnadega leiab kergesti vahendid spetsiifiliste ülesannete lahendamiseks. Kui miski muu ei aita, võib abi otsida Mathcad'i kasutajate foorumist. |