interface(rtablesize=20):# Display up to 20x20 matrices ; with(LinearAlgebra): # Problem 1, Lab 2: Traffic Flow # 12 intersections, 12 equations in 17 unknowns. # Enter equations. Shift-Enter extends input. Ctrl-K opens a line above. # RED is your input. BLUE is formatted output from the maple engine. # # FIGURE 1 CORRECTIONS: # # UNIVERSITY: 7598 should be 7593. # The original LAB 2 has been documented, then replaced online. ; eq[1]:=18144+x[4]=10475+x[1];eq[2]:=x[1]+16680=x[5]+x[2];eq[3]:=x[2]+x[6]=7593+x[3];eq[4]:=x[3]+9462=18820+x[7]; eq[5]:=x[11]+x[8]=19929+x[4];eq[6]:=x[5]+x[9]=x[8]+x[12];eq[7]:=x[13]+x[10]=x[6]+x[9];eq[8]:=x[7]+15089=x[10]+x[14]; eq[9]:=4571+6998=x[15]+6433+x[11];eq[10]:=x[15]+x[12]=8080+x[16];eq[11]:=x[16]+5379=x[13]+x[17];eq[12]:=6049+x[14]+x[17]=5648+5394; eqs:=[seq(eq[i],i=1..12)];var:=[seq(x[j],j=1..17)]; # Define augmented matrix of the equations C1:=GenerateMatrix(eqs,var,augmented); # Load augmented matrix C from the lab, printed there in RED as matrix A # All lead positions are 1, because they did the conversion to matrices by hand. # The original lab RED print is incorrect, change -1 in row 12 to 1. # FIGURE 1 has one error: # UNIVERSITY: 7598 should be 7593. # In 2016, google maps shows THIRD is bidirectional traffic. Variables x[15],x[16],x[17] # represent positive or negative net traffic counts. C := Matrix( # Corrected -1 in row 12 [ [ 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7669], [ 1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16680], [ 0, 1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7593], [ 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9358], [ 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, -19929], [ 0, 0, 0, 0, 1, 0, 0, -1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 0, 1, 0, 0, 1, -1, 0, 0, -1, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -15089], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5136], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, -1, 0, 8080], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1, 5379], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 4993] ] ); # The two augmented matrices differ, because of leading elements in rows 1,5,7,9,11. Re-scale as below. # Package laylinag is available in xmaple2015 but not later versions xmaple2016, xmaple2017 #with(laylinalg): #C2:=scale(C1,1,-1):C3:=scale(C2,5,-1):C4:=scale(C3,7,-1):C5:=scale(C4,9,-1):C6:=scale(C5,11,-1): #C-C6;# Should be zero if C equals C6. ; ans:=LinearSolve(C,free='t'); # Solve the augmented system for x ; # Problem 1, Part (d): (i) Do more cars travel northbound or southbound between Pike St and Union St? # Variable x[15] is signed net flow, but variables x[1], x[8] are positive directional flow. The northbound flow is x[8]. The southbound flow is x[1]+x[15]. These two flows should be nonnegative. ans[1]+ans[15]; ans[8]; # The flow x[8] is greater, so northbound has the most traffic ; # It is possible to find a vector basis for the solution space of the homogenenous equation. # To do this, identify the free variable symbols and then compute vector partial derivatives. #strangSolution:=(ans,n)->map(x->diff(x,t[n]),ans);seq(strangSolution(ans,j),j in [8,9,10,15,16,17]);