Vorlesung vom 10.11.2022
© 2022 Prof. Dr. Rüdiger W. Braun
from sympy import *
l = [1,2,3]
m = [4,5,6]
l
[1, 2, 3]
l.append(16)
l
[1, 2, 3, 16]
l[0]
1
l[1]
2
l[-1] # letztes Element
16
len(l)
4
del l[2]
l
[1, 2, 16]
import numpy as np
a = np.array(l)
b = np.array(m)
a
array([ 1, 2, 16])
l + m
[1, 2, 16, 4, 5, 6]
a
array([ 1, 2, 16])
a + b
array([ 5, 7, 22])
l[1] = Rational(1,3)
l
[1, 1/3, 16]
init_printing()
l
a[1] = Rational(1,3)
a
array([ 1, 0, 16])
Aha ????
type(a)
numpy.ndarray
a.dtype
dtype('int32')
Ein array
erhält den dtype
, wenn die ersten Elemente hineingeschrieben werden. Danach ist der dtype
unveränderlich.
l + m
a + b
array([ 5, 5, 22])
list(range(10))
for j in range(10):
print(factorial(j)/2**j)
print("huhu")
1 1/2 1/2 3/4 3/2 15/4 45/4 315/8 315/2 2835/4 huhu
for j in range(10):
display(factorial(2*j)/factorial(j)**3)
for p in range(-3,3):
for q in range(1, 4):
print(f"p={p}, q={q}") # f-String
display(Rational(p,q))
p=-3, q=1
p=-3, q=2
p=-3, q=3
p=-2, q=1
p=-2, q=2
p=-2, q=3
p=-1, q=1
p=-1, q=2
p=-1, q=3
p=0, q=1
p=0, q=2
p=0, q=3
p=1, q=1
p=1, q=2
p=1, q=3
p=2, q=1
p=2, q=2
p=2, q=3
m = 20
summe = 0
for n in range(1, m):
summe += Rational(1,n)
summe
N
¶N(1/3)
N(1/3, 100)
n50 = N(Rational(1,3), 50)
n50
N(n50, 200)
for n in range(1, 10):
if n > 2 and n < 5:
display(n)
for p in range(-3,3):
for q in range(1, 4):
r = Rational(p, q)
if denom(r) != 1:
display(r)
for j in range(20):
n = 2**j - 1
rest = n % 3
if rest == 0:
print(f"{n} ist durch 3 teilbar")
elif rest == 1:
print(f"{n} lässt bei Division durch 3 den Rest 1")
else:
print(f"{n} lässt bei Division durch 3 den Rest 2")
0 ist durch 3 teilbar 1 lässt bei Division durch 3 den Rest 1 3 ist durch 3 teilbar 7 lässt bei Division durch 3 den Rest 1 15 ist durch 3 teilbar 31 lässt bei Division durch 3 den Rest 1 63 ist durch 3 teilbar 127 lässt bei Division durch 3 den Rest 1 255 ist durch 3 teilbar 511 lässt bei Division durch 3 den Rest 1 1023 ist durch 3 teilbar 2047 lässt bei Division durch 3 den Rest 1 4095 ist durch 3 teilbar 8191 lässt bei Division durch 3 den Rest 1 16383 ist durch 3 teilbar 32767 lässt bei Division durch 3 den Rest 1 65535 ist durch 3 teilbar 131071 lässt bei Division durch 3 den Rest 1 262143 ist durch 3 teilbar 524287 lässt bei Division durch 3 den Rest 1
summe = 0
for m in range(1, 1000000):
if factorial(m) > 1.e100:
break
m
a = {1: 2, 2: "vier", "vier": 16.}
a
{1: 2, 2: 'vier', 'vier': 16.0}
a[2]
'vier'
a[3] # KeyError
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) Input In [44], in <cell line: 1>() ----> 1 a[3] KeyError: 3
a[3] = 'ix'
a
{1: 2, 2: 'vier', 'vier': 16.0, 3: 'ix'}
quadratzahlen = {}
for j in range(10):
quadratzahlen[j] = j**2
quadratzahlen
for schluessel in quadratzahlen:
print(f"Das Quadrat von {schluessel} ist {quadratzahlen[schluessel]}")
Das Quadrat von 0 ist 0 Das Quadrat von 1 ist 1 Das Quadrat von 2 ist 4 Das Quadrat von 3 ist 9 Das Quadrat von 4 ist 16 Das Quadrat von 5 ist 25 Das Quadrat von 6 ist 36 Das Quadrat von 7 ist 49 Das Quadrat von 8 ist 64 Das Quadrat von 9 ist 81
a # Dictionary
{1: 2, 2: 'vier', 'vier': 16.0, 3: 'ix'}
M = {1,2,3,4} # Menge (engl. set)
M
3 in M
True
5 in M
False
[] # leere Liste
{} # leerer Dictionary
set() # leere Menge
L = set()
for m in M:
L.add(m**2)
L
M | L # Vereinigung
M & L # Durchschnitt
M - L # Mengendifferenz
len(M | L)
x, y = symbols('x y')
f = exp(-x**2-3*y**3)
f
ersetzung = {x: 2, y: -1}
f.subs(ersetzung)
z = S('z')
g = cos(z)
g.subs({z:x, x:y})
g.subs(z, x).subs(x, y)
p = ((x+1)**4).expand()
p
degree(p, x)
p.coeff(x**2)
p.coeff(x**0)
Das ist der Koeffizient der 1
p.coeff(x, 0)
Den Begriff "Polynom" darf man nicht so wörtlich nehmen
y = S('y')
p = 0
for j in range(6):
p += (x+j*y + (x+y)*exp(x))**j
p
pe = p.expand()
len(list(pe.args))
pe.collect(exp(x))
pe.collect([exp(x), y])
pe.coeff(x**2*y**3*exp(x))