Pitkän matematiikan ylioppilaskokeen ratkaisut keväällä 2002

Ohessa kokeen tehtävät ratkaistuina Mathematicalla. Ratkaisut eivät ota kantaa kokeen arvosteluun tai siihen, millainen esitys ylioppilaskokeessa vaaditaan. Sen sijaan kannattaa ehkä pohtia, millainen matematiikan ylioppilaskokeen pitäisi olla, jos maailman tietoteknistyminen jatkuu ja Mathematican kaltaiset työvälineet alkavat olla yhtä yleisiä kuin laskin nykyään.

Simo K. Kivelä

Tehtävä 1

Yhtälöissä ei juurikaan laskemista ole. Ne täytyy vain osata, minkä jälkeen Mathematicaa voi käyttää kuvan piirtämiseen.

a-kohta

aYhtalo =  y  ==  2

b-kohta

bYhtalo =  x  ==  1

c-kohta

cYhtalo =  
      y  -  2  ==  -(x  -  1)  // 
        Simplify

d-kohta

Solve[2 x  +  y  ==  0, y]

Kulmakerroin on siis -2, joten kohtisuoralla suoralla se on (1/2).

dYhtalo =  
      y  -  2  ==  1/2 (x  -  1)  // 
        Simplify

Ladataan piirtämisessä tarvittava lisäpaketti ja piirretään kuvaajat:

Needs["Graphics`ImplicitPlot`"]

ImplicitPlot[{aYhtalo, bYhtalo, cYhtalo, dYhtalo}, {x, -5, 
        5}, {y, -5, 5}]

Tehtävä 2

Suoraviivainen yhtälöiden ratkaiseminen. Huomaa kuitenkin varoitukset, koska Mathematica laskee kompleksialueella ja tällöin juuria on muitakin.

Solve[Exp[x] == 1, x]

Solve[Exp[x^3 + 4 x^2 + x] == 1, x]

Tehtävä 3

Vuonna 2000 myynti kotimaahan a ja ulkomaille b. Vuonna 2001 on tällöin

yhtalo2001 =  
      0.95 a  +  1.1 b  ==  
        1.06 (a  +  b)

Tämän ratkaiseminen ja ratkaisun ensimmäisen (ja ainoan) komponentin sijoittaminen prosentin lausekkeeseen antavat

ratk =  Solve[yhtalo2001, b]

prosentti =  100 b/(a + b) /. ratk[[1]]

Tehtävä 4

Selkeintä on käyttää lukuarvoille symboleja ja laskea näillä:

h =  15;  v = 1000;

Sädettä ratkaistaessa saadaan kaksi arvoa, joista on valittava positiivinen:

sade =  Solve[Pi r^2 h == v, r]

Astioiden pohjan säteillä ja korkeuksilla on sama verrannollisuuskerroin a, jolle saatavista kolmesta arvosta vain yksi kelpaa:

kerroin =  
      Solve[Pi (a r)^2 (a h)  ==  v/2, 
        a]

Sijoitetaan oikeat arvot halkaisijan lausekkeeseen ja lasketaan myös numeerinen arvo:

halkaisija =  2 a r /. kerroin[[3]] /. 
        sade[[2]]

halkaisija // N

Hävitetään muuttujat, jotta niistä ei aiheudu jatkossa ongelmia:

Remove[h, v]

Tehtävä 5

Muodostetaan polynomi ja jakolaskun jakojäännös:

p[x_] := x^3  +  a x^2  +  b x  +  c

jakojaannos =  
      PolynomialRemainder[p[x], x^2 - 1, x]

Vaaditaan, että jakojäännöksen kumpikin kerroin on = 0:

yht1 =  
      CoefficientList[jakojaannos, x] == {0, 0}

Kolmas ehto:

yht2 =  p[2]  ==  12

Saaduista ehdoista ratkaistaan kertoimet ja sijoitetaan polynomiin:

ratk =  Solve[{yht1, yht2}, {a, b, c}]

