ABTEKNILLINEN KORKEAKOULU

Samankaltaiset tiedostot
Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Harjoitus 10: Mathematica

Matlab- ja Maple- ohjelmointi

Zeon PDF Driver Trial

Harjoitus 1 -- Ratkaisut

Johdantoa. Jokaisen matemaatikon olisi syytä osata edes alkeet jostakin perusohjelmistosta, Java MAPLE. Pascal MathCad

mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä

Johdatus Ohjelmointiin

mplperusteet 1. Tiedosto: mplp001.tex Ohjelmat: Maple, [Mathematica] Sievennä lauseke x 1 ( mplp002.tex (PA P1 s.2011)

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Valitse ruudun yläosassa oleva painike Download Scilab.

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Ohjelmoinnin perusteet Y Python

Matriiseista. Emmi Koljonen

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Luentoesimerkki: Riemannin integraali

Laskuharjoitus 2A ( ) Aihepiiri: Raja-arvot etc. Adams & Essex, 8th Edition, Chapter 12. z = f(x, 0) = x2 a z = f(0, y) = 02 a 2 + y2

plot(f(x), x=-5..5, y= )

Mat-1.C Matemaattiset ohjelmistot

Luento 4. Timo Savola. 21. huhtikuuta 2006

DIFFERENTIAALI- JA INTEGRAALILASKENTA

8. Yhtälöiden ratkaisuja Newtonilla, animaatioita

Harjoitus 1 -- Ratkaisut

Differentiaali- ja integraalilaskenta 1. Tietokoneharjoitus: ratkaisut

Matematiikan johdantokurssi Johdatusta funktiosääntöihin ja piirtelyyn. Harjoitusta 9, tehtävien käsittelyä Maplella

Korpusten käsittely clt131, P Luento 4

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

Ohjelmoinnin perusteet Y Python

Harjoitus 4 -- Ratkaisut

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

MAA7 7.3 Koe Jussi Tyni Valitse kuusi tehtävää! Tee vastauspaperiin pisteytysruudukko! Kaikkiin tehtäviin välivaiheet näkyviin!

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Matematiikan tukikurssi

Kotilaskut 1 yms. Maple:lla Maple 2017 versio. Työarkkien yhteensopivuus taaksepäin ei ole taattu!

Octave-opas. Mikä on Octave ja miksi? Asennus

Ubuntu tunkkausta En US / Helsinki asennuksen jälkeen jotta loki5ac toimisi oikein Winen päällä.

Kieliteknologian ATK-ympäristö Kolmas luento

POHDIN - projekti. Funktio. Vektoriarvoinen funktio

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Ohjelmoinnin perusteet Y Python

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Lineaarialgebra a, kevät 2019

Korpusten käsittely clt131, P Luento 5

Käyräparven kohtisuorat leikkaajat

Apuja ohjelmointiin» Yleisiä virheitä

Fx-CP400 -laskimella voit ratkaista yhtälöitä ja yhtälöryhmiä eri tavoin.

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

Luento 5. Timo Savola. 28. huhtikuuta 2006

Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto

Mat-C.1 harj2. Alustuksia f d 1 C sin x 1 C x 2 f := 1 C sin x

Valokuvien matematiikkaa

Casion fx-cg20 ylioppilaskirjoituksissa apuna

IDL - datan sovitus. ATK tähtitieteessä. IDL - esimerkiksi linfit. IDL - esimerkiksi linfit

1. Mitä tehdään ensiksi?

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Pienimm"an neli"osumman sovitus

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

Harjoitus 3 -- Ratkaisut

wxmaxima-pikaopas Ari Lehtonen

OPETUSSUUNNITELMALOMAKE

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Differentiaaliyhtälöryhmä

Johdatus L A TEXiin. 10. Matemaattisen tekstin kirjoittamisesta. Matemaattisten tieteiden laitos

Ohjelmoinnin peruskurssi Y1

Java Runtime -ohjelmiston asentaminen

Harjoitus 4: Matlab - Optimization Toolbox

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Ohjelmoinnin peruskurssi Y1

cos x cos 2x dx a) symbolisesti, b) numeerisesti. Piirrä integroitavan funktion kuvaaja. Mikä itse asiassa on integraalin arvo?

