MATLAB
MATrix LABoratory
avancerad ”räknedosa”
 utvecklingsmiljö och
“programmeringsspråk”
visualisering av data
 avancerad grafik
1
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
MATLAB
2
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
Användbara kommandon
help kommando –
visar hjälptext i
kommandofönstret
doc – öppnar Matlab-dokumentationen
who/whos – listar variabler
format – anger formatet på utskriften
clear all – ta bort alla definierade
variabler
3
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Språket - kommandosyntaxen
 liknar ”matematik” med C syntax
 stor uppsättning kommandon och
funktioner
- avancerade algoritmer
- ursprungligen inriktat mot linjär algebra
 enkelt konstruera egna program/script och
funktioner (M-filer)
4
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Variabler m.m.
 ingen variabeldeklaration
- variabler definieras genom tilldelning
 den grundläggande datatypen är double
(normalt 16 decimaler)
- elementen är i de flesta fall reella (kan vara
komplexa)
5
 det grundläggande dataformatet är
matriser
 1×1-matriser kallas skalärer
 case-sensitive
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
…variabler m.m.
 resultat lagras i ans (om ingen tilldelning)
 tilldelningar sker med =
>> A = 7.5*2 (resultatet i A)
A =
15
>> 7.5*2 (resultatet i ans)
ans =
15
 semikolon undertrycker utskrifter
 kommentarer inleds med % och räcker
resten av raden
6
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
: operatorn
start : steg
: stopp
 ger en följd av värden
 till exempel 1:2:9 ger vektorn [1 3 5 7 9]
start : stopp
 steget är 1
x = -pi/2:pi/30:pi/2
 ger en radvektor
7
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Grafik- 2D
 plot
- ritar ut en mängd av ordnade talpar (punkter,
linjer, färger)
 fplot
- graf till funktion i en variabel
 hold
- håller kvar aktuellt grafikfönster, så att flera
figurer kan ritas i samma fönster
 olika kommandon för text i grafikfönster
- xlabel, ylabel, title,...
8
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Elementoperationer
x = linspace(0,1);
% OBS! Radvektor
n=2;
y = x.^n.*exp(x);
plot(x,y,'k')
n=3;
hold on
plot(x, x.^n.*exp(x))
9
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Kod direkt i kommandofönstret
>>x = linspace(0,1);
% OBS! Radvektor
>>n=2;
>>y = x.^n.*exp(x);
>>plot(x,y,'k');
>>n=3;
>>hold on
>>plot(x, x.^n.*exp(x))
>> title('x^n*exp(x) för n=2 och n=3')
>> xlabel('x-axeln')
>> ylabel('y-axeln')
>> axis([-1 1 -1 3])
>> v=axis;
>> plot([v(1) v(2)],[0 0]) %Rita y=0
>> plot([0 0], [v(3) v(4)]) %Rita x=0
10
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Slutlig figur (som Figure 1)
x n*exp(x) för n=2 och n=3
3
2.5
2
y-axeln
1.5
1
0.5
0
-0.5
-1
-1
11
-0.8
-0.6
-0.4
-0.2
Mom 3, 5DV104, 5DV105
0
x-axeln
HT09
0.2
0.4
0.6
0.8
1
Per Lindström
Inst. För Datavetenskap, UmU
Subplottar
%Test subplot() by plotting different functions
%in different plot windows
%
x=linspace(0,1);
for n=0:10
y=x.^n .* exp(x);
subplot(4,3,n+1)
plot(x,y)
nchar=num2str(n);
title(strcat('x^n*exp(x) where n= ', nchar))
end
12
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Subplottar
x n*exp(x) where n=2
x n*exp(x) where n=1
x n*exp(x) where n=0
3
3
3
2
2
1
1
2
1
0.5
0
1
0
0.5
0
0
n
x *exp(x) where n=5
x *exp(x) where n=4
x *exp(x) where n=3
4
4
4
2
2
2
0
0.5
0
1
0
0.5
0
1
0
n
x *exp(x) where n=8
x *exp(x) where n=7
x *exp(x) where n=6
4
4
4
2
2
2
0
0.5
0
1
0
4
2
2
0.5
0
0
0.5
1
x *exp(x) where n=10
x *exp(x) where n=9
4
0
1
n
n
0
0.5
0
1
0.5
0
n
n
1
0.5
0
n
n
13
1
1
0
0
Mom 3, 5DV104, 5DV105
0.5
HT09
1
Per Lindström
Inst. För Datavetenskap, UmU
Funktioner
 en funktion ̶ en fil
