Newton’s Method is a well known iterative solution for non-linear equations with one unknown. That is, if some value Y depends on a variable X, then we can use Newton’s Method to find X for any given value of Y. A VBA routine performing a refinement of Newton’s Method (Brent’s Method), can be found at The Inverse Quadratic Method 3 – Brent’s Method, and a recent application using this function is at Faster Biaxial Bending.
When there are two or more unknowns things get more complicated. An example is finding the strains and stresses in a reinforced concrete section for a given bending moment and axial load, with non-linear materials properties, including effective tensile stresses in the concrete. When the materials are treated as linear-elastic, and tension in the concrete is ignored, there are closed form solutions to this problem (see Using RC Design Functions – 1), but where the concrete and/or steel behaviour may be non-linear, and tension in the concrete is included, an iterative solution is required, adjusting the neutral axis position, and maximum concrete compressive strain until the required bending moment and axial load are found.
The simplest procedure is to alternately adjust one variable, keeping the other constant, then use the resulting improved estimate for this value as a constant, whilst adjusting the other. This procedure is illustrated in the screen-shots below, applied to the analysis of a reinforced concrete section. In the graphs concrete compressive strain is plotted against neutral axis position, and two lines are plotted:
- Constant bending moment (30 kNm, blue line)
- Constant axial load (10 kN, red line)
Where these two lines intersect is the required combination of axial load and concrete strain, but there is no simple way to generate the lines without performing the iterative procedure for each point. The graph below shows the first guess:
Adjusting the neutral axis position, we can find the position that gives the required axial load. This can be done either using the Excel Goal-Seek or Solver functions, or the VBA QuadBrent function:
The concrete strain can then be adjusted to find the target bending moment:
The axial load is now no longer at the required value, so the neutral axis depth is adjusted again. This process is repeated until a sufficiently close approximation is achieved:
This process is intuitively obvious, and simple to set up, but is slow, and if manually using the Excel goal-seek or solver functions, quite laborious.
In the next post I will look at an alternative method providing a much quicker solution that can be automated in VBA.