Uuden Peda.netin käyttöönotto

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014

MATP153 Approbatur 1B Harjoitus 5 Maanantai


Numeeriset menetelmät

3. Reaalifunktioiden määräämätön integraali

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

MS-A0207 Differentiaali- ja integraalilaskenta 2 (CHEM) Luento 2: Usean muuttujan funktiot

2 Konekieli, aliohjelmat, keskeytykset

811120P Diskreetit rakenteet

Python-ohjelmointi Harjoitus 5

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

4. Lausekielinen ohjelmointi 4.1

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3

1. Lineaarialgebraa A := Matriisin osia voidaan muutella päivittämällä riviä, saraketta tai osamatriisia (Matlabmaisesti): B :=

Johdatus tekoälyn taustalla olevaan matematiikkaan

Matlabperusteita, osa 1. Heikki Apiola Matlab-perusteita, osa 1. Heikki Apiola. 12. maaliskuuta 2012

Matematiikan tukikurssi

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014

Scratch ohjeita. Perusteet

Harjoitustyö: virtuaalikone

YH1b: Office365 II, verkko-opiskelu

Tutoriaaliläsnäoloista

Matlabin perusteita Grafiikka

mplteht/mpldiffintv, vektoridiff-int, Maple 1. mpldi0002.tex Aalto-yliopisto, Matematiikan ja Systeemianalyysin laitos

Transkriptio:

ABTEKNILLINEN KORKEAKOULU Mat-1.411 Matematiikan peruskurssi C1 MAPLE Lempeä johdatus Harri Hakula 24. syyskuuta, 2004

1 Sisällys 1 Matemaattisista ohjelmistoista 2 1.1 Symboliset ohjelmistot 2 1.2 Numeeriset ohjelmistot 2 2 Maple ATK-keskuksen ympäristössä 4 2.1 Työarkki 4 2.2 Komentotiedosto 4 3 Maple 5 3.1 Manuaali 5 3.2 Ympäristö 5 3.3 Muuttujat 6 3.4 Funktiot 8 3.5 Ohjelmointi 8 3.6 Kirjastot 9 3.7 Piirtäminen 10

2 1 Matemaattisista ohjelmistoista Insinööri haluaa aina parhaat työkalut. Tekniikan ylioppilas opiskelee matematiikkaa saadakseen eväät oman alansa erityisongelmien ratkaisuun. Työkalujen kehitys taulukot, laskutikku, laskin, tietokone on johtanut paradoksaaliseen tilanteeseen, missä Teemu Teekkari tarvitseekin syvällistä ymmärrystä laskinlaitteiden ja matemaattisten ongelmien riippuvuuksista pelkän laskurutiinin sijaan. Matemaattiset ohjelmistot voidaan karkeasti jakaa kahteen luokkaan, symbolisiin ja numeerisiin. Jaon perusta on ohjelmiston kyky manipuloida lausekkeita, kuten esimerkiksi integroida lauseke suljetussa muodossa, symboliset ohjelmat pystyvät, numeeriset eivät. Matematiikan peruskurssissa C1 opetuksessa käytetään symbolisena ohjelmistona Maplea ja numeerisena MATLABia. Ohjelmien opettelu ja käyttö ei ole pakollista. Jokainen opiskelija asettaa itse omat tavoitteensa. 1.1 Symboliset ohjelmistot TKK:lla käytetään opetuksessa ainakin kolmea symbolista ohjelmistoa: Maple MATHEMATICA MathCAD Näistä vaihtoehdoista Maple ja MATHEMATICA soveltuvat laajojen kokonaisuuksien hallintaan, kun taas MathCAD toimii "alykkäänä paperina" ja on tarkoitettu perinteisen "kynä ja paperi"-laskun korvaajaksi. Kurssin ohjelmistovalinta perustuu sekä oppikirjojen kirjoittajien että kurssin luennoitsijan mieltymyksiin. 1.2 Numeeriset ohjelmistot MATLAB on yleisin käytössä oleva numeerinen ohjelmisto. Useilla tekniikan aloilla se on de facto standardi. Useissa erikoisalojen oppikirjoissa algoritmiesimerkit esitetään MATLABin esitysmuodossa.

