Top Banner
Matemaattiset ohjelmistot MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k¨ aytt¨ oliittym¨ an, esim. selvit¨ a mist¨ a ohjetoiminnot (HELP) l¨ oytyv¨ at. Teht¨ av¨ at 2-4 kannattaa tehd¨ a ty¨ oarkille (FileNewWorksheet Mode). Ty¨ oarkin voi tallettaa (.mw tai .mws) esim. pajun ko- tihakemistoon tai muistitikulle. Kannattaa lis¨ aksi muuttaa sy¨ ote perinteiseen muotoon valitsemalla (ToolsOptionsDisplayInput Display: Maple Notation), kts. luennoista Maplen k¨ ayt¨ on alkutoimet. 1. Tutustu MAPLEen k¨ aym¨ all¨ a l¨ api P:\matohj\tours hakemistosta l¨ oytyv¨ a ”Quick New User’s Tour”. Suorita siin¨ a ty¨ oarkkien laskut, mutta ¨ al¨ a tallenna ty¨ oarkkeja levylle. 2. Totuttele yksinkertaisiin laskutoimituksiin kuten luentojen alkuosassa on tehty. Las- ke kompleksiluvuilla ja eri vakioilla. Tutustu lausekkeiden nime¨ amiseen sijoitus- lauseen avulla. Selvit¨ a itsellesi puolipisteen ja kaksoispisteen ero lauseen p¨ attimen¨ a. Opettele tallentamaan ty¨ oarkki levylle. 3. M¨ ar¨ a MAPLElla seuraavien funktioiden integraalifunktiot ja tarkista tulos deri- voimalla: (a) x 2 e -x , (b) x 2 cos(x), (c) 1 x 4 -1 , (d) 1 - x 2 . 4. Laske/sievenn¨ a MAPLElla seuraavat lausekkeet: (?simplify) (a) 2 log 4 + log 25 - 3 log 2 (b) (1 + i) 4 + (1 - i) 4 , jossa i 2 = -1 (c) M X k=1 k - M +1 2 2 (d) n X k=0 (k - np) 2 n k p k (1 - p) n-k (e) d dx arctan 1+ x 1 - x . Lis¨ ateht¨ avi¨ a (jos j¨ a aikaa/omalla ajalla) 5. K¨ ay l¨ api hakemistosta P:\matohj\tours oytyv¨ a ”New User’s Tour”. 6. Teht¨ av¨ apaperin toisella puolella on MAPLE-komentoja. Suorita ne MAPLEn avulla. Selvit¨ a HELPin avulla mit¨ a komennot tekev¨ at ja miten niit¨ a k¨ aytet¨ an. K ¨ A ¨ ANN ¨ A!
53

MAPLE-harjoitus 1, syksy 2012omankine//Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

Aug 05, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

Matemaattiset ohjelmistot

MAPLE-harjoitus 1, syksy 2012

Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn kayttoliittymaan, esim.selvita mista ohjetoiminnot (HELP) loytyvat. Tehtavat 2-4 kannattaa tehda tyoarkille(File→New→Worksheet Mode). Tyoarkin voi tallettaa (.mw tai .mws) esim. pajun ko-tihakemistoon tai muistitikulle. Kannattaa lisaksi muuttaa syote perinteiseen muotoonvalitsemalla (Tools→Options→Display→Input Display: Maple Notation), kts. luennoistaMaplen kayton alkutoimet.

1. Tutustu MAPLEen kaymalla lapi P:\matohj\tours hakemistosta loytyva ”QuickNew User’s Tour”. Suorita siina tyoarkkien laskut, mutta ala tallenna tyoarkkejalevylle.

2. Totuttele yksinkertaisiin laskutoimituksiin kuten luentojen alkuosassa on tehty. Las-ke kompleksiluvuilla ja eri vakioilla. Tutustu lausekkeiden nimeamiseen sijoitus-lauseen avulla. Selvita itsellesi puolipisteen ja kaksoispisteen ero lauseen paattimena.Opettele tallentamaan tyoarkki levylle.

3. Maaraa MAPLElla seuraavien funktioiden integraalifunktiot ja tarkista tulos deri-voimalla:

(a) x2e−x,

(b) x2 cos(x),

(c) 1x4−1

,

(d)√1− x2.

4. Laske/sievenna MAPLElla seuraavat lausekkeet: (?simplify)

(a) 2 log 4 + log√25− 3 log 2

(b) (1 + i)4 + (1− i)4, jossa i2 = −1

(c)M∑k=1

(k − M + 1

2

)2

(d)n∑

k=0

(k − np)2(n

k

)pk(1− p)n−k

(e)d

dxarctan

(1 + x

1− x

).

Lisatehtavia (jos jaa aikaa/omalla ajalla)

5. Kay lapi hakemistosta P:\matohj\tours loytyva ”New User’s Tour”.

6. Tehtavapaperin toisella puolella on MAPLE-komentoja. Suorita ne MAPLEn avulla.Selvita HELPin avulla mita komennot tekevat ja miten niita kaytetaan.

KAANNA!

Page 2: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> ifactor(1001); iquo(101,7); irem(101,7);> isprime(111); nextprime(111) ; prevprime(111);> a1:=Pi^2 ; a2:= 1/exp(-1) ; a3:= 8!/504 ;> evalf([a1,a2,a3]); binomial(10,5);

> sin(Pi/3),cos(Pi/3),tan(Pi/3);> floor(Pi),ceil(Pi),round(Pi);> log(10),ln(10.0),log10(10);> arcsin(1/2),arctan(1),sinh(1);

> pon1:= x^4+x^2+1 ; pon2:= x^4-1 ;> factor(pon2) ; factor(pon1,{I,sqrt(3)});> rat:=pon1/pon2 ; convert(rat,parfrac,x);> expand((1+x+x^2)^2); numer(rat); denom(rat);

> diff(sin(x)^2,x),diff(exp(x^2),x,x);> int(cos(x)^2,x=0..Pi), int(exp(-x),x=0..infinity);> D(ln); (D@@4)(cos); D(arctan)(t);

> GAMMA(7), GAMMA(1/2), GAMMA(0.5)^2;> sinh(I*Pi), cosh(I*Pi), log(I);> convert(exp(I*x), trig);> convert(sin(x), exp);

Page 3: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

Matemaattiset ohjelmistot

(Syksy 2012)

Harjoitus 1Koska tehtävät voi tehdä monin eri tavoin, niin ratkaisuissa on käytetty vaihtelevia tapoja.

3.aint(x^2*exp(-x), x);

diff(%, x);

simplify(%);

3.bInt(x^2*cos(x), x) = int(x^2*cos(x), x);

diff(rhs(%), x); # rhs() poimii yhtälön oikean puolen

3.cinte1 := Int( 1/(x^4 - 1), x);

value(inte1);

diff(%, x);

simplify(%);

1

3.dint(sqrt(1 - x^2), x);

Page 4: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

(1)(1)

> >

> >

> >

> >

> >

> >

simplify( diff(%, x) );

4.aRiippuen logaritmin kantaluvusta on useita vaihtoehtoja. Esim. luonnollinen logaritmi:2*ln(4) + ln(sqrt(25)) - 3*ln(2);

2*log(4) + log(sqrt(25)) - 3*log(2);

Yo. logaritmit sieventyivät automaattisesti. Mikäli kyseessä on kymmenkantainen logaritmi, niin:2*log10(4) + log10(sqrt(25)) - 3*log10(2);

simplify(%);

1

Kantaluvun b voi myös valita itse. Esim. tapaus b=5:b := 5;

2*log[b](4) + log[b](sqrt(25)) - 3*log[b](2);

simplify(%);

4.bTässä lauseke sieventyy automaattisesti:(1 + I)^4 + (1 - I)^4;

4.cSum( (k - (M + 1)/2)^2, k = 1..M ) = simplify( sum((k - (M + 1)

/2)^2, k = 1..M) );

4.d

Page 5: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> > restart:

simplify( sum((k - n*p)^2*binomial(n,k)*p^k*(1 - p)^(n - k), k =

0..n) );

