Blatt 5 (Computer-Algebra)

134 days ago by saraedum

[This worksheet contains sample solutions for a computer algebra class in the winter semester 2011/12 at Leibniz Universität Hannover]

1.a) Komplexe Zahlen

x=CC(0,-2) print x y=CC(1,1) print y z=CC(0,1) print z 
       
-2.00000000000000*I
1.00000000000000 + 1.00000000000000*I
1.00000000000000*I
-2.00000000000000*I
1.00000000000000 + 1.00000000000000*I
1.00000000000000*I

1.b) Betrag und Argument

print abs(x),arg(x) print abs(y),arg(y) print abs(z),arg(z) 
       
2.00000000000000 -1.57079632679490
1.41421356237310 0.785398163397448
1.00000000000000 1.57079632679490
2.00000000000000 -1.57079632679490
1.41421356237310 0.785398163397448
1.00000000000000 1.57079632679490

1.c) Multiplikation in Polardarstellung

print abs(x*y),arg(x*y) print abs(x*z),arg(x*z) print abs(z^4),arg(z^4) print abs(y^8),arg(y^8) 
       
2.82842712474619 -0.785398163397448
2.00000000000000 0.000000000000000
1.00000000000000 -0.000000000000000
16.0000000000000 -0.000000000000000
2.82842712474619 -0.785398163397448
2.00000000000000 0.000000000000000
1.00000000000000 -0.000000000000000
16.0000000000000 -0.000000000000000

2.a) Die Folge x_n

def folge(c,n): if n==0: return c return folge(c,n-1)^2 + c 
       

2.b) Erste Folgenglieder

for n in range(10): print folge(-3.,n) 
       
-3.00000000000000
6.00000000000000
33.0000000000000
1086.00000000000
1.17939300000000e6
1.39096784844600e12
1.93479155541049e24
3.74341836288776e48
1.40131810396053e97
1.96369242848753e194
-3.00000000000000
6.00000000000000
33.0000000000000
1086.00000000000
1.17939300000000e6
1.39096784844600e12
1.93479155541049e24
3.74341836288776e48
1.40131810396053e97
1.96369242848753e194
for n in range(10): print folge(.1,n) 
       
0.100000000000000
0.110000000000000
0.112100000000000
0.112566410000000
0.112671196660288
0.112694798556861
0.112700117621772
0.112701316511961
0.112701586743529
0.112701647654509
0.100000000000000
0.110000000000000
0.112100000000000
0.112566410000000
0.112671196660288
0.112694798556861
0.112700117621772
0.112701316511961
0.112701586743529
0.112701647654509

2.c) Komplexe c

for n in range(10): print folge(CC(0,3),n) 
       
3.00000000000000*I
-9.00000000000000 + 3.00000000000000*I
72.0000000000000 - 51.0000000000000*I
2583.00000000000 - 7341.00000000000*I
-4.72183920000000e7 - 3.79236030000000e7*I
7.91376878564055e14 + 3.58138310501276e15*I
-1.22000275809450e31 + 5.66844756517407e30*I
1.16709375176691e62 - 1.38310433272529e62*I
-5.50869769790094e123 - 3.22842484953085e124*I
-1.01192695057997e249 + 3.55688330729136e248*I
3.00000000000000*I
-9.00000000000000 + 3.00000000000000*I
72.0000000000000 - 51.0000000000000*I
2583.00000000000 - 7341.00000000000*I
-4.72183920000000e7 - 3.79236030000000e7*I
7.91376878564055e14 + 3.58138310501276e15*I
-1.22000275809450e31 + 5.66844756517407e30*I
1.16709375176691e62 - 1.38310433272529e62*I
-5.50869769790094e123 - 3.22842484953085e124*I
-1.01192695057997e249 + 3.55688330729136e248*I
for n in range(10): print n,folge(CC(0,.1),n) 
       
0 0.100000000000000*I
1 -0.0100000000000000 + 0.100000000000000*I
2 -0.00990000000000000 + 0.0980000000000000*I
3 -0.00950599000000000 + 0.0980596000000000*I
4 -0.00952532130627990 + 0.0981356928459920*I
5 -0.00953988246437502 + 0.0981304519880551*I
6 -0.00953857624994589 + 0.0981276940437159*I
7 -0.00953805990146109 + 0.0981280030162653*I
8 -0.00953813038927631 + 0.0981280984584402*I
9 -0.00953814777574650 + 0.0981280828041033*I
0 0.100000000000000*I
1 -0.0100000000000000 + 0.100000000000000*I
2 -0.00990000000000000 + 0.0980000000000000*I
3 -0.00950599000000000 + 0.0980596000000000*I
4 -0.00952532130627990 + 0.0981356928459920*I
5 -0.00953988246437502 + 0.0981304519880551*I
6 -0.00953857624994589 + 0.0981276940437159*I
7 -0.00953805990146109 + 0.0981280030162653*I
8 -0.00953813038927631 + 0.0981280984584402*I
9 -0.00953814777574650 + 0.0981280828041033*I

2.d) Kriterium für Unbeschränktheit

N = 10 def test(c): for n in range(N): if abs(folge(c,n))>2: return 1 return 0 
       

2.e) Experimente mit test()

print test(-3) print test(.1) print test(CC(0,3)) print test(CC(0,.1)) 
       
1
0
1
0
1
0
1
0

3.a)

for y in range(-9,10): for x in range(-9,10): print max(abs(x),y), print 
       
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 1 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 2 2 2 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 3 3 3 3 3 3 4 5 6 7 8 9
9 8 7 6 5 4 4 4 4 4 4 4 4 4 5 6 7 8 9
9 8 7 6 5 5 5 5 5 5 5 5 5 5 5 6 7 8 9
9 8 7 6 6 6 6 6 6 6 6 6 6 6 6 6 7 8 9
9 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9
9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 1 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 2 2 2 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 3 3 3 3 3 3 4 5 6 7 8 9
9 8 7 6 5 4 4 4 4 4 4 4 4 4 5 6 7 8 9
9 8 7 6 5 5 5 5 5 5 5 5 5 5 5 6 7 8 9
9 8 7 6 6 6 6 6 6 6 6 6 6 6 6 6 7 8 9
9 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9
9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9

3.b) Ein Ausschnitt aus dem Apfelmännchen in 0-1

for y in range(-9,10): for x in range(-9,10): print test(CC(x*.1,y*.1)), print 
       
1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1

3.e) Plots mit Sage

complex_plot(test,(-1,1),(-1,1),plot_points=20) 
       
complex_plot(test,(-2,1),(-2,2),plot_points=400) 
       

3.f) Das eigentliche Apfelmännchen

N = 20 def test2(c): for n in range(N+1): if abs(folge(c,n))>2: return (n+1)^2 return 0 complex_plot(test2,(-2,1),(-1.5,1.5),plot_points=400)