Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
| Download
Views: 1137
from sympy.physics.units import * from sympy import * from sympy import N as Num # 3/5, 4/5: f35 = S(3)/5 f43 = S(4)/3 f45 = S(4)/5 print("\n--- User input -----------------") symbolic = True symbolic = False if symbolic: # quantity = symbol: a = var("a") F = var("F", positive=True) Bv = var("B_v") Ah, Av = var("A_h, A_v") else: # quantity = number and unit: a = 1 * meter F = 15 * newton M = a * F print("\n--- a: -------------------------") Fh, Fv = var("F_h, F_v", positive=True) eq1 = Eq(Fv/Fh, f43) eq2 = Eq(Fv*Fv + Fh*Fh, F*F) eqns = [eq1, eq2] sol = solve(eqns, [Fh,Fv], dict=True) pprint(sol) Fh=sol[0][Fh] Fv=sol[0][Fv] print("\n--- b: -------------------------") Ah, Av, Bv= var("A_h, A_v, B_v") eq1 = Eq(0, Ah + Fh) eq2 = Eq(0, Av + Bv + Fv) eq3 = Eq(0,- M + 9*a*Fv - a*Fh + 12*a*Bv) sol = solve([eq1,eq2,eq3],[Ah,Av,Bv]) Ah=sol[Ah] Av=sol[Av] Bv=sol[Bv] for s in [Ah, Av, Bv]: pprint(s) print("\n--- c: -------------------------") rF = Matrix([ 9*a, a, 0 ]) rB = Matrix([ 12*a, 0, 0 ]) print("\n--- d: -------------------------") # B_v is unknown: Bv = var("B_v") F = Matrix([ Fh, Fv, 0]) B = Matrix([ 0, Bv, 0 ]) print("\n--- e: -------------------------") M = Matrix([ 0, 0, -M ]) print("\n--- f: -------------------------") MF = rF.cross(F) MB = rB.cross(B) sum_M = MF + MB + M Zero = Matrix([ 0, 0, 0 ]) eq_M = Eq(Zero, sum_M) pprint(eq_M) sol=solve([eq_M], [Bv]) pprint(sol)
--- User input ----------------- --- a: ------------------------- 9*kg*m 12*kg*m [{F_h: ------, F_v: -------}] 2 2 s s --- b: ------------------------- -9*kg*m -------- 2 s -5*kg*m -------- 2 s -7*kg*m -------- 2 s --- c: ------------------------- --- d: ------------------------- --- e: ------------------------- --- f: ------------------------- [0] = [ 0 ] [ ] [ ] [0] [ 0 ] [ ] [ ] [0] [ 2] [ 84*kg*m ] [12*B_v*m + --------] [ 2 ] [ s ] -7*kg*m {B_v: --------} 2 s