Lisätieto: Edellä on kyseessä binomijakauman toinen momentti eli varianssi. Ongelma ei siis ole järkevä, jos n<0, joten oletetaan n positiiviseksi kokonaisluvuksi. Tilde (~) n:n perässä sinisissä vastauksissa tarkoittaa, että n:ään liittyy jotain oletuksia.assume(n, posint);

simplify( sum((k - n*p)^2*binomial(n,k)*p^k*(1 - p)^(n - k), k =

0..n) );

4.ediff( arctan((1 + x)/(1 - x)), x);

simplify(%);

int(%, x); # Tarkistus

1

Kannattaa siis huomata, että myösdiff(arctan(x), x);

1

Page 6: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

Matemaattiset ohjelmistot

MAPLE-harjoitus 2, syksy 2012

1. Ratkaise seuraavat yhtalot MAPLEn avulla:

(a) x3 − 3x2 + 2x = 0

(b) cos x+√

3 sinx = 2

(c) log(x+ 5) = 2 log(x− 1)

(d) ex + e−x = 4

(e)√x+ 5 =

√x+√x− 3.

Tutki ratkaisuja myos graafisesti piirtamalla sopivien funktioiden kuvaajat.

2. (a) Tutki HELPin avulla piirtokaskya plot. Piirra samaan koordinaatistoon kayrat

y =sin(nx)

n, kun 0 ≤ x ≤ 4π ja n = 1, 2, 3, 4.

(b) Tutustu MAPLEn paketteihin plots ja plottools.

(c) Piirra MAPLEn avulla ympyran x2 + y2 = 4 kuvaaja neljalla eri tavalla.

(d) Piirra kayra 3x2 + 2y2 − 2xy = 6.

3. Ratkaise MAPLElla yhtaloryhmat

(a) x2 + y2 = 3 ja xy = 2

(b) x2 + y2 = 3 ja 2y = x2

(c) x+ y + z = 6, x2 + y2 + z2 = 14 ja x3 + y3 + z3 = 36

(d) 3 sinx+ 2 cos y = 3 ja 5 sinx− 3 cos y = 1.

4. Tutustu MAPLEn assuming komentoon (?assume). Laske seuraavat integraalit, kunb > 0.

(a)

∫ ∞0

t3e−btdt

(b)

∫ ∞0

x2e−bx2

dx

(c)

∫ b

0

x4(b− x)4dx

5. Laske seuraavien potenssisarjojen summat MAPLElla:

(a)∞∑k=0

x2k

(2k)!

(b)∞∑k=1

k2x2k

(c)∞∑k=0

(xk

k!

)2

.

KAANNA!

Page 7: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

Lisatehtavia (jos jaa aikaa/omalla ajalla)

6. (a) Ratkaise MAPLElla rekursioyhtalo an = ran−1 + 1.

(b) Maaraa MAPLEn avulla yhtalon 127x− 87y = 1 kokonaislukuratkaisut.

(c) Ratkaise MAPLElla kongruenssi 17x ≡ 14 (mod 21).

7. Maaraa MAPLEn avulla seuraavien muuttujan x lausekkeiden Taylorin sarjojen 10ensimmaista termia origon x = 0 ymparistossa:

(a) tan(x2)

(b)√

1 + x2 + x4

(c) tan(sin(x))− sin(tan(x)).

8. Maaraa kohdan (2d) kayran rajoittaman tasoalueen pinta-ala.

9. Suorita alla olevat komennot MAPLEn avulla ja tarvittaessa tutki HELPin avulla,miten komentoja kaytetaan.

> hh:=(x,y)->log(x^2+y^2);> hh(3,4), hh(3,4.0), hh(t,t);> diff(hh(x,y),x,y);D[1,2](hh);> hh(a,b,c,d), hh(a+b,c+d);> taylor(hh(y,z),z=0,10);

> solve(2^x+1/2^x=6,x);evalf(%[1]);> solve(sin(x+Pi)=cos(2*x),x);> solve(x^2+4*x < 2 ,x ); solve(arctan(x)=1.234,x);

> plot([t^2,t^3],t=-2..2);> plot([t^2,t^3,t=-2..2]);> plot([t^2,t^3],t=-2..2,coords=polar);> plot(tan(x), x = -1.5..1.5);> plot(tan(x), x = -6..6);> plot(tan(x), x = -6..6, y = -10..10, discont = true);

> porras := piecewise(x < -2, -x, x < 2, 2, x);> plot(porras, x = -4..4);> diff(porras, x); int(porras, x);

> x := ’x’: yht1 := x^3 - 3*x = 5 ;> ratk1 := solve(yht1, {x}): ratk1[1];> simplify(subs(ratk1[1], yht1));> fatk1 := fsolve(yht1, x, complex);> simplify(subs(x = fatk1[2], yht1));

> yht2 := x^4 + 3*x - 5;> fatk2 := fsolve(yht2, {x}, complex);> map(subs, [fatk2], yht2);> ratk2 := solve(yht2, x);> convert(ratk2[1], radical);

Page 8: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

(1)(1)

Matemaattiset ohjelmistot

(Syksy 2012)

Harjoitus 2restart:

1.aAlla kolme eri ratkaisutapaa. Huomaa tulosten erimuotoisuus.f := x^3 - 3*x^2 + 2*x; # lauseke!

solve({f = 0}, {x});

solve(f = 0, x);

ratk := solve(f);

Tarkistetaan yksi ratkaisuista:subs(x=ratk[1],f = 0);

eval(f,x=ratk[1]);

0

Piirretään kuvaaja, josta nollakohdat hahmottuvat.plot(f,x=0..3);

1.bf := cos(x) + sqrt(3)*sin(x) - 2;

yht := {f = 0}:

solve(yht, {x});

Page 9: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

Yllä ei ole kaikkia ratkaisuja. Ne saadaan seuraavasti:_EnvAllSolutions := true;

solve(yht, {x});

_EnvAllSolutions := false;

Maple käyttää globaalia nimeä _Z1 ratkaisun kokonaislukuparametrille eli ratkaisu on ,

missä on mikä tahansa kokonaisluku.about(_Z1);

Originally _Z1, renamed _Z1~:

is assumed to be: integer

Kuvaaja:plot(f,x=0..Pi/2);

1.cf :=log(x + 5) - 2*log(x - 1);

solve({f=0}, {x});

simplify(subs(x = 4, f)); # Tarkistus0

plot(f,x=1..5);

Page 10: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

1.df := exp(x) + exp(-x) - 4;

yht := f =0;

ratk := solve({yht}, {x});

evalf(ratk); # likiarvot

simplify(eval(yht,ratk[1])); # Tarkistus

plot(f,x=-2..2);

1.ef := sqrt(x + 5) - sqrt(x) - sqrt(x - 3);

solve({f=0}, {x});

plot(f,x=2..5);

2 a.sinit := n -> sin(n*x)/n; # funktio, joka riippuu n:stä

Page 11: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

Piirrettävät käyrät annetaan plot-käskylle listana.plot([sinit(1), sinit(2), sinit(3), sinit(4)], x = 0..4*Pi);

Toinen tapa jonon (sequence) avulla:lista := [seq(sin(n*x)/n, n = 1..4)]; # lista lausekkeita

plot(lista, x = 0..4*Pi):

Tai tietenkin suoraan plot:n sisällä, eikä n:n tarvitse mennä ykkösen askelin, vaan annetaan joitakin n:n arvoja omassa listassaan:plot([seq(sinit(n), n = [1, 3, 5])], x = 0..4*Pi):

Jos ei halua määritellä funktiota, niin voi käyttää lauseketta:sinit := sin(n*x)/n;

plot([seq(sinit, n = 1..4)], x = 0..4*Pi):

Huomaa vielä, että voitaisiin käyttää listan sijasta joukkoa eli pistetään piirrettävä data aaltosulkeisiin:plot({seq(sinit, n = 1..4)}, x = 0..4*Pi):

2c.Piirretään ympyrä 7 tavalla. Kyseessä on origokeskeinen ympyrä, jonka säde on kaksi. Huomaa, että vain viimeinen tulostetaan tilan säästämiseksi. Ladataan ensin plots ja plottools paketit avuksi muutamien piirto-optioiden kera.with(plots): with(plottools):