-
om en fil innehåller flera funktioner kan endast den första
anropas, de andra är interna funktioner
 första kommandoraden skall innehålla ordet function
-
(annars en kommandofil/script/huvudprogram)
-
function [utparametrar] = namn(inparametrar)
 noll, en eller flera in-/utparametrar – värdeparametrar
 anropas med: [utparametrar] = filnamn(inparametrar)
-
ger funktionen samma namn som filen
 de första kommentarraderna (fram till blankrad eller första
kommandorad) skrivs ut vid
>> help filnamn
14
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Mata in i editorn och spara myf() på
fil namn myf.m
function y = myf(x)
%Evaluate f(x)=sin(x)+x^3-x^2+1.5
%Call: y=myf(x)
%
y=sin(x)+x.^3-x.^2+1.5;
Skriv i kommandofönstret
>> help myf
Evaluate f(x)=sin(x)+x^3-x^2
Call: y=myf(x)
>>t=-2:0.1:2;
>>y=myf(t);
>>plot(t,y)
15
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Plot av: sin(x)+x^3-x^2+1.5
8
6
4
2
0
-2
-4
-6
-8
-10
-12
-2
16
-1.5
-1
-0.5
Mom 3, 5DV104, 5DV105
0
HT09
0.5
1
1.5
2
Per Lindström
Inst. För Datavetenskap, UmU
Elementära matematiska funktioner
help elfun
Elementary math functions.
Trigonometric.
sin
sind
sinh
asin
asind
asinh
-
cos
Sine.
Sine of argument in degrees.
Hyperbolic sine.
Inverse sine.
Inverse sine, result in degrees.
Inverse hyperbolic sine.
- Cosine.
Och många fler…..
17
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Problemet måste definieras i en funktion
help funfun
Function functions and ODE solvers.
Optimization and root finding.
-fminbnd
Scalar bounded nonlinear function
minimization.
-fminsearch Multidimensional unconstrained
nonlinear minimization,
-fzero
- Scalar nonlinear zero finding.
Och många fler……..
>> help fzero
FZERO Scalar nonlinear zero finding.
X = FZERO(FUN,X0) tries to find a zero of
the function FUN near X0,
if X0 is a scalar.
18
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Prova använda fzero()
>> help myf
Evaluate f(x)=sin(x)+x^3-x^2+1.5
Call: y=myf(x)
>> xzero=fzero('myf',0.9)
xzero =
-0.7062
>> myf(xzero)
ans =
-4.4409e-016
19
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
S.k. anonyma funktioner
FUNHANDLE = @(ARGLIST)EXPRESSION constructs an
anonymous function and
returns a handle to that function.
>> format short
>> fh=@(x)x.^2-2; %Def. av anonym funktion
>> fh(-2);
>> t=-2:0.1:2;
>> y=fh(t);
>> plot(t,y)
>> tzero=fzero(fh,1.3)
tzero =1.4142
>> fh(tzero)
ans =4.4409e-016
20
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
X^2-2 i [-2..2]
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2
21
-1.5
-1
-0.5
Mom 3, 5DV104, 5DV105
0
HT09
0.5
1
1.5
2
Per Lindström
Inst. För Datavetenskap, UmU
Matriser
tilldelning




omges av hakparenteser [ ]
tilldelning sker radvis
blank eller komma mellan elementen
rader i matrisen skiljs med semikolon eller
ny rad
värdet av en variabel
 variabelns namn följt av retur
