I am trying to get the:

  • maximum deflection
  • location of maximum deflection
  • deflection at any point

For a beam under an arbitrary triangular load (i.e. a, b, c, and w can vary). I tried to solve this via double integration by splitting it up into 3 piecewise functions but get stuck with the constants where I can't seem to get enough boundary conditions. I know that deflection at x = 0 is 0, deflection at x = L is 0, and the slope and deflection must be compatible at x = a and x = (a+b) at the cut points for the piecewise functions. (Where x = 0 at the left end of the beam, and positive going to the right).

Is there a smarter way to do this? I'm hoping to get solutions in terms of formulas, where I can just solve this once and plug and play in the future for a small coding project I'm doing.

Arbitrary Triangular Load


2 Answers 2


Have a look at the last response in this link: Beam deformation under trapezoidal load

It uses singularity functions.

  • $\begingroup$ Worked like a charm. Also helped me realized I could simplify by the problem by making it equivalent to a larger triangular load being counteracted by a a smaller one (like image below). Thanks so much :) $\endgroup$ Commented Oct 6, 2022 at 13:16

If you are doing this for a coding product, a good possibility is doing it by numerically integrating the applied load $w$. The advantage of this is that it can be easily extended to general forms of $w$ for which closed expressions may be hard to get, the disadvantage is that it's more computationally expensive than evaluating a known formula.

The relevant equations are as follows, for the simply supported case shown in the image.

Reactions $$ \begin{aligned} P_2&=\frac{1}{L}\int_0^Lw(x)x\,dx \\ P_1&=\int_0^Lw(x)\,dx -P_2 \end{aligned} $$

Internal shear and bending moment $$ \begin{aligned} V(x)&=\int_0^xw(x)\,dx-P_1 \\ M(x)&=-\int_0^xV(x)\,dx \end{aligned} $$

And, assuming Euler-Bernoulli beam theory, $$ \begin{aligned} \phi(x)&=\frac{M(x)}{EI}\\ \theta(x)&=\int\phi(x)\,dx +C \\ \delta(x)&=\int\theta(x)\,dx +Cx+D \end{aligned} $$ For the simply supported case $D=0$ and $C=-\left[\int\theta(x)\,dx\right](L)$

A MATLAB implementation of this is shown below

clear variables
close all

%--Beam properties--
L=10;       %Length, meters
E=200;      %Modulus of elasticity, GPa
I=1;        %Moment of inertia about axis considered, m^4

%--Load properties--
a=3;        %Start of triangular load, m
b=4;        %Length of triangular load,m
w=1;        %Maximum magnitude, kN/m

%Boundary conditions (Only isostatic cases considered in this code)
fixed_slope=[0 0];          %0 indicates free dof, 1 means fixed dof.
fixed_deflection=[1 1];

%Simulation parameters
delta=0.01; %Max element length, m


% ADD A BIT HERE CHECKING THAT fixed_slope+fixed_deflection = 2 AND
% fixed_deflection has at leas one element or the problem is ill-posed
% ADD A BIT HERE CHECKING THAT a+b<=L and other validations

delta=x(2)-x(1);        %Recalculated because original delta may have changed

q=(x>a).*(x<=a+b).*(w/b*(x-a)); %Conditional definition of applied load

% Equivalently using for loops and conditionals
% q=zeros(length(x),1);
% for i=1:length(x)
%    if x(i)>=a && x(i)<=a+b
%        q(i)=w/b*(x(i)-a);
%    end
% end

plot(x,q); xlabel('x [m]'); ylabel('Applied load [kN/m]')

%Determine reactions
qV=delta*trapz(q);      %Total force applied by w
qM=delta*trapz(q.*x);   %Moment generated by w around the leftmost end

P1=0;   %Leftmost reaction, kN
P2=0;   %Rightmost reaction, kN
M1=0;   %Leftmost moment, kN-m
M2=0;   %Rightmost moment, kN-m

% Five possibilities for reactions
if fixed_slope(1)==1 && fixed_deflection(1)==1
    P1=qV;  M1=qM;
if fixed_slope(1)==1 && fixed_deflection(2)==1
    P2=qV;  M1=qM-qV*L;
if fixed_slope(2)==1 && fixed_deflection(1)==1
    P1=qV;  M2=qM;
if fixed_slope(2)==1 && fixed_deflection(2)==1
    P2=qV;  M2=qM-qV/L;
if fixed_deflection(1)==1 && fixed_deflection(2)==1
    P2=qM/L;    P1=qV-P2;

%Calculate internal shear and bending moment

V=zeros(length(x),1);   %Shear, kN
M=zeros(length(x),1);   %Bending moment, kN-m

for i=1:length(x)

plot(x,V); xlabel('x [m]'); ylabel('Shear [kN]')
for i=1:length(x)

plot(x,-M)      %I plot moments on tensioned fibre side, just a convention
xlabel('x [m]'); ylabel('Bending moment [kN-m]')

%Some unit transformation, due to the way inputs were stated.
E=E*1e6;        %kPa, or kN/m2

%Euler-Bernoulli beam theory calculation


%Integrate radius of curvature to get slope
for i=1:length(theta)

%Integrate slope to get deflection
for i=1:length(def)

% Five cases for boundary conditions
if fixed_slope(1)==1 && fixed_deflection(1)==1
    C=-theta(1); D=-def(1);
if fixed_slope(1)==1 && fixed_deflection(2)==1
    C=-theta(1); D=-def(end)-C*L;
if fixed_slope(2)==1 && fixed_deflection(1)==1
    C=-theta(end); D=-def(1);
if fixed_slope(2)==1 && fixed_deflection(2)==1
    C=-theta(end);  D=-def(end)-C*L;
if fixed_deflection(1)==1 && fixed_deflection(2)==1
    D=-def(1);  C=-def(end)/L;

%Recall that we integrated twice, so we have a constant of integration and 
%a constant of integration multiplied by x.

plot(x,def); xlabel('x [m]'); ylabel('deflection [m]')
%Plot a black line showing the original shape
hold on
plot([0 L],[0 0],'k','linewidth',2)

This produces the following results: Applied load Applied load

Internal shear Shear on beam

Bending moment Bending moment

Deflection Deflection of beam

If you have any questions, just leave a comment and I'll get to it.

  • $\begingroup$ The singularity function was a lot more practical to implement for what I was trying to do. But thank you regardless! $\endgroup$ Commented Oct 25, 2022 at 18:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.