/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 12.04.0 ] */ /* [wxMaxima: title start ] Esimerkkitehtävät [wxMaxima: title end ] */ /* [wxMaxima: section start ] Tehtävä 1 [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Lasketaan tehtävänannon järjestyksessä yhdistetyt funktiot: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ exp(log(x)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Tuli mitä pitikin, koska kyseessä on toistensa käänteisfunktiot. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ log(exp(x)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Tässä samoin kuin edellisessä kohdassa oikea tulos. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ exp(log(sin(x))); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Kanssa odotettu tulos, Maxima sieventää "turhat" pois. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ exp(sin(log(x))); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ei sievene enempää. [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Tehtävä 2 [wxMaxima: section end ] */ /* [wxMaxima: input start ] */ osoittaja:x^4 - 5*x^3 + 5*x^2 + 5*x - 6; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ nimittaja: x^2 - 1; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ lauseke:osoittaja/nimittaja; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ei sievene automaattisesti. Kokeillaan sieventämiskomentoja: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ratsimp(lauseke); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Sieveni! [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ factor(lauseke); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Tämäkin toimi, mutta antaa erinäköisen tuloksen. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ factor(ratsimp(lauseke)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ovat kuitenkin samat. Faktoroidaan vielä osoittaja ja nimittäjä: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ factor(osoittaja); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ factor(nimittaja); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Sieltähän tosiaan supistuu mukavasti termejä pois. [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Tehtävä 3 [wxMaxima: section end ] */ /* [wxMaxima: input start ] */ y:tan(k*x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Lasketaan yhtälön vasen puoli, y:n toinen derivaatta: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ vasen:diff(y,x,2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Lasketaan yhtälön oikea puoli: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ oikea:2*k^2*y*(1+y^2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ei näitä näe suoraan samoiksi, pitänee kokeilla sieventää. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ trigsimp(vasen); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ trigsimp(oikea); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Tuli samat sieventämällä! [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Tehtävä 4 [wxMaxima: section end ] */ /* [wxMaxima: input start ] */ f:x^2+x+41; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ g:2*x^2+11; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ratkaistaan leikkauspisteiden x-koordinaatit: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ solve(f=g); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Niitä löytyi kaksi. Lasketaan kuvaajien leikkauspisteet ja nimetään ne: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ p1:[6,ev(f,x=6)]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ p2:[-5,ev(f,x=-5)]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxdraw2d( color=blue, explicit(f,x,-10,10), color=red, explicit(g,x,-10,10), color=black, point_type=circle, points([p1,p2]) ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 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. [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Tehtävä 5 [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Ajetaan ensiksi kill(values) komento, koska aiemmassa tehtävässä nimettiin lauseke y:ksi. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ kill(values); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ kayra1:x^3+y^2=1; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ kayra2:x^2+y^2=25; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Kokeillaan piirtää kuva, että nähdään millaisista käyristä on kyse. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxdraw2d( implicit(kayra1,x,-10,10,y,-10,10), implicit(kayra2,x,-10,10,y,-10,10) ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Kuvan perusteella näyttäisi olevan kaksi leikkauspistettä. Katsotaan mitä algsys antaa: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ratkaisut:algsys([kayra1,kayra2],[x,y]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ajetaan tehtävänannossa mainittu komento: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ratkaisut2:map(lambda([z],ev([x,y],z)),ratkaisut); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Näyttäisi tulevan 6 ratkaisua, joista kuitenkin vain kaksi viimeistä ovat reaalisia. Reaalisten juurten lukumäärä sitä mitä odotettiikin. Poimitaan ne [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ leikkauspiste1:ratkaisut2[5]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ leikkauspiste2:ratkaisut2[6]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Piirretään vielä tehtävässä vaadittu kuva: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 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]) ); /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Tehtävä 6 [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Asetetaan epsilon ja lasketaan likiarvo integraalille välillä [epsilon,10] [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ epsilon:0.01; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ integraali:romberg(exp(-x^2)*log(x),x,epsilon,10); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ratkaistaan gamma annetusta yhtälöstä. Merkitään gammaa yhtälössä g:llä. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ yhtalo:integraali=-(g + 2*log(2))*sqrt(%pi)/4; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve(yhtalo,g); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Pitänee poimia tuloksesta yhtälön oikea puoli [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ gamma:ev(g,solve(yhtalo,g)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Lasketaan likiarvo: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ gamma,numer; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ei nyt kyllä näytä kovin tarkalta, ilmeisesti numeerinen integrointi ei ollu tarpeeksi tarkka. Kokeillaan pienentää epsilonia: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ epsilon:0.001; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 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ä: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ rombergit; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Kokeillaan asettaa arvoksi suurempi, ehkä se toimii paremmin. Katsotaan mitä saadaan. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ rombergit:20; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ integraali:romberg(exp(-x^2)*log(x),x,epsilon,10); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Nyt konvergoi! Kokeilin epsilonille eri arvoja ja seuraava ainakin toimi. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ epsilon:0.000001; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ integraali:romberg(exp(-x^2)*log(x),x,epsilon,10); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Lasketaan gamma kuten aiemminkin: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ yhtalo:integraali=-(g + 2*log(2))*sqrt(%pi)/4; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve(yhtalo,g); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ gamma:ev(g,solve(yhtalo,g)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ gamma,numer; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Nyt näyttää jo aika tarkalta, ero vasta kuudennessa desimaalissa! [wxMaxima: comment end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$