p[x] /. ratk[[1]]

Remove[p]

Tehtävä 6

Muodostetaan kaksikomponenttiset vektorit:

x =  {x1, x2};  y =  {y1, y2};

Vektoreille x ja y täytyy antaa komponenttiesitykset, koska puhdas vektorialgebra ei Mathematicassa ole riittävän kehittynyttä.

Vektoreiden välinen kulma voidaan laskea arccos-funktion avulla. Sievennetään sen lauseke olettaen, että annettu vektoreita koskeva ehto on voimassa, ja muunnetaan tulos asteiksi:

a-kohta

Simplify[
      ArcCos[x . y/Sqrt[x . x]/Sqrt[y . y]]/(Pi/180), {x . 
            x == y . y, 
        x . x == (x + y) . (x + y)}]

b-kohta

Simplify[
      ArcCos[x . y/Sqrt[x . x]/Sqrt[y . y]]/(Pi/180), {x . 
            x == y . y, 
        x . x == (x - y) . (x - y)}]

Hävitetään lopuksi vektorit myöhempien ongelmien välttämiseksi:

Remove[x, y]

Tehtävä 7

Ratkaisemisessa voidaan käyttää lisäpakettia, joka on ensin ladattava:

Needs["Algebra`InequalitySolve`"]

Annetaan syötteeksi kaikki suorakulmion sivuja koskevat ehdot ja katsotaan, millaisiksi ehdoiksi nämä voidaan pelkistää:

ratk = 
      InequalitySolve[
        x y  ==  30  &&  2 x  +  2 y  <  24  &&  
          x  >  0  &&  y  >  0, {x, y}]

Tulos ei sano eksplisiittisesti mitään muuttujan y arvoista. Symmetrian perusteella sen voi tietenkin päätellä tai vaihtaa syötteessä muuttujien roolit:

ratk = 
      InequalitySolve[
        x y  ==  30  &&  2 x  +  2 y  <  24  &&  
          x  >  0  &&  y  >  0, {y, x}]

Tehtävä 8

Suoraviivainen lasku:

Limit[Integrate[1/x^2  +  Cos[n x], {x, 1, n}], 
      n -> Infinity]

Tämän tyyppisissä laskuissa varovaisuus on tosin tarpeen: Symboliset ohjelmat — kuten Mathematica — saattavat antaa varoituksetta myös väärän tuloksen.

Tehtävä 9

ehto =  Log[10, 2 a  +  3 b]  >  1

Tilanteen kartoittamiseksi määritellään kahden muuttujan funktio, jonka arvo on 1 ehdon toteutuessa, muulloin 0, ja piirretään funktion kuvaaja:

f[a_, b_] := Evaluate[If[ehto, 1, 0]]

Plot3D[f[a, b], {a, 0, 3}, {b, 0, 3}, 
      PlotPoints -> {75, 75}, 
      Shading -> False]

Kyseessä näyttäisi olevan suorakulmaisen kolmion muotoinen alue. Sen sivujen pituuksien määrittämiseksi sievennetään ehtoa:

ehto2 =  Map[Function[x, 10^x], ehto]

Needs["Algebra`InequalitySolve`"]

ehto3 =  
      InequalitySolve[
        ehto2  &&  a ≥ 0  &&  
          b  ≥  0  &&  a  ≤ 3  &&  
          b  ≤ 3, {a, b}]

ehto4 =  ehto3[[2]] /. a -> 3

Kun kolmion kateettien pituudet on siis selvitetty, minkä jälkeen kolmion ala ja todennäköisyys voidaan laskea:

todennakoisyys =  (1/2) (3  -  
            1/2) (3  -  4/3)/(3*3)

todennakoisyys // N

Remove[f]

Tehtävä 10

Pallon säde R, pyramidin pohjan sivu x, pyramidin korkeus R + y. Yhdenmuotoisista kolmioista saadaan verranto

verranto =  (x/2)/(R + y)  ==  
        R/Sqrt[y^2 - R^2]

