Solving Euler Bernoulli ODE with SymPy

Solving Euler Bernoulli ODE with SymPy#

import sympy as sym
sym.init_printing()
EI, q_z, x, L = sym.symbols('EI, q_z, x, L')
w = sym.Function('w')

ODE_bending = sym.Eq(w(x).diff(x, 4) *EI, q_z)
display(ODE_bending)
../_images/219c8da0e5b67a82706d44a475686e1e91a309b689c98f521acbfacdfceef1c3.png
w = sym.dsolve(ODE_bending, w(x)).rhs
display(w)
../_images/0c681b16fa48cef977f079b20d6872a28dbaa9ca6f88cf278fd39580871b57d5.png
phi = -w.diff(x)
kappa = phi.diff(x)
M = EI * kappa
V = M.diff(x)
eq1 = sym.Eq(w.subs(x,0),0)
eq2 = sym.Eq(phi.subs(x,0),0)
eq3 = sym.Eq(M.subs(x,L),0)
eq4 = sym.Eq(V.subs(x,L),0)
C_sol = sym.solve([eq1, eq2, eq3, eq4 ], sym.symbols('C1, C2, C3, C4'))
display(C_sol)
../_images/190e2c5c68bacb3a22386631a939ae779cd7133a53c9148a7d18fca47b4ea816.png
w.subs(C_sol)
../_images/5e792f9cd2c44ebb881bc66dab11ed5f80e632f16e039b8b6c0481ff77a6d2ba.png