Heikki Apiola
Dept. of Math. Sci.
Aalto-yliopisto
heikki.apiola'at'aalto.fi
Juha Kuortti
Dept. of Math. Sci.
Aalto-yliopisto
juha.kuortti 'at' aalto.fi
Miika Oksman
Dept. of Math. Sci.
Aalto-yliopisto
miika.oksman 'at' aalto.fi
|
Maple/Basic |
Käytön idea: Kun löydät mieleisesi tehtävän, sen alapuolella on linkki tex-tiedostoon. Lataa
tiedosto, ja liitä se harjoituspohjaan
tai omaan Latex-pohjaasi.
|
-
mplBas000
mplBas000
Teknillinen korkeakoulu Alestalo Matematiikka
Peruskurssien Maple-käskyjä
Tämä tiivistelmä sisältää tärkeimmät Maple-käskyt version 17 mukaan. (Muutettu linalg-tyyppiset LinearAlgebra-tyyppisiksi (Apiola) 10.3.14)
Valitse ponnahdusikkunasta "Start with Blank Worksheet".
Käsky suoritetaan painamalla Return. Käskyn lopussa voi olla kaksoispiste tai ei mitään. Kaksoispisteeseen päättyvän käskyn tulosta ei näytetä. Samalla rivillä voi olla useita käskyjä, jotka täytyy erottaa toisistaan välimerkillä : tai ; Pitkä käsky kannattaa jakaa useille riveille painamalla Shift + Return.
Kaikista käskyistä saa lisätietoja kirjoittamalla ?käskynnimi ja painamalla Return. Erityisesti kannattaa katsoa esimerkkejä.
Edellisen käskyn tulokseen voi viitata symbolilla %, toiseksi edelliseen symbolilla %%. Aikaisempien käskyjen tuloksiin voi viitata niiden numeroiden perusteella: Valitse Insert \(\to\) Label tai Ctrl + l.
Vakioille voidaan antaa arvoja esim. muodossa alpha:= 1.5; Huomaa, että ohjelma ymmärtää vain desimaalipisteen.
Tavalliset laskutoimitukset kirjoitetaan samaan tapaan kuin paperilla, \(x^2\) muodossa x^2. Nuolinäppäimellä \(\to\) pääsee pois yläindeksistä.
Myös pidemmille lausekkeille tai funktioille voidaan antaa uusia nimiä: esim. p:= 2*x^2-3*x määrittelee p:n lausekkeena, mutta poly:= x -\(>\) 2*x^2-3*x määrittelee poly:n funktiona. Funktiosta saadaan helposti lauseke, mutta vastakkainen suunta on hankalampi: Maplen kannalta p ja poly(x) ovat sama asia, mutta funktiota poly voi käyttää paljon monipuolisemmin.
Muuttujan arvon voi poistaa kirjoittamalla esim. alpha:= ’alpha’; Kaikki määritelmät voi poistaa restart-käskyllä, mutta teksti jää näkyviin ja käskyt voi antaa (esim. korjattuina) uudelleen.
Laskutoimituksia lukuunottamatta muut käskyt toimivat kuten funktiot, eli niitä käytetään tyyliin funktionnimi(muuttuja); tai mahdollisesti tarkenteiden kanssa muodossa funktionnimi(muuttuja, tarkenteita); alkuhaparoinnin jälkeen ei saa enää tehdä sellaisia virheitä kuin sin x, sinx, exp^x, exp^(x). Oikeat muodot ovat siis sin(x), exp(x).
Jos käsky kirjoitetaan heittomerkkien sisään, saadaan sen symbolinen muoto: esim. ’sin(Pi)’=sin(Pi);
Ohjelman toimintaan ei vaikuta se, missä järjestyksessä käskyt ovat työarkilla, vaan se, missä järjestyksessä käskyt on suoritettu. Selvyyden vuoksi kannattaa toki edetä ylhäältä alas.
Työarkin lataaminen (FILE-valikon avulla) Mapleen ei aiheuta siinä olevien komentojen suorittumista. Komennot on joko “napsuteltava” ENTER:llä tai suoritettava EDIT-valikon “Execute worksheet”-valinnalla, jos näin halutaan.
abs
Itseisarvo tai moduli: abs(-3);
arcos, arcsin, arctan, arccot
Trigonometristen funktioiden käänteisfunktiot: arctan(1);
argument
Kompleksiluvun argumentti (vaihekulma): argument(I);
cos, sin, tan, cot
Trigonometriset funktiot: sin(Pi/6);
exp
Eksponenttifunktio: exp(2*x); Huom: Neperin luku on exp(1) eikä sitä voi kirjoittaa millään muulla tavalla.
I
Imaginaariyksikkö: z:= 1+2*I;
ln
tai log Luonnollinen logaritmi (exp-funktion käänteisfunktio)
Pi
Ympyrän kehän pituuden suhde halkaisijaan \(\approx 3,\! 14\). Symboli pi tarkoittaa kreikkalaista kirjainta \(\pi\).
Re, Im
Kompleksiluvun reaali- ja imaginaariosa: Re(1-I); Huom: Helpoin tapa muuntaa kompleksiluku tason pisteeksi (= lista): [Re,Im](2+3*I);
sqrt
Neliöjuuri: sqrt(1+x^2);
symbolien indeksointi: a[1]:= 6; a[2]:= 9;
add
Summaa jonon termit: add(n^2, n=1..100); Ylärajan oltava numeerinen. Vrt. sum. (sum osaa myös symboliselle ylärajalle, jos mahdollista.)
alias
Annetaan oma (lyhyt) “lempinimi”: Esim: alias(rref=ReducedRowEchelonForm)
assign
Määrittelee muuttujien arvot annetuista yhtälöistä: fsolve(x^3+x+1=0,x); assign(%); (“vaarallinen, mutta helppo”)
CrossProduct
Vektoreiden ristitulo: CrossProduct(a,b);
D
Derivaatta funktiolle: f:= x -\(>\) x^2; D(f);
Determinant
Neliömatriisin determinantti: Determinant(A);
diff
Lausekkeen derivaatta: diff(p,x); diff(p,x,x); diff(p, x$5);
display
Grafiikkojen yhdistäminen: A:= plot(sin(x),x=0..Pi): B:= implicitplot(sin(x+cos(y))=x, x=0..1, y=0..Pi): display(A,B);
DotProduct
Vektoreiden pistetulo: DotProduct(a,b);
eigenvals
Matriisin ominaisarvot: eigenvals(A);
Eigenvectors
Matriisin ominaisarvot kertalukuineen ja vastaavat ominaisvektorit: Eigenvectors(A);
eval
Evaluoi lausekkeen (laskee arvon). Useimmin käytetty muoto: eval(lauseke, x=a) (Vrt. subs, jossa päinvastainen järjestys.)
evalc
Sieventää kompleksilukuja koskevia lausekkeita: sqrt(1+I); evalc(%);
evalf
Laskee liukulukulikiarvon (määrätyllä tarkkuudella): evalf(Pi); evalf(Pi,100); (f - float)
expand
Laskee lausekkeen auki: expand((x+y)*(1-x));
for
Toistokäsky: for n from 1 to 10 do a[n]:= sin(Pi/n) end do; Huom: Tämän toiston jälkeen muuttujalle \(n\) jää arvoksi 11.
fsolve
Yhtälön numeerinen ratkaiseminen: fsolve(x^3+x=1,x); fsolve(x^3+x=1,x,complex);
implicitplot
Piirtää tasokäyrän pelkän yhtälön perusteella: implicitplot(x^2-x*y+y^2=1, x=-2..2, y=-2..2); (Vrt. contourplot )
int
Integroimiskäsky: int(sqrt(x+x^2), x=0..1); Numeerisesti: evalf(Int(f(x), x=a..b));
inverse
Käänteismatriisi: inverse(A); (vanhassa linalg :ssa (Uudempi MatrixInverse LinearAlgebra-kirjastossa )
LinearSolve
Yhtälöryhmän \(A{\bf x}={\bf b}\) ratkaiseminen: LinearSolve(A,b); Toimii vain silloin, kun ratkaisu on yksikäsitteinen.
map
Kuvaa funktion jokaiseen listan alkioon: map(x-\(>\)x^3, [a,b,c]);
Matrix
Matriisin rakentaminen: Matrix([[a,b],[c,d]]);
nops
listan pituus (number of operands): nops([a,b,c,d]);
plot
Kuvaajan piirtäminen: plot(sin(x),x=0..Pi); plot([sin(x),cos(x)],x=0..Pi);
product
eli tulo, kertoo jonon termit: product(1/n^2, n=1..10);
restart
Poistaa muistista kaikki määrittelyt.
seq
Jonon muodostaminen: seq(n^2, n=1..5);
simplify
Lausekkeen sieventäminen: simplify(%);
solve
Yhtälön ratkaiseminen (tarkasti): solve(x^2+x=1,x);
subs
Sijoituskäsky: subs(x=1,polynomi); Huom: Ei muuta \(polynomi\)n määrittelyä. (Vrt. eval(polynomi,x=1) ;)
sum
Summaa jonon termit: sum(n^2, n=1..100); (vrt. add ). sum suorittaa myös symbolista summausta.
Vector
Vektorin muodostaminen: Vector ([1,3,5]);
with
Lisäpakettien latauskäsky: with(plots); with(LinearAlgebra);
Jono on Maplessa kokoelma pilkulla erotettuja olioita, esim. jonoA:= 3,4,5,f,sin(7); tai jonoB:= seq(n^3, n=-3..8); Jonojen alkioihin voi viitata muodossa jononnimi[moneskoalkio].
Lista on täsmälleen sama kuin [jono].
Käsky on väärin kirjoitettu: sulkuja puuttuu tai ne eivät täsmää.
Määrittelyssä on käytetty = eikä :=
Jonot, listat tai vektorit sekaisin: kaikki ovat eri asioita.
Lausekkeet ja funktiot sekaisin.
Muuttujilla on vanhoja arvoja aikaisemmista laskuista.
restart
-käskyn jälkeen ei ole suoritettu kaikkia tarvittavia käskyjä.
%-merkki viittaa viimeisen suoritetun käskyn tulokseen, esimerkiksi virheilmoitukseen. % ei automaattisesti tarkoita työarkilla heti yläpuolella
Tiedoston Latex-koodi: (Muokkaa tarpeittesi mukaan) ../mplteht/mplBasic/mplBas000.tex
-
mplBas001
Tiedosto: mplBas001.tex Ohjelmat: Maple, [Mathematica]
Sievennä lauseke \[\frac{x-1}{(1-\frac{1}{\sqrt{x}})(1+\frac{1}{\sqrt{x}})}.\]
Vihje Kokeile funktiota simplify .
Vaativuus: 1- Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas001.tex Avainsanat:mplBasic, Mapleperusteet, simplify
-
mplBas002a
mplBas002a.tex (PA P1 s.2011)
Fibonaccin lukujono \((f_n)\) määritellään alkuehdoilla \(f_0=0,\ f_1 = 1\) ja palautuskaavalla \(f_{n+2}=f_{n}+f_{n+1}\), kun \(n\ge 2\). Samat luvut saadaan suoraan lausekkeesta \[f_n=\frac{1}{\sqrt{5}}(\varphi^n-(-\varphi)^{-n})\] arvolla \(\varphi = \frac{1+\sqrt{5}}{2}\). Määrittele \(f_n=f(n)\) funktiona ja osoita, että sekä alkuehdot että palautuskaava toteutuvat. Vihje: Määrittele aluksi phi:= ... Palautuskaavan kohdalla on helpompi osoittaa jokin lauseke nollaksi kuin verrata kahta hankalaa lauseketta. (sqrt, simplify, expand)
Muista funktiomääritys:
f:=n->...
Vaativuus: 2 Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas002a.tex Avainsanat: Fibonacci, funktiomääritys, palautuskaava, simplify, expand
-
mplBas002b
mplP002b.tex (PA P1 s.2011) Intialaisen matemaatikon Srinivasa Ramanujanin (1887–1920) keksimän kaavan mukaan \[\frac{1}{\pi}=\frac{2\sqrt{2}}{9801}\sum_{n=0}^{\infty}
\frac{(1103+26390n)(4n)!}{396^{4n}(n!)^4}.\] Tutki (numeerisesti), monennenko osasumman avulla saadaan luvun \(1/\pi\) likiarvo 50 desimaalin tarkkuudella. b) Määrittele sarjan yleinen termi \(a_n=a(n)\) funktiona ja laske raja-arvo \[q = \lim_{n\to\infty} \frac{a_{n+1}}{a_n}.\] Sarja suppenee siis suunnilleen samaa vauhtia kuin sellainen geometrinen sarja, jonka suhdeluku on \(q\). (Pi, sqrt, sum, evalf(luku, desimaalien lkm), limit)
Muista funktiomääritys:
a:=n-> ...
Vaativuus: 2- Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas002b.tex Avainsanat:Mapleperusteet,mplBasic, sarjat, Pi, sqrt, evalf
-
mplBas002
mplP002.tex (PA P1 s.2011)
Klikkaa hiirellä (Viikkoharjoitukset-sivun) tiedostoa (maple1.mw) tässä mplBas002Pohja.mw ** HAE TÄMÄ *** ja avaa se Maple-ohjelmalla. Käy läpi työarkin tehtävät ja siirry sen jälkeen alla oleviin tehtäviin.
a) Kokeile Maplen voimia seuraavien sarjojen kohdalla: \[\sum_{n=1}^{\infty} \frac{1}{n^2},\ \ \sum_{n=1}^{\infty} \frac{1}{n},\ \
\sum_{n=0}^{\infty} \frac{(-1)^{n}}{2n+1}, \ \ \sum_{n=1}^{\infty}\frac{n^3}{2^n}.\] b) Montako termiä hajaantuvasta sarjasta \[\sum_{n=1}^{\infty} \frac{1}{n}\] on otettava mukaan, jotta vastaava osasumma olisi vähintään 100? (sum, evalf, infinity)
Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas002.tex Avainsanat: Mapleperusteet, sarjan summa, sum, evalf, infinity
-
mplBas004
mplBas004 Suorita Maplella :
> series(exp(x), x = 0, 10); # tai taylor(…);
> p:=convert(%,polynom);
> c:=coeffs(p,x);
> evalf(%);
Selitä, mitä näissä tapahtuu. (Tutki tarvitessasi helpillä tyyliin ?convert .)
Piirrä polynomin p kuvaaja sopivalla välillä. 2mm
Vaativuus: 1 Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas004.tex Avainsanat: Mapleperusteet,mplBasic, polynomin kertoimet, coeffs, convert(sarja,polynom)
-
mplBas005
mplBas005
Etsi lukujen \(1234^{3243}\) ja \(7681\) suurin yhteinen tekijä.
Suurin yhteinen tekijä lasketaan funktiolla igcd . Jos myös kertoimet halutaan tietää, kannattaa käyttää funktioita igcdex .
Vaativuus: 1- Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas005.tex Avainsanat:Mapleperusteet, mplBasic,syt, suurin yhteinen tekija, igcd,igcdex
-
mplBas006
mplBas006 (HA:n Maple-kirja ss. 48-50)
Laske \(2^{123}, \pi^3, e^5\) neljälläkymmenellä (40) numerolla.
Mikä rationaaliluvuista \({\frac{22}{7}},{\frac{311}{99}},{\frac{355}{113}}\) approksimoi parhaiten \(\pi\):tä ?
Kumpi luvuista \(\pi^e\) , \(e^\pi\) on suurempi?
Jaa tekijöihin polynomi \(x^3- y^3\)
Vihje
?evalf
?factor
Vaativuus: 1 Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas006.tex Avainsanat:mplBasic,Mapleperusteet, evalf, factor
-
mplBas007
mplBas007.tex (HA:n Maple-kirja ss. 48-50)
Määrittele polynomilauseke \(p=x^3-4x^2+3x+2\). Määritä \(p\):n juuret ja piirrä kuvaaja välillä, joka sisältää juuret. Määritä myös paikalliset ääriarvot.
p:= ... (ei siis p = ... (kuten Matlabissa))
plot(p,x=a..b)
?plot
solve yrittaa tarkkaa analyyttista ratkaisua (vaikka onnistuisi, voi olla turhan mutkikas)
fsolve numeerinen ratkaisija
Luokittelu: Maple perusteet, lausekkeet, yhtälöt, nollakohdat, grafiikka
Vaativuus: 2- Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas007.tex Avainsanat:mplBasic,Mapleperusteet, polynomi,nollakohdat, minimit, maksimit, solve, fsolve
-
mplBas008
mplP008.tex (HA:n Maple-kirja ss. 48-50)
Piirrä samaan kuvaan \(x^4\) ja \(2^x\) ja selvitä, kuinka monessa pisteessä ne leikkaavat. Varmaan joudut piirtämään useita kuvia eri alueilta.
Suurimman juuren etsimisessä voi oikean alueen ehkä löytää nopeimmin tyyppiä seq([x^4,2^x],x=a..b); olevalla komennolla.
Tutki fsolve -komennon help-teksti ja määritä likiarvo suurimmalle juurelle.
seq(f(x),x=a..b) toimii kokonaislukuaskelin. Uusimmissa Maplen versioissa voidaan antaa askel h näin:
jono:=seq(f(x),x=a..b,h);
(Vrt Matlab: jono=a:h:b )
Vaativuus: 1+ Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas008.tex Avainsanat: Maple perusteet, jonot (seq), yhtälöt, nollakohdat, grafiikka
-
mplBas009
mplP009.tex (HA:n Maple-kirja ss. 48-50) Mitä tekevät seuraavat Maple-komennot:
> sum(i^2,i=1..10);
> ifactor(1998); # Maple-oppaan kirjoitusvuosi
> ifactor(2013); # Aikaa on kulunut.
> solve({x+2*y=5,x^2+y^2=10},{x,y});
> solve([x+2*y = 5, x^2+y^2 = 10], [x, y])
Kaksi solve-komennon muotoa liityvät tietorakenteisiin. Edellinen käsittelee joukkoina, jälkimmäinen listoina. (Joukon alkioilla ei ole määrättyä järjestystä päinvastoin kuin listassa.)
Vaativuus: 2- Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas009.tex Avainsanat: Mapleperusteet, yhtälöryhmä, joukko, lista, tekijöihin jako.
-
mplBas010
mplBas010.tex Muodosta funktion \(\cos(x) \sin(x)\) ensimmäinen ja toinen derivaatta ja piirrä kunkin kuvaaja sopivaksi katsomallasi välillä kenties mieluiten eri koordinaatistoihin.
Vaativuus: 1- Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas010.tex
Avainsanat: Mapleperusteet, mplBasic, diff, simplify, perusssievennys, plot
-
mplBas011
mplBas011.tex (HA:n Maple-kirja ss. 48-50)
Funktiolausekkeen derivaatta muodostetaan diff -komennolla.
Määritä seuraavien funktioiden 1. ja 2. derivaatta ja sievennä tulokset simplify -komennolla.
\(6x^3+3x^2-2x+1\) , \({\frac {x+1}{{x}^{2}+1}}\) , \(\cos(x^2+1)\) , \(\arcsin(2x+3)\) , \(\sqrt{1+x^4}\) , \(\arctan x\) Vaativuus: 1 Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas011.tex Avainsanat: Mapleperusteet, Maplediffint, lauseke, symbolinen derivointi, diff
-
mplBas014
mlBas014.tex, mplBas014.tex Maple [Mathematica] , Matlab (erityisesti b)-kohta). Tarkastellaan funktiota
\[f(x)=1 +\frac{sin(x)}{1+x^2} .\]
a) Maple: Määrittele f lausekkeeksi, laske f:n arvo pisteessä \(x=-2.0\) ja piirrä kuvaaja välillä \(\left[-5,5\right]\).
Matlab: Tee vastaava asia Matlabilla, kirjoita skripti. Huomaa, että Matlabissa täytyy ensin antaa x:lle numeerinen (vektori)arvo.
b) Tee samat asiat, mutta nyt määrittelemällä f funktioksi.
a)
Maple Matlab:
> f:=1-... >> x=...
> subs... >> f=...
> plot >> plot
b)
Maple Matlab
> f:=x->1-... >> f:=@(x) 1-...
Vaativuus: 2- Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas014.tex Ratkaisu: ../mplteht/mplBasic/ratkaisut/mplBas014R.pdf ../mplteht/mplBasic/ratkaisut/mplBas014R.mw (Maple worksheet)
Avainsanat: Mapleperusteet, funktiot, lausekkeet, Matlabperusteet
-
mplBas015
mplBas015.tex Laske funktion \(f(x)= e^{-x^2}\) arvoja \(0.5\):n välein välillä \(0 \ldots 5\), ja piirrä taulukoiduista arvoista kuvaaja
Vihje Määrittele f funktioksi tyyliin f:=x-> ... Muodosta jono seq-funktion avulla ja ympäröi se listasuluilla tyyliin: h:=0.5: x:=[seq(k*h),k=...] Nykyversioissa on myös muoto seq(a,b,h) , joka vastaa Matlab:n lauseketta:
a:h:b . Muodosta funktion arvot tyyliin y:=map(f,x) Taulukon saat kenties selkeimmän tyyliin
with(linalg)
transpose(matrix([x,y]))
(Vaikka suosimme uudempaa, LinearAlgebra-kirjastopakkausta, joihinkin operaatioihin “vanha” linalg soveltuu paremmin.)
Datan voi piirtää nykyisin myös "Matlab-tyylillä": plot(x,y)
Vaativuus: 1+ Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas015.tex Ratkaisu: ../mplteht/mplBasic/ratkaisut/mplBas015R.mpltxt(Maplekomennot tekstimuodossa)
-
mplBas017
mplBas017.tex [mplODE017.tex] Opiskelija ottaa lainaa \(10 000\) euroa hetkellä \(k=0\) ja ryhtyy maksamaan sitä takaisin kuukauden päästä hetkellä \(k=1\). Kuukausikorko on \(1\)% (huh!) ja takaisinmaksu tapahtuu kiintein maksuerin \(450\) EUR/kk Olkoon \(y_k\) \(k\):n kuukauden kuluttua jäljellä olevan velan määrä. Muodosta taulukko ja graafinen esitys, jossa on pisteet \((k, y_k)\), ja selvitä sen perusteella, miten kauan velan maksu kestää ja miten paljon rahaa opiskelijaparka käyttää koko projektiin.
Vaativuus: 1 Tehtävän Latex-koodi: ../mplteht/mplBasic/mplBas017.tex
Ratkaisu: ../mplteht/mplODE/ratkaisut/mplODE019R.pdf ../mplteht/mplODE/ratkaisut/mplODE019R.mw
Avainsanat: mplODE,Mapledifferenssiyhtälöt,Mapleperusteet,mplBasic
Luokittelu: Differenssi- ja differentiaaliyhtalot, Maple-perusteet.
|