setoptions(numpoints = 300, thickness = 1, resolution = 600);

Piirretään ratkaistut puolikkaat erikseenplot([sqrt(-x^2 + 4), -sqrt(-x^2 + 4)], x = -2..2, y = -2..2,

scaling = constrained, color = red):

Piirretään sinin ja kosinin avulla parametrimuodossa. Huomaa, että parametrin rajojen on tultava myöskin hakasulkeiden sisään!plot([2*cos(t), 2*sin(t), t = 0..2*Pi], scaling = constrained):

Piirretään vakiosuora napakoordinaatistoon (napakoordinaatistossa vakiosuorat ovat ympyröitä!)plot(2, t = 0..2*Pi, coords = polar, scaling = constrained):

Annetaan koneen ratkaista yhtälö ja piirretään se implisiittisesti:implicitplot(x^2 + y^2 = 4, x = -3..3, y = -3..3, scaling =

Page 12: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

> >

> >

constrained):

Jälleen vakiosuora napakoordinaatistoon, nyt omalla käskyllään.polarplot(2, t = 0..2*Pi, scaling = constrained):

Lopuksi vielä hauskin tapa, eli kaivetaan paketeista esiin käsky circle, luodaan ympyrä ja näytetään se.ymp1 := circle([0,0], 2):

display(ymp1, scaling = constrained, color = red):

Ympyränkaaren voi myös piirtää koko kehän osalta omalla komennollaan:display(arc([0,0], 2, 0..2*Pi));

2.dyht := 3*x^2 + 2*y^2 - 2*x*y = 6:

implicitplot(yht, x = -3..3, y = -3..3);

3.aratk1 := solve({x^2 + y^2 = 3, x*y = 2}, {x, y});

allvalues(ratk1);

evalf(ratk1); # ei anna kaikkia likiarvoja

Page 13: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

> > evalf(allvalues(ratk1)); # kaikki likiarvot

3.bratk := solve({x^2 + y^2 = 3, 2*y = x^2}, {x, y});

Huomaa, että seuraavassa komento allvalues antaa kaikki ratkaisut, kun taas evalf antaa vain yhden ratkaisun RootOf-lausekkeille.allvalues(ratk[1]), allvalues(ratk[2]);

evalf(ratk);

convert(ratk[1], radical);

convert(ratk[2], radical);

Kuitenkin map-komennolla ja tekemällä yhdistetty funktio evalf ja allvalues komennoista, saadaan kaikille ratkaisuille myös likiarvot.map(evalf@allvalues,[ratk]);

3.csolve({x + y + z = 6, x^2 + y^2 + z^2 = 14, x^3 + y^3 + z^3 = 36}

, {x, y, z});

3.dsolve({3*sin(x) + 2*cos(y) = 3, 5*sin(x) - 3*cos(y) = 1}, {x, y})

;

Page 14: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

_EnvAllSolutions := true:

solve({3*sin(x) + 2*cos(y) = 3, 5*sin(x) - 3*cos(y) = 1}, {x, y})

;

_EnvAllSolutions := false:

about(_Z3);about(_B1);

Originally _Z3, renamed _Z3~:

is assumed to be: integer

Originally _B1, renamed _B1~:

is assumed to be: OrProp(0,1)

4. a-dTehdään aluksi vaadittu oletus ja integroidaan kaikki kerralla. Tulostetaan integraalit vielä nätisti.assume(b > 0):

Int(t^3*exp(-b*t), t = 0..infinity) = int(t^3*exp(-b*t), t = 0..

infinity);

Int(x^2*exp(-b*x^2), x = 0..infinity) = int(x^2*exp(-b*x^2), x =

0..infinity);

Int(x^4*(b-x)^4, x = 0..b) = int(x^4*(b-x)^4, x = 0..b);

5.a-cSum(x^(2*k)/(2*k)!, k = 0..infinity) = sum(x^(2*k)/(2*k)!, k = 0.

.infinity);

Page 15: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

> >

> >

(2)(2)

Sum(k^2*x^(2*k), k = 1..infinity) = sum(k^2*x^(2*k), k = 1..

infinity);

Sum((x^k/k!)^2, k = 0..infinity) = sum((x^k/k!)^2, k = 0..

infinity);

6.arekur := a(n) = r*a(n - 1) + 1;

ratk := rsolve({rekur}, {a});

simplify(ratk);

Otetaan huvin vuoksi alkuarvoksi vaikka a(0)=1. simplify(subs(a(0)=1, ratk));

Tulos on itse asiassa geometrisen sarjan osasumma (mieti kynällä ja paperilla):sum(r^k,k=0..n):simplify(%);

Kaikki yhdellä komennolla:ratk := simplify(rsolve({rekur, a(0)=1}, {a}));

6.byht6 := 127*x - 87*y = 1:

isolve({yht6});

Page 16: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

> >

> >

Yllä Maple käyttää globaalia nimeä _Z1 ratkaisun kokonaislukuparametrille. about(_Z1);

Originally _Z1, renamed _Z1~:

is assumed to be: integer

6.cmsolve(17*x = 14, 21);

Tämä on siis eräs ratkaisu, kaikki ratkaisut ovat x = 7 + 21*t, missä t on kokonaisluku.

7.a Taylorin sarjoille voi käyttää komentoja taylor tai series:taylor(tan(x^2), x = 0, 40); # kertalukua 40 oleva sarja, jotta

saadaan 10 termiä

series(tan(x^2), x = 0, 40);

7.btaylor(sqrt(1 + x^2 + x^4), x = 0, 20);

series(sqrt(1 + x^2 + x^4), x = 0, 20);

7.ctaylor(tan(sin(x)) - sin(tan(x)), x = 0, 27);

Page 17: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

(3)(3)

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

series(tan(sin(x)) - sin(tan(x)), x = 0, 27);

Huom. Seuraavassa on esimerkki, että taylor on todellakin eri kuin series.taylor(x^x, x = 0);

series(x^x, x = 0);Error, does not have a taylor expansion, try series()

8.Muutetaan ellipsin yhtälö napakoordinaattimuotoon laskennan helpottamiseksi.polyht := subs(x = r*cos(phi), y = r*sin(phi), yht);

Ratkaistaan : (varoituksesta huolimatta)rtoi := solve(polyht, r^2);

Warning, solving for expressions other than names or functions is not recommended.

polarplot(sqrt(rtoi), phi = 0..2*Pi):

Ellipsin pinta-ala saadaan integroimalla yli kulmamuuttujan ja säteen . Nyt säde riippuu kulmamuuttujasta , joten pinta-alaksi saadaan integraali kulmamuuttujan yli:pinta_ala := Int(Int(r, r = 0..r(phi)), phi = 0..2*Pi) = Int(r^2,

phi = 0..2*Pi)/2;

pinta_ala := int(rtoi, phi = 0..2*Pi)/2;

Page 18: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

(4)(4)

> >

likiarvo := evalf(pinta_ala);

Voidaan käyttää myös pakettia geometry, josta löytyy ellipsi-objekti:with(geometry):

_EnvHorizontalName := 'x': _EnvVerticalName := 'y':

ellipse(ellipsi, 3*x^2 + 2*y^2 - 2*x*y = 6): # muodostetaan

ellipsi

Pinta-ala selviää valmiilla komennolla:simplify(area(ellipsi));

evalf(%);

8.429777676

Toinen vaihtoehto on selvitää pinta-ala itse puoliakselien avulla.MajorAxis(ellipsi), MinorAxis(ellipsi); # ellipsin symmetria-

akseleiden eli isoakselin ja pikkuakselin pituudet

simplify(%[1]), simplify(%[2]);

, missä ja ovat puoliakselien pituuksia. Siis saadaanpinta_ala := simplify( Pi*MajorAxis(ellipsi)*MinorAxis(ellipsi)/4

);

evalf(pinta_ala);8.429777676

Page 19: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

Matemaattiset ohjelmistot

MAPLE-harjoitus 3, syksy 2012

1. Piirra MAPLEn avulla seuraavien joukkojen kuvaajat.

