Låt oss undersöka detta problem grafiskt med utnyttjande av matlab! (Starta matlab i ett eget fönster. Du kan med musen (vänster knapp nedtryckt) markera de bitar kod du vill använda i ditt Netscape fönster och klistra in dem (använd mellersta musknappen) i matlab fönstret.).
Först ger vi värden på variabler vi vill använda, t.ex. (prova gärna andra värden!):
n=10; L=1; q=2; %Antal tidpunkter, sträcka och kvoten mellan hastigheterna
Som gammal fortran eller basic eller...? programmerare kan det vara frestande att generera läget vid de olika tidpunkterna med en loop. I matlab kan detta skrivas
xa(1)=L; xs(1)=L/q for j=2:n; xs(j)=xs(j-1)/q; % För varje steg krymper sträckan med en faktor q xa(j)=xs(j-1); % I steg j tillryggalägger Akilles den sträcka sköldpaddan gjorde under steg j-1 end
I matlab kan detta göras mera kompakt
j=1:n; xs=L*q.^(-j); %Elementvis evaluering av tillryggalagd sträcka (Går det att göra xs=L*q.^(-([1:n]) ?? xa=[L xs(1:n-1)];Eller ännu mer kompakt:
xs=L*logspace(-log10(q),-n*log10(q),n); xa=[L xs(1:n-1)];Eller ännu mer kompakt...?
Prova gärna några olika sätt att generera resultaten och övertyga dig om att de leder till samma värden. (Skriv t.ex. xa på en rad för att titta på vilka värden xa fått)
För att se hur långt Akilles och sköldpaddan kommit vid olika tillfällen måste vi summera de tillryggalagda sträckorna. Enkelt med cumsum!
ps=L+cumsum(xs) ; % Sköldpaddans position pa=cumsum(xa);
Dags att rita ett diagram (tyvärr har jag inte lyckats hitta några speciella 'sköldpadds' eller 'Akilles'-symboler i matlab, så 'o' och '+' får duga.)
plot (pa,'+'); hold on; plot(ps,'o'), title('Akilles (+) och Skoldpaddan(o)'),Kommer Akilles någonsin ikapp?
Vi beräknar nu vid vilken tidpunkt Akilles och sköldpaddan befann sig i de olika punkterna. Lättast är att utnyttja Akilles läge, pa, eftersom han startade i position "0" vid tiden "0". Jag väljer här för enkelhets skull att sätta Akilles hastighet till 1 längdenhet/tidsenhet. Du kan naturligtvis välja något annat.
v=1; t=pa/v; hold off plot (t,pa,'+'); hold on; plot(t,ps,'o'); title('Akilles (+) och Skoldpaddan(o)'),
Du bör nu ha fått två räta linjer. Om du drar ut dem ser du att de skär varandra i en punkt. Vid just denna tid hinner Akilles ikapp sköldpaddan! Du kan rita i linjerna med:
fplot('x',[0 3]) ; fplot('1+x/2',[0 3])