# Physics 3730/6720 Assignment 4

For each of the following exercises create the specified files with your answer(s). Submit the requested files using the course submit utility.

#### Exercise 1. An engineering statics problem. Simple 2D truss bridge

Linear systems of equations are typical in statics problems. In this exercise you will consider a Warren truss bridge described in the MATHalino reference given in the link above. This is a two-dimensional bridge. The bridge has seven weightless, rigid members of equal length 10 feet, set at 60-degree angles and five joints to hold them together. The bridge is loaded as shown in the figure. Weights are in pounds. It is supported by a fixed pivot at vertex E and rests on a horizontally sliding support at A. This way there are no external horizontal forces. All the loading is vertical. The objective here is to determine the normal forces at the supports A and E and the tension/compression in all the members of the bridge as a result of the loading. This information is important for determining whether the bridge can withstand the load without breaking.

We will set up the solution using the "method of joints". We write the free-body diagrams for each of the five vertices (joints) and require that the sums of the horizontal and vertical force components vanish. Also, we require that the net torque on the entire structure about some point vanishes. For this, we choose joint A, but any point works. We get a set of linear equations in the unknown forces, which are easily solved by a systematic approach.

Rather than solving the problem systematically "by hand", as given by MATHalino, we will use the Python numpy.linalg package. So we will write down the full set of linear equations, convert them to a matrix problem, and write Python code to read the matrix and vector, solve the linear system of equations, and write the answer. We do this to develop experience with the process, so we can be prepared to solve more complicated problems, such as a real 3D bridge with more trusses.

So, first we set up the linear system of equations. We will take the convention that the forces are all tensions. Remember that tension in a rod pulls inward from either free end. If a tension turns out to be negative, it is a compression, meaning it pushes outward at the free ends. Here are the equations we need to solve. Please check them. See the free-body diagrams in the reference solution to follow the setup:

Balance clockwise torque about A $1000 \times 5 + 3000 \times 15 + 4000 \times 10 - 20 R_E = 0$ Balance net force on joint A $F_{AB} \cos(60) + F_{AC} = 0 \\ R_A + F_{AB} \sin(60) = 0$ Balance net force on joint B $-F_{AB} \cos(60) + F_{BD} + F_{BC} \cos(60) = 0 \\ -F_{AB} \sin(60) - F_{BC} \sin(60) - 1000 = 0$ Balance net force on joint C $-F_{AC} - F_{BC} \cos(60) + F_{CD} \cos(60) + F_{CE} = 0 \\ F_{BC} \sin(60) + F_{CD} \sin(60) - 4000 = 0$ Balance net force on joint D $-F_{BD} - F_{CD} \cos(60) + F_{DE} \cos(60) = 0 \\ -F_{CD} \sin(60) -F_{DE} \sin(60) - 3000 = 0$ Balance net force on joint E $-F_{CE} - F_{DE} \cos(60) = 0 \\ -F_{DE} \sin(60) - R_E = 0$ Note that the angle 60 is in degrees, not radians!

For this exercise, you are asked to convert these equations into a matrix form S t = w, where S is an 11 X 9 matrix, t is a column vector with 9 unknowns and w is a column vector with constant weights. If it isn't clear how to go from equations to matrix multiplication, see the example in the first triangulation box in the Gaussian-elimination handout linked above. So we can check your work, please arrange the matrix so the columns of the matrix (and the elements of the solution vector t) go in this order: $R_A, F_{AB}, F_{AC}, F_{BD}, F_{BC}, F_{CD}, F_{CE}, F_{DE}, R_{E}$ and the rows are in the same order as the equations above. Create a file called intruss with 11 lines, one for each row of the matrix. On the ith line, put the ith row of the matrix, followed by the right-hand-side value w[i] for that row. This strategy makes it easy to eliminate an equation (see below).

Later in this assignment, you will need to delete two rows of this file in order to get just nine equations with nine unknowns. Please submit the file intruss with the nine rows that you actually use below to get the solution.

#### Exercise 2. Solving the linear system with numpy.linag

In this exercise you are to write a code truss.py. It should read the file intruss using np.loadtxt, pull out the matrix S and vector w, call an the numpy.linalg.solve subroutine for solving the system, and write the answers to standard output. Wait to Exercise 3 below to test your code.

Put your code in a file truss.py to hand in.

#### Exercise 3. Running your program

(a) Run your program with the input from the first exercise above. Note that there are 11 equations but 9 unknowns. There is some redundancy if you set the equation up correctly. That is, two of the equations can be derived from a combination of the other equations. So you will need to drop two of them, but you have to choose carefully. You should save a copy of the original version of your input file before deleting equations. Experiment to find which ones can be safely dropped. If you make the wrong choice, the solve routine will signal an error. The file intruss that you finally submit should be the one that works. Put the solution output from your program in a file solution. In this file make sure it is clear which value goes with which unkown. State which bridge members are under tension and which are under compression. Say which equations you dropped.