22
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Skapa en matris
23
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
Enstaka element i matrisen adresseras
med rad- resp. kolumnindex 1,2,….
variabelnamn(radindex,kolumnindex)
A(1,3)
Observera! skillnad
mellan tilldelning och
adressering
A=[1 5;10 15;-2 6]
ger A (3*2)-matris
A(1,1)=100
ändrar (1,1)-elementet
24
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
alla
Del av matrisen
i:te raden
A(i,:)
j:te kolumnen A(:,j)
Delmatris
25
Mom 3, 5DV104, 5DV105
HT09
A(i:j,k:l)
Stefan Johansson
Department of Computing Science, Umeå University
Att skapa matriser
n × n-matris med ettor
ones(n)
ones(m,n) m × n-matris med ettor
zeros(n)
n × n-matris med nollor
eye(n)
en enhetsmatris n × n
diag
ger diagonalen/skapar
diagonalmatris
triu,tril ger över/under triangulära
matriser
26
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Matrisoperationer
A’
(konjugerade) transponatet
det(A)
determinanten
inv(A)
inversen
eig(A)
egenvärdena
norm(A) 2-normen
A*B, A+B
27
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Strängar
 strängar är av datatypen char
 de lagras som matriser
 strängkommandon
Exempel:
- strcmp, strncmp
28
-
strcat
strfind, findstr
strrep
lower, upper
int2str, str2double
sprintf
...
Mom 3, 5DV104, 5DV105
>>s = ’detta är en sträng’
s =
detta är en sträng
>>s(2)
ans =
e
>>s2 = s(5:10)
s2 =
a är e
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Kontrollstrukturer...
for variabel = uttryck
satser
end
for I = 1:2:n
satser
end
for i= 1:n
satser
end
29
jmfr. C / Java
for (i=1; i<=n;
i=i+2)
{
satser
}
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
…kontrollstrukturer...
if logiskt uttryck
satser
end
if logiskt uttryck
satser
if logiskt uttryck
satser
else
satser
end
30
Mom 3, 5DV104, 5DV105
elseif logiskt uttryck
satser
end
HT09
Stefan Johansson
Department of Computing Science, Umeå University
...kontrollstrukturer...
logiska operatorer
 & (och)
 | (eller)
 ~ (inte)
relations operatorer
 == (lika med)
 ~= (skilt från)
 < och > (mindre/större än)
 <= och >= (mindre än eller lika med resp. större än
eller lika med)
31
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Andra användbara funktioner vid kontroller
any(), all(), ismember()
Exempel
a=[1:10]; b=[1 2 3 4 5];
if(any(a<0)) %värde falskt
do something
else
do something else
end
Exempel
-ismember(b,a);
Ger vektor [1 1 1 1 1 ]
-ismember(a,b);
Ger vektor [1 1 1 1 1 0 0 0 0 0]
32
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
...kontrollstrukturer...
while logiskt uttryck
satser
Exempel:
end
x=0.1
while x < 3
x = x*1.1
end
33
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
...kontrollstrukturer
switch vilkorsuttryck
case vilkor1
satser
case {vilkor2,vilkor3,...}
satser
:
[otherwise]
vilkorsuttrycket kan
vara en skalär eller
satser
sträng
end
34
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Skärmutskrift och inläsning
returvärdet från kommandon som inte
avslutas med semikolon skrivs ut
kommandon för utskrift




