1.6.M
a) Geometrie
Berechnen Sie die Länge \(l\). Zeigen Sie, dass:
Berechnen Sie das Verhältnis aus \(l\) und \(a\), und zwar gerundet auf Rundestellenwert \(0{,}01\):
Berechnen Sie Kosinus und Sinus des Winkels \(\alpha\): Zeigen Sie, dass: Berechnen Sie diese Größen auch gerundet auf Rundestellenwert \(0{,}01\): Gerundet:
Berechnen Sie die Stabkräfte \(S_1\) und \(S_2\). Verwenden Sie dazu einen Knotenschnitt um Knoten A. Zeigen Sie, dass: Lösung:
Zeigen Sie an einem Knotenschnitt um Knoten B, dass gilt: Und zeigen Sie auch an diesem Knotenschnitt, dass gilt:
Source Code eines Programms dazu: Programm ausführen? Dazu: Copy: Source Code in die Zwischenablage kopieren. Paste: Source Code ins Eingabefeld hinter Play: Knopf Lösung
b) Kosinus und Sinus
Lösung
c) Knotenschnitt um Knoten A
Lösung
d) Knotenschnitt um Knoten B
Lösung
SymPy
from sympy.physics.units import kg, m, s
from sympy import pi, S, pprint, symbols, cos, sin, Matrix, Eq, solve, sqrt
# Units:
N = kg*m/s**2
k, M, G = 10**3, 10**6, 10**9
kN = k*N
Pa = N/m**2
MPa, GPa = M*Pa, G*Pa
deg = pi/180
half = S(1)/2
# Rounding:
def iso_round(x, pv):
try:
x = float(x)
tmp = round(x, pv)
except TypeError:
x = x.evalf()
from functools import partial
func = partial(round, ndigits = pv)
tmp = x.applyfunc(func)
return tmp
# Printing:
def printout(x, unit=1, prec="nil", sub_list=[]):
x = x.subs(sub_list)
x /= unit
try:
x = x.applyfunc(simplify)
except:
tmp = x.simplify()
if tmp != None:
x = tmp
if prec != "nil":
x = iso_round(x, prec)
pprint(x)
return
def printout_sol(sol, unit=1, unit_str=None, prec="nil", sub_list=[]):
for s in sol:
if unit_str:
print("\n"+str(s) + " / " + unit_str + ":")
else:
print("\n"+str(s) + ":")
x = sol[s]
x = x.subs(sub_list)
x /= unit
try:
x = x.applyfunc(simplify)
except:
x = x.simplify()
if prec != "nil":
x = iso_round(x, prec)
pprint(x)
return
def print_dict(sol, unit=1, unit_str=None, prec="nil", sub_list=[]):
tmp = {str(k): v for k, v in sol.items()}
tmp = sorted(tmp.items())
for k, v in tmp:
if unit_str:
print("\n"+str(k) + " / " + unit_str + ":")
else:
print("\n"+str(k) + ":")
v = v.subs(sub_list)
v /= unit
try:
v = v.applyfunc(simplify)
except:
v = v.simplify()
if prec != "nil":
v = iso_round(v, prec)
pprint(v)
# ---
a = symbols("a", positive=True)
F = symbols("F")
print("\nl:")
k1 = a
k2 = a/3
l = sqrt(k1*k1 + k2*k2)
pprint(l)
print("\nl / a:")
tmp = l/a
tmp = iso_round(tmp, 2)
pprint(tmp)
pprint("\ncos(a), sin(a):")
ca = k1 / l
sa = k2 / l
tmp = ca
pprint(tmp)
tmp = sa
pprint(tmp)
pprint("\ncos(a), sin(a):")
tmp = iso_round(ca, 2)
pprint(tmp)
tmp = iso_round(sa, 2)
pprint(tmp)
S1, S2 = symbols("S1, S2")
eq1 = Eq(0, S1*sa - F)
eq2 = Eq(0, S2 + S1*ca)
pprint("\nS1, S2:")
sol = solve([eq1, eq2], [S1, S2])
pprint(sol)
[ ]: einfügen.▶ drücken.