3 Ohjelmistot ovat hyvin laajoja, täydellisiä ohjelmointiympäristöjä. Vilkkuva kursori ruudulla aiheuttaa helposti ahdistusta. Mutta, on hyvä muistaa että kaikkea ei voi oppia heti ja että ohjelmistojen todellinen arvo ei ole niinkään siinä, paljonko ne auttavat matematiikan opiskelussa, vaan siinä paljonko aikaa säästyy oman alan ongelmanratkaisussa opiskelun edetessä pidemmälle.

4 2 Maple ATK-keskuksen ympäristössä Oletetaan nyt, että lupa-asiat ovat kunnossa ja että koneiden peruskäyttö on tuttua. Lisäksi oletetaan, että käyttö tapahtuu jonkinlaisessa UNIX-ympäristössä, minkä ei pitäisi olla ongelma Windows-käyttäjille, sillä erot ovat hyvin pienet. Ensimmäiseksi polut asetetaan komennolla use maple Maple on tarjolla kahtena eri versiona, jotka eroavat käyttötavan mukaan. 2.1 Työarkki Käytön opettelussa mukavampi vaihtoehto on ns. työarkkiversio. Se käynnistyy komennolla xmaple Maple varaa ruudulta oman tilansa, jonka sisällä voi olla yhtäaikaa useita työarkkeja. 2.2 Komentotiedosto Usein helpompi tapa on yksinkertaisesti kirjoittaa komennot tavallisella editorilla erilliseen komentotiedostoon ja suorittaa komennot komentoriviltä. maple Tämä työskentelytapa soveltuu parhaiten silloin, kun tietää mitä on tekemässä.

5 3 Maple Tässä luvussa käsitellään perusteita, joiden avulla ainakin tehokas laskinkäyttö sekä kurssikirjojen esimerkkien läpikäynti onnistuu kyynelittä. Maplen kehote on "suurempi kuin"-merkki (>). Allaolevissa esimerkeissä on annettu vain käyttäjän antamat syötteet. Syöte suoritetaan vain, jos se on kirjoitettu oikein ja päättyy rivinvaihtoon. 3.1 Manuaali Maplen sisäinen manuaali on kattava. Työarkkiversiossa on manuaalille oma valikko, mistä voi valita esimerkiksi erilaisia hakuvaihtoehtoja. Valitettavasti manuaalia on helpoin käyttää vasta, kun tietää mitä etsii. Jos komennon eteen liitetään kysymysmerkki,?plot, Maple avaa kyseisen komennon manuaalin. Kaksi kysymysmerkkiä,??, vie manuaalin alkuun.?plot?? Manuaali 3.2 Ympäristö Maplea voi käyttää tavallisena funktiolaskimena. Laskin 1 + 1; sin(2.3); sqrt(4); sin(1); evalf(sin(1)); Huomaa, että puolipiste (;) kertoo Maplelle, että lauseke on suoritettava eli evaluoitava. Maple pyrkii aina säilyttämään symbolisen esityksen ja niinpä lauseketta sin(1) ei evaluoida numeerisesti ellei sitä erikseen pyydetä evalf-funktiolla.

