Ratkaisuja 4

ratk4.mws viikko 11, 2000

Tiistai 14.3.

Teht. 1

> read("/home/apiola/opetus/peruskurssi/v2-3/maple/ohjelmat.mpl"): with(plots):

> useporras;

> useporras:="f:=x->(1/3)*(x^2+1);\
X[0]:=1.0:n:=10:for i to n do X[i]:=f(X[i-1]) od:\
fjaxkuva:=plot([x,f(x)],x=0 .. 1,color=[blue,black]):\
display({fjaxkuva,seq(porras(X[i]),i=0..n)});";

> f:=x->sqrt(15+2*x);

Jos jono suppenee, niin se suppenee tämän funktion kiintopistettä kohti. Kiintopiste on helppo laskea. Tarkistetaan samantien.

> alpha:=solve(f(x)=x,x);f(alpha)=alpha;

Mistä tiedämme, että jono suppenee? Tapa 1) Osoitetaan induktiolla, että jono on kasvava ja ylhäältä rajoitettu (vrt. Ad)

Tapa 2) (hienostuneempi): Osoitetaan, että f toteuttaa jollain kiintopisteen sisältävällä välillä kiintopistelauseen ehdot.

> k1:=plot([f,x->x,4,6],4..6,color=[red,blue,black,black]):
k2:=plot(D(f),4..6):
display(array([k1,k2]),scaling=constrained);

Nämä kuvat osoittavat, että väli [4,6] kuvautuu itselleen, oikein reilusti (vasemmassa kuvassa punainen kuvaaja on mustien vaakaviivojen välissä). Oikeaa kuvaa ei varsinaisesti tarvittaisi, niin selvästi näkyy jo vasemmasta, että derivaatan itseisarvo on alle 1:n. Siispä tuo mainio lause sanoo, että iteraatiojono suppenee tällä välillä olevaa 1-käsitteistä kiintopistetä kohti.

Piirretään vielä "cobweb":

> useporras;

>

> X[0]:=4.0:n:=8:for i to n do X[i]:=f(X[i-1]) od:fjaxkuva:=plot([x,f(x)],x=4 .. 6,color=[blue,black]): display({fjaxkuva,seq(porras(X[i]),i=0..n)});

>

[Maple Plot]

> matrix(([seq([X[i],f(X[i])],i=0..n)]));

[Maple Math]

Torstai 10.2.

Teht. 1

Teht. 3

Teht. 4

> restart:

> a:=n->(-1)^(n-1)/n;

[Maple Math]

> seq(a(k),k=1..10);

[Maple Math]

> ind1:=[1,3,2,5,7,4];

[Maple Math]

> iton:=seq(2*k-1,k=1..10);

[Maple Math]

> inen:=seq(2*k,k=1..10);

[Maple Math]

> seq([iton[2*k-1],iton[2*k],inen[k]],k=1..5);

[Maple Math]

> ind:=map(op,[%]);

[Maple Math]

> seq(sum(a(ind[k]),k=1..n),n=1..nops(ind));

[Maple Math]

> evalf(%);

[Maple Math]
[Maple Math]

> jarjesta:=proc(a,K,pton,pnen)
local iton,inen,ind,n,k,kk,Koo;
iton:=seq(2*k-1,k=1..K);
inen:=seq(2*k,k=1..K);
Koo:=floor(K/2);
ind:=seq([iton[2*k-1],iton[2*k],inen[k]],k=1..Koo);
ind:=map(op,[ind]);
evalf(seq(sum(a(ind[kk]),kk=1..n),n=1..nops(ind)));
end;

>

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

> joo:=jarjesta(a,100,"huu","go"):joo[nops([joo])];

[Maple Math]

Kehittelyversio, jossa pton=2 ja pnen=1, siis parametrilistan 2 viimeistä eivät käytössä.

Voi hyvin riittää (ainakin aluksi) se, että annetaan pnen:in olla 1, jolloin annetaan vain pton.

Tällä järjestyksellä näyttää olaven aika lähellä 1:tä.

Normaalissa järjestyksessä laskettuna:

> k:='k':evalf(sum(a(k),k=1..100));

[Maple Math]

>

>

>

Teht. 5