Matematiikan johdantokurssi 2018 Harjoitusta 9, tehtävien käsittelyä Maplella Aikaisemmin tutustuimme alustavasti Mapleen, lausekkeiden käsittelyyn, jono- ja listarakenteisiin ja alkeisjoukko-oppiin. Nyt opimmme määrittelemään funktioita, tarkemmin sanottuna Maple-funktioita, joihin yleensä sisältyy vain itse sääntö, ei eksplisiittisesti lähtö- eikä maalijoukkoa. Nämä on käyttäjän itse pidettävä mielessä! restart; Johdatusta funktiosääntöihin ja piirtelyyn Maplessa (Maple-)funktioksi sanotaan jo liittämistä ilmaisevaa sääntöä, joka on muotoa nimi := muuttuja - lauseke f := x - x^2 - x + 1; f(6); f(2*x^3); f(a); f@f; # @ on funktioiden yhdistäminen fof f yhd := (f@f)(x); 31 (1.1) (1.2) (1.3) (1.4) (1.5) simplify(yhd); nelio := (f(x))^2; # neliöön korotus f(x)f(x) expand(nelio); nelio2 := (f^2)(x); (1.6) (1.7) (1.8) (1.9) f@@2; # relaation potenssi fof f f^2; # neliöön korotus ff (f@@2)(x) - (f^2)(x); (1.10) (1.11) (1.12) (1.13)
(f@@3)(x) - (f^3)(x); simplify(%); (1.14) (1.15) Mitä siis opimme funktion potensseista? f^2 on aritmeettinen neliö, f@@2 (tai f@f) yhdistäminen itsensä kanssa. Yhden muuttujan reaalifunktion kuvaajan piirto: plot(lauseke, muuttuja = väli) tai plot(maple-funktio, väli): f(x); # tämä on lauseke plot(f(x), x = -2..2); (1.16) f; # tämä on Maple-funktio f (1.17) plot(f, -2..2); Kuvattavan funktion lauseke voidaan antaa suoraankin: plot(x^3 + 2*x^2 - x + 1, x = 1..3); # lausekkeen avulla
Useampiakin kuvaajia voidaan piirtää samaan kuvioon: plot([1,x,x^2,x^3], x = -1..1); Myös kuvion pystysuuntaa voidaan säätää: plot([1,x,x^2,x^3], x = -1..1, y = -1..3);
ja pakottaa akseleilla sama skaalaus: plot([1, x, x^2, x^3], x = 0..2, scaling = constrained); Kotitehtävä 1. Funktioiden määrittely ja piirto Määritellään funktiot: f1 := x - x; # Shift-Enter jatkaa toiselle riville f2 := x - 1/(1-x); f3 := x - (x-1)/x;
f4 := x - x/(x-1); f5 := x - 1/x; f6 := x - 1-x; (2.1) Piirretään f2 plot(f2, -2..2); plot(f2, -2..2, -4..4);
Piirretään nämä kaikki samaan koordinaatistoon, alueeseen [-4, 4] x [-4, 4]. Laitetaan funktiot hakasulkujen sisään listaksi: plot([f1,f2,f3,f4,f5,f6], -4..4, -4..4);
Funktioiden f1 ja f6 määrittelyjoukko on R, funktioiden f2 ja f4 määrittelyjoukko on R \ {1}, funktioiden f3 ja f5 määrittelyjoukko on R \ {0}. Kaikkien yhteiseksi määrittelyjoukoksi käy kunkin määrittelyjoukon leikkaus eli R \ {0, 1} Toinen järkevä mahdollisuus on rajoittua jollekin välille, ehdota! Kotitehtävä 2. Funktioiden yhdistelyt ja taulukko Funktiot on jo edellä määritelty Mapleen. Kokeillaan yhdistelyä: (f3@f4)(x); (3.1) simplify(%); 1 Harjoitellaan listojen ja taulukoiden muodostamista: seq(2*a, a = 1..6); seq([seq(a*b, a = 1..6)], b = 1..4); [seq([seq(a*b, a = 1..6)], b = 1..4)]; matrix([seq([seq(a*b, a = 1..6)], b = 1..4)]); (3.2) (3.3) (3.4) (3.5) (3.6) Sama voidaan saada aikaan korvaamalla juoksevat indeksit a ja b listoilla: matrix([seq([seq(a*b, a = [1,2,3,4,5,6])], b = [1,2,3,4])]); (3.7) Käytetään tätä nyt funktioihin ja niiden yhdistelyihin, korvataan tulo a*b yhdistetyn funktion lausekkeella (f@g)(x) ja näiden f ja g arvoiksi funktiolistan jäsenet: Flista := [f1,f2,f3,f4,f5,f6]; Taulukko := matrix([seq([seq((f@g)(x), g = Flista)], f = Flista)]); (3.8) (3.9)
(3.9) simplify(taulukko); (3.10)
Tulkitsemalla nämä takaisinpäin saadaan taulukko (kirjoittamalla itse!) matrix([['f', f1, f2, f3, f4, f5, f6], [f1, f1, f2, f3, f4, f5, f6], [f2, f2, f3, f1, f6, f4, f5], [f3, f3, f1, f2, f5, f6, f4], [f4, f4, f5, f6, f1, f2, f3], [f5, f5, f6, f4, f3, f1, f2], [f6, f6, f4, f5, f2, f3, f1]]); (3.11) Kotitehtävä 3. Lisää yhdistelyjä Taulukosta saadaan (katsomalla toistuvasti) helposti pyydetyt laskut, mutta myös Maplella suoraan: Kohta a) (f3 @ f3 @ f3)(x); # tai seuraavasti: (4.1) (f3@@3)(x); (4.2) simplify(%); x Tulos on siis. Samoin seuraavassa: Kohta b) Yhdistetään perätysten alkeellisimmalla tavalla f1(f2(f3(f4(f6(x))))); 1 (4.3) (4.4)
Tehtävä: Tee edellinen myös käyttäen yhdistämisoperaattoria @ (f1@f2@f3@f4@f6)(x); # <-- tuohon kirjoita! 1 (4.5) simplify(%); Tulos on siis. Tämän näet varmaan sieventämällä! Kohta c) Mikä yhdistettynä funktioon antaa funktion? Taulukosta nähdään F =. Kohta d) Koska o =, eli o G =, on oltava G =. (4.6) Kotitehtävä 4. Yksikköympyrälle pisteitä with(plots): ympyrä := plot([sin(t), cos(t), t=0..2*pi], scaling = constrained): parametrilista := [-Pi/3, 11*Pi/4,-3*Pi/4, 5*Pi/6]; (5.1) pistelista := [seq([cos(x), sin(x)], x = parametrilista)]; (5.2) pisteet := plot(pistelista, style=point, symbol=circle, symbolsize=25, color=blue): display(ympyrä, pisteet); 'sin(-pi/3)' = sin(-pi/3), 'cos(-pi/3)' = cos(-pi/3); (5.3) 'sin(11*pi/4)' = sin(11*pi/4), 'cos(11*pi/4)' = cos(11*pi/4); (5.4)
(5.4) 'sin(-3*pi/4)' = sin(-3*pi/4), 'cos(-3*pi/4)' = cos(-3*pi/4); (5.5) 'sin(5*pi/6)' = sin(5*pi/6), 'cos(5*pi/6)' = cos(5*pi/6); `?` (5.6) Kotitehtävä 5. Muuttujan x arvot solve(sin(x) = 0.9093, x); 1.141598837 Pi - solve(sin(x) = 0.9093, x); 1.999993817 evalf(pi - solve(sin(x) = 0.9093, x)); 1.999993817 solve(cos(x) = -0.4161, x); 1.999948492 a) Ratkaisu: x = noin 2 solve(tan(x) = -0.3746, x); evalf(% + Pi); 2.783172715 solve(cot(x) = 2.670, x); 0.3583601613 evalf(% + Pi); 3.499952815 b) Ei ratkaisua, koska tan ja cot ovat aina samanmerkkiset! solve(sec(x) = 1.851, x); 1.000063924 solve(csc(x) = 1.188, x); 1.000518173 c) Ratkaisu: x = noin 1 (6.1) (6.2) (6.3) (6.4) (6.5) (6.6) (6.7) (6.8) (6.9) (6.10) Kotitehtävä 6. Muiden trigonometristen arvot a) x := arcsin(-5/13); (7.1) cos(x), tan(x), cot(x); (7.2)
Mutta näissä onkin vääriä etumerkkejä! Mitkä ovat oikeat? b) x := arccos(3/5); (7.3) sin(x), tan(x), cot(x); (7.4) Mutta näissä onkin vääriä etumerkkejä! Mitkä ovat oikeat? c) x := arctan(2*sqrt(2)); sin(x), cos(x), cot(x); (7.5) (7.6) Mutta näissäkin on vääriä etumerkkejä! Mitkä ovat oikeat? d) x := arccot(-1/2); (7.7) cot(x); tan(x); sin(x); cos(x); (7.8) (7.9) (7.10) (7.11) Nämä lienevät sattuneet oikein?