外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
maximaではりを解いています。
(はりを解く(両端ばね+鉛直・回転変位:等分布荷重(2)))

スクリプト例
:はりを解く(両端ばね+鉛直・回転変位:等分布荷重(2))
@echo off
path C:\maxima-5.49.0\bin;%path%
more +4 %0 | maxima --very-quiet & pause & goto:eof
/*
: VA TA_____w________VB TB
: |/__________________|/
◎ ◎ KB
< < KV
: 0 L ---> x
: |---------L---------|
y
|
|_____x
/
z
KB : 回転ばね kNm/rad
KV : 鉛直ばね kN/m
TA, TB : たわみ角 左回りが正 rad
VA, VB : たわみ 上方向が正 m
w : 分布荷重 上方向が正 kN/m
Q : せん断力 上方向が正 kN
M : 曲げモーメント 左回りが正 kNm
L : スパン長 m
EI : 曲げ剛性(一定)
エンコード UTF-8(BOM無し) で保存して実行してください。
*/
assume(L>0)$
p:-w$
/*
define(Q(x), C1 + integrate(p, x))$
define(M(x), C2 + integrate(Q(x), x))$
define(T(x), C3 - integrate(M(x)/EI, x))$
define(V(x), C4 + integrate(T(x), x))$
s: solve(
[T(0)=-M(0)/KB+TA, V(0)= Q(0)/KV+VA,
T(L)= M(L)/KB+TB, V(L)=-Q(L)/KV+VB],
[C1, C2, C3, C4])$
[Q, M, T, V]: ev([Q(x), M(x), T(x), V(x)], s)$
RA:ev(Q,x=0)$
RB:-ev(Q,x=L)$
MA:ev(M,x=0)$
MB:-ev(M,x=L)$
print("RA:",string(factor(RA)))$
print("RB:",string(factor(RB)))$
print("MA:",string(factor(MA)))$
print("MB:",string(factor(MB)))$
print("Q-RA:",string(factor(Q-RA)))$
print("M-MA-RA*x:",string(factor(M-MA-RA*x)))$
print("T-TA+MA/KB+(MA*x+RA*x^2/2)/EI:",string(factor(T-TA+MA/KB+(MA*x+RA*x^2/2)/EI)))$
print("V-VA-(TA-MA/KB)*x-RA/KV+(MA*x^2/2+RA*x^3/6)/EI:",string(factor(V-VA-(TA-MA/KB)*x-RA/KV+(MA*x^2/2+RA*x^3/6)/EI)))$ quit()$
*/
RA: 6*EI*KB*KV*(2*(VB-VA)-L*(TB+TA))/((KB*L+6*EI)*KV*L^2+24*EI*KB)+L*w/2$
RB:-6*EI*KB*KV*(2*(VB-VA)-L*(TB+TA))/((KB*L+6*EI)*KV*L^2+24*EI*KB)+L*w/2$
MA:-2*EI*KB*(3*KV*L*(KB*L+2*EI)*(VB-VA)-KB*KV*L^3*(TB+2*TA)+6*EI*(2*KB*(TB-TA)-KV*L^2*TA)
)/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))-KB*L^3*w/(12*(KB*L+2*EI))$
MB:-2*EI*KB*(3*KV*L*(KB*L+2*EI)*(VB-VA)-KB*KV*L^3*(2*TB+TA)-6*EI*(KV*L^2*TB+2*KB*(TB-TA))
)/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))+KB*L^3*w/(12*(KB*L+2*EI))$
Q: RA-w*x$
M: MA+RA*x-w*x^2/2$
T: TA-MA/KB-(MA*x+RA*x^2/2)/EI+w*x^3/(6*EI)$
V: VA+(TA-MA/KB)*x+RA/KV-(MA*x^2/2+RA*x^3/6)/EI+w*x^4/(24*EI)$
KB:1000$
KV:1000*10$
[TA, TB]: [-1,-2]/1000$
[VA, VB]: [-1,-2]/1000$
w:-10$
[L,B,D,E,G,fs]: [5,0.15,0.30,6.5,6.5/15,1.2]$
EI: E * B * D^3 / 12 * 10^6$ /* kN*m*m */
plot2d([Q,M,T*1000,V*1000,p], [x,0,L], grid2d, [title, "Euler-Bernoulli's beam"],
[legend,"Q kN","M kNm","T x1/1000 rad","V mm","p kN/m"],
[color,red,blue,green,magenta,brown])$
?sleep(10)$
quit()$
(計算結果)
L=5.0m
KB=1000 kNm/rad
KV=10000 kN/m
VA=-1/1000 m
VB=-2/1000 m
TA=-1/1000 rad
TB=-2/1000 rad
w=-10 kN/m
B x D = 150x300mm
E65-F225 構造用集成材 すぎ(JAS)

両端にばねがあり、そこにたわみとたわみ角を与えたはりの計算式を導入しました。