Rationella tal
Vi tänker oss vanligen de rationella tal som kvoter
mellan två heltal A och B:
A/B
Men vi skall föra fram en mer abstrakt teori genom att
i stället bara betrakta "/" som en abstrakt parbildnings
operation:
- De rationella talen är mängden av par A/B,
där A och B är heltal, tillsammans med följande
- ekvivalensrelation ~:
A/B ~ C/D omm A*D = C*B (där * är multiplikation), och
följande
- "specialfall": A/1 är talet A.
Här har vi en definition, som inte innehåller begreppet
division. Men att ~ kallas en ekvivalensrelation, dvs
handlar om "lika värden" antyder att paret A/B ändå
har ett värde! För att se detta skriver vi följande exempel:
A/B ~ Q/1
Definitionen av ~ betyder då att A=B*Q, och Q är det sökta
värdet av kvoten A/B. Värdet kommer då fram som en
'invers multiplikation': Q är det tal, som multiplicerat
med B blir A. Egentligen är detta den enda definition av
division vi har. Det finns då ingen "rättfram" algoritm för
division, utan det enda vi har, är möjligheten att gissa och
testa. Låt då Q0 vara en gissning av Q. Om vi
gissar fel, så får vi relationen:
A = B*Q0 + något
och vi kallar detta "något" för R0, som vi kallar
resten. Vi kan nu ledas
till ett bättre svar genom att dividera R0 med B,
och resultatet kallar vi Q1. På samma sätt får
vi fler samband:
R0 = B*Q1 + R1
R1 = B*Q2 + R2
R2 = B*Q3 + R3
R3 = B*Q4 + R4
Om vi gissar väl, så kan vi hoppas på att nästa Ri
blir mindre än det föregående, åtminstone för det mesta.
Vi kan sätta in det efterföljande sambandet i det föregående,
och dessutom bryta ut B:
A = B*(Q0+Q1+Q2+Q3
+Q4) + R4
Svaret är nu, att vi har en gissning, som är summan av
alla Qi och att felet är det sista R:et, alltså
R4. Om resten R4 är tillräckligt liten,
så har vi för praktiskt bruk löst problemet.
Jag har använt den här algoritmen för att dividera i ett
datorsystem, och den fungerar. Där har man ju också uppgiften
att hitta på ett sätt att gissa. (Datorer gissar inte, de
kräver algoritmer). Jag har provat att ersätta divisionen
med skift, ett lämpligt antal steg. Om B är större än
2n men mindre än 2n+1, så kan man
ersätta divisionen med högerskift n steg. Vid ett tillfälle
har jag ersatt division med 10 med 102/1024, vilket blir
en multiplikation med 102 följ av högerskift 10 steg
(1024 = 210).
Nu kan ju resten ofta nog inte bli 0, och det beror på
att vi hittills har tänkt oss A, B och Q som heltal, och
det är ju sällan som divisionen mellan A och B går jämnt ut.
Då löser vi i stället till exempel problemet 10000*A/B.
Det har lättare att gå ut ganska väl. Men det Q vi får fram
har nu blivit 10000 gånger för stort. Men med den notation
vi har för tal (decimalbråk), så är en division med
10000 lätt att göra. Man flyttar upp decimalkommat (-punkten?)
4 steg. Det är ju nämligen så att decimalnotationen
1,0753 betyder just 10753/10000.
Denna notation med decimalbråk introducerades 1598 av
belgaren Simon Stevin från Brugge. Den har ett visst arv
tillbaka till arabisk matematik, men Simon Stevin introducerar
den i alla fall i västerlandet. Hans notation var något
krångligare, men den rationaliserades snabbt.
Den uppställning vi lär oss i skolan, innebär att vi
vi multiplicerar med 10 i varje steg, i stället för att
multiplicera med 10000 (eller med ännu större tal) på en
gång. En lärdom härifrån gäller felgissningar. Om man gissar
fel, så tar man gärna fram suddgummit, men det sliter på
pappret. Har man gissat fel, så kan man lika gärna fortsätta,
som om ingenting har hänt. Proceduren löser alla sådana
problem ändå, men nu kan olika Qi blir negativa
eller tvåsiffriga, och då är det inte lika enkelt att
summera alla Qi (men inte särskilt svårt heller).
I datorer har man binära tal, vilket innebär att om man
följer "skolmetoden", så skall man multiplicera och dividera
med 2 varje gång, och dessutom har man bara två gissningar
att välja mellan, nämligen 0 och 1. Gissar man 0, så händer
ingenting, så man gissar bara på 1. Är det fel, så får man
ett negativt Ri, och då sätter man en växel, så
man försöker få nästa Ri att närma sig 0
underifrån genom addition. Denna divisionsalgoritm går
tillbaka till John von Neumann, och den används i datorer,
som har "hårdvarumässig" division. Den realiseras alltså
med hårdvara.
Nu kan vi möjligen fastslå, att division handlar om
att finna det decimalbråk Q, som löser A=B*Q.
I själva verket duger ju uttrycket A/B, men vi får svårt
att rangordna olika kvoter, om de inte har samma nämnare
B.
Vi kommer senare att se att det finns en sats, som säger
att mellan två reella tal finns det alltid ett rationellt
tal. Man kan ju då utgå från ett första reellt tal, och
sedan låta det andra vara ett mycket näraliggande tal. Men
det rationella talet ligger ju då närmare det första reella
talet än vad det andra reella talet gör. Satsen säger då
att det första reella talet kan approximeras med det
rationella med godtycklig nogrannhet.
Idén om utveckling av rationella tal som decimalbråk
ger oss kanske en känsla för detta. Vi kan tänka oss de
reella talen, som decimalbråk med oändligt många decimaler.
Om vi skapar ett rationellt tal som ett decimalbråk med
ändligt många decimaler, så kan vi alltid skapa ett rationellt
tal, som lyckas tränga sig mellan de båda reella talen, genom
att lägga på fler och fler decimaler. De reella talen skiljer
sig ju åt vid någon viss decimal, och vi behöver bara
sträcka ut det rationella talets utveckling just dit.
En annan sats säger att ett rationellt tal alltid har en
periodisk decimalbråksutveckling. Efter en inledande transient
har vi så småningom en sifferserie, som upprepar sig i det
oändliga. Om vi lyckas se detta, så har vi genom att
ange transienten och perioden en slags "exakt" representation
av det rationella talet. Därmed ändå inte sagt att vi har
en metod att skilja rationella tal från irrationella tal.
Om vi efter lång tid, inte har hittat någon period, så vet
vi ändå inte om vi kommer att hitta någon, om vi fortsätter
att leta. Och om vi har hittat en period, så kanske den
försvinner igen så småningom, och något helt annat händer.
De gamla egyptierna använde rationella tal, men av någon
anledning accepterade de bara rationella tal med täljaren
1, alltså tal som 1/B. Övriga rationella tal skapade de
som summor av olika 1/B. Då är ju 2/3 lätt omskrivet som
1/3 + 1/3. Men de föredrog likheten 2/3=1/2+1/6. De
uppfattade detta som mera estetiskt, eftersom de olika
termerna avtog i storlek. Så småningom fick prästerna i
uppgift att göra listor över estetiska sätt att göra
sådana omskrivningar.
Egyptierna är också kända för insatser inom multiplikationens
område. De romerska siffrorna, som går tillbaka till
motsvarande grekiska siffror, går rimligt lätt att addera,
men att multiplicera dem är en utmaning. Men grekerna lånade
då in en metod kallad egyptisk multiplikation.
Säg att man vill beräkna x*y. Om man dubblerar x och halverar
y, så får man samma resultat: 2*x*y/2 = x*y. Så kan vi fortsätta,
och då kan man kanske hoppas att man till slut dividerar ner
y till 1, och så ju resultatet klart som det flerfaldigt
dubblerade x. Men man kommer inte till 1! Så snart man på
vägen får ett udda tal, så får man in halvor och annat otyg.
Då stryker man en etta från y, och så kan man forsätta att
halvera. Då hamnar man ju på 1 till slut, men man tillför
ett fel varje gång man gör så här. Lösningen är att man
bokför alla dessa fel, och rättar till svaret på
slutet.
Det här är en fin gammal metod, men man kan inse att man
gör precis det här, när man multiplicerar binära tal
i datorer.
Fullständighet?
Länge tänkte man sig att de hela talen och de rationella
talen skulle fylla alla de behov av tal man hade. Men så
upptäckte man att ett tal, som man hade stort behov av,
nämligen roten ur 2 inte kunde representeras som ett
rationellt tal. Detta hände på Pythagoras tid, mer än
500 år före Kristi födelse. Det skulle ta mer än 2000 år
att lösa detta problem (i slutet av 1800-talet). Det som
då kommer fram är en utvidgninga av de rationella talen
till de reella talen.