Olkoon y tehtävän muuttuja, jonka avulla pyramidin tilavuus lausutaan:

sivu =  Solve[verranto, x]

v =  (1/3) x^2 (R  +  y) /. 
        sivu[[1]]

Ääriarvokohdan etsiminen derivoimalla:

derivaatta =  D[v, y] // Simplify

ratk =  Solve[derivaatta == 0, y]

Kyseessä on minimi, mikä nähdään tarkastelemalla käyttäytymistä vaihteluvälin päissä:

reunat = {Limit[v, y -> Infinity], 
        Limit[v, y -> R]}

Simplify[reunat, R > 0]

Tilavuuden minimiarvo sekä pyramidin ja pallon tilavuuksien suhde:

vmin =  v /. ratk[[2]]

vpallo =  4 Pi R^3 /3

vmin/vpallo

Remove[v]

Tehtävä 11

Suoran suuntavektori:

suunta =  {1, 2, 3}

Annetun pisteen ja erään suoralla olevan pisteen yhdysvektori:

yhdys =  {1, 1, 1} - {1, 2, 3}

Normaali näiden ristitulona:

normaali =  Cross[yhdys, suunta]

Tehtävä 12

Eräät esimerkit ja niiden kuvaajat:

Injektio:

g[x_] := x

Plot[g[x], {x, -5, 5}]

Ei injektio:

h[x_] :=  x^2

Plot[h[x], {x, -5, 5}]

Injektio, ei surjektio:

k[x_] := Exp[x]

Plot[k[x], {x, -5, 5}]

Annettu kuvaus:

f[x_] :=  x^3  -  6 x^2  +  12 x  + 1

Derivaatta on positiivinen paitsi = 0 yhdessä pisteessä ja funktio siis aidosti kasvava, jolloin se on injektio:

Factor[f'[x]]

Plot[f[x], {x, -5, 5}]

Remove[f, g, h, k]

Tehtävä 13

Kyseessä geometrinen summa, jonka suhdeluku on

q =  -9/5 Sin[x] Cos[x] // TrigReduce

Tämän itseisarvo on < 1, kun rajoitutaan reaalisiin argumentteihin x.

FullSimplify[Abs[q] < 1, Element[x, Reals]]

Määritellään summafunktio, sievennetään ja piirretään kuvaaja:

f[x_] :=  
      Evaluate[1  +  Sum[q^n, {n, 1, Infinity}]]

f[x] // Together

Plot[f[x], {x, -10, 10}]

Maksimi- ja minimiarvot ja -kohdat:

maksimi =  f[x] /. Sin[2 x] -> -1

minimi =  f[x] /. Sin[2 x] -> 1

Solve[Sin[2 x] == 1, x]

Solve[Sin[2 x] == -1, x]

Jaksotermi n π on pääteltävä itse.

Remove[f]

Tehtävä 14

Muodostetaan integraaliyhtälö, derivoidaan se puolittain ja ratkaistaan saatu differentiaaliyhtälö:

intyht =  
      Integrate[f[t], {t, 0, x}]  ==  
        f[x]  +  2

diffyht =  D[intyht, x]

ratk =  DSolve[diffyht, f, x]

Sijoittaminen integraaliyhtälöön osoittaa, että se toteutuu vain, jos vakio on = -2.

ehto =  intyht /. ratk[[1]]

Solve[ehto, C[1]]

Remove[f]

Tehtävä 15

Määritellään funktio ja muodostetaan Taylorin polynomit. Funktio Normal pudottaa pois sarjan jäännöstermin.

f[x_] := Exp[x/2]

Table[Normal[Series[f[x], {x, 0, n}]], {n, 0, 3}] // 
      TableForm

Tarkkuusvaatimuksen tutkiminen:

Table[{n, 
          Abs[(Normal[Series[f[x], {x, 0, n}]]  -  f[x]) /. 
                x -> 1] < 10^(-16)}, {n, 0, 20}] // 
      TableForm