import matplotlib
if not hasattr(matplotlib.RcParams, "_get"):
matplotlib.RcParams._get = dict.get
ODE#

import sympy as sym
x = sym.symbols('x')
EI = 5000
Find displacement line#
q_BC = 0
q_AB = sym.SingularityFunction(x,3,-1)
display(q_AB)
\[\displaystyle {\left\langle x - 3 \right\rangle}^{-1}\]
C_1, C_2, C_3, C_4, C_5, C_6, C_7, C_8 = sym.symbols('C_1, C_2, C_3, C_4, C_5, C_6, C_7, C_8')
V_AB = - sym.integrate(q_AB,x) + C_1
M_AB = sym.integrate(V_AB,x) + C_2
kappa_AB = M_AB / EI
phi_AB = sym.integrate(kappa_AB,x)+C_3
w_AB = - sym.integrate(phi_AB,x)+C_4
display(w_AB)
\[\displaystyle - \frac{C_{1} x^{3}}{30000} - \frac{C_{2} x^{2}}{10000} - C_{3} x + C_{4} + \frac{{\left\langle x - 3 \right\rangle}^{3}}{30000}\]
V_BC = - sym.integrate(q_BC,x) + C_5
M_BC = sym.integrate(V_BC,x) + C_6
kappa_BC = M_BC / EI
phi_BC = sym.integrate(kappa_BC,x)+C_7
w_BC = - sym.integrate(phi_BC,x)+C_8
display(w_BC)
\[\displaystyle - \frac{C_{5} x^{3}}{30000} - \frac{C_{6} x^{2}}{10000} - C_{7} x + C_{8}\]
eq1 = sym.Eq(w_AB.subs(x,0),0)
eq2 = sym.Eq(M_AB.subs(x,0),0)
eq3 = sym.Eq(w_AB.subs(x,5),0)
eq4 = sym.Eq(w_BC.subs(x,5),0)
eq5 = sym.Eq(M_AB.subs(x,5),M_BC.subs(x,5))
eq6 = sym.Eq(phi_AB.subs(x,5),phi_BC.subs(x,5))
eq7 = sym.Eq(w_BC.subs(x,10),0)
eq8 = sym.Eq(M_BC.subs(x,10),0)
sol = sym.solve([eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8],[C_1, C_2, C_3, C_4, C_5, C_6, C_7, C_8])
w_sol_AB = w_AB.subs(sol)
display(w_sol_AB)
\[\displaystyle - \frac{19 x^{3}}{1875000} + \frac{x}{5000} + \frac{{\left\langle x - 3 \right\rangle}^{3}}{30000}\]
w_sol_BC = w_BC.subs(sol)
display(w_sol_BC)
\[\displaystyle - \frac{x^{3}}{312500} + \frac{3 x^{2}}{31250} - \frac{11 x}{12500} + \frac{3}{1250}\]
sym.plot((-w_sol_AB,(x,0,5)),(-w_sol_BC,(x,5,10)));
Find influence lines \(A_v\) with Müller-Breslau#
q_BC = 0
q_AB = 0
display(q_AB)
0
V_AB = - sym.integrate(q_AB,x) + C_1
M_AB = sym.integrate(V_AB,x) + C_2
kappa_AB = M_AB / EI
phi_AB = sym.integrate(kappa_AB,x)+C_3
w_AB = - sym.integrate(phi_AB,x)+C_4
eq1 = sym.Eq(w_AB.subs(x,0),1)
sol = sym.solve([eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8],[C_1, C_2, C_3, C_4, C_5, C_6, C_7, C_8])
w_sol_AB = w_AB.subs(sol)
w_sol_BC = w_BC.subs(sol)
sym.plot((-w_sol_AB,(x,0,5)),(-w_sol_BC,(x,5,10)));
Find influence line \(V\) for \(x= 5^{-}\) with Müller-Breslau#
w_AB = - sym.integrate(phi_AB,x)+C_4 + sym.SingularityFunction(x,4.9999,0)
display(w_AB)
\[\displaystyle - \frac{C_{1} x^{3}}{30000} - \frac{C_{2} x^{2}}{10000} - C_{3} x + C_{4} + {\left\langle x - 4.9999 \right\rangle}^{0}\]
eq1 = sym.Eq(w_AB.subs(x,0),0)
eq2 = sym.Eq(M_AB.subs(x,0),0)
eq3 = sym.Eq(w_AB.subs(x,5),0)
eq4 = sym.Eq(w_BC.subs(x,5),0)
eq5 = sym.Eq(M_AB.subs(x,5),M_BC.subs(x,5))
eq6 = sym.Eq(phi_AB.subs(x,5),phi_BC.subs(x,5))
eq7 = sym.Eq(w_BC.subs(x,10),0)
eq8 = sym.Eq(M_BC.subs(x,10),0)
sol = sym.solve([eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8],[C_1, C_2, C_3, C_4, C_5, C_6, C_7, C_8])
w_sol_AB = w_AB.subs(sol)
w_sol_BC = w_BC.subs(sol)
sym.plot((-w_sol_AB,(x,0,5)),(-w_sol_BC,(x,5,10)));
Find influence line \(M\) for \(x = 3\) with Müller-Breslau#
q_AB = 0
q_BC = 0
V_AB = -sym.integrate(q_AB,x)+C_1
M_AB = sym.integrate(V_AB,x)+C_2
kappa_AB = M_AB/ EI
phi_AB = sym.integrate(kappa_AB,x)+C_3 + sym.SingularityFunction(x,3,0)
display(phi_AB)
w_AB = sym.integrate(phi_AB,x)+C_4
\[\displaystyle \frac{C_{1} x^{2}}{10000} + \frac{C_{2} x}{5000} + C_{3} + {\left\langle x - 3 \right\rangle}^{0}\]
V_BC = -sym.integrate(q_BC,x)+C_5
M_BC = sym.integrate(V_BC,x)+C_6
kappa_BC = M_BC/EI
phi_BC = sym.integrate(kappa_BC,x) + C_7
w_BC = sym.integrate(phi_BC,x) + C_8
eq1 = sym.Eq(w_AB.subs(x,0),0)
eq2 = sym.Eq(M_AB.subs(x,0),0)
eq3 = sym.Eq(w_AB.subs(x,5),0)
eq4 = sym.Eq(w_BC.subs(x,5),0)
eq5 = sym.Eq(M_AB.subs(x,5),M_BC.subs(x,5))
eq6 = sym.Eq(phi_AB.subs(x,5),phi_BC.subs(x,5))
eq7 = sym.Eq(w_BC.subs(x,10),0)
eq8 = sym.Eq(M_BC.subs(x,10),0)
sol = sym.solve([eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8],[C_1,C_2,C_3,C_4,C_5,C_6,C_7,C_8])
w_AB_sol = w_AB.subs(sol)
w_BC_sol = w_BC.subs(sol)
sym.plot((w_AB_sol,(x,0,5)),((w_BC_sol),(x,5,10)));
Find influence line with singularity load#
x_F = sym.symbols('x_F',positive=True)
A_v, B_v, C_v = sym.symbols('A_v, B_v, C_v')
q = -A_v *sym.SingularityFunction(x,0,-1) - B_v * sym.SingularityFunction(x,5,-1) - C_v * sym.SingularityFunction(x,10,-1) + 1 * sym.SingularityFunction(x,x_F,-1)
C_1, C_2, C_3, C_4,= sym.symbols('C_1, C_2, C_3, C_4')
V = - sym.integrate(q,x) + C_1
M = sym.integrate(V,x) + C_2
kappa = M / EI
phi = sym.integrate(kappa,x)+C_3
w = - sym.integrate(phi,x)+C_4
display(w)
\[\displaystyle - \frac{A_{v} {\left\langle x \right\rangle}^{3}}{30000} - \frac{B_{v} {\left\langle x - 5 \right\rangle}^{3}}{30000} - \frac{C_{1} x^{3}}{30000} - \frac{C_{2} x^{2}}{10000} - C_{3} x + C_{4} - \frac{C_{v} {\left\langle x - 10 \right\rangle}^{3}}{30000} + \frac{{\left\langle x - x_{F} \right\rangle}^{3}}{30000}\]
eq1 = sym.Eq(w.subs(x,0),0)
eq2 = sym.Eq(M.subs(x,0),0)
eq3 = sym.Eq(V.subs(x,-sym.nsimplify(1/1000)),0)
eq4 = sym.Eq(w.subs(x,5),0)
eq5 = sym.Eq(w.subs(x,10),0)
eq6 = sym.Eq(M.subs(x,10),0)
eq7 = sym.Eq(V.subs(x,10+sym.nsimplify(1/1000)),0)
sol = sym.solve([eq1,eq2,eq3,eq4,eq5,eq6,eq7],[C_1, C_2, C_3, C_4, C_5, A_v, B_v, C_v])
for key in sol:
display(sym.Eq(key, sol[key]))
\[\displaystyle A_{v} = - \frac{{\left\langle 5 - x_{F} \right\rangle}^{3}}{250} - \frac{{\left\langle 10 - x_{F} \right\rangle}^{1}}{20} + \frac{{\left\langle 10 - x_{F} \right\rangle}^{3}}{500}\]
\[\displaystyle B_{v} = \frac{{\left\langle 5 - x_{F} \right\rangle}^{3}}{125} + \frac{3 {\left\langle 10 - x_{F} \right\rangle}^{1}}{10} - \frac{{\left\langle 10 - x_{F} \right\rangle}^{3}}{250}\]
\[\displaystyle C_{1} = 0\]
\[\displaystyle C_{2} = 0\]
\[\displaystyle C_{3} = \frac{{\left\langle 5 - x_{F} \right\rangle}^{3}}{100000} + \frac{{\left\langle 10 - x_{F} \right\rangle}^{1}}{24000} - \frac{{\left\langle 10 - x_{F} \right\rangle}^{3}}{600000}\]
\[\displaystyle C_{4} = 0\]
\[\displaystyle C_{v} = - \frac{{\left\langle 5 - x_{F} \right\rangle}^{3}}{250} - \frac{{\left\langle 10 - x_{F} \right\rangle}^{1}}{4} + \frac{{\left\langle 10 - x_{F} \right\rangle}^{3}}{500} + {\left\langle \frac{10001}{1000} - x_{F} \right\rangle}^{0}\]
display(sol[A_v].rewrite(sym.Piecewise).simplify())
Av_inf = sol[A_v].rewrite(sym.Piecewise).simplify()
sym.plot(-Av_inf,(x_F,0,10));
\[\begin{split}\displaystyle \begin{cases} \frac{x_{F}^{3}}{500} - \frac{x_{F}}{4} + 1 & \text{for}\: x_{F} < 5 \\\frac{25 x_{F} - \left(x_{F} - 10\right)^{3} - 250}{500} & \text{for}\: x_{F} < 10 \\0 & \text{otherwise} \end{cases}\end{split}\]
V_inf = V.subs(sol).subs(x,5-0.0001).rewrite(sym.Piecewise).simplify()
sym.plot(-V_inf,(x_F,0,10));
M_inf = V.subs(sol).subs(x,3).rewrite(sym.Piecewise).simplify()
sym.plot(-M_inf,(x_F,0,10));