Esimerkkitehtävät
1 Tehtävä 1
Lasketaan tehtävänannon järjestyksessä yhdistetyt funktiot:
(%i1) | exp(log(x)); |
Tuli mitä pitikin, koska kyseessä on toistensa käänteisfunktiot.
(%i2) | log(exp(x)); |
Tässä samoin kuin edellisessä kohdassa oikea tulos.
(%i3) | exp(log(sin(x))); |
Kanssa odotettu tulos, Maxima sieventää "turhat" pois.
(%i4) | exp(sin(log(x))); |
Ei sievene enempää.
2 Tehtävä 2
(%i5) | osoittaja:x^4 - 5*x^3 + 5*x^2 + 5*x - 6; |
(%i6) | nimittaja: x^2 - 1; |
(%i7) | lauseke:osoittaja/nimittaja; |
Ei sievene automaattisesti. Kokeillaan sieventämiskomentoja:
(%i8) | ratsimp(lauseke); |
Sieveni!
(%i9) | factor(lauseke); |
Tämäkin toimi, mutta antaa erinäköisen tuloksen.
(%i10) | factor(ratsimp(lauseke)); |
Ovat kuitenkin samat. Faktoroidaan vielä osoittaja ja nimittäjä:
(%i11) | factor(osoittaja); |
(%i12) | factor(nimittaja); |
Sieltähän tosiaan supistuu mukavasti termejä pois.
3 Tehtävä 3
(%i13) | y:tan(k*x); |
Lasketaan yhtälön vasen puoli, y:n toinen derivaatta:
(%i14) | vasen:diff(y,x,2); |
Lasketaan yhtälön oikea puoli:
(%i15) | oikea:2*k^2*y*(1+y^2); |
Ei näitä näe suoraan samoiksi, pitänee kokeilla sieventää.
(%i16) | trigsimp(vasen); |
(%i17) | trigsimp(oikea); |
Tuli samat sieventämällä!
4 Tehtävä 4
(%i18) | f:x^2+x+41; |
(%i19) | g:2*x^2+11; |
Ratkaistaan leikkauspisteiden x-koordinaatit:
(%i20) | solve(f=g); |
Niitä löytyi kaksi. Lasketaan kuvaajien leikkauspisteet ja nimetään ne:
(%i21) | p1:[6,ev(f,x=6)]; |
(%i22) | p2:[-5,ev(f,x=-5)]; |
(%i23) |
wxdraw2d( color=blue, explicit(f,x,-10,10), color=red, explicit(g,x,-10,10), color=black, point_type=circle, points([p1,p2]) ); |
Komento asettaa ensin väriksi sinisen ja piirtää funktion f kuvaajan välillä [-10,10].
Sitten väriksi asetetaan punainen ja piirretään funktion g kuvaaja samalla välillä.
Tämän jälkeen vaihdetaan väriksi musta ja pisteiden tyyliksi pallot, minkä jälkeen
piirretään vielä leikkauskohdat.
5 Tehtävä 5
Ajetaan ensiksi kill(values) komento, koska aiemmassa tehtävässä
nimettiin lauseke y:ksi.
(%i24) | kill(values); |
(%i25) | kayra1:x^3+y^2=1; |
(%i26) | kayra2:x^2+y^2=25; |
Kokeillaan piirtää kuva, että nähdään millaisista käyristä on kyse.
(%i27) |
wxdraw2d( implicit(kayra1,x,-10,10,y,-10,10), implicit(kayra2,x,-10,10,y,-10,10) ); |
Kuvan perusteella näyttäisi olevan kaksi leikkauspistettä.
Katsotaan mitä algsys antaa:
(%i28) | ratkaisut:algsys([kayra1,kayra2],[x,y]); |
Ajetaan tehtävänannossa mainittu komento:
(%i29) | ratkaisut2:map(lambda([z],ev([x,y],z)),ratkaisut); |
Näyttäisi tulevan 6 ratkaisua, joista kuitenkin vain kaksi viimeistä ovat reaalisia.
Reaalisten juurten lukumäärä sitä mitä odotettiikin. Poimitaan ne
(%i30) | leikkauspiste1:ratkaisut2[5]; |
(%i31) | leikkauspiste2:ratkaisut2[6]; |
Piirretään vielä tehtävässä vaadittu kuva:
(%i32) |
wxdraw2d( color=black, implicit(kayra1,x,-10,10,y,-10,10), color=blue, implicit(kayra2,x,-10,10,y,-10,10), color=red, point_type=circle, points([leikkauspiste1,leikkauspiste2]) ); |
6 Tehtävä 6
Asetetaan epsilon ja lasketaan likiarvo integraalille välillä [epsilon,10]
(%i33) | epsilon:0.01; |
(%i34) | integraali:romberg(exp(-x^2)*log(x),x,epsilon,10); |
Ratkaistaan gamma annetusta yhtälöstä. Merkitään gammaa yhtälössä g:llä.
(%i35) | yhtalo:integraali=-(g + 2*log(2))*sqrt(%pi)/4; |
(%i36) | solve(yhtalo,g); |
Pitänee poimia tuloksesta yhtälön oikea puoli
(%i37) | gamma:ev(g,solve(yhtalo,g)); |
Lasketaan likiarvo:
(%i38) | gamma,numer; |
Ei nyt kyllä näytä kovin tarkalta, ilmeisesti numeerinen integrointi ei ollu
tarpeeksi tarkka. Kokeillaan pienentää epsilonia:
(%i39) | epsilon:0.001; |
Romberg ei konvergoinut (ei jätetä komentoa tähän, koska sitten ei voi
ajaa koko tiedostoa kerralla läpi).
Pitänee katsoa mitä rombergit tekee. Ilmeisesti liittyy siihen miten
paljon lasketaan. Muutetaan sitä:
(%i40) | rombergit; |
Kokeillaan asettaa arvoksi suurempi, ehkä se toimii paremmin.
Katsotaan mitä saadaan.
(%i41) | rombergit:20; |
(%i42) | integraali:romberg(exp(-x^2)*log(x),x,epsilon,10); |
Nyt konvergoi! Kokeilin epsilonille eri arvoja ja seuraava
ainakin toimi.
(%i43) | epsilon:0.000001; |
(%i44) | integraali:romberg(exp(-x^2)*log(x),x,epsilon,10); |
Lasketaan gamma kuten aiemminkin:
(%i45) | yhtalo:integraali=-(g + 2*log(2))*sqrt(%pi)/4; |
(%i46) | solve(yhtalo,g); |
(%i47) | gamma:ev(g,solve(yhtalo,g)); |
(%i48) | gamma,numer; |
Nyt näyttää jo aika tarkalta, ero vasta kuudennessa desimaalissa!