Esimerkkitehtävät

1 Tehtävä 1

Lasketaan tehtävänannon järjestyksessä yhdistetyt funktiot:

(%i1) exp(log(x));

Result

Tuli mitä pitikin, koska kyseessä on toistensa käänteisfunktiot.

(%i2) log(exp(x));

Result

Tässä samoin kuin edellisessä kohdassa oikea tulos.

(%i3) exp(log(sin(x)));

Result

Kanssa odotettu tulos, Maxima sieventää "turhat" pois.

(%i4) exp(sin(log(x)));

Result

Ei sievene enempää.

2 Tehtävä 2

(%i5) osoittaja:x^4 - 5*x^3 + 5*x^2 + 5*x - 6;

Result

(%i6) nimittaja: x^2 - 1;

Result

(%i7) lauseke:osoittaja/nimittaja;

Result

Ei sievene automaattisesti. Kokeillaan sieventämiskomentoja:

(%i8) ratsimp(lauseke);

Result

Sieveni!

(%i9) factor(lauseke);

Result

Tämäkin toimi, mutta antaa erinäköisen tuloksen.

(%i10) factor(ratsimp(lauseke));

Result

Ovat kuitenkin samat. Faktoroidaan vielä osoittaja ja nimittäjä:

(%i11) factor(osoittaja);

Result

(%i12) factor(nimittaja);

Result

Sieltähän tosiaan supistuu mukavasti termejä pois.

3 Tehtävä 3

(%i13) y:tan(k*x);

Result

Lasketaan yhtälön vasen puoli, y:n toinen derivaatta:

(%i14) vasen:diff(y,x,2);

Result

Lasketaan yhtälön oikea puoli:

(%i15) oikea:2*k^2*y*(1+y^2);

Result

Ei näitä näe suoraan samoiksi, pitänee kokeilla sieventää.

(%i16) trigsimp(vasen);

Result

(%i17) trigsimp(oikea);

Result

Tuli samat sieventämällä!

4 Tehtävä 4

(%i18) f:x^2+x+41;

Result

(%i19) g:2*x^2+11;

Result

Ratkaistaan leikkauspisteiden x-koordinaatit:

(%i20) solve(f=g);

Result

Niitä löytyi kaksi. Lasketaan kuvaajien leikkauspisteet ja nimetään ne:

(%i21) p1:[6,ev(f,x=6)];

Result

(%i22) p2:[-5,ev(f,x=-5)];

Result

(%i23) wxdraw2d(
color=blue,
explicit(f,x,-10,10),
color=red,
explicit(g,x,-10,10),
color=black,
point_type=circle,
points([p1,p2])
);

Result

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);

Result

(%i25) kayra1:x^3+y^2=1;

Result

(%i26) kayra2:x^2+y^2=25;

Result

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)
);

Result

Kuvan perusteella näyttäisi olevan kaksi leikkauspistettä.
Katsotaan mitä algsys antaa:

(%i28) ratkaisut:algsys([kayra1,kayra2],[x,y]);

Result

Ajetaan tehtävänannossa mainittu komento:

(%i29) ratkaisut2:map(lambda([z],ev([x,y],z)),ratkaisut);

Result

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];

Result

(%i31) leikkauspiste2:ratkaisut2[6];

Result

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])
);

Result

6 Tehtävä 6

Asetetaan epsilon ja lasketaan likiarvo integraalille välillä [epsilon,10]

(%i33) epsilon:0.01;

Result

(%i34) integraali:romberg(exp(-x^2)*log(x),x,epsilon,10);

Result

Ratkaistaan gamma annetusta yhtälöstä. Merkitään gammaa yhtälössä g:llä.

(%i35) yhtalo:integraali=-(g + 2*log(2))*sqrt(%pi)/4;

Result

(%i36) solve(yhtalo,g);

Result

Pitänee poimia tuloksesta yhtälön oikea puoli

(%i37) gamma:ev(g,solve(yhtalo,g));

Result

Lasketaan likiarvo:

(%i38) gamma,numer;

Result

Ei nyt kyllä näytä kovin tarkalta, ilmeisesti numeerinen integrointi ei ollu
tarpeeksi tarkka. Kokeillaan pienentää epsilonia:

(%i39) epsilon:0.001;

Result

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;

Result

Kokeillaan asettaa arvoksi suurempi, ehkä se toimii paremmin.
Katsotaan mitä saadaan.

(%i41) rombergit:20;

Result

(%i42) integraali:romberg(exp(-x^2)*log(x),x,epsilon,10);

Result

Nyt konvergoi! Kokeilin epsilonille eri arvoja ja seuraava
ainakin toimi.

(%i43) epsilon:0.000001;

Result

(%i44) integraali:romberg(exp(-x^2)*log(x),x,epsilon,10);

Result

Lasketaan gamma kuten aiemminkin:

(%i45) yhtalo:integraali=-(g + 2*log(2))*sqrt(%pi)/4;

Result

(%i46) solve(yhtalo,g);

Result

(%i47) gamma:ev(g,solve(yhtalo,g));

Result

(%i48) gamma,numer;

Result

Nyt näyttää jo aika tarkalta, ero vasta kuudennessa desimaalissa!


Created with wxMaxima.