(a){

x = cos t+ 0.65 cos(2t)− 0.65

y = 1.5 sin t, t ∈ [0, 2π]

(b)

x = cos(u

t

)

+cos u

t

y = sin(u

t

)

−sin u

t

, u ∈ [0, 2πt].

Kokeile parametrille t esimerkiksi arvoja 3, 4, 5 ja 6, seka piirra kuvaajatsamaan koordinaatistoon.

(c) ceil(x) = ceil(y) (ks. ?ceil)

2. (a) Tutki HELPin avulla kaskya plot3d ja sen erilaisia optioita.

(b) Piirra pinnat z = x2 + y2 ja z = x2− y2.

(c) Piirra pinta Si(xyz) = Ci(x2y2z2). (ks. ?Si ja ?Ci)

(d) Piirra MAPLEn avulla pallo x2 + y2 + z2 = 4 kahdella eri tavalla.

3. Tutustu MAPLEn convert kaskyn tyyppioptioihin. Esita luku 2010 binaari-, oktaali-ja heksadesimaalimuodossa seka luku 22021103 kymmenkantaisena. Laske 1010, kun10 on 5-jarjestelman luku. Selvita montako kilometria on valovuosi?

4. Tutustu MAPLEn kaskyihin is ja coulditbe. Olkoon n positiivinen kokonaisluku.Tutki MAPLElla, onko luku n3

− n jaollinen kolmella. Mita eroa kaskyilla on?

5. Tutustu kaskyihin seq, mul ja add. Tee seq-kaskyn avulla lista kymmenesta en-simmaisesta alkuluvusta. Laske summa jonosta 2n ja tulo jonosta

(

n+1n

)

, missa n

kay lapi kymmenen ensimmaista alkulukua.

6. Laske MAPLEn avulla summa kaikista parittomista, yhdistetyista luvuista, jotkaovat pienempia kuin 150.

Lisatehtavia (jos jaa aikaa/omalla ajalla)

7. Ratkaise MAPLEn avulla seuraavat tehtavat:

(a) Laske f (10)(0) ja f (11)(1), kun f(x) = exp(−x2).

(b) Maaraa potenssin x30 kerroin polynomissa (3 + 2x+ x2)30.

(c) Olkoon n pariton kokonaisluku. Laske cos(nπ). Onko luku n2− 1 jaollinen

neljalla?

KAANNA!

Page 20: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

8. Suorita alla olevat komennot MAPLEn avulla ja tarvittaessa tutki HELPin avulla,miten komentoja kaytetaan.

> laus := exp(-x^2); nn := 5;> for k from 1 to nn do> der := diff(laus, x$k);> collect(der, exp(-x^2))> end do;

> for k from 2 to 5 do> sin(k*x) = expand(sin(k*x))> end do;

> for k from 2 to 5 do> sin(x)^k = combine(sin(x)^k)> end do;

> k := ’k’: p := ’p’: n := ’n’:> summa := Sum(k^p, k = 1..n);> for p to 4 do> laus := simplify(value(summa));> summa = factor(laus);> end do;

Page 21: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

(1)(1)

> >

> >

> >

Matemaattiset ohjelmistot

(Syksy 2012)

Harjoitus 3

1a. Huomaa, että kyseessä on joukon parametrimuotoinen esitys (hakasulkujen paikka!)plot([cos(t)+0.65*cos(2*t)-0.65,1.5*sin(t), t=0..2*Pi]);

1b. Tehdään lista t:n funktionaF := t -> [ cos(u/t) + cos(u)/t, sin(u/t) - sin(u)/t, u = 0..2*Pi*t];

Sen jälkeen plottaaminen on helppoa:plot([F(3), F(4), F(5), F(6)], axes = frame);

1c. Joukon pisteet on annettu implisiittisesti eli:plots[implicitplot]( ceil(x) = ceil(y), x=-3..3, y=-3..3);

2b.

Page 22: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

Piirretään samaan kuvaan tilan säästämiseksi.plot3d( {x^2+y^2, x^2-y^2}, x=-3..3, y=-3..3, axes=boxed);

2c. Jälleen kuvaaja on määritelty implisiittisestiplots[implicitplot3d](Si(x*y*z) = Ci(x^2*y^2*z^2), x=-3..3, y=-3..3, z=-3..3);

2d. restart:with(plottools):with(plots):implicitplot3d( x^2 + y^2 + z^2 = 4, x = -2..2, y = -2..2, z = -2..2, numpoints = 500, style = patchnogrid, scaling = constrained);

Page 23: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

(3)(3)

> >

> >

> >

(2)(2)

> >

> >

> >

Ratkaistaan yhtälö ja piiretään molemmat puolet erikseen. Huom! kuva näyttää enemmän Pacmanilta kuin pallolta koska piirtotarkkuus astuu kuvaan mukaan.Sisään on piirretty vielä tason z=0, jota molemmat puolet siis lähestyvät (piirtotarkkuuden rajoissa).puolet := solve( x^2 + y^2 + z^2 = 4, z);

plot3d( {puolet,0}, x = -2..2, y = -2..2, scaling = constrained, numpoints = 500, style = patchnogrid);

Maplesta löytyy myös pallolle valmis komento:c := sphere([0, 0, 0], 2):plots[display](c, scaling=constrained, style=patchnogrid, axes=none):

Piirretään vakio 2 pallokoordinaatistoon. Maplen tuntemiin koordinaattisysteemeihin pääsee tutustumaan kirjoittamalla ?coords. Tuolta löytyvät tietysti myös esim. pallon parametriesitykset.plot3d( 2, x = 0..2*Pi, y = 0..2*Pi, coords = spherical, style = patchnogrid):

Piirretään vakio pallokoordinaatistoon, nyt omalla käskylläänsphereplot( 2, theta = 0..2*Pi, phi = 0..Pi, style = patchnogrid):plot3d( [2*cos(v)*sin(w), 2*sin(v)*sin(w), 2*cos(w)], v = 0..2*Pi, w = 0..Pi, style = patchnogrid):

3.Alla hakasuluilla muotoillaan vain tulostusta.restart:'2010'[dec] = convert(2010, binary)[bin];'2010'[dec] = convert(2010, octal)[oct];'2010'[dec] = convert(2010, hex)[hex];

Page 24: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

(3)(3)

> >

> >

(7)(7)

> >

(5)(5)

(6)(6)

> >

(4)(4)

'2202110'[3] = convert(2202110, decimal, 3)[dec];'2202110'[3] = convert([0,1,1,2,0,2,2], base,3,10)[dec];# 2. tapa

kymppi := convert([0,1],base,5,10); # 5-järjestelmän luku 10 muunnetaan kymmenjärjestelmäänk:=kymppi[1]^kymppi[1];vast:=convert(k,base,5); # muunnos takaisin 5-järjestelmäänvast:=ListTools[Reverse](vast); # tutumpi esitysjärjestys valovuosi = convert(light_year, metric);

4.Kokeillaan ensin ilman oletuksia.restart;is((n^3-n)/3, integer); coulditbe((n^3-n)/3,integer);

falsetrue

Kokeillaan nyt oletuksen kanssa. Luvun n etumerkillä ei tässä tapauksessa ole väliä jaollisuuden kannalta. Kokonaislukuoletus löytyy komennon assume HELPistä.assume(n::integer); is((n^3-n)/3, integer);assume(n::negint); is((n^3-n)/3, integer);assume(n::posint); is((n^3-n)/3, integer);

truetruetrue

Käskyjen ero: is kertoo, onko ominaisuus voimassa kaikilla mahdollisilla arvoilla, coulditbe taas kertoo, onko mahdollisesti olemassa jokin arvo, jolla ominaisuus pätee.

5.alkulista := seq(ithprime(n), n = 1..10);

add(2^n, n = alkulista); mul(binomial(n+1, n), n = alkulista);

545925292

Page 25: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

(3)(3)

(9)(9)

(8)(8)

> >

(7)(7)

> >

(10)(10)

> >

> >

25082265600

6. Käytetään toistorakennetta ja käydään läpi kaikki parittomat luvut lukuun 149 asti. Alustetaan summa nollaksi ja lisätään siihen yhdistetyt luvut.summa := 0:for i from 1 by 2 to 149 do if not isprime(i) then summa := summa + i; end if;end do;summa;

3351Toinen tapa: luodaan lista halutuista luvuista ja lasketaan sitten listan alkioiden summa.luvut := [seq(k,k=1..150)]: # kaikki 150 pienemmät luvutluvut := remove(isprime,luvut): # poistetaan alkuluvutluvut := remove(x->is(x,even),luvut); # poistetaan parilliset tai: x -> irem(x,2) = 0add(k,k = luvut); #summataan

3351Sama tehtävä voidaan ratkaista myös vektoreiden sisätulon avulla. Muodostetaan kaksi vektoria; ensimmäiseen parittomat luvut ja toiseen tieto lukujen jaollisuudesta. Luku 1 tarkoittaa, että vastinalkio on yhdistetty luku, luku 0 puolestaan tarkoittaa alkulukua. Summa saadaan vektoreiden sisätulona.

Tässä ja edellisessä ratkaisussa täytyy käsitellä vektoreita/listoja, mikä vaatii enemmän muistitilaa. Toistorakenne tuottaa saman vastauksen "pienemmässä tilassa".luvut := [seq(2*n-1,n=1..75)];a := [seq(not(isprime(n)), n = luvut)];a := subs('false'=0,'true'=1,a);a := Vector[row](a):luvut := Vector[row](luvut):summa := a.luvut;

Page 26: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

(3)(3)

> > (13)(13)

(12)(12)

> >

> >

(7)(7)

> >

(11)(11)

(14)(14)

> >

7.af := exp(-x^2);f10 := diff(f,x$10);eval(f10,x=0);f11 :=diff(f,x$11);eval(f11,x=1);

7b.p := (3+2*x+x^2)^30;kerroin := coeff(p,x^30);

7c.restart:assume(n::odd);cos(n*Pi);

is((n^2-1)/4,integer);true

Page 27: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

Matemaattiset ohjelmistot

MAPLE-harjoitus 4, syksy 2012

1. Ratkaise MAPLElla epayhtalot

(a) x2 − 2x− 1 < 0

(b) 2x3 − 5x2 − 4x+ 3 ≤ 0

(c) −4x3 + 5x2 − 2x ≤ −x4

(d) sin x+ cos x ≥ 0.

Muista tulkita vastauksesi.

2. Ratkaise MAPLEn toistorakenteiden avulla seuraavat tehtavat:

(a) Laske (a+ b)k sulut avaten, kun k = 1, 2, 3, 4, 5.

(b) Laske integraali∫

0

dx

(a2 + x2)n

kun n = 2, 3, 4, 5 ja a > 0.

(c) Mika on pienin kokonaisluku n ≥ 1, jolla e− (1 + 1

n)n < 0.0004 ?

3. Mieti miten tutkisit seuraavaa loogista totuustaulua MAPLElla.

A B A ja B

1 1 11 0 00 1 00 0 0

Voisiko tahan kayttaa toistorakennetta?

4. Laadi MAPLE-proseduuri, jolle annetaan argumentteina kolmion sivujen pituudeta, b ja c, ja joka laskee kolmion kulmat ja pinta-alan A. Vihje: kayta kosinilauset-ta (kts. kaantopuoli) ja Heronin kaavaa A =

p(p− a)(p− b)(p− c), missa p onkolmion piirin puolikas. Testaa proseduuria mm. tasasivuisella, tasakylkisella ja suo-rakulmaisilla muistikolmioilla.

5. Hermiten polynomit Hn(x) voidaan maaritella seuraavasti:

H0(x) = 1, H1(x) = 2x ja Hn(x) = 2xHn−1(x)− 2(n− 1)Hn−2(x).

Laadi proseduuri (rekursiivinen tai ”perinteinen”), joka muodostaa Hermiten poly-nomin Hn(x). Tutki lisaksi, onko MAPLEssa valmista proseduuria Hermiten poly-nomin maaraamiseen.

Page 28: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

Lisatehtavia (jos jaa aikaa/omalla ajalla)

6. Tee MAPLE-proseduuri, joka ratkaisee yhtalon f(x) = 0 numeerisesti Newtoninmenetelmalla. Newtonin menetelmassa lahdetaan liikkeelle alkuarvauksesta x0 jalasketaan jono juuren approksimaatioita kaavalla

xk+1 = xk −f(xk)

f ′(xk), k = 0, 1, . . . .

Testaa proseduuria esimerkiksi funktioilla f(x) = exp(x) − 2 ja f(x) = x− cos(x).Vertaa tuloksiasi komennon fsolve antamiin tuloksiin. Miten valitsisit alkuarvauk-sen x0?

Kosinilause

a

bc

β γ

α

c2 = a2 + b2 − 2ab cos γ

Page 29: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

(6)(6)

> >

> >

(1)(1)

(2)(2)

> >

(5)(5)

> >

(4)(4)

> >

> >

(3)(3)

Matemaattiset ohjelmistot

(Syksy 2012)

Harjoitus 4restart;

1. Epäyhtälötkin ratkaistaan solve-komennolla. Vastauksissa Open tarkoittaa avointa päätepistettä.solve(x^2-2*x-1<0,x);

solve(2*x^3-5*x^2-4*x+3 <= 0,x);

Aaltosulkuja käyttäen tulos tulee hieman eri muodossa.solve({-4*x^3+5*x^2-2*x <= -x^4},x);

solve(sin(x)+cos(x) >= 0,x);

2. afor k from 1 to 5 do

expand((a+b)^k);

end do;

2. bassume(a::positive):

Ensin for-silmukallafor n from 2 to 5 do

Int(1/(a^2 + x^2)^n, x = 0..infinity) = int(1/(a^2 + x^2)^n, x

= 0..infinity);

end do;

Page 30: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

(7)(7)

(6)(6)

> >

> >

(8)(8)> >

Toinen tapa seq-komennollaseq( Int(1/(a^2 + x^2)^n, x = 0..infinity) = int(1/(a^2 + x^2)^n,

x = 0..infinity), n = 2..5 );

2. cMääritellään ensin ns. toleranssi, johon erotusta verrataan:tol := 0.0004;

Käytetään seuraavassa evalhf-komentoa, joka evaluoi lausekkeet käyttäen prosessorin liukulukuja (hardware float), ei Maplen ohjelmallisesti toteutettuja liukulukuja. Näitä käyttäen silmukka pyörii huomattavasti nopeammin.fun := n -> evalhf( exp(1) - (1 + 1/n)^n ):

n := 1:

while fun(n) > tol do

n := n + 1;

end do:

n;3397

Tarkistetaan:fun(n - 1), fun(n);

Vertaillaan vielä aikaeroja, jos käytetään koneen liukulukuja tai Maplen omia liukulukuja.start := time():

Page 31: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

(6)(6)

> >

> >

> >

(10)(10)

(9)(9)

fun := n -> evalhf( exp(1) - (1 + 1/n)^n ):

n := 1:

while fun(n) > tol do

n := n + 1;

end do:

n;

aika1 := time() - start; # laskentaan käytetty aika

3397

start := time():

fun := n -> evalf( exp(1) - (1+1/n)^n ): # Maplen omat

liukuluvut

n := 1:

while fun(n) > tol do

n := n + 1;

end do:

n;

aika2 := time() - start; # laskentaan käytetty aika3397

Ero on siis suhteellisesti aikamoinenaika2/aika1;

30.53191489

3.Helpoin tapa totuustaulun tutkimiseen on käydä kaikki 4 vaihtoehtoa läpi A:=true; B := true; A and B;

A:=true; B := false; A and B;

A:=false; B := true; A and B;

A:=false; B := false; A and B;

true

false

false

Page 32: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

(12)(12)

(13)(13)

> >

(6)(6)

> >

(14)(14)

> >

> >

> >

(11)(11)

> >

(10)(10)false

Sama toistorakenteella, tulostetaan näkyviin riveittäin:for A in [true,false] do

for B in [true, false] do

rivi := [A,B,A and B];

print(rivi);

end do;

end do;

LISÄTEHTÄVIÄ: Ratkaise MAPLEn toistorakenteiden (for, while, ei seq) avulla seuraavat tehtävät:

a) Tee lista/jono 50 ensimmäisestä Fibonaccin luvusta.

