Mat-1.415 Matematiikan peruskurssi V2
Tammikuu 2002
Maple-perusteita, harj0.mws
Maple 7
Versio 7 saatiin juuri vuoden 2002 alussa.
Yleisiä toimintaohjeita
Muista tallettaa aika ajoin . Maple näyttää luokissa silloin tällöin kaatuvan (ainakin ennen, toivottavasti ei enää).
Talletus on joka tapauksessa syytä tehdä aina ennen jotain potentiaalisesti isoa laskentaa. Muista lyhyt: CTR-S
Tämä työarkki sisältää ohjeita ja ohjeisiin liittyviä tehtäviä, joita voi samantien
ryhtyä kokeilemaan. Voit tehdä muistiinpanoja työarkille ja tallettaa sen itsellesi.
Suositus: Selaa työarkkia jonkin matkaa, totuttele heti helpin käyttöön.
Harjoitustehtävädokumentti:
Kannattaa aloittaa INSERT-valikon SECTION-valinnalla ja napsauttaa muutama sektio heti kättelyssä arkille.
Huomaa, että työarkin voi tallettaa myös HTML-muotoon. Tosin harjoitusratkaisuja esiteltäessä Maple ws-muoto
on yleensä parempi, mutta myöhempää katselua varten taas htlm-doku on tosi hyvä juttu.
Elämänohje:
Maplen filosifiaa kannattaa opetella senverran, että työskentely käy nautittavaksi. Kannattaa yrittää itse ja kaverien kanssa (ja kirjoista) selvitellä myös pulmatilanteita, tällaiseen omatoimisuuteen on nyt ainutlaatuinen tilaisuus, kun puolet neuvontaharjoituksista on "vapaita opettajasta".
Viikon oppitavoitteita:
Kannattaa harjoitella myös teknisiä asioita, kuten työarkin printtaamista ym.
Katsotaan ensin työarkkiin (worksheet) liittyviä asioita.
>
Suurenna Maple-ikkuna riittävän isoksi ja ota rinnalle työarkki http://www.math.hut.fi/teaching/v/maple/pohja.mws
Tämä on yleinen pohja, jota voidaan käyttää harjoituksissa. Huomaa, että voit leikata/liimata työarkilta toiselle (tietysti). Nimeä se uudelleen, jotta voit tallettaa itsellesi.
Viitteitä
[HAM] Apiola: Symb ja num. lask Maple-ohjelmalla, Otatieto 588
Tämä teos ilmeisine puutteineenkin on suositeltava, sitä tarvitaan niin V2 kuin V3-kursseilla. Täydennystä vaatii erityisesti matriisilaskentaosuus, sillä uusi LinearAlgebra-tyyli tuli vasta versioon 6.
Kurssin Maple-hakemisto : www.math.hut.fi/teaching/v/maple/
gsg.pdf, lrnguide.pdf, prguide.pdf (Getting Started, Learning, Programming, Maple 7)
Huom:
Jos haluat jatkaa kokeiluja tällä kohdalla, tee lisää kehotteita joko klikkaamalla kohtaa >
tai CTR-J (jos jälkeen)
> 247*3756;
Työarkin painikkeita ja käsittelyä on sellostettu havainnollisin kuvin gsg.pdf: ssä.
Laskuoperaatiot ovat "normaalit" +-*/^ , kertomerkkiä ei saa jättää pois (kuten Mathematicassa)
Harjoittelemme laskentoa. Hyppää yli, jos pitkästyttää.
> tai:=sitten=kokeile*jotain/tassa;
Maple vaatii loppumerkin, joko ; tai : Kokeile, jos et jo tiedä.
Lue lisää:
3. Laskentoa symboleilla ja numeroilla
Pohdiskelua
Lue
(see Heck Ch 3 Variables and names p. 65 -..
The secret behind success of CA : free (unbound) variables . )
On hyvä totutella laittamaan restart työarkin alkuun (ja muihinkin hengähdyspaikkoihin)
Painele nyt ENTER:iä ja palaa ohjeen mukaan takaisin.
> restart: # PALUURIVI 2
Warning, the name changecoords has been redefined
> (a+b)^2; # PALUURIVI 1
> expand(%);
> a:=x^2 :b:=exp(c*z):
>
1) Palaa alkuu kohtaan PALUURIVI 1 ja napsuttele komennot läpi.
2) Palaa alkuu kohtaan PALUURIVI 2 ja napsuttele komennot läpi.
Jos haluat vapauttaa vain joitakin valittuja muuttujia, niin:
Muuttujien vapauttaminen arvostaan:
Joko a:='a'; tai unassign('a'):
> a:='a':b:='b':
> a:=1: b:=kissa; unassign('a','b'); a,b;
> c:=exp(x^ 3); unassign('c'); c;
Vakiot Pi ja I
> Pi,I;
> evalf(Pi);
> evalf(Pi,30);
> 2/3+4/5;evalf(%);
> evalf(pi);
Huomaa tämä : Maple osaa vain "tekstinkäsitellä" pi :tä, laskentaan tarvitaan Pi
Tässä tulee usein virheitä alkavalle Maple-urheilijalle.
Kompleksilukuja, imag. yksikkö I
> (1+2*I)/(2-3*I); # Numeerinen kompleksiluku muuntuu automaattisesti muotoon x+I*y .
> z1:=a1+I*a2;z2:=a2+I*b2;
> z1/z2;evalc(%);polar(%%);
Maple olettaa symbolit a1,b1, ... reaalisiksi, ellei tyyppimäärityksiä anneta.
Tässä voit laskea vaikka joitakin KRE-kirjan tehtäviä.
> polar((1+2*I)/(3-4*I));
> w:=exp(I*2*k*Pi/n);
>
with(plots): setoptions(scaling=constrained,axes=framed): # Sama skaala akseleilla
> w:=exp(I*2*k*Pi/n);
> n:=5: ykkosen5juuret:=seq(w,k=0..n-1);
> complexplot([ykkosen5juuret],style=point,symbol=circle,symbolsize=15);
> complexplot(exp(I*Pi*t),t=0..2*Pi,color=blue);
Grafiikat saadaan samaan kuvaan funktiolla display (joka asustaa plots -pakkauksessa), kts alempana.
4. Komentojen "hidastusmuodot" alkavat isolla kirjaimella.
Usein on hyvä estää lopullinen evaluointi ainakin aluksi. Joillakin funktioilla on iso-kirjainalkuinen "inert form".
Yleensä etuhipsukoita ' ' voi myös käyttää evaluoinnin estoon.
> Int(x*sin(x),x); # hidastusmuoto (inert form), alkaa isolla I:llä
> int(x*sin(x),x);
> Int(x*sin(x),x);
> value(%);
Aika kätevä tyyli (ala Heck): (Näet heti, ymmärsikö Maple sinut oikein.)
> Int(x*sin(x),x); value(%);
Hidastusmuoto estää evaluoinnin , se tarjoaa kätevän tavan kirjoittaa matemaattisia kaavoja käyttämällä Maplen yhtälörakennetta.
> Int(x*sin(x),x)=int(x*sin(x),x);
> Int(x*sin(x),x): %=value(%); # Kirjoitustyötä säästävä (Heck-)tyyli.
Evaluointi voidaan estää myös 'hipsukoilla' , vrt [SOL] s. 9 rivi 1 ja s. 15. Tähänpä tuo edellä ollut muuttujan vapauttaminen arvostaankin perustuu.
>
'int(x*sin(x),x)'=int(x*sin(x),x);
'diff(x*sin(x),x)'=diff(x*sin(x),x);
Otetaan vielä sin:n ja cos:n yhteenlaskukaavat (Maple korvaa MAOL-taulukkoja):
>
sin(alpha+beta): %=expand(%);
cos(alpha+beta): %=expand(%);
5. Defining Variables and Functions
Pohdiskelua
Matemaattisen funktion käsittely Maple-lausekkeena
perustuu samaan ilmiöön kuin edellä PALUURIVI1 ja 2-tilanteet.
> f := x^2;
Määrittelemme muuttujan f, jota käytämme matemaattisen funktion tavoin. Maplen kannalta f on muuttuja, jonka arvoksi olemme sijoittaneet lausekkeen x^2 .
Jos haluamme laskea lausekkeen arvon eri x:n arvoilla, joudumme käyttämään subs-komentoa.
> subs(x=5, f);
Jos haluat seurata lauseke/funktio-juonta, hyppää tässä kohdassa seq-kometojen yli.
> seq(subs(x=k, f),k=0..10);
> a:=-4: b:=4: N:=10: h:=(b-a)/N: arvojono:=seq(subs(x=a+k*h, f),k=0..N);
> evalf(arvojono);
VAROITUS: Kun matemaattista funktiota käsitellään lausekkeena, on oltava johdonmukainen. Siitä ei saa välillä käyttää merkintää f(x).
Maple on inhottavan pikkutarkka. Kokeile vaikka:
> f(x); f(5);
Matemaattisen funktion käsittely
Maple-funktiona:
> f := x -> x^2;
> f(x),f(y),f(5);
unapply on toinen funktion määrittelytapa.
> g := x^3;
> g(5); # Tämä on tuhoon tuomittu.
Huomaamme nyt, että olis ollut mukavampi käsitellä funktiona. No sehän käy:
> g := unapply(g, x);
> g(5);
What is the difference
unapply vs ->
?
Ensi tutustumisvaiheessa voidaan jättää unapply vähemmälle huomiolle, mutta se on useissa yhteyksissä varsin käyttökelpoinen.
> a:=x^2: f:=x->a;g:=unapply(a,x);
> f(3);
> g(3);
> a:=Pi;
> f(3);
> g(3);
Jatketaan tästä (harj0):
Varoitus: Hengenvaarallista: Älä koskaan määrittele funktiota tyyliin F(x):=lauseke;
Tällöin nimittäin et tosiaankaan määrittele funktiota, vaan kummallisennimisen muuttujan F(x)
arvon (näin on hyvä ajatella).
Poikkeus : Funktion määrittelyä täydentävien poikkeusarvojen määrittelyssä tää on ihan JEES, esimerkki otetaan kohta.)
Palataan nyt vielä tuohon hengenvaaraan:
> restart:F(x):=x^3; # Näin ei sitten tosiaankaan tehdä paitsi alla mainitussa poikkeuspistetilanteessa.
Warning, the name changecoords has been redefined
Tuo on syntaksiltaan oikein, mutta hyvin hämäävää.
Mitä on F(x)
> F(x);
Näyttää, kuin toimisi oikein. Vaan eipas toimi muilla kuin x:llä.
> F(x),F(3),F(a),F(sin(z));
Nyt se sallittu (hallittu) käyttö:
Haluamme määritellä funktion, jota esim. GLJ-kirjassa kutsutaan nimellä sinc, olkoon tässä vain F
> F:=x->sin(x)/x;
> F(0);
Error, (in F) numeric exception: division by zero
> F(0):=1;
> seq(F(x),x=-2..2);evalf(%);
> F(0);
Harjoitustehtävä
Määrittele polynomifunktio .
Määritä nollakohdat ja paikalliset minimit sekä maksimit. Piirrä funktio ja sen derivaatta.
Tarkista laskemalla funktion arvot, että nollakohdat ovat nollakohtia.
Käsittele polynomia ensin lausekkeena ja sitten funktiona. Mitkä ovat kunkin tavan hyvät/huonot puolet.
Derivaattalauseke -- diff
Derivaattafunktio -- D (Käyttele helppiä )
?plot, ?solve,?fsolve ?diff, ?D
Tämäntyyppisten tehtävien, niin yksinkertaisia matemaattisesti kuin ovatkin, sujuva hallinta tekee Maple-työskentelystä nautittavaa puuhaa ja auttaa pitkälle.
6. Sievennystä ja yhtälön ratkaisua
Pohdiskelua
simplify
- yleissieventäjä, ensimmäiseksi tarjoiltava.
expand - kertoo auki
collect - kokoaa
? collect ja kokeile joitakin esimerkkejä. Varsin hyvä komento monessa paikassa.
factor
- Jakaa tekijöihin.
convert
- ... Monenmoisiin konverioihin sievennyksessä esim
convert(lauseke,parfrac,muuttuja);
Huomaa, että lauseke ei muutu, uusi tulos palautetaan. Jos halutaan päivittää lauseke, on komennetava
lauseke:=convert(lauseke,parfrac,muuttuja);
solve - ratkaisee yhtäön tai systeemin
fsolve - ratkaisee numeerisesti
> (x^3+1)/(x^2-x+1);simplify(%);
> expand((x^2-4)*(x+1)*(x-2)*(x^2+x+1));
> factor(%);
Yhtälöistä
> yhtalot:={2*x-5*y=12, 12*x+4*y=17}; # Kyseessä on joukko
> ratk:= solve(yhtalot, {x,y});
Maple ei sijoita ratkaisuja muutujille arvoiksi, vaan palauttaa sijoitussäännöt. Ne voidaan antaa suoraan
subs-komennolle. Mieti seuraavan komnetojonon logiikkaa!
> subs(ratk,x),subs(ratk,y);
> X:=subs(ratk,x); Y:=subs(ratk,y);
Tarkistaminen käy vaivattomasti:
> subs(ratk,yhtalot);
>
Voidaan myös käyttää lhs (left hand side) ja rhs (right hand side)-tapaa, mutta se on hiukan vähemmän elegantti ja myös altis Maplen harrastamalle järjestyksen vaihtumiselle ratkaisujoukossa. Niinpä tätä tyyliä ei voida ajaa automaattisesti, vaan tuloksiin on puututtava interaktiivisesti, mikä voi olla kiusallista, jos on "vakavahenkisestä" dokumentista kyse. Joka tapauksessa tämäkin tyyli kannattaa omaksua.
> rhs(ratk[1]);lhs(ratk[1]);
> lhs(ratk[2])=rhs(sol[2]);
Error, wrong number (or type) of parameters in function rhs
Ratkaisun sijoittaminen muuttujan arvoksi
Tässä nyt on toisin sanoin selitetty samaa, pyyhi omasta dokustasi pois tai järjestä paremmin.
Tietysti näin:
> X:=rhs(ratk[1]);Y:=rhs(ratk[2]);
Turvallisempi ja elegantimpi tapa (jota edellä mainostettiin):
Suorita ratk-yhtälöiden ilmaisemat korvaamiset lausekkeessa (pelkkä) x ja
suorita ratk-yhtälöiden ilmaisemat korvaamiset lausekkeessa (pelkkä) y .
Edellisessä y-yhtälö jää vaille käyttöä (kun pelkkä x ei sisällä y:tä) ja jälkimmäisella vastaavasta syystä x-yhtälö. sol-joukon
järjestys ei näyttele mitään osaa.
> X:=subs(ratk,x);Y:=subs(ratk,y);
Tehokkain, mutta turvattomin tapa, joskus tosi kätevä: assign(ratk);
> assign(ratk);
> x;y;yhtalot;
> solve(yhtalot,{x,y});
Error, (in solve) a constant is invalid as a variable, -55/34, 133/68
assign(ratk); toimii ikäänkuin ratk-yhtälöissä yhtälömerkki (=) vaihdettaisiin sijoitusmerkkin (:=)
Yhtälöiden toteutuminen saadaan hyvin kätevästi tarkistetuksi kirjoittamalla vain yhtalot;
Sensijaan yhtälöiden ratkaisua ei voida toistaa, ennekuin muuttujat x ja y on vapautettu arvoistaan.
> x:='x':y:='y':solve(yhtalot,{x,y});
Joukot { }, jonot, listat [ ]
Tässä vähän University of North Carolinan sivulta poimittua tekstiä:
Observe that we have now employed three different kinds of grouping symbols: "()","{}", and "[]". They are used for different purposes, and Maple requires that they be used correctly. The standard parentheses "()" are used with functions as in factor(x^2-1) and sin(Pi). The braces "{}" are used to group a set as in {x,y}. The square brackets "[]" are used to pick a coordinate from a group as in sol[2]. We will see other uses for these symbols.
Hakasulut ovat myös listasulut.
Tärkeimmät tietorakenteet:
> op(joukko); # Vastaavasti joukon operandi
Huom
: Listan järjestys on käyttäjän hallinnassa, joukon ei.
Joukon hyöty on ainakin se, että Maple osaa poistaa toistot ja joukko-operaatiot toimivat.
map - funktion soveltaminen listan (tai muun rakenteen) jokaiseen alkioon (osaan)
> lista:=[a,b,c];map(f,lista);
> jono:=a,b,c;lista:=[a,b,c];op(lista);joukko:={a,b,c}; op(joukko);
>
[SOL] ss. 10 - 11
[HAM] Luku 3 ss. 89 - 100
Tavallinen käyrien piirto
Käyräparven voi sulkea joko joukkosulkuihin { } tai listasulkuihin [ ] .
Jälkimmäinen lienee suositeltavaa, koska järjestys on silloin käyttäjän hallinnassa (ei siinä
muuta, mutta jos vaikka halutaan värit hallitusti).
> plot([sin(x),cos(x)],x=0..4*Pi);
Valitse sama mittakaava akseleilla (1:1)
Parametrimuotoinen piirto
Syntaksi poikkeaa aika vähän, tämä täytyy vain oppia (tai katsoa aina uudelleen helpistä).
Aina ei ole hauskaa joutua valitsemaan hirellä, samaskaalaiisuus (ja monia muita) voidaan antaa plot-komennon tarkentimena.
> plot([sin(t),cos(t),t=0..2*Pi],scaling=constrained);
Pisteet voidaan yhtä hyvin ajatella kompleksitason pisteinä. complexplot osaa käsitellä suoraan reaalimuuttujan kompleksiarvoista funktiota. Tässä on sekin mukava piirre, että syntaksi on luonnollisempi ja siten helpompi muistaa kuin tuossa parametrimuotoisessa R^2-piirrossa.
> complexplot(cos(t)+I*sin(t),t=0..2*Pi,scaling=constrained,color=blue);
Kunhan opimme kompleksisen exp-funktion, niin edellinen voidaan ilmaista lyhyemmin:
> complexplot(exp(I*t),t=0..2*Pi,scaling=constrained,color=cyan,style=point);
Taulukoidun datan piirto ("listaplotti")
Sometimes we will be interested in functions defined in terms of a discrete
table of values rather than a formula. For example, consider the following table of
temperatures recorded at various times on a spring day in Raleigh.
Time: | 6:00 a.m. | 10:00 a.m. | 12:00 p.m. | 4:00 p.m. | 5:00 p.m.
----------------------------------------------
Temp: | 45 deg. | 57 deg. | 65 deg. | 67 deg. | 66 deg.
Table of Temperatures on a Spring Day in Degrees Fahrenheit
To plot this data you must first define the points as a list. Since the time is recorded in a cyclic fashion, we will plot the times in the so-called "military style", i.e. 6:00 a.m. is 0600 and 6:00 p.m. is 1800.
> ListOfPoints := [[600,45], [1000,57], [1200,65], [1600,67], [1700,66]];
The
plot
command allows you to plot a list of points and to connect them with straight lines (unless you choose another option). This is illustrated in the next command. Notice also the option which produces a title on the plot.
> plot(ListOfPoints, title=`Temperatures at Various Times`);
While the data can be plotted in this way, because the data is given for a discrete set of points you may prefer the
style=POINT
option as illustrated in the next command. Note also the effect of the
symbol=CIRCLE
option.
> plot(ListOfPoints, style=POINT, symbol=CIRCLE,symbolsize=20, title=`Temperatures at Various Times`);
>
Exercise
1. Plot the graph of over the interval [ ] .
2. Make a plot of the points in the following table:
X: | -1 | 0 | 1 | 2 | 3
-------------------------------------------
Y: | 2.72 | 1 | 0.368 | 0.135 | 0.0498
Make two plots, one with the points connected and the other with only the data points.
Miten saadaan kätevästi koordinaattiparien lista [[x1,y1],[x2,t2],...] ?
Olkoon annettu numeeriset listat (Matlabissa sanoisimme vektorit) X ja Y. Matlabin plot toimii tyyliin plot(x,y);
Maplessa täytyy muodostaa parien lista vaikkapa tähän tapaan:
> a:=-Pi:b:=Pi:N:=20:h:=(b-a)/N:x:=seq(evalf(a+i*h),i=0..N);
Olkoot y-arvot vaikkapa sin-funktion arvoja x-pisteissä. Parijono saataisiin nyt näin:
> xy:=[seq([x[i],sin(x[i])],i=1..N+1)];
> plot(xy);plot(xy,style=point,symbol=circle);
Huom: plots -pakkauksessa on listplot ja pointplot . Maplelle luonteenomaista on, että siinä on joukko redundantteja funktioita. Mielestäni on parempi oppia käyttämään harvempaa ydinfunktiojoukkoa kuin omaksua monenlaisia synonyymejä. Niissä voi toki olla joitakin uusia mahdollisuuksia, mutta esim. näissä ei välttämättä ole (kuka noita kaikkia tuhansia ehtii penkoa).
Taulukointi
Tässä teimme itse asiassa taulukon, jonka on havainnollisempi usein matriisina.
> txy:matrix(xy):linalg[transpose](xy):
Tilan säästämiseksi otetaan vähemmän dataa esimerkkiimme. Jätetäänpä myös evalf pois.
>
a:=-Pi:b:=Pi:N:=8:h:=(b-a)/N:x:=seq(a+i*h,i=0..N);
xy:=[seq([x[i],sin(x[i])],i=1..N+1)];
matrix(xy);
> linalg[transpose](xy);
> array(xy); # Taas synonyymi, mutta tiettyjä erojakin yleisyydessa / matriisilaskukyvyissä.
Grafiikoiden yhdistäminen, plots[display] ja textplot
Tässä tarvitaan lisägrafiikkapakkaus plots
> restart:with(plots):
Warning, the name changecoords has been redefined
Selvitä itsellesi, mitä seuraavassa tehdään. Mieti tarkkaan, miksi jossain pitää antaa plot:lle argumentiksi
f(x) ja miksi taas jossain esim. tang. Voit sitten huvitella vaihtelemalla funktion määritelmää
ja / tai pistettä x0. Kirjoitetaan pieni malliskripti, jonkalaisia voit tehdä moninaisissa yhteyksissä.
> x0:=1: f:=x->x^3: # Vaihtuva syöte
> df:=diff(f(x),x): kk:=subs(x=1,df);
> x0:=1: tang:=f(x0)+kk*(x-x0);
> fkuva:=plot(f(x),x=0..2,color=red): tangkuva:=plot(tang,x=0..2,color=blue): p0kuva:=plot([[x0,f(x0)]],style=point,symbol=circle,symbolsize=15,color=black):
> display([fkuva,tangkuva,p0kuva]);
>
>
Kokeile (mutta vain kerran elämässäsi, silloinkin syvästi katuen, että olit yllytyshullu),
mitä tapahtuu, kun vaihdat (:) -> (;) vaikkapa fkuva:=; . .. yllä. PLOT-tietorakenne paljastuu.
- No, mene edit-valikkoon ja -> remove output, kyllä se siitä.
Sometimes it will be desirable to
print text on a plot.
The
plots
procedure
textplot
will allow this. The following commands will serve as examples of the
textplo
t and
display
routines. Make sure you notice where colons and semicolons are used in these commands.
In the next commands it is important to use colons to punctuate the first two statements. Otherwise Maple V will ouput an entire page of text describing the plot structure rather than the graph. The textplot in the second command causes the text x=0.6356,y=0.5000 to be printed at the point (.6356,.5000). The statement align=RIGHT aligns this text to the right of the point. Also make sure you notice that backward quotes (`) surround the text statement. Nykyisin käyvät myös " " -merkit.
>
f := x -> exp(-x)*sin(3*x);
plot1 := plot(f, 0..3):# tai plot1:=plot(f(x),x=0..3):
plot2 := plots[textplot]([0.6356, 0.5000, `x=.6356, y=.5000`], align=RIGHT):
plots[display]({plot1, plot2});
Huom:
plots-pakkauksen (kuten muidenkin pakkausten) funktioita voidaan käyttää myös lataamatta
koko pakkausta, tällöin pakkauksen nimeä ikäänkuin indeksoidaan ao. funktion nimellä
tyyliin plots[display]
>
3d-grafiikkaa, animaatiot
Otetaan lämmönjohtumisesimerkki, jossa valaistaan
Tarkastellaan sivuiltaan lämpöeristettyä sauvaa, jonka päät upotetaan hetkellä t=0 jäävesisäiliöihin (0 astetta) ja jonka
alkulämpötilajakauma on
> f:=x->100*sin(Pi*x/80);
Huomaa funktiomääritys .
Olkoon sauvan pituus L=80.
Tässä tapauksessa lämpöyhtälön ratkaisuna olevasta Fourier-sarjasta tulee vain yksi termi. Ratkaisu on (sopivalla lämmönjohtumiskertoimella)
> u:=(x,t)->100*sin((Pi*x)/80)*exp(-0.001785*t);
Pintapiirros
> with(plots):
> plot3d(u(x,t),x=0..80,t=0..400);
Animaatio
> animate(u(x,t),x=0..80,t=0..300,frames=30,color=blue);
Lämpötilaprofiilit ja korkeuskäyrät
> plot({seq(u(x,t),t=[0,10,50,100,200,300,400])},x=0..80);
> contourplot(u(x,t),x=0..80,t=0..400);
>
Implicitplot
Tämä on periaatteessa sama kuin yhden korkeuskäyrän piirto.
> implicitplot({x^2+y^2=1,x^3+y^3=1,x^10+y^10=1},x=-2..2,y=-2..2);
>
>
Tuohon tekisi mieli laittaa loppuun esim: ,color=[red,blue,black]);
mutta näköjään kaikki plot :n hyväksymät optiot eivät tässä toimi.