オリジナル
sympyで不静定はりを解く
https://qiita.com/tehen_/items/78de14be5de482d84a26
参考
追加例題(6.16(連続はり))
FullScript.py
from sympy import *
l = symbols('l', positive=True, real=True)
RA, RB, RC, RE, RF = symbols('R_A, R_B, R_C, R_E, R_F')
MA, MF = symbols('M_A, M_F')
P = symbols('P')
E, I = symbols('E, I')
fA=RA+RB+RC+RE+RF-P
fB=MA+10*RA*l+9*RB*l+7*RC*l+3*RE*l-MF-5*P*l
print('---------------------------------------------------------------')
fH=3*MA*l**2+RA*l**3-0
fI=27*MA+27*RA*l+8*RB*l-0
fJ=147*MA+343*RA*l+216*RB*l+64*RC*l-8*P*l
fK=20*MA+100*RA*l+81*RB*l+49*RC*l+9*RE*l-25*P*l
fL=300*MA+1000*RA*l+729*RB*l+343*RC*l+27*RE*l-125*P*l
print('fH=',fH)
print('fI=',fI)
print('fJ=',fJ)
print('fK=',fK)
print('fL=',fL)
w = solve( [ fA,fB,fH,fI,fJ,fK,fL ] , [ MA, RA, RB, RC, RE, RF, MF ] )
print(w)
print('---------------------------------------------------------------')
fH=3*MA*(l**2)+RA*(l**3)-0
fI=1/2*MA*(3*l)**2+1/6*RA*(3*l)**3+1/6*RB*(2*l)**3-0
fJ=1/2*MA*(7*l)**2+1/6*RA*(7*l)**3+1/6*RB*(6*l)**3+1/6*RC*(4*l)**3-1/6*P*(2*l)**3
fK=MA*(10*l)+1/2*RA*(10*l)**2+1/2*RB*(9*l)**2+1/2*RC*(7*l)**2-1/2*P*(5*l)**2+1/2*RE*(3*l)**2
fL=1/2*MA*(10*l)**2+1/6*RA*(10*l)**3+1/6*RB*(9*l)**3+1/6*RC*(7*l)**3-1/6*P*(5*l)**3+1/6*RE*(3*l)**3
fH=simplify(fH/(l**2))
fI=simplify(fI*6/(l**2))
fJ=simplify(fJ*6/(l**2))
fK=simplify(fK*2/(l**1))
fL=simplify(fL*6/(l**2))
print('fH=',fH)
print('fI=',fI)
print('fJ=',fJ)
print('fK=',fK)
print('fL=',fL)
w = solve( [ fA,fB,fH,fI,fJ,fK,fL ] , [ MA, RA, RB, RC, RE, RF, MF ] )
print(w)
# ---------------------------------------------------------------
# fH= 3*M_A*l**2 + R_A*l**3
# fI= 27*M_A + 27*R_A*l + 8*R_B*l
# fJ= 147*M_A - 8*P*l + 343*R_A*l + 216*R_B*l + 64*R_C*l
# fK= 20*M_A - 25*P*l + 100*R_A*l + 81*R_B*l + 49*R_C*l + 9*R_E*l
# fL= 300*M_A - 125*P*l + 1000*R_A*l + 729*R_B*l + 343*R_C*l + 27*R_E*l
# {M_A: -17*P*l/229, R_A: 51*P/229, R_B: -459*P/916, R_C: 1453*P/1832, R_E: 1209*P/1832, R_F: -40*P/229, M_F: 40*P*l/229}
# ---------------------------------------------------------------
# fH= 3*M_A + R_A*l
# fI= 27.0*M_A + 27.0*R_A*l + 8.0*R_B*l
# fJ= 147.0*M_A - 8.0*P*l + 343.0*R_A*l + 216.0*R_B*l + 64.0*R_C*l
# fK= 20*M_A - 25.0*P*l + 100.0*R_A*l + 81.0*R_B*l + 49.0*R_C*l + 9.0*R_E*l
# fL= 300.0*M_A - 125.0*P*l + 1000.0*R_A*l + 729.0*R_B*l + 343.0*R_C*l + 27.0*R_E*l
# {M_A: -0.074235807860262*P*l, R_A: 0.222707423580786*P, R_B: -0.501091703056769*P, R_C: 0.793122270742358*P, R_E: 0.659934497816594*P, R_F: -0.174672489082969*P, M_F: 0.174672489082969*P*l}