b) Heitä noppaa 200 kertaa ja laske silmälukujen summa ja keskiarvo. Heitä 1000 kertaa. c) Olkoon L lista, jossa on jonkin luvun binääriesitys, esim. L:=[1,0,1,0,0,0,1]. Muunna MAPLEn toistorakenteilla listan esittämä luku kymmenjärjestelmän luvuksi. Tarkista vastauksesi convert-komennolla.

d) Luvun p mahdolliset tekijät ovat pienempiä kuin sqrt(p). Testaa onko luku p:=233 alkuluku käymällä läpi nämä mahdolliset tekijät ja testaamalla jakaako niistä joku p:n. Tarkista isprime-komennolla. Kokeile muitakin lukuja.

restart:

a) Parametrisoidaan ensin jonon pituus.n := 50;

F := [1$n]; # alustetaan jono ykkösiksi

Sitten jonon alkiot on helppo laskea kahden edellisen summana:for i from 3 to n do

F[i] := F[i-1] + F[i-2]:

Page 33: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

(17)(17)

> >

(6)(6)

(16)(16)

> >

(14)(14)

> >

> >

(15)(15)

> >

(10)(10)

end do:

F;

b) summa := 0: # alustetaan summa nollaksi

n := 200; # heitetään n kertaa

for i from 1 to n do