35
fprintf – formaterad utskrift (C syntax)
disp – textutskrift eller matriser
Ex. disp(’Rubrik över en tabell’)
T.ex. om a och b är radvektorer av samma
längd: disp([a’ b’])
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Input() för inläsning via tangentbordet
Ex. postal=input(’Ge positivt heltal’);
Inmatning av sträng görs med
Ex. str=input(’Ledtext ’,’s’);
Utan ; i slutet ger utskrift av det nyss inmatade
36
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
%A program to roll 2 ordinary dice a number of
times.
%Number of times is input by the user.
%The program produces statistics for results
2,3,4...,11,12
%
disp('The program simulates rolling 2 dice a
number of times')
num=-1; % Initiate for the while-loop
while num <= 0
num=input('Give number of simulations (>0): ')
end % of while
tab=zeros(12,2); % 2:nd column for relative
frequence
%Use the clock to initiate the random sequence
rand('state',sum(100*clock));
37
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
38
%Simulate and save
for i=1:num
res=rolldice+rolldice;
tab(res,1)=tab(res,1)+1;
end %of for
%Compute relative frequence
tab(2:12,2)=tab(2:12,1)/num;
%Print
format short
format compact
utfall=2:12;
disp('disp does not print results readable')
disp('DICE_Sum
Totals
Relative freq.')
disp([utfall(:) tab(2:12,:)])
disp('Using FPRINTF gives better print out')
%NOTE the transpose of tab
disp('DICE_Sum
Totals
Relative freq.')
%The matrix is printed column wise
fprintf('%3d %10d
%10.3f\n',[utfall;
tab(2:12,:)'])
Stefan Johansson
Mom 3, 5DV104, 5DV105
HT09
Department of Computing Science, Umeå University
function dice = rolldice
%Roll one ordinary dice. The returned value is
%1, 2, 3, 4, 5 or 6
%Call: s=rolldice
%
dice = 1+floor(rand*6);
39
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
40
>> simdice
The program simulates rolling 2 dice a number of
times
Give number of simulations (>0): 100000
num =
100000
disp does not print results readable
DICE_Sum
Totals
Relative freq.
1.0e+004 *
0.0002
0.2711
0.0000
0.0003
0.5509
0.0000
0.0004
0.8422
0.0000
0.0005
1.1289
0.0000
0.0006
1.3767
0.0000
0.0007
1.6675
0.0000
0.0008
1.3920
0.0000
0.0009
1.1153
0.0000
0.0010
0.8238
0.0000
0.0011
0.5548
0.0000
0.0012
0.2768
0.0000
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
Using FPRINTF gives better print out
DICE_Sum
Totals
Relative freq.
2
2711
0.027
3
5509
0.055
4
8422
0.084
5
11289
0.113
6
13767
0.138
7
16675
0.167
8
13920
0.139
9
11153
0.112
10
8238
0.082
11
5548
0.055
12
2768
0.028
>>
41
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
function fmedel=tabell(fun,xstart,xslut,step)
%Anrop: fmedel=tabell(fun,xstart,xslut,step)
%Funktion som tabulerar den matematiska
funktionen fun
%mellan xstart och xslut med steg step
%fun = filnamn eller funktionshandtag för den
matematiska
%funktionen
%fmdel= medelvärdet av funktionsvärdena
%
t=xstart;
n=0;
while t<=(xslut+eps)
fx=feval(fun,t);
n=n+1;
x(n)=t;
tabell(n)=fx;
t=t+step;
end %of while
42
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
%Skriv ut
if isa(fun,'function_handle')
fun=func2str(fun);
end %of if
if n>0
disp(strcat('Tabell över funktionen ',fun))
disp('x-värden
f(x)-värden')
disp([x(:) tabell(:)])%Gör x och tabell till
kolumner
43
medel_1=sum(tabell)/n;
else
disp('Fel i x-argumenten')
medel_1=0;
end %of if
%Ett annat sätt är med vektorer
x=xstart:step:xslut;
fx=feval(fun,x);
n=length(x);
if n>0
medel_2=sum(fx)/n;
else
medel_2=0;
end %of if
fmedel=medel_1;
Mom 3, 5DV104, 5DV105 HT09
Per Lindström
Inst. För Datavetenskap, UmU
44
function mult(tal)
%Anrop: mult(tal)
%Skriv ut multiplikationstabell för tabell
1,2,3...,tal
%Multiplicera talen med 1,2,.....12
%
if tal>0
for i=1:tal
for j=1:12
t(i,j)=i*j;
end
end % for i
disp('Multabeller för talen')
disp([1:tal])
disp('-----------------------------------')
disp(t')
else
disp('Fel indata')
end % of if
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
%Ett annat sätt
if tal>0
rad=1:tal;
col=1:12;
disp('ETT ANNAT SÄTT att beräkna')
A=col'*rad;
A
end % of if
45
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
>> mult(5)
Multabeller för talen
1
2
3
4
5
----------------------------------1
2
3
4
5
2
4
6
8
10
3
6
9
12
15
4
8
12
16
20
5
10
15
20
25
6
12
18
24
30
7
14
21
28
35
8
16
24
32
40
9
18
27
36
45
10
20
30
40
50
11
22
33
44
55
12
24
36
48
60
46
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
Spara och öppna/ladda data
datat i definierade variabler kan sparas i en fil (ges
filändelsen .mat)
save
 ex. för att spara matrisen A och vektorn b till filen ’minfil.mat’
i aktuell katalog
>>save minfil A b
load
 ex. ladda in filen ’minfil.mat’
>>load minfil
(skapar A och b i Matlab)
 ex. >>load minfil A b
47
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
Validering vid inmatning
Skräp in ger skräp ut….. Så man bör validera indata!!!!
T.ex. Inmatning av ett postivt tal
tal=-1;
while tal<0
tal=input(’Ge positivt tal: ’);
end %of while
T.ex. inmatning av tal i vektor där alla tal
måste vara olika och i givet intervall [1..20]
-----”-----rad=[]; %tomma vektorn
disp('Ge 5 tal. Alla olika')
i=1;
while i<=5
tal=input('Ge tal>>>: ');
if any(rad==tal) | tal<1 |tal>20
disp('Fel inmatning. Försök igen')
else
rad(i)=tal;
i=i+1;
end %of if
end %of while
48
Mom 3, 5DV104, 5DV105
HT09
Per Lindström
Inst. För Datavetenskap, UmU
%Konverteringstabell mellan Celsius och Fahrenheit
%Formel: Temp(F)=9/5Temp(C)+32
%Låt användaren mata in starttrmp. i C, ökning mellan varje
%i tabellen och antalet rader i tabellen
disp('Konverteringstabell mellan Celsius och Fahrenheit');
start = input('Ge starttemp i Celsius: ');
incr = input('Ge steget (mellan rader) i Celsius: ');
Ett exempel till
total = input('Hur många rader i tabellen: ');
49
stop = start+(total-1)*incr;
C = start:incr:stop;
F = 9/5*C+32;
more on
format bank
disp('Celsius
Fahrenheit');
disp([C(:) F(:)]);
disp('**************************Med FPRINTF blir utskriften'
disp('Celsius
Fahrenheit');
fprintf('%10.2f %10.2f \n', [C;F]);
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
>> help CelFah
Konverteringstabell mellan Celsius och Fahrenheit
Formel: Temp(F)=9/5Temp(C)+32
Låt användaren mata in starttrmp. i C, ökning mellan varje rad
i tabellen och antalet rader i tabellen
50
>> CelFah
Konverteringstabell mellan Celsius och Fahrenheit
Ge starttemp i Celsius: -10
Ge steget (mellan rader) i Celsius: 5
Hur många rader i tabellen: 10
Celsius
Fahrenheit
-10.00
14.00
-5.00
23.00
0
32.00
5.00
41.00
10.00
50.00
15.00
59.00
20.00
68.00
25.00
77.00
30.00
86.00
35.00
95.00
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
**************************Med FPRINTF blir utskriften
Celsius
Fahrenheit
-10.00
14.00
-5.00
23.00
0.00
32.00
5.00
41.00
10.00
50.00
15.00
59.00
20.00
68.00
25.00
77.00
30.00
86.00
35.00
95.00
>>
51
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
56
function [terms, sum] = harmoni(upper)
%Compute the sum of 1/k; k=1,2,3,4,5,.........
%until that sum exceeds upper.
%Call: [terms,sum] = harmoni(upper)
%terms = no. of terms in the sum
%sum = the actual sum
%Also there is a printout for each time the sum
%exceeds "the next" integer.
%
sum = 0;
k = 0;
oldsum = -1;
heltal = 1;
while (sum <= upper) & (oldsum ~= sum)
k = k+1;
oldsum = sum;
sum = sum+1/k;
if sum >= heltal
fprintf(1,'%d termer behövs för att överskrida %d \n', k,
heltal);
heltal = heltal+1;
end %of if
end %of while
terms = k;
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
>> [termer, summa]=harmoni(15);
1 termer behövs för att överskrida 1
4 termer behövs för att överskrida 2
11 termer behövs för att överskrida 3
31 termer behövs för att överskrida 4
83 termer behövs för att överskrida 5
227 termer behövs för att överskrida 6
616 termer behövs för att överskrida 7
1674 termer behövs för att överskrida 8
4550 termer behövs för att överskrida 9
12367 termer behövs för att överskrida 10
33617 termer behövs för att överskrida 11
91380 termer behövs för att överskrida 12
248397 termer behövs för att överskrida 13
675214 termer behövs för att överskrida 14
1835421 termer behövs för att överskrida 15
57
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University
>> termer
termer =
1835421
>> format compact
>> summa
summa =
15.0000
>> format long
>> summa
summa =
15.00000037826723
58
Mom 3, 5DV104, 5DV105
HT09
Stefan Johansson
Department of Computing Science, Umeå University