Расчет плоской фермы

Текст программы

(%i1) x:[0, 4., 8, 0, 4, 8, -1, 0, 8]$

Координаты узлов

(%i2) y:[0, 0, 0, 4, 4, 2, 0, -1, -1]$

Figure 1:
Result

Figure 2:
Result

Номера начальных и конечных точек стержней

(%i3) B:[1, 2, 1, 2, 3, 1, 2, 4, 5, 1, 1, 3]$

(%i4) E:[2, 3, 4, 5, 6, 5, 6, 5, 6, 7, 8, 9]$

Число стержней вместе с опорными

(%i5) M:length(E)$

Число узлов

(%i6) N:length(x)$

Список стержней

(%i7) ST:makelist([discrete,[[x [B[k]], y[B[k]]],
                                      [x [E[k]], y[E[k]]]]],k,1,M)$

Рисунок фермы

(%i8) plot2d(ST,[color,blue],[box,false],[legend,false]);

Result

(%i9) G:zeromatrix(M,M)$

(%i10) for i while i<= M do (
                P[i]:0,
                Lx:x[E[i]]-x[B[i]],
                Ly:y[E[i]]-y[B[i]],
                L[i]:sqrt(Lx^2+Ly^2),
                G[2*B[i]-1,i]:Lx/L[i],
                G[2*B[i],i]:Ly/L[i],
                if E[i]<=N-3 then (G[2*E[i]-1,i]:-Lx/L[i],
                                                G[2*E[i],i]:-Ly/L[i]) );

Result

(%i11) P[2*5-1]:10;

Result

(%i12) Y:transpose(makelist(P[k],k,1,M))$

(%i13) ratprint:false$

(%i14) S:G^^(-1).(-Y),numer;

Result


Created with wxMaxima.