Aufgabe 1

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

a := proc (n) options operator, arrow; 1/9*10^n-1/9...

> a(3);

111

> for n from 2 to 400 do if isprime(a(n)) then print(n) fi; od;

2

19

23

317

Aufgabe 2

> surface := [ R*cos(a) + r*cos(b)*cos(a),R*sin(a) + r*cos(b)*sin(a), r*sin(b)];

surface := [R*cos(a)+r*cos(b)*cos(a), R*sin(a)+r*co...

> m:='m':n:='n':

> kurve:=subs(a=m*t,b=n*t,surface);

kurve := [R*cos(m*t)+r*cos(n*t)*cos(m*t), R*sin(m*t...

> fcurve := unapply(kurve,R,r,m,n);

fcurve := proc (R, r, m, n) options operator, arrow...

> with(plots):

> tubeplot(fcurve(2,1,3,5),t=0..2*Pi, radius=0.2,numpoints=150);

> tubeplot(fcurve(2,1,2,1),t=0..2*Pi, radius=0.3,numpoints=150);

Aufgabe 3

> haflo:=proc(p)
local a,i,h,n,j;
# computes frequencies of digits of floating point number p
a:=op(1,convert(p,list));
n:=0;
h:=table(sparse);
while evalb(a <> 0) do
i:= a mod 10; a := trunc(a/10);
h[i]:=h[i]+1; n:=n+1;
od;
for j from 0 to 9 do
lprint(`j= `,j,`frequency= `, round(100*h[j]/n));
od;
end:

> haflo(3.14);

j=    0   frequency=    0

j=    1   frequency=    33

j=    2   frequency=    0

j=    3   frequency=    33

j=    4   frequency=    33

j=    5   frequency=    0

j=    6   frequency=    0

j=    7   frequency=    0

j=    8   frequency=    0

j=    9   frequency=    0

> haflo(evalf(Pi,1000));

j=    0   frequency=    9

j=    1   frequency=    12

j=    2   frequency=    10

j=    3   frequency=    10

j=    4   frequency=    9

j=    5   frequency=    10

j=    6   frequency=    9

j=    7   frequency=    10

j=    8   frequency=    10

j=    9   frequency=    11

Aufgabe 4

> Digits :=50: digits := Digits:i='i':

> i='i': k='k':

> for k from 1 to 8 do xi[k] := evalf(sum(16^(-i)* (8*i +k)^(-2),i=0..infinity)) od;

>

xi[1] := 1.0007855266043567185737124179762508648105...

xi[2] := .25063743124721292782077371518276629634957...

xi[3] := .11163880856780032706511327288288795581161...

xi[4] := .62944117096124507592533327804605457468596...

xi[5] := .40378982132126039724776165356154938783428...

xi[6] := .28105008399806997062625865344389244180168...

xi[7] := .20693589791592425969259652959682868891273...

xi[8] := .15876170698234576549050517269389745945472...

> for k from 1 to 8 do v[k] := [];
for j from 1 to 10 do v[k] := [op(v[k]),0] od;
v[k][k] := 1;
v[k][10] := trunc(10^digits * xi[k]); od:

> v[9] := [0,0,0,0,0,0,0,0,1,trunc(evalf(Pi^2*10^digits,digits+1))]:

> L :=[]:

> for k from 1 to 9 do L :=[op(L),v[k]] od:

> array(1..9,1..10,L);

matrix([[1, 0, 0, 0, 0, 0, 0, 0, 0, 100078552660435...

> ### WARNING: persistent store makes one-argument readlib obsolete
readlib(lattice):

> array(1..9,1..10,lattice(L));

matrix([[-16, 16, 8, 16, 4, 4, -2, 0, 1, 10], [3618...

Verifikation

> for k from 1 to 8 do sxi[k] := sum(16^(-i)* (8*i +k)^(-2),i=0..infinity) od:

> res:= -16*sxi[1]+16*sxi[2]+8*sxi[3]+16*sxi[4]+4*sxi[5]+4*sxi[6]-2*sxi[7] + Pi^2:

> simplify(res,hypergeom);

-16*hypergeom([1, 1/8, 1/8],[9/8, 9/8],1/16)+4*hype...
-16*hypergeom([1, 1/8, 1/8],[9/8, 9/8],1/16)+4*hype...

> evalf(res);

.2e-48

>