6 Kaksoispiste (:) eroaa puolipisteestä siinä, että lausekkeen arvoa ei kaiuteta eli näytetä ruudulla. (Tämä on todella hyvä muistaa jatkossa!) Maple kuitenkin muistaa suoritetun lausekkeen arvon, vaikka sitä ei ruudulla näkyisikään. Edellisen (ajassa) suoritetun lausekkeen arvoon voi viitata prosentilla (%). Kaksi prosenttia vie kahden suorituksen päähän jne. 2 + 2: %; Kaiutus Komentoja voi tietenkin kirjoittaa yhdelle riville useita, mutta pitkän päälle paras tapa on kirjoittaa komento per rivi luettavuuden takia. 2 + 2: % * 4; Maple-istunnon aikana suoritetut laskutoimitukset tapahtuvat Maplen ylläpitämässä ympäristössä. Ympäristön asetukset ovat voimassa, kunnes ohjelman suoritus katkaistaan tai laskentaympäristö uudelleen käynnistetään komennolla restart. restart: Uudelleen käynnistys Maplen ympäristössä voi olla paitsi käyttäjän laskutoimitusten arvoja, myös intunnon aikana luotuja muuttujia ja funktioita. Funktioita voi myös koota kirjastoihin ja käyttää niitä uudelleen seuraavissa istunnoissa. 3.3 Muuttujat Lausekkeiden arvoja voi sijoittaa nimettyihin muuttujiin. Sijoitusoperaattori on :=. Muuttujan arvon asettaminen a := 1; s := sin(pi); Muuttujien nimien valinnassa on hyvä miettiä käyttötarkoitusta. Jos aikoo joskus palata työarkin pariin, on hyvä antaa muuttujille nimet, joiden merkitys on riittävän selkeä myös jonkin ajan kuluttua.

7 Tottumista vaatii Maplen ns. täysevaluaatio eli sijoitusketjun läpikäyminen mahdollisimman pitkälle. Esimerkiksi a := 2; b := a; a := 4; b; mutta d := c; c := 4; d; Maple etsii ensimmäisessä tapauksessa b:lle a:n arvon 2, mutta toisessa esimerkissä d:n arvo onkin symbolin c arvo, aina. Muuttujan arvon voi poistaa ympäristöstä seuraavasti: Muuttujan poistaminen a := a ; Muuttujiin voi sijoittaa myös lausekkeita. Seuraava esimerkki laskee polynomin derivaatan diff-komennolla. Huomaa, että jos x:llä on jo jokin arvo, täysevaluaation mukaisesti lauseke voikin saada jonkin muun arvon kuin on tarkoitus. Kokeile! f := x^4 + a*x + d; diff(f, x); Muutuja voi myös viitata ns. tietorakenteeseen. Maplen neljä perustietotyyppiä ovat jono, lista, joukko ja hajautustaulu. Lista on yleisimmin vastaan tuleva. lista := [1,3,3,5,7]; joukko := {1,3,3,5,7}; Tietorakenteiden syvempi ymmärtäminen on tarpeen vain, jos kirjoittaa ei-triviaaleja ohjelmia.

8 3.4 Funktiot Maplessa on mahdollista määritellä myös funktioita. Määritellään funktio, joka derivoi argumenttinsa x:n suhteen ja käytetään sitä saman tien kahdesti ensin suoraan lausekkeeseen ja sitten muuttujaan talletettuun lausekkeeseen. Funktio derivate := (arg) -> diff(arg, x); derivate(x^3 + 3*x); f := x^3 + 3*x; derivate(f); Jos argumentteja on useita, argumentit on määriteltävä sulkujen avulla, yhden argumentin tapauksessa sulut voi jättää pois. Lausekkeet ja funktiot ovat erilaisia. Määritellään sama polynomi kahdesti ja evaluoidaan se pisteessä 1. poly := (x) -> (x + 3)^2; poly(1); p := (x + 3)^2; subs(x=1, p); Riemastuttavaa on se, että lausekkeen voi tarvittaessa muuttaa funktioksi unapplykomennolla. Jatketaan edellistä esimerkkiä. Lausekkesta funktioksi poly2 := unapply(p, x); poly2(1); 3.5 Ohjelmointi Maple sisältää erittäin rikkaan ohjelmointiympäristön. Tässä emme suinkaan mene hienouksiin, vaan tyydymme esittämään, miten funktiot voi kirjoittaa aliohjelmina. Aliohjelma eroaa funktiosta lähinnä siinä, että aliohjelman sisällä voidaan määritellä sisäisiä muuttujia, joiden arvot ovat käytettävissä aliohjelman suorituksen ajan.

