1.6.C
Gegeben
Symbole: \(F > 0, b\)
\(F\) und \(b\) sind fest.
Aber \(\alpha\) und damit \(h(\alpha)\) sind variabel.
Wenn der Winkel \(\alpha\) kleiner wird, wird die Höhe \(h\) größer.
Behauptung: Die Beträge aller Stabkräfte werden kleiner, falls \(\alpha\) kleiner wird. Ist diese Behauptung wahr? Gehen Sie wie folgt vor, um das zu prüfen.
a) Lagerreaktionen
Berechnen Sie die Lagerreaktionen bei A und B.
b) Stabkräfte
Berechnen Sie die Stabkräfte für \(0^\circ < \alpha < 90^\circ\).
c) Beträge der Stabkräfte
Berechnen Sie die Beträge der Stabkräfte.
Lösung
d) Einfluss von α
Berechnen Sie, wie sich die Beträge der Stabkräfte abhängig von \(\alpha\) ändern.
Proportionalitäten : Für \(0<\alpha<90^\circ\): Mit kleiner werdendem \(\alpha\): wird \(\tfrac{1}{\cos\alpha}\) kleiner, und darum werden \(|S_1|\) und \(|S_2|\) kleiner. wird \(\tan\alpha\) kleiner, und darum wird \(|S_3|\) kleiner.Lösung
Source Code eines Programms dazu: Programm ausführen? Dazu: Copy: Source Code in die Zwischenablage kopieren. Paste: Source Code ins Eingabefeld hinter Play: Knopf SymPy
from sympy.physics.units import kg, m, s
from sympy import pi, S, pprint, symbols, cos, sin, Matrix, Eq, solve
# 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 print_dict(sol, unit=1, unit_str=None, prec="nil", sub_list=[]):
# Sort:
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)
b, F = symbols("b, F", positive=True)
sub_list = [
( b, 3 *m ),
( F, 1 *N )
]
alpha = symbols("alpha")
ca = cos(alpha)
sa = sin(alpha)
S1, S2, S3 = symbols("S1, S2, S3")
eq1 = Eq(S1, S2)
eq2 = Eq(0, F + S1*ca + S2*ca)
eq3 = Eq(0, S3 + S1*sa)
eqs=[eq1, eq2, eq3]
sol = solve(eqs, [S1, S2, S3])
pprint(sol)
[ ]: einfügen.▶ drücken.