Linear Algebra: Traffic Problem with Systems of Equations
Show older comments

7 Comments
David Wilson
on 11 May 2019
Assuming this is a homework assignment, you have probably already seen that it is one of the "classics". For example Palm's book (Introduction to MATLAB for Engineers by Palm W.J. 3rd edition 2010, p349) discsses this exact problem.
Without looking too carefully at the problem, you'll probably find it is underconstrained, and rank or even better rref will help you obtain a sensible course of action.
Christian Diaz
on 11 May 2019
Walter Roberson
on 11 May 2019
Notice that A\B gives some negative numbers. In a real solution, none of the numbers should be negative.
rref(A,B) uses B as a tolerance in calculating the rref of A, which is not what you want. rank() is the same.
Christian Diaz
on 11 May 2019
Christian Diaz
on 11 May 2019
Walter Roberson
on 11 May 2019
rref(A,B) uses B as the tolerence in the calculation. As in two values are to be considered to be the same if the are within B of each other. A typical value there might be something like 20*eps
Consider for example
[1/49*49 3;
2 6]
Examined algebraically this appears to be [1 3; 2 6] which is immediately recognizable as being rank 1 because the second row is 2 * the first row.
However, in the world of floating point numbers, 1/49*49 is not exactly 1: it is about 1.11e-16 less than 1. If you did bitwise comparisons between (1/49*49)*2 and 2, they would not be bit-for-bit equal, and you would decide that the matrix has rank 2. The tolerance parameter is there to permit you to take that kind of floating point round-off into account, so that you do not accidentally consider two values to be different due to floating point round-off when algebraically they should be the same.
Christian Diaz
on 11 May 2019
Answers (0)
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!