9 Aliohjelma derivateproc := proc(fun) return diff(fun, x); end; Lisätään derivaattaan aliohjelman argumentin neliö. Määritellään aliohjelman sisäinen eli lokaali muuttuja sq, johon välitulos tallennetaan. derivateproc2 := proc(fun) local sq; sq := fun^2; return diff(fun, x) + sq; end; Aliohjelman voi tallettaa tiedostoon ja lukea myöhemmin uuteen istuntoon ilman uudelleenkirjoitusta. Aliohjelman talletus ja luku save(derivateproc2, aliohjelma.mpl ); read( aliohjelma.mpl ); Peruskäytössä funktioilla selviää pitkälle. 3.6 Kirjastot Käytettävissä olevat valmiit rutiinit on jaettu kahteen osaan: ytimessä olevat, aina saatavilla olevat komennot ja tarvittaessa ladattavat rutiinit. Maplea voi laajentaa ns. kirjastoilla, joita on jo perusversiossa mukana lukuisia. Erityisesti monet grafiikan ja lineaarialgebran kirjastot tulevat varmasti tutuiksi. Kirjastot ladataan komennolla with. Mukavan avaruuskäyrän voi piirtää vaikkapa seuraavasti. Kirjaston lataus with(plots): spacecurve([cos(t),sin(t),t], t=0..4*pi); Jos koko kirjastoa ei halua ladata, voi rutiiniin viitata suoraan:

10 plots[spacecurve]([cos(t),sin(t),t], t=0..4*pi); 3.7 Piirtäminen Maplen piirto-ominaisuudet ovat hyvin kehittyneet. Peruspiirtorutiinien lisäksi plots-kirjasto tarjoaa useita erikoistarkoituksiin sopivia komentoja. Useat komennoista jakavat samat ohjauskomennot, joten varmasti hyödyllisiä sivuja ovat?plot[options] ja?plot3d[options]. Keskeisimmät kuvaajatyypit ovat käyrä parametrisoitu käyrä pinta tasa-arvokäyrä Katsotaan lopuksi esimerkit eri tyypeistä. Aluksi on aina piirrettävä sini-funktio. Monta kuvaajaa voi yhdistää laittamalla funktiot hakasulkeisiin. Käyrä plot(sin(x), x=-pi..pi); plot([sin(x), cos(x)], x=-pi..pi); Parametrisoidusta käyrästä käy hyvin ympyrä. Huomaa, että kuvaaja skaalataan automaattisesti, ja ympyrä näyttää ellipsiltä. Optio scaling=constrained jättää mitoitukset rauhaan. Parametrisoitu käyrä plot([cos(t), sin(t), t=0..2*pi]); plot([cos(t), sin(t), t=0..2*pi], scaling=constrained); Pinnan piirto onnistuu myös. On hyvä muistaa, että pintojen ja tasa-arvokäyrien kuvaajien laatu riippuu usein valitusta hilakoosta, grid=[.,.].

11 Pinta plot3d(sin(x)*sin(y), x=-pi..pi, y=-pi..pi); plot3d(sin(x)*sin(y), x=-pi..pi, y=-pi..pi, grid=[30,30]); Tasa-arvokäyrä plots[contourplot](sin(x)*sin(y), x=-pi..pi, y=-pi..pi); plots[contourplot](sin(x)*sin(y), x=-pi..pi, y=-pi..pi, grid=[30,30]);