summa := summa + rand(1..6)(): # lisätään heiton tulos summaan

end do:

'summa' = summa;

keskiarvo := evalf(summa/n);

c) Ensin alustukset sitten laskenta. Huomaa käänteinen järjestys.L :=[1,0,1,0,1,1,1]; luku :=0:

for i from numelems(L) to 1 by -1 do

luku := luku + L[i]*2^(numelems(L)-i);

end do:

'luku' = luku;

convert(ListTools[Reverse](L),base,2,10);

d)p := 233; alkluku := true:#oletetaan alkuluvuksi

for i from 2 to floor(sqrt(p)) do

if irem(p,i) = 0 then

alkluku := false;#jakaja löytyi, eipä olekaan alkuluku,

etsitään kuitenkin kaikki jakajat

printf("%d jakaa luvun %d\n",i,p);

end if;

Page 34: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

(14)(14)

(17)(17)

> >

(6)(6)

> >

(10)(10)

end do;

"oma alkulukutesti" = alkluku;

"Maplen isprime" = isprime(p);

Page 35: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

Matemaattiset ohjelmistot

MAPLE-harjoitus 5, syksy 2012

Osassa tehtavia kannattaa kayttaa pakettia LinearAlgebra, joten lataa se heti tyoarkinalussa.

1. Tehtavat 4 ja 5 Harjoituksesta 4.

2. Laadi MAPLE-proseduuri, joka

(a) laskee luvun sin(x) likiarvon kayttaen sinin potenssisarjakehitelmasta n termia.

(b) heittaa noppaa n kertaa ja tulostaa pistemaarien esiintymien lukumaarat (Vink-ki: aloita listalla, jossa on 6 nolla-alkiota),

3. Tee proseduurit, jotka muodostavat n× n-matriisit A = (aij) ja B = (bij), missa

(a) aij = x|i−j| ja x on proseduurin parametri

(b) bij = max(i(n+ 1− j), j(n+ 1− i)).

Luku n on myos proseduurien parametri. Kayta tietotyyppia Matrix.

4. Maaraa MAPLEn avulla det(A), det(B), A−1 ja B−1, kun A ja B ovat kuten edel-lisessa tehtavassa ja n = 3, 4, 5. Kayta toistorakennetta.

5. Tee MAPLE-proseduuri, joka muodostaa ryhman (Z∗9, ·) ryhmataulun. Kayta toisto-

rakennetta. Palautetaan mieleen, etta ryhma Z∗n koostuu sellaisista alkioista a, etta

syt(a, n) = 1. Siis ryhma (Z∗9, ·) koostuu alkioista {1, 2, 4, 5, 7, 8} ja sen ryhmataulu

on (kun lasketaan mod 9)

· 1 2 4 5 7 81 1 2 4 5 7 82 2 4 8 1 5 74 4 8 7 2 1 55 5 1 2 7 8 47 7 5 1 8 4 28 8 7 5 4 2 1

Mieti miten yleistaisit proseduurin yleiselle luvulle n.

Lisatehtavia (jos jaa aikaa/omalla ajalla)

6. Maaraa tehtavan 3 matriisien ominaisarvot ja -vektorit MAPLElla, kun n = 2, 3.

7. Ratkaise MAPLEn avulla seuraava yhtaloryhma ainakin kahdella eri tavalla:

{

x1 + 2x2 + 3x3 = 6

x1 + 3x2 + 5x3 = 9.

8. Olkoot a, b, c ja d avaruuden R3 vektoreita. Miten MAPLEn avulla,

Page 36: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

(a) tutkitaan, ovatko vektorit a, b ja c lineaarisesti riippumattomia,

(b) ratkaistaan x, y ja z yhtalosta xa+ yb+ zc = d

(c) tutkitaan, onko suorilla {a+ tb | t ∈ R} ja {c+ sd | s ∈ R} yhteista pistetta?

9. Tee loogisen tai-operaattorin totuustaulu matriiseja ja toistorakennetta kayttaen.

10. Suorita alla olevat komennot MAPLEn avulla ja tarvittaessa tutki HELPin avulla,miten komentoja kaytetaan.

> a1:=<1,2,3,4>: a2:=<2,5,9,12>:> a3:=<b1|b2|b3|b4>; a4:=<c1|c2|c3|c4>;> AA:=<a1|a2>; BB:= <a3,a4>;> AA[3,2],BB[1,2],a1[2],a3[3];

> restart; with(LinearAlgebra):> A:=Matrix(4,4,(i,j)->1/(i+j-1));> B:=Matrix(4,4,(i,j)->i^2+j^2);> V:=Vector(4,i->v||i);

> A.B ; A.V ; A^(-1);> Determinant(B), Rank(B);> <B,Transpose(V)>; <B|V>;> SubMatrix(A,[1,2],[3,4]);

> Transpose(Eigenvalues(B));> omat:=Eigenvectors(B);> B.omat[2];omat[2][2,3];> pol:=Determinant(B-z);> solve(pol=0,z);

> yht:={x+y+z=1,x+2*y+3*z=4,x+4*y+9*z=16};> solve(yht,{x,y,z});subs(%,yht);> (H,K):=GenerateMatrix([op(yht)],[x,y,z]);> LinearSolve(H,K); H^(-1).K;

> isolve(2*x+3*y=5); isolve(x^2+y^2=5);> dsolve(diff(y(x),x)=x*y(x),y(x));> LL:=rsolve({y(n+1)=y(n)+y(n-1),y(0)=0,y(1)=1},y(n));> for n from 2 to 6 do simplify(LL) end do;> [n,LL];

Page 37: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

Matemaattiset ohjelmistot

(Syksy 2012)

Harjoitus 4

4. Käytetään Heronin kaavaa pinta-alaan ja kosinikaavaa kulmiin. Huom! Lisätään virhetestaus, joka testaa onko annettu olio kolmio eli onko Heronin kaavassa neliöjuuren sisässä oleva lauseke nolla tai negatiivinen. Testauksessa pitää olla evalf, jotta voitaisiin testata muitakin pituuksia kuin suoraan lukuna annettuja (esim. sqrt(2)).kolmioala := proc(a::constant, b::constant, c::constant)

local p, juur, ala, kulma1, kulma2, kulma3;

p := (a + b + c)/2;

juur := p*(p - a)*(p - b)*(p - c);

if evalf(juur) <= 0 then

error "ei kolmio"

else

ala := sqrt(juur);

kulma1 := solve(a^2 = b^2 + c^2 -2*b*c*cos(kulma), kulma);

kulma2 := solve(b^2 = a^2 + c^2 -2*a*c*cos(kulma), kulma);

kulma3 := solve(c^2 = a^2 + b^2 -2*a*b*cos(kulma), kulma);

# Palautetaan kaikki tiedot yhtenä jonona

Ala = simplify(ala), alpha = 180/Pi*kulma1,beta = 180/Pi*

kulma2, gamma = 180/Pi*kulma3

end if;

end proc:

kolmioala(3,4,5); # Tuttu suorakulmainen kolmioala

kolmioala(1,1,sqrt(2)); # Eräs muistikolmioista

kolmioala(1,1,1); # Tasasivuisen kolmion kulmat ovat

yhtäsuuret

kolmioala(2,1,1);

Error, (in kolmioala) ei kolmio

Page 38: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

(1)(1)

> >

> >

5. Helpointa lienee kerätä kaikki polynomit yhteen listaanN := 10:

H := [seq(k,k=1..N)]:

H[1] := 1; H[2] := 2*x;

for n from 3 to N do

H[n] := simplify(2*x*H[n-1]-2*(n-2)*H[n-2]);

end do;

Tehdään sitten "perinteisesti" eli käyttäen for-silmukkaa:restart:

Herm_n := proc(n::nonnegint, x::anything)

local H_0, H_1, H_n, i;

if n = 0 then

H_n := 1

elif n = 1 then

H_n := 2*x;

else

H_0 := 1;

H_1 := 2*x;

for i from 2 to n do

H_n := expand(2*x*H_1 - 2*(i-1)*H_0);

H_0 := H_1;

H_1 := H_n;

end do;

H_n;

end if;

Page 39: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

(3)(3)

> >

(2)(2)

> >

> >

> >

(4)(4)

end proc:

Testataanseq(H[k](x) = Herm_n(k,x), k = 0..5);

2. tapa tehdään käyttäen MAPLEn mahdollisuutta kutsua proseduuria itseään (rekursiivinen proseduuri). Huomaa lisäksi optio remember, joka ottaa muistitaulukon käyttöön ja optio system, joka liittyy Maplen muistinhallintaan.Herm_n_r := proc(n::nonnegint, x::anything)

option remember, system;

if n = 0 then

1

elif n = 1 then

2*x

else

expand(2*x*Herm_n_r(n-1, x) - 2*(n-1)*Herm_n_r(n-2, x))

end if;

end proc:

for n from 0 to 4 do

H[n](x) = Herm_n_r(n,x);

end do;

Ylikurssia: 3. tapa käyttäen Rodriguesin kaavaa Hermiten polynomeille:Herm_rod := proc(n::nonnegint, x::anything)

local f;

if n = 0 then

f := exp(-x^2)

else

f := diff(exp(-x^2), x$n)

end if;

expand(simplify((-1)^(n)*exp(x^2)*f)); # Rodriguesin kaava

end proc:

for n from 0 to 4 do

H[n](x) = Herm_rod(n,x);

Page 40: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

> >

> >

> >

(5)(5)

(4)(4)

end do;

Hermiten polynomit löytyvät kahteenkin kertaan, toinen on orthopoly-paketissa.seq(H[n](x) = simplify(HermiteH(n,x)), n = 0..4);

seq(H[n](x) = orthopoly[H](n,x), n = 0..4);

6.Tehdään ensin proseduuri, joka ainoastaan muodostaa annetulle lausekkeelle sitä vastaavan Newtonin iteraation. Itse iteraation laskeminen on tehtävä omassa silmukassaan tai proseduurissa.TeeIteraatio := proc( lauseke::algebraic, x::name )

local iteraatio;

iteraatio := x - lauseke/diff(lauseke, x);

unapply(iteraatio, x)

end proc:

funk := exp(x) - 2;

Newton := TeeIteraatio( funk, x); # Tehdään x:n funktio

Alkuarvauksen voi valita vaikka kuvaa katsomalla:plot(funk(x),x=0..1);

x0 := 0.8:

juuri := x0;

Page 41: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

> >

(6)(6)

(4)(4)

to 4 do

juuri := Newton(juuri);

end do;

Verrataan vielä "tarkkaan" juureen:fsolve(funk(x)=0);

0.6931471806

Seuraavaksi hieman yleiskäyttöisempi proseduuri, jolle annetaan argumentteina mm. kaksi proseduuria,toisessa itse funktio, jonka juurta haetaan ja toisessa ko. funktion derivaatta. Proseduuri iteroi tekee varsinaisen iteraation ja sitä kutsutaan toisesta proseduurista (Newton). Proseduurissa iteroi on for-silmukassa kaksi lopetusehtoa, joko iteraatioiden maksimimäärä N tulee täyteen tai juuri on löydetty riittävällä tarkkuudella (kahden peräkkäisen iteraatiotuloksen erotuksen itseisarvo on riittävän lähellä toisiaan).iteroi := proc( f::procedure, df::procedure, alkuarv::numeric,

N::posint )

local x0, x1;

x0 := alkuarv;

x1 := evalf( x0 - f(x0)/df(x0) );

to N - 1 while abs(x1 - x0) > 10^(1-Digits) do

x0 := x1;

print(x0);

x1 := evalf( x0 - f(x0)/df(x0) );

end do;

x1

end proc:

Newton2 := proc( f::procedure, x0::numeric, N::posint )

local df;

df := D(f);

print(x0);

iteroi(f, df, x0, N)

end proc:

g := x -> x - cos(x);

plot(g(x),x=0..1):

Newton2(g, 0.5, 4);0.5

0.7552224170

Page 42: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

(4)(4)

> >

> >

> >

> >

(7)(7)

> >

> >

> >

> >

0.73914166610.73908513390.7390851332

Newton2(g, 0.5, 100); # huomaa, että laskenta päättyy, kun

riittävä tarkkuus on saavutettu0.5

0.75522241700.73914166610.73908513390.7390851332

fsolve(g(x)=0);0.7390851332

Digits := 30: # vaihdetaan liukuluvuilla käytettävää tarkkuutta

Newton2(g, 0, 50);01.

0.7503638678402438930349423066820.7391128909113616703605852909050.7390851333852839697601251208570.7390851332151606416617026256850.7390851332151606416553120876740.739085133215160641655312087674

Tarvittiin (vain) kuusi iteraatiota, jotta ratkaisu on 30 desimaalin tarkkuudella oikea.restart;

Ylikurssia: with(Student[Calculus1]):

NewtonsMethod( x - cos(x), x = 0);0.7390851332

NewtonsMethod( x - cos(x), x = 0, output = plot);

Page 43: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

(8)(8)

> >

> >

> >

> >

(4)(4)

> >

> >

(9)(9)

> >

> >

Harjoitus 5restart:

with(LinearAlgebra):

2.asini := proc(z::anything, n::posint)

local poly, x;

poly := convert( taylor(sin(x), x = 0, 2*n), polynom ); #

Huomaa 2n

evalf( subs(x = z, poly) );

end proc:

sini(1,20), evalf(sin(1));

sini(3,20), evalf(sin(3));

2bAlgoritmi: Muodostetaan aluksi kuuden alkion lista, missä kukin alkio on ensin nolla. Heitetään sitten noppaa n kertaa ja kasvatetaan yhdellälistan sitä alkiota, joka saatiin nopan heiton tuloksena.arpakuutio := proc(n::posint)

local lista, k, nop;

lista := [0$6];

for k to n do

nop := rand(1..6)();

lista[nop] := lista[nop] + 1;

end do;

lista;

end proc:

arpakuutio(10); arpakuutio(100); arpakuutio(1000); arpakuutio

(10000);

Tehdään vielä toinen, jolla on hieman siistimpi tulostus. Käytetään tulostukseen kaksirivistä matriisia, jossa ensimmäisellä rivillä on luvut 1..6:kurpaatio := proc(n::posint)

local M, k, nop;

M := < <1|2|3|4|5|6>, <0|0|0|0|0|0> >;

for k to n do

Page 44: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

(10)(10)

> >

> >

> >

> >

> >

(4)(4)

> >

> >

nop := rand(1..6)();

M[2,nop] := M[2,nop] + 1;

end do;

M;

end proc:

kurpaatio(10); kurpaatio(100); kurpaatio(1000); kurpaatio(10000);

3.a Matriisi muodostetaan kuten luennoissa, kahden muuttujan funktion avulla:matA := proc(x, n::posint)

Matrix( n, (i,j) -> x^abs(i-j) );

end proc:

matA(x,4);

3.bmatB := proc(n::posint)

Matrix( n, (i,j) -> max(i*(n+1-j), j*(n+1-i)) );

end proc:

matB(4);

Page 45: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

(4)(4)

> >

4.Determinantit lasketaan omalla komennollaan seuraavasti:for n from 3 to 5 do

Determinant(matA(x,n));

end do;

for n from 3 to 5 do

Determinant(matB(n));

end do;144

32400

Käänteismatriisit lasketaan kahdella eri tavalla. Laitetaan tulokset huvin vuoksi taulukkoon:a := array(1..3):

for n from 3 to 5 do

a[n-2] := matA(x,n)^(-1);

end do:

eval(a);

Page 46: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

(4)(4)

b := array(1..3):

for n from 3 to 5 do

b[n-2] := MatrixInverse(matB(n));

end do:

eval(b);

Page 47: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

(11)(11)

> >

> >

(12)(12)

> >

> >

(4)(4)

5.Ensin ryhmätaulu.

ryhmis := proc()

local R,T,i,j;

R:= [1,2,4,5,7,8]; # ryhmä

T := Array(1..6,1..6); # taulu

for i from 1 to 6 do

for j from 1 to 6 do

T[i,j] := R[i]*R[j] mod 9;

end do;

end do;

T;

end proc:

ryhmis();

Yleisen ryhmän taulu. Ensin ryhmän alkiot selvitetään kaksivaiheisesti: kertaluku ja alkiot.

kelu := proc(n)

description "Määrää ryhmän kertaluvun (alkioiden lkm)";

local c,i;

c := 0;

for i from 1 to n do

if gcd(i,n)=1 then

c := c+1;

end if;

end do;

c;

end proc:

kelu(9); kelu(11);

610

Page 48: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

(13)(13)

> >

(4)(4)

> >

> >

(14)(14)

> >

ryhma := proc(n)

description "Määrää ryhmän alkiot";

local R,i,c;

R:=[1$kelu(n)]; #alustaa ryhmän ykkösiksi

c :=0;

for i from 1 to n do

if gcd(i,n) = 1 then

c := c+1;

R[c] := i;

end if;

end do;

R;

end proc:

ryhma(9);ryhma(11);

Lyhyempi versio näistä kahdesta edellisestä:ryhma2 := proc(n)

local j, syt;

j := [seq(k,k=1..n)]; # lista [1,2,3,...,n]

syt := map(gcd,j,n); # edellisen sytit luvun kanssa

remove(i-> is(syt[i]>1),j); # poistetaan 1 isommat sytit

end proc:

ryhma2(9);

Taulu muodostetaan nyt kuten edellä ryhmä-proseduurin avulla:taulu := proc(n)

description "Määrää ryhmätaulun Z_n^*";

local R,T,i,j,koko;

R:= ryhma(n); # ryhmä (alkiot)

koko := numelems(R); # ryhmä koko (kertaluku)

T := Array(1..koko,1..koko); #taulu

for i from 1 to koko do

for j from 1 to koko do

T[i,j] := R[i]*R[j] mod n;

end do;

end do;

T;

end proc:

Page 49: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

> >

> >

> >

(4)(4)

(15)(15)

taulu(9); taulu(11):

6.Huomaa, että Maple antaa tuloksena sekä ominaisarvot että -vektorit. Ensin ovat ominaisarvot sarakevektorin alkioina, jonka jälkeen on matriisi, jonka sarakkeina ovat ominaisvektorit.for n from 2 to 3 do

Eigenvectors(matA(x,n));

end do;

Poimitaan B:n ominaisarvot ja -vektorit muuttujiin (huvin vuoksi):

Page 50: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

> >

> >

> >

(4)(4)

> >

> >

> >

> >

> >

> >

> >

(15)(15)

for n from 2 to 3 do

cat('lambda',n), cat('V',n) := Eigenvectors(matB(n));

end do;

lambda2:V3:

7.1. tapa matriiseilla ja vektoreilla. Määritellään kerroinmatriisi ja oikean puolen vektori b.A := < <1|2|3> , <1|3|5> >; b := < 6, 9>;

Ratkaistaan LinearSolvellaLinearSolve(A, b);

2. tapa : Ratkaistaan tutulla solvella.yhtr := GenerateEquations(A, [ x[1],x[2],x[3] ], b) ;

solve(yhtr);

"Ratkaistaan" vaakarivimuunnoksilla:

Page 51: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

(16)(16)

> >

> >

> >

> >

> >

> >

> >

(4)(4)

> >

> >

> >

> >

> >

> >

> >

(15)(15)

ReducedRowEchelonForm( < A | b > );

8.aAsetetaan jotkin vektorita := <2, 1, 3>: b := <-1, 1, 3>: c := <2, 1, -5>: d := <8, 1, 3>:

Ratkaistaan yhtälöryhmä Ax=0, missä A on vektorien muodostama matriisiA := < a | b | c >;

LinearSolve(A, <0, 0, 0>);

Yhtälöryhmällä on vain triviaaliratkaisu, siis a, b ja c ovat lineaarisesti riippumattomia. Katsotaan mitä vaakarivimuunnos antaa.ReducedRowEchelonForm(Transpose(A));

Mikä on vektoreiden a, b ja c virittämän aliavaruuden dimensio?nops( Basis( [ a, b, c ] ) );

3

Vektoreiden muodostaman matriisin asteen pitäisi olla rivien määrä.Rank(A);

3

Jollakin ylläolevista tavoista voimme siis päätellä, että a, b ja c ovat lineaarisesti riippumattomia (lineaarisesti vapaita).

8.b Kyseessä on lineaarisen yhtälöryhmän ratkaisu, joten:LinearSolve(A, d);

Page 52: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

(16)(16)

> >

> >

> >

> >

> >

> >

(4)(4)

> >

> >

> >

> >

> >

> >

> >

> >

> >

> >

(15)(15)

2. tapa, Tehdään vektoreista täydennetty kerroinmatriisi ja ratkaistaan matriisiryhmä kahdella tavalla.mat := < a | b | c | d >;

LinearSolve(mat);

ReducedRowEchelonForm(mat);

3. tapa, muodostetaan vektoreista yhtälöt ja ratkaistaan solvella.AA := x*a + y*b + z*c;

solve( {AA[1] = d[1], AA[2] = d[2], AA[3] = d[3]}, {x,y,z} );

Toinen tapa muodostaa yhtälötyhtr := GenerateEquations(mat,[x,y,z]);

solve(yhtr,{x,y,z});

8.cTehdään ensin ratkaistavat yhtälöt. Jatkon helpottamiseksi laitetaan molemmat suorat (s1 = a +tb, s2 = c+ sd) samaan yhtälöön (ratkaistava siis ryhmä s1-s2=0)A := simplify( a + t*b - (c + s*d) );

Jos yhtälöryhmällä Ax=0 on ratkaisu, niin piste saadaan sen avullasolve( {A[1] = 0, A[2] = 0, A[3] = 0}, {s,t} );

Page 53: MAPLE-harjoitus 1, syksy 2012omankine/<Matohj>/Maple/maple_harkat.pdf · MAPLE-harjoitus 1, syksy 2012 Ohjeita: Ennen kuin aloitat, tutustu ensin hieman MAPLEn k aytt oliittym

> >

(16)(16)

> >

> >

> >

> >

> >

> >

> >

> >

> >

(4)(4)

(15)(15)

Ei ollut ratkaisua, kokeillaan toista (a+tb ja d+sa).B := simplify( a + t*b - ( d + s*a ) ):

solve( {B[1] = 0, B[2] = 0, B[3] = 0}, {s,t} );

Ratkaisu siis löytyi ja haluttu yhteinen piste onsimplify( a - 2*b ) = simplify( d - 2*a );