Selectedhw

Download as pdf or txt
Download as pdf or txt
You are on page 1of 186

Selected EE263 Homework Problems

Stanford University, Fall 2020

Contents
2.10. A simple power control algorithm for a wireless network . . . . . . . . . . . . . 7
2.20. State equations for a linear mechanical system . . . . . . . . . . . . . . . . . . 8
2.30. Some standard time-series models . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.40. Representing linear functions as matrix multiplication . . . . . . . . . . . . . . 9
2.50. Some linear functions associated with a convolution system . . . . . . . . . . . 9
2.61. Matrix representation of polynomial differentiation . . . . . . . . . . . . . . . . 10
2.70. Matrix representation of linear systems . . . . . . . . . . . . . . . . . . . . . . 10
2.80. Some sparsity patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.90. Matrices and signal flow graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.100. A mass subject to applied forces . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.110. Counting paths in an undirected graph . . . . . . . . . . . . . . . . . . . . . . 11
2.120. Counting sequences in a language or code . . . . . . . . . . . . . . . . . . . . 12
2.130. Most common symbol in a given position . . . . . . . . . . . . . . . . . . . . . 12
2.140. Communication over a wireless network with time-slots . . . . . . . . . . . . . 13
2.150. Gradient of some common functions . . . . . . . . . . . . . . . . . . . . . . . 15
2.160. Some matrices from signal processing . . . . . . . . . . . . . . . . . . . . . . . 15
2.170. Affine functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.180. Paths and cycles in a directed graph . . . . . . . . . . . . . . . . . . . . . . . 16
2.190. Element-wise nonnegative matrix and inverse . . . . . . . . . . . . . . . . . . 17
2.200. Quadratic extrapolation of a time series . . . . . . . . . . . . . . . . . . . . . 17
2.210. Express the following statements in matrix language . . . . . . . . . . . . . . 17
2.220. Norm inequalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.230. Population dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.240. Price elasticity of demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.250. Color perception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.260. Halfspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.270. Some properties of the product of two matrices . . . . . . . . . . . . . . . . . 20
3.280. Rank of a product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.290. Linearizing range measurements . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.300. Orthogonal complement of a subspace . . . . . . . . . . . . . . . . . . . . . . 22
3.331. Proof of Cauchy-Schwarz inequality . . . . . . . . . . . . . . . . . . . . . . . . 22
3.340. Vector spaces over the Boolean field . . . . . . . . . . . . . . . . . . . . . . . . 22
3.350. Right inverses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.360. Nonlinear unbiased estimators . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.370. Channel equalizer with disturbance rejection . . . . . . . . . . . . . . . . . . . 24
3.390. Some true/false questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.400. Some true/false questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.410. Temperatures in a multi-core processor . . . . . . . . . . . . . . . . . . . . . . 26
3.420. Relative deviation between vectors . . . . . . . . . . . . . . . . . . . . . . . . 27
3.430. Single sensor failure detection and identification . . . . . . . . . . . . . . . . . 27

1
3.440. Vector space multiple access (VSMA) . . . . . . . . . . . . . . . . . . . . . . . 27
3.450. Minimum distance and maximum correlation decoding . . . . . . . . . . . . . 28
3.460. Reverse engineering a smoothing filter . . . . . . . . . . . . . . . . . . . . . . 29
3.470. Flux balance analysis in systems biology . . . . . . . . . . . . . . . . . . . . . 29
3.480. Memory of a linear time-invariant system . . . . . . . . . . . . . . . . . . . . 30
3.490. Layered medium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.500. Digital circuit gate sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.510. Interpolation with rational functions. . . . . . . . . . . . . . . . . . . . . . . . 34
3.520. Transmit powers in a wireless network . . . . . . . . . . . . . . . . . . . . . . 34
3.530. Checking some range and nullspace conditions . . . . . . . . . . . . . . . . . . 35
3.540. Sparse solution of underdetermined equations . . . . . . . . . . . . . . . . . . 35
4.560. Bessel’s inequality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.570. Orthogonal matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.580. Projection matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.590. Reflection through a hyperplane . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.600. Sensor integrity monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.610. Householder reflections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.620. Finding a basis for the intersection of ranges . . . . . . . . . . . . . . . . . . . 37
4.630. Groups of equivalent statements . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.640. Determinant of an orthogonal matrix . . . . . . . . . . . . . . . . . . . . . . . 39
4.650. Tellegen’s theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.660. Norm preserving implies orthonormal columns . . . . . . . . . . . . . . . . . . 39
4.670. Solving linear equations via QR factorization . . . . . . . . . . . . . . . . . . 39
5.680. Least-squares residuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.690. Complex linear algebra and least-squares . . . . . . . . . . . . . . . . . . . . . 40
6.700. AR system identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.710. The middle inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.720. Approximate inductance formula . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.730. Quadratic extrapolation of a time series, using least-squares fit . . . . . . . . 44
6.741. Image reconstruction from line integrals . . . . . . . . . . . . . . . . . . . . . 44
6.750. Least-squares model fitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.760. Least-squares deconvolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.770. Estimation with sensor offset and drift . . . . . . . . . . . . . . . . . . . . . . 49
6.780. Estimating emissions from spot measurements . . . . . . . . . . . . . . . . . . 50
6.790. Identifying a system from input/output data . . . . . . . . . . . . . . . . . . . 51
6.800. Robust least-squares estimation methods . . . . . . . . . . . . . . . . . . . . . 51
6.810. Estimating a signal with interference . . . . . . . . . . . . . . . . . . . . . . . 53
6.820. Vector time-series modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.830. Fitting a rational transfer function to frequency response data . . . . . . . . . 55
6.840. Quadratic placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.850. Least-squares state tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.860. Time series prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.870. Reconstructing values from sums over subsets . . . . . . . . . . . . . . . . . . 58
6.880. Signal estimation using least-squares . . . . . . . . . . . . . . . . . . . . . . . 60
6.890. Point of closest convergence of a set of lines . . . . . . . . . . . . . . . . . . . 60

2
6.900. Estimating direction and amplitude of a light beam . . . . . . . . . . . . . . . 61
6.910. Smooth interpolation on a 2D grid . . . . . . . . . . . . . . . . . . . . . . . . 62
6.920. Designing a nonlinear equalizer from I/O data . . . . . . . . . . . . . . . . . . 64
6.930. Simple fitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.940. Estimating parameters from noisy measurements . . . . . . . . . . . . . . . . 66
6.950. Signal reconstruction for a bandlimited signal . . . . . . . . . . . . . . . . . . 66
6.960. Fitting a model for hourly temperature . . . . . . . . . . . . . . . . . . . . . . 67
6.970. Empirical algorithm complexity . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.980. State trajectory estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.990. Fleet modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.1000. Regulation using ternary inputs . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.1010. Extracting diurnal and weather-related components from power consumption
profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.1020. Fitting vector auto-regressive model coefficients to data . . . . . . . . . . . . 72
6.1030. Auto-Bob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.1040. Fitting a Gaussian function to data . . . . . . . . . . . . . . . . . . . . . . . 73
7.1050. E-911 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
7.1060. Curve-smoothing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.1070. Regularization and Laplacian smoothing . . . . . . . . . . . . . . . . . . . . 76
8.1080. Optimal control of unit mass . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.1090. Smallest input that drives a system to a desired steady-state output . . . . . 78
8.1100. Minimum fuel and minimum peak input solutions . . . . . . . . . . . . . . . 79
8.1110. Simultaneous left inverse of two matrices . . . . . . . . . . . . . . . . . . . . 80
8.1120. Phased-array antenna weight design . . . . . . . . . . . . . . . . . . . . . . . 80
8.1130. Modifying measurements to satisfy known conservation laws . . . . . . . . . 81
8.1140. Estimator insensitive to certain measurement errors . . . . . . . . . . . . . . 82
8.1150. Optimal flow on a data collection network . . . . . . . . . . . . . . . . . . . 83
8.1160. Random geometry antenna weight design . . . . . . . . . . . . . . . . . . . . 85
8.1170. Estimation with known input norm . . . . . . . . . . . . . . . . . . . . . . . 86
8.1180. Minimum energy rendezvous . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.1190. Least-norm solution of nonlinear equations . . . . . . . . . . . . . . . . . . . 87
8.1200. The smoothest input that takes the state to zero . . . . . . . . . . . . . . . . 88
8.1210. Minimum energy input with way-point constraints . . . . . . . . . . . . . . . 88
8.1220. Invertibility of certain matrices . . . . . . . . . . . . . . . . . . . . . . . . . . 89
8.1230. Singularity of the KKT matrix . . . . . . . . . . . . . . . . . . . . . . . . . . 89
8.1240. Minimum energy roundtrip . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
8.1250. Optimal dynamic purchasing . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.1260. Least-squares classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.1270. Minimum time control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.1280. Interference cancelling equalizers . . . . . . . . . . . . . . . . . . . . . . . . . 93
8.1290. Piecewise affine fitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
8.1300. Robust input design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
8.1310. Unbiased estimation with deadlines . . . . . . . . . . . . . . . . . . . . . . . 95
8.1320. Portfolio selection with sector neutrality constraints . . . . . . . . . . . . . . 95
8.1330. Minimum energy control with delayed destination knowledge . . . . . . . . . 96

3
8.1340. Smooth and least-norm force profiles . . . . . . . . . . . . . . . . . . . . . . 97
8.1350. Minimum energy control of docking vehicles . . . . . . . . . . . . . . . . . . 97
9.1360. A simple population model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
9.1370. Tridiagonal systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
9.1380. A distributed congestion control scheme . . . . . . . . . . . . . . . . . . . . . 99
9.1400. Controlling a system using the initial conditions . . . . . . . . . . . . . . . . 101
9.1410. Invariance of the unit square . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
9.1420. Iterative solution of linear equations . . . . . . . . . . . . . . . . . . . . . . . 102
9.1430. Periodic solution of periodic linear dynamical system . . . . . . . . . . . . . 103
9.1440. Analysis of a power control algorithm . . . . . . . . . . . . . . . . . . . . . . 104
9.1450. Stability of a time-varying system . . . . . . . . . . . . . . . . . . . . . . . . 104
9.1460. Linear dynamical system with constant input . . . . . . . . . . . . . . . . . . 105
9.1470. Optimal choice of initial temperature profile . . . . . . . . . . . . . . . . . . 105
10.1480. Damped version of a linear system . . . . . . . . . . . . . . . . . . . . . . . 106
10.1490. Harmonic oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10.1500. Properties of the matrix exponential . . . . . . . . . . . . . . . . . . . . . . 106
10.1510. Two-point boundary value problem . . . . . . . . . . . . . . . . . . . . . . . 106
10.1520. Determinant of matrix exponential . . . . . . . . . . . . . . . . . . . . . . . 106
10.1530. Linear system with a quadrant detector . . . . . . . . . . . . . . . . . . . . 107
10.1540. Linear system with one-bit quantized output . . . . . . . . . . . . . . . . . 107
10.1550. Some basic properties of eigenvalues . . . . . . . . . . . . . . . . . . . . . . 108
10.1560. Characteristic polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
10.1570. The adjoint system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
10.1580. Spectral resolution of the identity . . . . . . . . . . . . . . . . . . . . . . . . 108
10.1590. Using matlab to find an invariant plane . . . . . . . . . . . . . . . . . . . . 109
10.1600. Positive quadrant invariance . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.1610. Some matlab exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.1620. Volume preserving flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.1630. Stability of a periodic system . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.1640. Computing trajectories of a continuous-time LDS . . . . . . . . . . . . . . . 111
10.1650. Determining a linear system from experiments . . . . . . . . . . . . . . . . 112
10.1660. Output response envelope for linear system with uncertain initial condition 112
10.1670. Alignment of a fleet of vehicles . . . . . . . . . . . . . . . . . . . . . . . . . 113
10.1680. Scalar time-varying linear dynamical system . . . . . . . . . . . . . . . . . . 114
10.1690. Optimal initial conditions for a bioreactor . . . . . . . . . . . . . . . . . . . 115
10.1700. Optimal espresso cup pre-heating . . . . . . . . . . . . . . . . . . . . . . . . 115
10.1710. Nuclear reactor dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
11.1720. Left eigenvector properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
11.1730. Qualitative description of linear systems . . . . . . . . . . . . . . . . . . . . 117
11.1740. Another formula for the matrix exponential . . . . . . . . . . . . . . . . . . 117
11.1750. Synchronizing a communication network . . . . . . . . . . . . . . . . . . . . 117
11.1760. Population dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
11.1770. Rate of a Markov code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
11.1780. Companion matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
11.1790. Squareroot and logarithm of a (diagonalizable) matrix . . . . . . . . . . . . 121

4
11.1800. Separating hyperplane for a linear dynamical system . . . . . . . . . . . . . 122
11.1810. Equi-angle sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
11.1820. Optimal control for maximum asymptotic growth . . . . . . . . . . . . . . . 122
11.1830. Estimating a matrix with known eigenvectors . . . . . . . . . . . . . . . . . 123
11.1840. Real modal form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
11.1850. Spectral mapping theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
11.1860. Eigenvalues of matrix products . . . . . . . . . . . . . . . . . . . . . . . . . 124
11.1870. Tax policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
11.1880. Closed walks in a directed graph . . . . . . . . . . . . . . . . . . . . . . . . 125
12.1890. Some true/false questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
12.1900. Discrete-time LDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
12.1910. Asymptotically periodic trajectories . . . . . . . . . . . . . . . . . . . . . . 126
12.1920. Jordan form of a block matrix . . . . . . . . . . . . . . . . . . . . . . . . . . 127
12.1930. Properties of trajectories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
13.1940. Interconnection of linear systems . . . . . . . . . . . . . . . . . . . . . . . . 127
13.1950. Minimum energy control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
13.1960. Output feedback for maximum damping . . . . . . . . . . . . . . . . . . . . 129
13.1970. Affine dynamical systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
13.1980. Determining a linear dynamical system . . . . . . . . . . . . . . . . . . . . 130
13.1990. Cascade connection of systems . . . . . . . . . . . . . . . . . . . . . . . . . 130
13.2000. Inverse of a linear system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
13.2010. Offset or skewed discretization . . . . . . . . . . . . . . . . . . . . . . . . . 131
13.2020. Static decoupling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
13.2030. A method for rapidly driving the state to zero . . . . . . . . . . . . . . . . . 132
13.2040. Analysis of investment allocation strategies . . . . . . . . . . . . . . . . . . 133
13.2050. Analysis of cross-coupling in interconnect wiring . . . . . . . . . . . . . . . 135
13.2060. Periodic solution with intermittent input . . . . . . . . . . . . . . . . . . . . 136
13.2070. System identification of a linear dynamical system . . . . . . . . . . . . . . 137
13.2080. System identification with selection of inputs & states . . . . . . . . . . . . 138
13.2090. A greedy control scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
13.2100. FIR filter with small feedback . . . . . . . . . . . . . . . . . . . . . . . . . . 140
13.2110. Analysis of a switching power supply . . . . . . . . . . . . . . . . . . . . . . 140
13.2120. Dynamic decoupling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
15.2130. Simplified temperature control . . . . . . . . . . . . . . . . . . . . . . . . . 142
15.2140. A counterexample for a positive definite matrix test . . . . . . . . . . . . . 143
15.2150. Norm expressions for quadratic forms . . . . . . . . . . . . . . . . . . . . . 144
15.2160. Congruences and quadratic forms . . . . . . . . . . . . . . . . . . . . . . . . 144
15.2170. Positive semidefinite (PSD) matrices . . . . . . . . . . . . . . . . . . . . . . 144
15.2180. A Pythagorean inequality for the matrix norm . . . . . . . . . . . . . . . . 144
15.2190. Gram matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
15.2200. Properties of symmetric matrices . . . . . . . . . . . . . . . . . . . . . . . . 145
15.2210. Matrix form of a polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . 145
15.2220. Constructing a matrix from a quadratic form . . . . . . . . . . . . . . . . . 145
15.2230. A power method for computing the matrix norm . . . . . . . . . . . . . . . 145
15.2240. An invertibility criterion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

5
15.2250. A bound on maximum eigenvalue for a matrix with entries smaller than one 145
15.2260. Some problems involving matrix inequalities . . . . . . . . . . . . . . . . . . 145
15.2270. Eigenvalues and singular values of a symmetric matrix . . . . . . . . . . . . 146
15.2280. More facts about singular values of matrices . . . . . . . . . . . . . . . . . . 146
15.2290. Matrix gain compared with entry size . . . . . . . . . . . . . . . . . . . . . 146
15.2300. Frobenius norm of a matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
15.2310. Drawing a graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
15.2320. Approximate left inverse with norm constraints . . . . . . . . . . . . . . . . 149
15.2330. Finding worst-case inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
15.2340. Worst and best direction of excitation for a suspension system . . . . . . . 150
15.2350. Two representations of an ellipsoid . . . . . . . . . . . . . . . . . . . . . . . 150
15.2360. Determining initial bacteria populations . . . . . . . . . . . . . . . . . . . . 150
15.2370. A measure of connectedness in a graph . . . . . . . . . . . . . . . . . . . . . 151
15.2380. Recovering an ellipsoid from boundary points . . . . . . . . . . . . . . . . . 152
15.2390. Predicting zero crossings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
15.2400. Optimal time compression equalizer . . . . . . . . . . . . . . . . . . . . . . 153
15.2410. Minimum energy required to leave safe operating region . . . . . . . . . . . 154
15.2420. Energy storage efficiency in a linear dynamical system . . . . . . . . . . . . 155
15.2430. Energy-optimal evasion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
15.2440. Worst-case analysis of impact . . . . . . . . . . . . . . . . . . . . . . . . . . 156
15.2450. Worst time for control system failure . . . . . . . . . . . . . . . . . . . . . . 157
15.2460. Some proof or counterexample questions . . . . . . . . . . . . . . . . . . . . 157
15.2470. Uncovering a hidden linear explanation . . . . . . . . . . . . . . . . . . . . 158
15.2480. Some bounds on singular values . . . . . . . . . . . . . . . . . . . . . . . . . 160
15.2490. Some simple matrix inequality counter-examples . . . . . . . . . . . . . . . 160
15.2500. Some true-false questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
15.2510. Possible values for correlation coefficients . . . . . . . . . . . . . . . . . . . 161
15.2520. Maximizing a bilinear function . . . . . . . . . . . . . . . . . . . . . . . . . 161
15.2530. Least-squares stereo-vision rig calibration . . . . . . . . . . . . . . . . . . . 161
15.2540. 2D projection with minimum distance distortion . . . . . . . . . . . . . . . 162
15.2550. Strictly growing trajectories . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
16.2560. Blind signal detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
16.2570. Alternating projections for low rank matrix completion . . . . . . . . . . . 164
16.2580. Least-squares matching of supply and demand on a network . . . . . . . . . 165
16.2590. Smallest matrix with given row and column sums . . . . . . . . . . . . . . . 166
16.2600. Condition number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
16.2610. Tightness of the condition number sensitivity bound . . . . . . . . . . . . . 167
16.2620. Sensitivity to errors in a matrix . . . . . . . . . . . . . . . . . . . . . . . . . 167
16.2630. Minimum and maximum RMS gain of an FIR filter . . . . . . . . . . . . . . 167
16.2640. Detecting linear relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
16.2650. Stability conditions for the distributed congestion control scheme . . . . . . 168
16.2660. Maximizing the state later . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
16.2670. Regularization and SVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
16.2680. Optimal binary signalling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
16.2690. Some input optimization problems . . . . . . . . . . . . . . . . . . . . . . . 171

6
16.2700. Determining the number of signal sources . . . . . . . . . . . . . . . . . . . 171
16.2710. The EE263 search engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
16.2720. Condition number and angles between columns . . . . . . . . . . . . . . . . 174
16.2730. Analysis and optimization of a communication network . . . . . . . . . . . 174
16.2740. A heuristic for MAXCUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
16.2750. Simultaneously estimating student ability and exercise difficulty . . . . . . . 177
16.2760. Angle between two subspaces . . . . . . . . . . . . . . . . . . . . . . . . . . 177
16.2770. Extracting the faintest signal . . . . . . . . . . . . . . . . . . . . . . . . . . 178
16.2780. One of these vectors doesn’t fit . . . . . . . . . . . . . . . . . . . . . . . . . 179
16.2790. Extracting RC values from delay data . . . . . . . . . . . . . . . . . . . . . 179
16.2800. Some attributes of a stable system . . . . . . . . . . . . . . . . . . . . . . . 180
16.2810. System with level alarms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
18.2820. Actuator placement and optimal control . . . . . . . . . . . . . . . . . . . . 181
18.2830. Horizon selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
18.2840. Minimum energy required to steer the state to zero . . . . . . . . . . . . . . 183
18.2850. Minimum energy inputs with coasting . . . . . . . . . . . . . . . . . . . . . 183
18.2860. Some True/False questions . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
18.2870. Alternating input reachability . . . . . . . . . . . . . . . . . . . . . . . . . . 185
19.2880. Sensor selection and observer design . . . . . . . . . . . . . . . . . . . . . . 185

2.10. A simple power control algorithm for a wireless network. First some background.
We consider a network of n transmitter/receiver pairs. Transmitter i transmits at power level
pi (which is positive). The path gain from transmitter j to receiver i is Gij (which are all
nonnegative, and Gii are positive). The signal power at receiver i is given by si = Gii pi . The
noise plus interference power at receiver i is given by
X
qi = σ 2 + Gij pj
j6=i

where σ 2 > 0 is the self-noise power of the receivers (assumed to be the same for all receivers).
The signal to interference plus noise ratio (SINR) at receiver i is defined as Si = si /qi . For
signal reception to occur, the SINR must exceed some threshold value γ (which is often in the
range 3 – 10). Various power control algorithms are used to adjust the powers pi to ensure that
Si ≥ γ (so that each receiver can receive the signal transmitted by its associated transmitter).
In this problem, we consider a simple power control update algorithm. The powers are all
updated synchronously at a fixed time interval, denoted by t = 0, 1, 2, . . .. Thus the quantities
p, q, and S are discrete-time signals, so for example p3 (5) denotes the transmit power of
transmitter 3 at time epoch t = 5. What we’d like is

Si (t) = si (t)/qi (t) = αγ,

where α > 1 is an SINR safety margin (of, for example, one or two dB). Note that increasing
pi (t) (power of the ith transmitter) increases Si but decreases all other Sj . A very simple
power update algorithm is given by

pi (t + 1) = pi (t)(αγ/Si (t)). (1)

7
This scales the power at the next time step to be the power that would achieve Si = αγ, if the
interference plus noise term were to stay the same. But unfortunately, changing the transmit
powers also changes the interference powers, so it’s not that simple! Finally, we get to the
problem.
a) Show that the power control algorithm (1) can be expressed as a linear dynamical system
with constant input, i.e., in the form

p(t + 1) = Ap(t) + b,

where A ∈ Rn×n and b ∈ Rn are constant. Describe A and b explicitly in terms of σ, γ, α


and the components of G.
b) matlab simulation. Use matlab to simulate the power control algorithm (1), starting
from various initial (positive) power levels. Use the problem data
 
1 .2 .1
G =  .1 2 .1  , γ = 3, α = 1.2, σ = 0.1.
.3 .1 3
Plot Si and p as a function of t, and compare it to the target value αγ. Repeat for γ = 5.
Comment briefly on what you observe. Comment: You’ll understand what you see later
in the course.

2.20. State equations for a linear mechanical system. The equations of motion of a lumped
mechanical system undergoing small motions can be expressed as

M q̈ + Dq̇ + Kq = f

where q(t) ∈ Rk is the vector of deflections, M , D, and K are the mass, damping, and stiffness
matrices, respectively, and f (t) ∈ Rk is the vector of externally applied forces. Assuming M
is invertible, write linear system equations for the mechanical system, with state
 
q
x= ,

input u = f , and output y = q.

2.30. Some standard time-series models. A time series is just a discrete-time signal, i.e., a
function from Z+ into R. We think of u(k) as the value of the signal or quantity u at time (or
epoch) k. The study of time series predates the extensive study of state-space linear systems,
and is used in many fields (e.g., econometrics). Let u and y be two time series (input and
output, respectively). The relation (or time series model )

y(k) = a0 u(k) + a1 u(k − 1) + · · · + ar u(k − r)

is called a moving average (MA) model, since the output at time k is a weighted average of
the previous r inputs, and the set of variables over which we average ‘slides along’ with time.
Another model is given by

y(k) = u(k) + b1 y(k − 1) + · · · + bp y(k − p).

8
This model is called an autoregressive (AR) model, since the current output is a linear combina-
tion of (i.e., regression on) the current input and some previous values of the output. Another
widely used model is the autoregressive moving average (ARMA) model, which combines the
MA and AR models:

y(k) = b1 y(k − 1) + · · · + bp y(k − p) + a0 u(k) + · · · + ar u(k − r).

Finally, the problem: Express each of these models as a linear dynamical system with input u
and output y. For the MA model, use state
 
u(k − 1)
..
x(k) =  . ,
 

u(k − r)

and for the AR model, use state


 
y(k − 1)
..
x(k) =  . .
 

y(k − p)

You decide on an appropriate state vector for the ARMA model. (There are many possible
choices for the state here, even with different dimensions. We recommend you choose a state
for the ARMA model that makes it easy for you to derive the state equations.) Remark:
multi-input, multi-output time-series models (i.e., u(k) ∈ Rm , y(k) ∈ Rp ) are readily handled
by allowing the coefficients ai , bi to be matrices.

2.40. Representing linear functions as matrix multiplication. Suppose that f : Rn −→ Rm


is linear. Show that there is a matrix A ∈ Rm×n such that for all x ∈ Rn , f (x) = Ax.
(Explicitly describe how you get the coefficients Aij from f , and then verify that f (x) = Ax
for any x ∈ Rn .) Is the matrix A that represents f unique? In other words, if à ∈ Rm×n is
another matrix such that f (x) = Ãx for all x ∈ Rn , then do we have à = A? Either show
that this is so, or give an explicit counterexample.

2.50. Some linear functions associated with a convolution system. Suppose that u and y
are scalar-valued discrete-time signals (i.e., sequences) related via convolution:
X
y(k) = hj u(k − j), k ∈ Z,
j

where hk ∈ R. You can assume that the convolution is causal, i.e., hj = 0 when j < 0.

a) The input/output (Toeplitz) matrix. Assume that u(k) = 0 for k < 0, and define
   
u(0) y(0)
 u(1)   y(1) 
U =  . , Y =  . .
   
 . . .
 . 
u(N ) y(N )

9
Thus U and Y are vectors that give the first N + 1 values of the input and output
signals, respectively. Find the matrix T such that Y = T U . The matrix T describes the
linear mapping from (a chunk of) the input to (a chunk of) the output. T is called the
input/output or Toeplitz matrix (of size N + 1) associated with the convolution system.

b) The Hankel matrix. Now assume that u(k) = 0 for k > 0 or k < −N and let
   
u(0) y(0)
 u(−1)   y(1) 
U = ..  , Y =  ..  .
   
 .   . 
u(−N ) y(N )

Here U gives the past input to the system, and Y gives (a chunk of) the resulting future
output. Find the matrix H such that Y = HU . H is called the Hankel matrix (of size
N + 1) associated with the convolution system.

2.61. Matrix representation of polynomial differentiation. We can represent a polynomial


of degree less than n,

p(x) = an−1 xn−1 + an−2 xn−2 + · · · + a1 x + a0 ,

as the vector (a0 , a1 , . . . , an−1 ) ∈ Rn . Consider the linear transformation D that differentiates
polynomials, i.e., Dp = dp/dx. Find the matrix D that represents D (i.e., if the coefficients
of p are given by a, then the coefficients of dp/dx are given by Da).

2.70. Matrix representation of linear systems. Consider the (discrete-time) linear dynamical
system
x(t + 1) = A(t)x(t) + B(t)u(t), y(t) = C(t)x(t) + D(t)u(t).
Find a matrix G such that    
y(0) x(0)
 y(1)   u(0) 
..  = G .. .
   
. .

   
y(N ) u(N )
The matrix G shows how the output at t = 0, . . . , N depends on the initial state x(0) and the
sequence of inputs u(0), . . . , u(N ).

2.80. Some sparsity patterns.

a) A matrix A ∈ Rn×n is tridiagonal if Aij = 0 for |i − j| > 1. Draw a block diagram of


y = Ax for A tridiagonal.

b) Consider a certain linear mapping y = Ax with A ∈ Rm×n . For i odd, yi depends only
on xj for j even. Similarly, for i even, yi depends only on xj for j odd. Describe the
sparsity structure of A. Give the structure a reasonable, suggestive name.

10
2.90. Matrices and signal flow graphs.

a) Find A ∈ R2×2 such that y = Ax in the system below:

x1 2 y1

0.5

x2 + y2

b) Find B ∈ R2×2 such that z = Bx in the system below:

x1 2 2 2 2 z1

.5 .5 .5 .5

x2 + + + + z2

Do this two ways: first, by expressing the matrix B in terms of A from the previous part
(explaining why they are related as you claim); and second, by directly evaluating all
possible paths from each xj to each zi .

2.100. A mass subject to applied forces. Consider a unit mass subject to a time-varying force
f (t) for 0 ≤ t ≤ n. Let the initial position and velocity of the mass both be zero. Suppose
that the force has the form f (t) = xj for j − 1 ≤ t < j and j = 1, . . . , n. Let y1 and y2 denote,
respectively, the position and velocity of the mass at time t = n.

a) Find the matrix A ∈ R2×n such that y = Ax.

b) For n = 4, find a sequence of input forces x1 , . . . , xn that moves the mass to position 1
with velocity 0 at time n.

2.110. Counting paths in an undirected graph. Consider an undirected graph with n nodes,
and no self loops (i.e., all branches connect two different nodes). Let A ∈ Rn×n be the node
adjacency matrix, defined as
(
1 if there is a branch from node i to node j
Aij =
0 if there is no branch from node i to node j

Note that A = AT , and Aii = 0 since there are no self loops. We can intrepret Aij (which is
either zero or one) as the number of branches that connect node i to node j. Let B = Ak ,
where k ∈ Z, k ≥ 1. Give a simple interpretation of Bij in terms of the original graph. (You
might need to use the concept of a path of length m from node p to node q.)

11
2.120. Counting sequences in a language or code. We consider a language or code with an
alphabet of n symbols 1, 2, . . . , n. A sentence is a finite sequence of symbols, k1 , . . . , km where
ki ∈ {1, . . . , n}. A language or code consists of a set of sequences, which we will call the
allowable sequences. A language is called Markov if the allowed sequences can be described by
giving the allowable transitions between consecutive symbols. For each symbol we give a set
of symbols which are allowed to follow the symbol. As a simple example, consider a Markov
language with three symbols 1, 2, 3. Symbol 1 can be followed by 1 or 3; symbol 2 must be
followed by 3; and symbol 3 can be followed by 1 or 2. The sentence 1132313 is allowable
(i.e., in the language); the sentence 1132312 is not allowable (i.e., not in the language). To
describe the allowed symbol transitions we can define a matrix A ∈ Rn×n by
(
1 if symbol i is allowed to follow symbol j
Aij = .
0 if symbol i is not allowed to follow symbol j

a) Let B = Ar . Give an interpretation of Bij in terms of the language.

b) Consider the Markov language with five symbols 1, 2, 3, 4, 5, and the following transition
rules:

• 1 must be followed by 2 or 3
• 2 must be followed by 2 or 5
• 3 must be followed by 1
• 4 must be followed by 4 or 2 or 5
• 5 must be followed by 1 or 3

Find the total number of allowed sentences of length 10. Compare this number to the
simple code that consists of all sequences from the alphabet (i.e., all symbol transitions
are allowed). In addition to giving the answer, you must explain how you solve the
problem. Do not hesitate to use Julia.

2.130. Most common symbol in a given position. Consider (again) the following Markov
language. We have an alphabet of n symbols 1, 2, . . . , n. A sentence is a finite sequence of
symbols, k1 , . . . , km where ki ∈ {1, . . . , n}. A language or code consists of a set of sequences,
which we will call the allowable sequences. A language is called Markov if the allowed sequences
can be described by giving the allowable transitions between consecutive symbols. For each
symbol we give a set of symbols which are allowed to follow the symbol. As a simple example,
consider a Markov language with three symbols 1, 2, 3. Symbol 1 can be followed by 1 or
3; symbol 2 must be followed by 3; and symbol 3 can be followed by 1 or 2. The sentence
1132313 is allowable (i.e., in the language); the sentence 1132312 is not allowable (i.e., not in
the language). To describe the allowed symbol transitions we can define a matrix A ∈ Rn×n
by (
1 if symbol i is allowed to follow symbol j
Aij = .
0 if symbol i is not allowed to follow symbol j
There are five symbols 1, 2, 3, 4, 5, and the following symbol transition rules:
• 1 must be followed by 2 or 3

12
• 2 must be followed by 2 or 5

• 3 must be followed by 1

• 4 must be followed by 4 or 2 or 5

• 5 must be followed by 1 or 3

Among all allowed sequences of length 10, find the most common value for the seventh symbol.
In principle you could solve this problem by writing down all allowed sequences of length 10,
and counting how many of these have symbol i as the seventh symbol, for i = 1, . . . 5. (We’re
interested in the symbol for which this count is largest.) But we’d like you to use a smarter
approach. Explain clearly how you solve the problem, as well as giving the specific answer.
Hint: you may find the interpretation of Ak helpful.

2.140. Communication over a wireless network with time-slots. We consider a network with
n nodes, labeled 1, . . . , n. A directed graph shows which nodes can send messages (directly) to
which other nodes; specifically, an edge from node j to node i means that node j can transmit
a message directly to node i. Each edge is assigned to one of K time-slots, which are labeled
1, . . . , K. At time period t = 1, only the edges assigned to time-slot 1 can transmit a message;
at time period t = 2, only the edges assigned to time-slot 2 can transmit a message, and so
on. After time period t = K, the pattern repeats. At time period t = K + 1, the edges
assigned to time-slot 1 are again active; at t = K + 2, the edges assigned to time-slot 2 are
active, etc. This cycle repeats indefinitely: when t = mK + k, where m is an integer, and
k ∈ {1, . . . , K}, transmissions can occur only over edges assigned to time-slot k. Although it
doesn’t matter for the problem, we mention some reasons why the possible transmissions are
assigned to time-slots. Two possible transmissions are assigned to different time-slots if they
would interfere with each other, or if they would violate some limit (such as on the total power
available at a node) if the transmissions occurred simultaneously. A message or packet can
be sent from one node to another by a sequence of transmissions from node to node. At time
period t, the message can be sent across any edge that is active at period t. It is also possible
to store a message at a node during any time period, presumably for transmission during a
later period. If a message is sent from node j to node i in period t, then in period t + 1 the
message is at node i, and can be stored there, or transmitted across any edge emanating from
node i and active at time period t + 1. To make sure the terminology is clear, we consider the
very simple example shown below, with n = 4 nodes, and K = 3 time-slots.
k=2
1 2

k=3
k=1 k=1

4 3
k=2

In this example, we can send a message that starts in node 1 to node 3 as follows:

• During period t = 1 (time-slot k = 1), store it at node 1.

• During period t = 2 (time-slot k = 2), transmit it to node 2.

13
• During period t = 3 (time-slot k = 3), transmit it to node 4.
• During period t = 4 (time-slot k = 1), store it at node 4.
• During period t = 5 (time-slot k = 2), transmit it to node 3.
You can check that at each period, the transmission used is active, i.e., assigned to the
associated time-slot. The sequence of transmissions (and storing) described above gets the
message from node 1 to node 3 in 5 periods. Finally, the problem. We consider a specific
network with n = 20 nodes, and K = 3 time-slots, with edges and time-slot assignments given
in ts_data.m. The labeled graph that specifies the possible transmissions and the associated
time-slot assignments are given in a matrix A ∈ Rn×n , as follows:

k if transmission from node j to node i is allowed, and assigned to time-slot k




Aij = 0 if transmission from node j to node i is never allowed

0 i = j.

Note that we set Aii = 0 for convenience. This choice has no significance; you can store a
message at any node in any period. To illustrate this encoding of the graph, consider the
simple example described above. For this example, we have
 
0 0 0 1
2 0 1 0
Aexample =  0 0 0 2 .

0 3 0 0
The problems below concern the network described in the data file and not the simple example
given above.
a) Minimum-time point-to-point routing. Find the fastest way to get a message that starts
at node 5, to node 18. Give your solution as a prescription ordered in time from t = 1
to t = T (the last transmission), as in the example above. At each time period, give
the transmission (as in ‘transmit from node 7 to node 9’) or state that the message is
to be stored (as in ‘store at node 13’). Be sure that transmissions only occur during the
associated time-slots. You only need to give one prescription for getting the message
from node 5 to node 18 in minimum time.
b) Minimum time flooding. In this part of the problem, we assume that once the message
reaches a node, a copy is kept there, even when the message is transmitted to another
node. Thus, the message is available at the node to be transmitted along any active
edge emanating from that node, at any future period. Moreover, we allow multi-cast:
if during a time period there are multiple active edges emanating from a node that has
(a copy of) the message, then transmission can occur during that time period across all
(or any subset) of the active edges. In this part of the problem, we are interested in
getting a message that starts at a particular node, to all others, and we attach no cost
to storage or transmission, so there is no harm is assuming that at each time period,
every node that has the message forwards it to all nodes it is able to transmit to. What
is the minimum time it takes before all nodes have a message that starts at node 7?
For both parts of the problem, you must give the specific solution, as well as a description of
your approach and method.

14
2.150. Gradient of some common functions. Recall that the gradient of a differentiable function
f : Rn → R, at a point x ∈ Rn , is defined as the vector
 ∂f 
∂x1
∇f (x) =  ...  ,
 
∂f
∂xn

where the partial derivatives are evaluated at the point x. The first order Taylor approximation
of f , near x, is given by
fˆtay (z) = f (x) + ∇f (x)T (z − x).
This function is affine, i.e., a linear function plus a constant. For z near x, the Taylor
approximation fˆtay is very near f . Find the gradient of the following functions. Express
the gradients using matrix notation.
a) f (x) = aT x + b, where a ∈ Rn , b ∈ R.
b) f (x) = xT Ax, for A ∈ Rn×n .
c) f (x) = xT Ax, where A = AT ∈ Rn×n . (Yes, this is a special case of the previous one.)

2.160. Some matrices from signal processing. We consider x ∈ Rn as a signal, with xi the
(scalar) value of the signal at (discrete) time period i, for i = 1, . . . , n. Below we describe
several transformations of the signal x, that produce a new signal y (whose dimension varies).
For each one, find a matrix A for which y = Ax.
a) 2× up-conversion with linear interpolation. We take y ∈ R2n−1 . For i odd, yi = x(i+1)/2 .
For i even, yi = (xi/2 + xi/2+1 )/2. Roughly speaking, this operation doubles the sample
rate, inserting new samples in between the original ones using linear interpolation.
b) 2× down-sampling. We assume here that n is even, and take y ∈ Rn/2 , with yi = x2i .
c) 2× down-sampling with averaging. We assume here that n is even, and take y ∈ Rn/2 ,
with yi = (x2i−1 + x2i )/2.

2.170. Affine functions. A function f : Rn → Rm is called affine if for any x, y ∈ Rn and any
α, β ∈ R with α + β = 1, we have
f (αx + βy) = αf (x) + βf (y).
(Without the restriction α + β = 1, this would be the definition of linearity.)
a) Suppose that A ∈ Rm×n and b ∈ Rm . Show that the function f (x) = Ax + b is affine.
b) Now the converse: Show that any affine function f can be represented as f (x) = Ax + b,
for some A ∈ Rm×n and b ∈ Rm . (This representation is unique: for a given affine
function f there is only one A and one b for which f (x) = Ax + b for all x.)
Hint. Show that the function g(x) = f (x) − f (0) is linear.
You can think of an affine function as a linear function, plus an offset. In some contexts,
affine functions are (mistakenly, or informally) called linear, even though in general they are
not. (Example: y = mx + b is described as ‘linear’ in US high schools.)

15
2.180. Paths and cycles in a directed graph. We consider a directed graph with n nodes. The
graph is specified by its node adjacency matrix A ∈ Rn×n , defined as
(
1 if there is an edge from node j to node i
Aij =
0 otherwise.

Note that the edges are oriented, i.e., A34 = 1 means there is an edge from node 4 to node 3.
For simplicity we do not allow self-loops, i.e., Aii = 0 for all i, 1 ≤ i ≤ n. A simple example
illustrating this notation is shown below.

1 2

4 3

The node adjacency matrix for this example is


 
0 0 0 1
1 0 1 0
A= 0
.
1 0 0
0 0 1 0

In this example, nodes 2 and 3 are connected in both directions, i.e., there is an edge from 2
to 3 and also an edge from 3 to 2. A path of length l > 0 from node j to node i is a sequence
s0 = j, s1 , . . . , sl = i of nodes, with Ask+1 ,sk = 1 for k = 0, 1, . . . , l − 1. For example, in the
graph shown above, 1, 2, 3, 2 is a path of length 3. A cycle of length l is a path of length l,
with the same starting and ending node, with no repeated nodes other than the endpoints. In
other words, a cycle is a sequence of nodes of the form s0 , s1 , . . . , sl−1 , s0 , with

As1 ,s0 = 1, As2 ,s1 = 1, ... As0 ,sl−1 = 1,

and
si 6= sj for i 6= j, i, j = 0, . . . , l − 1.
For example, in the graph shown above, 1, 2, 3, 4, 1 is a cycle of length 4. The rest of this
problem concerns a specific graph, given in the file directed_graph.m on the course web site.
For each of the following questions, you must give the answer explicitly (for example, enclosed
in a box). You must also explain clearly how you arrived at your answer.

a) What is the length of a shortest cycle? (Shortest means minimum length.)

b) What is the length of a shortest path from node 13 to node 17? (If there are no paths
from node 13 to node 17, you can give the answer as ‘infinity’.)

c) What is the length of a shortest path from node 13 to node 17, that does not pass
through node 3?

16
d) What is the length of a shortest path from node 13 to node 17, that does pass through
node 9?

e) Among all paths of length 10 that start at node 5, find the most common ending node.

f) Among all paths of length 10 that end at node 8, find the most common starting node.

g) Among all paths of length 10, find the most common pair of starting and ending nodes.
In other words, find i, j which maximize the number of paths of length 10 from i to j.

2.190. Element-wise nonnegative matrix and inverse. Suppose a matrix A ∈ Rn×n , and its
inverse B, have all their elements nonnegative, i.e., Aij ≥ 0, Bij ≥ 0, for i, j = 1, . . . , n. What
can you say must be true of A and B? Please give your answer first, and then the justification.
Your solution (which includes what you can say about A and B, as well as your justification)
must be short.

2.200. Quadratic extrapolation of a time series. We are given a series z up to time t. Using
a quadratic model, we want to extrapolate, or predict, z(t + 1) based on the three previous
elements of the series, z(t), z(t − 1), and z(t − 2). We’ll denote the predicted value of z(t + 1)
by ẑ(t + 1). More precisely, you will find ẑ(t + 1) as follows.
a) Find the quadratic function f (τ ) = a2 τ 2 +a1 τ +a0 which satisfies f (t) = z(t), f (t−1) =
z(t−1), and f (t−2) = z(t−2). Then the extrapolated value is given by ẑ(t+1) = f (t+1).
Show that  
z(t)
ẑ(t + 1) = c  z(t − 1)  ,
z(t − 2)
where c ∈ R1×3 , and does not depend on t. In other words, the quadratic extrapolator
is a linear function. Find c explicitly.

b) Use the following Julia code to generate a time series z:

t = collect(1:1000);
z = 5*sin.(t/10 .+ 2) + 0.1 * sin.(t) + 0.1*sin.(2*t .- 5);

Use the quadratic extrapolation method from part (a) to find ẑ(t) for t = 4, . . . , 1000.
Find the relative root-mean-square (RMS) error, which is given by

(1/997) 1000 2 1/2


P !
j=4 (ẑ(j) − z(j))
.
(1/997) 1000 2
P
j=4 z(j)

2.210. Express the following statements in matrix language. You can assume that all ma-
trices mentioned have appropriate dimensions. Here is an example: “Every column of C is a
linear combination of the columns of B” can be expressed as “C = BF for some matrix F ”.
There can be several answers; one is good enough for us.
a) Suppose Z has n columns. For each i, row i of Z is a linear combination of rows i, . . . , n
of Y .

17
b) W is obtained from V by permuting adjacent odd and even columns (i.e., 1 and 2, 3
and 4, . . . ).

c) Each column of P makes an acute angle with each column of Q.

d) Each column of P makes an acute angle with the corresponding column of Q.

e) The first k columns of A are orthogonal to the remaining columns of A.

2.220. Norm inequalities. Show that ka + bk ≥ kak − kbk.

2.230. Population dynamics. An ecosystem consists of n species that interact (say, by eating
other species, eating each other’s food sources, eating each other’s predators, and so on). We
let x(t) ∈ Rn be the vector of deviations of the species populations (say, in thousands) from
some equilibrium values (which don’t matter here), in time period (say, month) t. In this
model, time will take on the discrete values t = 0, 1, 2, . . .. Thus x3 (4) < 0 means that the
population of species 3 in time period 4 is below its equilibrium level. (It does not mean the
population of species 3 is negative in time period 4.) The population (deviations) follows a
discrete-time linear dynamical system:

x(t + 1) = Ax(t).

We refer to x(0) as the initial population perturbation.


The questions below pertain to the specific case with n = 10 species, with matrix A given
in pop_dyn_data.json.

a) Suppose the initial perturbation is x(0) = e4 (meaning, we inject one thousand new
creatures of species 4 into the ecosystem at t = 0). How long will it take to affect the
other species populations? In other words, report a vector s, where si is the smallest t
for which xi (t) 6= 0. (We have s4 = 0).

b) Population control. We can choose any initial perturbation that satisfies |xi (0)| ≤ 1 for
each i = 1, . . . , 10. (We achieve this by introducing additional creatures and/or hunting
and fishing.) What initial perturbation x(0) would you choose in order to maximize
the population of species 1 at time t = 10? Explain your reasoning. Give the initial
perturbation, and using your selected initial perturbation, give x1 (10) and plot x1 (t)
versus t for t = 0, . . . , 40.

3.240. Price elasticity of demand. The demand for n different goods is a function of their prices:

q = f (p),

where p is the price vector, q is the demand vector, and f : Rn → Rn is the demand function.
The current price and demand are denoted p∗ and q ∗ , respectively. Now suppose there is a
small price change δp, so p = p∗ + δp. This induces a change in demand, to q ≈ q ∗ + δq, where

δq ≈ Df (p∗ )δp,

18
where Df is the derivative or Jacobian of f , with entries
∂fi ∗
Df (p∗ )ij = (p ).
∂pj
This is usually rewritten in term of the elasticity matrix E, with entries
∂fi ∗ 1/qi∗
Eij = (p ) ,
∂pj 1/p∗j

so Eij gives the relative change in demand for good i per relative change in price j. Defining
the vector y of relative demand changes, and the vector x of relative price changes,
δqi δpj
yi = , xj = ,
qi∗ p∗j

we have the linear model y = Ex.


Here are the questions:
a) What is a reasonable assumption about the diagonal elements Eii of the elasticity matrix?

b) Goods i and j are called substitutes if they provide a similar service or other satisfaction
(e.g., train tickets and bus tickets, cake and pie, etc.). They are called complements if
they tend to be used together (e.g., automobiles and gasoline, left and right shoes, etc.).
For each of these two generic situations, what can you say about Eij and Eji ?

c) Suppose the price elasticity of demand matrix for two goods is


 
−1 −1
E= .
−1 −1

Describe the nullspace of E, and give an interpretation (in one or two sentences). What
kind of goods could have such an elasticity matrix?

3.250. Color perception. Human color perception is based on the responses of three different types
of color light receptors, called cones. The three types of cones have different spectral-response
characteristics, and are called L, M, and, S because they respond mainly to long, medium,
and short wavelengths, respectively. In this problem we will divide the visible spectrum into
20 bands, and model the cones’ responses as follows:
20
X 20
X 20
X
Lcone = li pi , Mcone = mi pi , Scone = si pi ,
i=1 i=1 i=1

where pi is the incident power in the ith wavelength band, and li , mi and si are nonnegative
constants that describe the spectral responses of the different cones. The perceived color
is a complex function of the three cone responses, i.e., the vector (Lcone , Mcone , Scone ), with
different cone response vectors perceived as different colors. (Actual color perception is a bit
more complicated than this, but the basic idea is right.)
a) Metamers. When are two light spectra, p and p̃, visually indistinguishable? (Visually
identical lights with different spectral power compositions are called metamers.)

19
b) Visual color matching. In a color matching problem, an observer is shown a test light,
and is asked to change the intensities of three primary lights until the sum of the primary
lights looks like the test light. In other words, the observer is asked the find a spectrum
of the form
pmatch = a1 u + a2 v + a3 w,
where u, v, w are the spectra of the primary lights, and ai are the intensities to be
found, that is visually indistinguishable from a given test light spectrum ptest . Can this
always be done? Discuss briefly.

c) Visual matching with phosphors. A computer monitor has three phosphors, R, G, and
B. It is desired to adjust the phosphor intensities to create a color that looks like
a reference test light. Find weights that achieve the match or explain why no such
weights exist. The data for this problem is in color_perception_data.json, which con-
tains the vectors wavelength, B_phosphor, G_phosphor, R_phosphor, L_coefficients,
M_coefficients, S_coefficients, and test_light.

d) Effects of illumination. An object’s surface can be characterized by its reflectance (i.e.,


the fraction of light it reflects) for each band of wavelengths. If the object is illuminated
with a light spectrum characterized by Ii , and the reflectance of the object is ri (which is
between 0 and 1), then the reflected light spectrum is given by Ii ri , where i = 1, . . . , 20
denotes the wavelength band. Now consider two objects illuminated (at different times)
by two different light sources, say an incandescent bulb and sunlight. Sally argues that
if the two objects look identical when illuminated by a tungsten bulb, then they will
look identical when illuminated by sunlight. Beth disagrees: she says that two objects
can appear identical when illuminated by a tungsten bulb, but look different when lit by
sunlight. Who is right? If Sally is right, explain why. If Beth is right give an example
of two objects that appear identical under one light source and different under another.
You can use the vectors sunlight and tungsten defined in the data file as the light
sources.
Remark. Spectra, intensities, and reflectances are all nonnegative quantities, which the mate-
rial of EE263 doesn’t address. So just ignore this while doing this problem. These issues can
be handled using the material of EE364a, however.

3.260. Halfspace. Suppose a, b ∈ Rn are two given points. Show that the set of points in Rn that
are closer to a than b is a halfspace, i.e.:

{x | kx − ak ≤ kx − bk } = { x | cT x ≤ d}

for appropriate c ∈ Rn and d ∈ R. Give c and d explicitly, and draw a picture showing a, b,
c, and the halfspace.

3.270. Some properties of the product of two matrices. For each of the following statements,
either show that it is true, or give a (specific) counterexample.
• If AB is full rank then A and B are full rank.

• If A and B are full rank then AB is full rank.

20
• If A and B have zero nullspace, then so does AB.
• If A and B are onto, then so is AB.
You can assume that A ∈ Rm×n and B ∈ Rn×p . Some of the false statements above become
true under certain assumptions on the dimensions of A and B. As a trivial example, all of the
statements above are true when A and B are scalars, i.e., n = m = p = 1. For each of the
statements above, find conditions on n, m, and p that make them true. Try to find the most
general conditions you can. You can give your conditions as inequalities involving n, m, and
p, or you can use more informal language such as “A and B are both skinny.”

3.280. Rank of a product. Suppose that A ∈ R7×5 has rank 4, and B ∈ R5×7 has rank 3. What
values can rank(AB) possibly have? For each value r that is possible, give an example, i.e.,
a specific A and B with the dimensions and ranks given above, for which rank(AB) = r.
Please try to give simple examples, that make it easy for you to justify that the ranks of A, B,
and AB are what you claim they are. You can use matlab to verify the ranks, but we don’t
recommend it: numerical roundoff errors in matlab’s calculations can sometimes give errors
in computing the rank. (Matlab may still be useful; you just have to double check that the
ranks it finds are correct.) Explain briefly why the rank of AB must be one of the values you
give.

3.290. Linearizing range measurements. Consider a single (scalar) measurement y of the dis-
tance or range of x ∈ Rn to a fixed point or beacon at a, i.e., y = kx − ak.
a) Show that the linearized model near x0 can be expressed as δy = k T δx, where k is the
unit vector (i.e., with length one) pointing from a to x0 . Derive this analytically, and
also draw a picture (for n = 2) to demonstrate it.
b) Consider the error e of the linearized approximation, i.e.,
e = kx0 + δx − ak − kx0 − ak − k T δx.
The relative error of the approximation is given by η = e/kx0 − ak. We know, of course,
that the absolute value of the relative error is very small provided δx is small. In many
specific applications, it is possible and useful to make a stronger statement, for example,
to derive a bound on how large the error can be. You will do that here. In fact you will
prove that
α2
0≤η≤
2
where α = kδxk/kx0 − ak is the relative size of δx. For example, for a relative displace-
ment of α = 1%, we have η ≤ 0.00005, i.e., the linearized model is accurate to about
0.005%. To prove this bound you can proceed as follows:
• Show that η = −1 + 1 + α2 + 2β − β where β = k T δx/kx0 − ak.
p

• Verify that |β| ≤ α.


• Consider the function g(β) = −1 + 1 + α2 + 2β − β with |β| ≤ α. By maximizing
p

and minimizing g over the interval −α ≤ β ≤ α show that


α2
0≤η≤ .
2

21
3.300. Orthogonal complement of a subspace. If V is a subspace of Rn we define V ⊥ as the
set of vectors orthogonal to every element in V, i.e.,

V ⊥ = { x | hx, yi = 0, ∀y ∈ V } .

a) Verify that V ⊥ is a subspace of Rn .


b) Suppose V is described as the span of some vectors v1 , v2 , . . . , vr . Express V and V ⊥
in terms of the matrix V = v1 v2 · · · vr ∈ R n×r using common terms (range,


nullspace, transpose, etc.)


c) Show that every x ∈ Rn can be expressed uniquely as x = v + v ⊥ where v ∈ V, v ⊥ ∈ V ⊥ .
Hint: let v be the projection of x on V.
d) Show that dim V ⊥ + dim V = n.
e) Show that V ⊆ U implies U ⊥ ⊆ V ⊥ .

3.331. Proof of Cauchy-Schwarz inequality. You will prove the Cauchy-Schwarz inequality.

a) Suppose a ≥ 0, c ≥ 0, and for all λ ∈ R, a + 2bλ + cλ2 ≥ 0. Show that |b| ≤ ac.
b) Given v, w ∈ Rn explain why (v + λw)T (v + λw) ≥ 0 for all λ ∈ R.
c) Apply (a) to the quadratic resulting when the expression in (b) is expanded, to get the
Cauchy-Schwarz inequality: √ √
|v T w| ≤ v T v wT w.

d) When does equality hold?

3.340. Vector spaces over the Boolean field. In this course the scalar field, i.e., the components
of vectors, will usually be the real numbers, and sometimes the complex numbers. It is also
possible to consider vector spaces over other fields, for example Z2 , which consists of the two
numbers 0 and 1, with Boolean addition and multiplication (i.e., 1 + 1 = 0). Unlike R or
C, the field Z2 is finite, indeed, has only two elements. A vector in Zn2 is called a Boolean
vector. Much of the linear algebra for Rn and Cn carries over to Zn2 . For example, we define a
function f : Zn2 → Zm2 to be linear (over Z2 ) if f (x + y) = f (x) + f (y) and f (αx) = αf (x) for
every x, y ∈ Z2 and α ∈ Z2 . It is easy to show that every linear function can be expressed
n

as matrix multiplication, i.e., f (x) = Ax, where A ∈ Zm×n 2 is a Boolean matrix, and all the
operations in the matrix multiplication are Boolean, i.e., in Z2 . Concepts like nullspace, range,
independence and rank are all defined in the obvious way for vector spaces over Z2 . Although
we won’t consider them in this course, there are many important applications of vector spaces
and linear dynamical systems over Z2 . In this problem you will explore one simple example:
block codes. Linear block codes. Suppose x ∈ Zn2 is a Boolean vector we wish to transmit over
an unreliable channel. In a linear block code, the vector y = Gx is formed, where G ∈ Zm×n 2
is the coding matrix, and m > n. Note that the vector y is ‘redundant’; roughly speaking we
have coded an n-bit vector as a (larger) m-bit vector. This is called an (n, m) code. The coded
vector y is transmitted over the channel; the received signal ŷ is given by

ŷ = y + v,

22
where v is a noise vector (which usually is zero). This means that when vi = 0, the ith bit
is transmitted correctly; when vi = 1, the ith bit is changed during transmission. In a linear
decoder, the received signal is multiplied by another matrix: x̂ = H ŷ, where H ∈ Zn×m 2 . One
reasonable requirement is that if the transmission is perfect, i.e., v = 0, then the decoding is
perfect, i.e., x̂ = x. This holds if and only if H is a left inverse of G, i.e., HG = In , which we
assume to be the case.

a) What is the practical significance of range(G)?

b) What is the practical significance of null(H)?

c) A one-bit error correcting code has the property that for any noise v with one component
equal to one, we still have x̂ = x. Consider n = 3. Either design a one-bit error
correcting linear block code with the smallest possible m, or explain why it cannot be
done. (By design we mean, give G and H explicitly and verify that they have the
required properties.)

Remark: linear decoders are never used in practice; there are far better nonlinear ones.

3.350. Right inverses. This problem concerns the specific matrix


 
−1 0 0 −1 1
A= 0 1 1 0 0 .
1 0 0 1 0

This matrix is full rank (i.e., its rank is 3), so there exists at least one right inverse. In fact,
there are many right inverses of A, which opens the possibility that we can seek right inverses
that in addition have other properties. For each of the cases below, either find a specific matrix
B ∈ R5×3 that satisfies AB = I and the given property, or explain why there is no such B.
In cases where there is a right inverse B with the required property, you must briefly explain
how you found your B. You must also attach a printout of some Julia scripts that show the
verification that AB = I. (We’ll be very angry if we have to type in your 5 × 3 matrix into
matlab to check it.) When there is no right inverse with the given property, briefly explain
why there is no such B.

a) The second row of B is zero.

b) The nullspace of B has dimension one.

c) The third column of B is zero.

d) The second and third rows of B are the same.

e) B is upper triangular, i.e., Bij = 0 for i > j.

f) B is lower triangular, i.e., Bij = 0 for i < j.

23
3.360. Nonlinear unbiased estimators. We consider the standard measurement setup:

y = Ax + v,

where A ∈ Rm×n , x ∈ Rn is the vector of parameters we wish to estimate, y ∈ Rm is the vector


of measurements we take, and v ∈ Rm is the vector of measurement errors and noise. You
may not assume anything about the dimensions of A, its rank, nullspace, etc. If the function
f : Rm → Rn satisfies f (Ax) = x for all x ∈ Rn , then we say that f is an unbiased estimator
(of x, given y). What this means is that if f is applied to our measurement vector, and
v = 0, then f returns the true parameter value x. In EE263 we have studied linear unbiased
estimators, which are unbiased estimators that are also linear functions. Here, though, we
allow the possibility that f is nonlinear (which we take to mean, f is not linear). One of the
following statements is true. Pick the statement that is true, and justify it completely. You
can quote any result given in the lecture notes.

A. There is no such thing as a nonlinear unbiased estimator. In other words, if f is any


unbiased estimator, then f must be a linear function. (This statement is taken to be
true if there are no unbiased estimators for a particular A.) If you believe this statement,
explain why.

B. Nonlinear unbiased estimators do exist, but you don’t need them. In other words: it’s
possible to have a nonlinear unbiased estimator. But whenever there is a nonlinear un-
biased estimator, there is also a linear unbiased estimator. If you believe this statement,
then give a specific example of a matrix A, and an unbiased nonlinear estimator. Explain
in the general case why a linear unbiased estimator exists whenever there is a nonlinear
one.

C. There are cases for which nonlinear unbiased estimators exist, but no linear unbiased
estimator exists. If you believe this statement, give a specific example of a matrix A,
and a nonlinear unbiased estimator, and also explain why no linear unbiased estimator
exists.

3.370. Channel equalizer with disturbance rejection. A communication channel is described


by y = Ax + v where x ∈ Rn is the (unknown) transmitted signal, y ∈ Rm is the (known)
received signal, v ∈ Rm is the (unknown) disturbance signal, and A ∈ Rm×n describes the
(known) channel. The disturbance v is known to be a linear combination of some (known)
disturbance patterns,
d1 , . . . , dk ∈ Rm .
We consider linear equalizers for the channel, which have the form x̂ = By, where B ∈ Rn×m .
(We’ll refer to the matrix B as the equalizer; more precisely, you might say that Bij are the
equalizer coefficients.) We say the equalizer B rejects the disturbance pattern di if x̂ = x,
no matter what x is, when v = di . If the equalizer rejects a set of disturbance patterns, for
example, disturbances d1 , d3 , and d7 (say), then it can reconstruct the transmitted signal
exactly, when the disturbance v is any linear combination of d1 , d3 , and d7 . Here is the
problem. For the problem data given in cedr_data.m, find an equalizer B that rejects as
many disturbance patterns as possible. (The disturbance patterns are given as an m × k
matrix D, whose columns are the individual disturbance patterns.) Give the specific set of

24
disturbance patterns that your equalizer rejects, as in ‘My equalizer rejects three disturbance
patterns: d2 , d3 , and d6 .’ (We only need one set of disturbances of the maximum size.)
Explain how you know that there is no equalizer that rejects more disturbance patterns than
yours does. Show the matlab verification that your B does indeed reconstruct x, and rejects
the disturbance patterns you claim it does. Show any other calculations needed to verify that
your equalizer rejects the maximum number of patterns possible.

3.390. Some true/false questions. Determine if the following statements are true or false. No
justification or discussion is needed for your answers. What we mean by “true” is that the
statement is true for all values of the matrices and vectors given. You can’t assume anything
about the dimensions of the matrices (unless it’s explicitly stated), but you can assume that
the dimensions are such that all expressions make sense. For example, the statement “A+B =
B + A” is true, because no matter what the dimensions of A and B (which must, however,
be the same), and no matter what values A and B have, the statement holds. As another
example, the statement A2 = A is false, because there are (square) matrices for which this
doesn’t hold. (There are also matrices for which it does hold, e.g., an identity matrix. But
that doesn’t make the statement true.)

a) If all coefficients (i.e., entries) of the matrix A are positive, then A is full rank.

b) If A and B are onto, then A + B must be onto.


 
A C
c) If A and B are onto, then so is the matrix .
0 B
 
A
d) If A and B are onto, then so is the matrix .
B
 
A
e) If the matrix is onto, then so are the matrices A and B.
B
 
A
f) If A is full rank and skinny, then so is the matrix .
B

3.400. Some true/false questions. Determine if the following statements are true or false. What
we mean by “true” is that the statement is true for all values of the matrices and vectors
given. (You can assume the entries of the matrices and vectors are all real.) You can’t
assume anything about the dimensions of the matrices (unless it’s explicitly stated), but you
can assume that the dimensions are such that all expressions make sense. For example, the
statement “A + B = B + A” is true, because no matter what the dimensions of A and B
(which must, however, be the same), and no matter what values A and B have, the statement
holds. As another example, the statement A2 = A is false, because there are (square) matrices
for which this doesn’t hold. (There are also matrices for which it does hold, e.g., an identity
matrix. But that doesn’t make the statement true.)

a) If all coefficients (i.e., entries) of the matrices A and B are nonnegative, and both A and
B are onto, then A + B is onto.

25
 
A
b) null  A + B  = null(A) ∩ null(B) ∩ null(C).
A+B+C
 
A
c) null  AB  = null(A) ∩ null(B) ∩ null(C).
ABC

d) null(B T AT AB + B T B) = null(B).
 
A 0
e) If is full rank, then so are the matrices A and B.
0 B

f) If A 0 is onto, then A is full rank.


 

g) If A2 is onto, then A is onto.

h) If AT A is onto, then A is onto.

i) Suppose u1 , . . . , uk ∈ Rn are nonzero vectors such that uT i uj ≥ 0 for all i, j. Then the
vectors are nonnegative independent, which means if α 1 , . . . , αk ∈ R are nonnegative
scalars, and ki=1 αi ui = 0, then αi = 0 for i = 1, . . . , k.
P

j) Suppose A ∈ Rn×k and B ∈ Rn×m are skinny, full rank matrices that satisfy AT B = 0.
Then [A B] is skinny and full rank.

3.410. Temperatures in a multi-core processor. We are concerned with the temperature of a


processor at two critical locations. These temperatures, denoted T = (T1 , T2 ) (in degrees C),
are affine functions of the power dissipated by three processor cores, denoted P = (P1 , P2 , P3 )
(in W). We make 4 measurements. In the first, all cores are idling, and dissipate 10W. In
the next three measurements, one of the processors is set to full power, 100W, and the other
two are idling. In each experiment we measure and note the temperatures at the two critical
locations.

P1 P2 P3 T1 T2
10W 10W 10W 27◦ 29◦
100W 10W 10W 45◦ 37◦
10W 100W 10W 41◦ 49◦
10W 10W 100W 35◦ 55◦

Suppose we operate all cores at the same power, p. How large can we make p, without T1 or
T2 exceeding 70◦ ?
You must fully explain your reasoning and method, in addition to providing the numerical
solution.

26
3.420. Relative deviation between vectors. Suppose a and b are nonzero vectors of the same
size. The relative deviation of b from a is defined as the distance between a and b, divided by
the norm of a,
ka − bk
ηab = .
kak
This is often expressed as a percentage. The relative deviation is not a symmetric function of
a and b; in general, ηab 6= ηba .
Suppose ηab = 0.1 (i.e., 10%). How big and how small can be ηba be? How big and how
small can ∠(a, b) be? Explain your reasoning. For bounding ∠(a, b), you can just draw some
pictures; you don’t have to give a formal argument.

3.430. Single sensor failure detection and identification. We have y = Ax, where A ∈ Rm×n
is known, and x ∈ Rn is to be found. Unfortunately, up to one sensor may have failed (but
you don’t know which one has failed, or even whether any has failed). You are given ỹ and
not y, where ỹ is the same as y in all entries except, possibly, one (say, the kth entry). If all
sensors are operating correctly, we have y = ỹ. If the kth sensor fails, we have ỹi = yi for all
i 6= k.
The file one_bad_sensor.m, available on the course web site, defines A and ỹ (as A and
ytilde). Determine which sensor has failed (or if no sensors have failed). You must explain
your method, and submit your code.
For this exercise, you can use the matlab code rank([F g])==rank(F) to check if g ∈
range(F ). (We will see later a much better way to check if g ∈ range(F ).)

3.440. Vector space multiple access (VSMA). We consider a system of k transmitter-receiver


pairs that share a common medium. The goal is for transmitter i to transmit a vector signal
xi ∈ Rni to the ith receiver, without interference from the other transmitters. All receivers
have access to the same signal y ∈ Rm , which includes the signals of all transmitters, according
to
y = A1 x1 + · · · + Ak xk ,
where Ai ∈ Rm×ni . You can assume that the matrices Ai are skinny, i.e., m ≥ ni for
i = 1, . . . , k. (You can also assume that ni > 0 and Ai 6= 0, for i = 1, . . . , k.) Since the k
transmitters all share the same m-dimensional vector space, we call this vector space multiple
access. Each receiver knows the received signal y, and the matrices A1 , . . . , Ak .
We say that the ith signal is decodable if the ith receiver can determine the value of xi , no
matter what values x1 , . . . , xk have. Roughly speaking, this means that receiver i can process
the received signal so as to perfectly recover the ith transmitted signal, while rejecting any
interference from the other signals x1 , . . . , xi−1 , xi+1 , . . . , xk . Whether or not the ith signal is
decodable depends, of course, on the matrices A1 , . . . , Ak .
Here are four statements about decodability:

a) Each of the signals x1 , . . . , xk is decodable.

b) The signal x1 is decodable.

c) The signals x2 , . . . , xk are decodable, but x1 isn’t.

27
d) The signals x2 , . . . , xk are decodable when x1 is 0.
For each of these statements, you are to give the exact (i.e., necessary and sufficient) conditions
under which the statement holds, in terms of A1 , . . . , Ak and n1 , . . . , nk . Each answer, however,
must have a very specific form: it must consist of a conjunction of one or more of the following
properties:
I. rank(A1 ) < n1 .
II. rank([A2 · · · Ak ]) = n2 + · · · + nk .
III. rank([A1 · · · Ak ]) = n1 + rank([A2 · · · Ak ]).
IV. rank([A1 · · · Ak ]) = rank(A1 ) + rank([A2 · · · Ak ]).
As examples, possible answers (for each statement) could be “I” or “I and II”, or “I and II and
IV”. For some statements, there may be more than one correct answer; we will accept any
correct one.
You can also give the response “My attorney has advised me not to respond to this question
at this time.” This response will receive partial credit.
For (just) this problem, we want only your answers. We do not want, and will not read,
any further explanation or elaboration, or any other type of answers.

3.450. Minimum distance and maximum correlation decoding. We consider a simple com-
munication system, in which a sender transmits one of N possible signals to a receiver, which
receives a version of the signal sent that is corrupted by noise. Based on the corrupted re-
ceived signal, the receiver has to estimate or guess which of the N signals was sent. We will
represent the signals by vectors in Rn . We will denote the possible signals as a1 , . . . , aN ∈ Rn .
These signals, which collectively are called the signal constellation, are known to both the
transmitter and receiver. When the signal ak is sent, the received signal is arecd = ak + v,
where v ∈ Rn is (channel or transmission) noise. In a communications course, the noise v is
described by a statistical model, but here we’ll just assume that it is ‘small’ (and in any case,
it does not matter for the problem). The receiver must make a guess or estimate as to which
of the signals was sent, based on the received signal arecd . There are many ways to do this,
but in this problem we explore two methods.
• Minimum distance decoding. Choose as the estimate of the decoded signal the one in the
constellation that is closest to what is received, i.e., choose ak that minimizes karecd −ai k.
For example, if we have N = 3 and

karecd − a1 k = 2.2, karecd − a2 k = 0.3, karecd − a3 k = 1.1,

then the minimum distance decoder would guess that the signal a2 was sent.
• Maximum correlation decoding. Choose as the estimate of the decoded signal the one in
the constellation that has the largest inner product with the received signal, i.e., choose
ak that maximizes aT recd ai . For example, if we have N = 3 and

aT
recd a1 = −1.1, aT
recd a2 = 0.2, aT
recd a3 = 1.0,

then the maximum correlation decoder would guess that the signal a3 was sent.

28
For both methods, let’s not worry about breaking ties. You can just assume that ties never
occur; one of the signals is always closest to, or has maximum inner product with, the received
signal. Give some general conditions on the constellation (i.e., the set of vectors a1 , . . . , aN )
under which these two decoding methods are the same. By ‘same’ we mean this: for any
received signal arecd , the decoded signal for the two methods is the same. Give the simplest
condition you can. You must show how the decoding schemes always give the same answer,
when your conditions hold. Also, give a specific counterexample, for which your conditions
don’t hold, and the methods differ. (We are not asking you to show that when your conditions
don’t hold, the two decoding schemes differ for some received signal.) You might want to
check simple cases like n = 1 (scalar signals), N = 2 (only two messages in the constellation),
or draw some pictures. But then again, you might not.

3.460. Reverse engineering a smoothing filter. A smoothing filter takes an input vector u ∈ Rn
and produces an output vector y ∈ Rn . (We will assume that n ≥ 3.) The output y is obtained
as the minimizer of the objective

J = J track + λJ norm + µJ cont + κJ smooth ,

where λ, µ, and κ are positive constants (weights), and


n
X n
X
2
J track
= (ui − yi ) , J norm
= yi2
i=1 i=1

are the tracking error and norm-squared of y, respectively, and


n
X n−1
X
J cont = (yi − yi−1 )2 , J smooth = (yi+1 − 2yi + yi−1 )2
i=2 i=2

are measures of the continuity and smoothness of y, respectively.


Here is the problem: You have access to one input-output pair, i.e., an input u, and the
associated output y. Your goal is to find the weights λ, µ, and κ. In other words, you will
reverse engineer the smoothing filter, working from an input-output pair.

a) Explain how to find λ, µ, and κ. (You do not need to worry about ensuring that these
are positive; you can assume this will occur automatically.)

b) Carry out your method on the data found in rev_eng_smooth_data.m. Give the values
of the weights.

3.470. Flux balance analysis in systems biology. Flux balance analysis is based on a very
simple model of the reactions going on in a cell, keeping track only of the gross conservation
of various chemical species (metabolites) within the cell.
We focus on m metabolites in a cell, labeled M1 , . . . , Mm . There are n (reversible) reactions
going on, labeled R1 , . . . , Rn , with reaction rates v1 , . . . , vn ∈ R. A positive value of vi means
the reaction proceeds in the given direction, while a negative value of vi means the reaction
proceeds in the reverse direction. Each reaction has a (known) stoichiometry, which tells us
the rate of consumption and production of the metabolites per unit of reaction rate. The

29
stoichiometry data is given by the stoichiometry matrix S ∈ Rm×n , defined as follows: Sij is
the rate of production of Mi due to unit reaction rate vj = 1. Here we consider consumption
of a metabolite as negative production; so Sij = −2, for example, means that reaction Rj
causes metabolite Mi to be consumed at a rate 2vj . If vj is negative, then metabolite Mi is
produced at the rate 2|vj |.
As an example, suppose reaction R1 has the form M1 → M2 + 2M3 . The consumption rate
of M1 , due to this reaction, is v1 ; the production rate of M2 is v1 ; and the production rate of
M3 is 2v1 . (The reaction R1 has no effect on metabolites M4 , . . . , Mm .) This corresponds to
a first column of S of the form (−1, 1, 2, 0, . . . , 0).
Reactions are also used to model flow of metabolites into and out of the cell. For example,
suppose that reaction R2 corresponds to the flow of metabolite M1 into the cell, with v2 giving
the flow rate. (When v2 < 0, it means that |v2 | is the flow rate of the metabolite out of the
cell.) This corresponds to a second column of S of the form (1, 0, . . . , 0).
The last reaction, Rn , corresponds to biomass creation, or cell growth, so the reaction rate
vn is the cell growth rate. The last column of S gives the amounts of metabolites used (when
the entry is negative) or created (when positive) per unit of cell growth rate.
Since our reactions include metabolites entering or leaving the cell, as well as those con-
verted to biomass within the cell, we have conservation of the metabolites, which can be
expressed as the flux balance equation Sv = 0.
Finally, we consider the effect of knocking out a gene. For simplicity, we’ll assume that
reactions 1, . . . , n − 1 are each controlled by an associated gene, i.e., gene Gk controls reaction
Rk . Knocking out Gk has the effect of setting the associated reaction rate to zero.
Finally, we get to the point of all this. Suppose there is no v ∈ Rn that satisfies

Sv = 0, vk = 0, vn > 0.

This means there are no reaction rates consistent with cell growth, flux balance, and the gene
knockout. In this case, we predict that knocking out gene Gk will kill the cell, and call gene
Gk an essential gene.

a) Explain how to find all essential genes, given the stoichiometry matrix S. You can use
any concepts from the class, e.g., range, nullspace, least-squares.

b) Carry out your method for the problem data given in flux_balance_bio_data.m. List
all essential genes.

Remark. This is a very simple version of the problem. In EE364a, you’ll see more sophisticated
versions of the same problem, that incorporate lower and upper limits on reactions rates and
other realistic constraints.

3.480. Memory of a linear time-invariant system. An input signal (sequence) ut ∈ R, t ∈ Z


(i.e., t = . . . , −1, 0, 1, . . .) and output signal yt ∈ R, t ∈ Z, are related by a convolution
operator
M
X
yt = hτ ut−τ , t ∈ Z,
τ =1

30
where h = (h1 , . . . , hM ) are the impulse response coefficients of the convolution system. (Con-
volution systems are also called linear time-invariant systems.) When hM 6= 0, the integer M
is called the memory of the system.
Now for the problem. You are given the input and output signal values over a time interval
t = 1, . . . , T :
(u1 , . . . , uT ), (y1 , . . . , yT ).
The goal is to find the smallest memory M consistent with this data. Note that you do not
know uτ or yτ for τ ≤ 0 or τ > T , and of course, you do not know h.

a) Explain how to solve this problem, using any concepts from the course. You may assume
that T > 2M .

b) Use your method from part (a) on the data found in lti_memory_data.json. Give the
value of M found.

3.490. Layered medium. In this problem we consider a generic model for (incoherent) transmission
in a layered medium. The medium is modeled as a set of n layers, separated by n dividing
interfaces, shown as shaded rectangles in the figure below.

x1 x2 x3 x4 xn−1 xn

y1 y2 y3 y4 yn−1 yn

interface i = 1 2 3 n−1 n

We let xi ∈ R denote the right-traveling wave amplitude in layer i, and we let yi ∈ R denote
the left-traveling wave amplitude in layer i, for i = 1, . . . , n. The right-traveling wave in the
first layer is called the incident wave, and the left-traveling wave in the first layer is called the
reflected wave. The scattering coefficient for the medium is defined as the ratio S = y1 /x1
(assuming x1 6= 0).
The right- and left-traveling waves on each side of an interface are related by transmission
and reflection. The right-traveling wave of amplitude xi contributes the amplitude ti xi to
xi+1 , where ti ∈ [0, 1] is the transmission coefficient of the ith interface. It also contributes
the amplitude ri xi to yi , the left-traveling wave, where ri ∈ [0, 1] is the reflection coefficient of
the ith interface. We will assume that the interfaces are symmetric, so the left-traveling wave
with amplitude yi+1 contributes the wave amplitude ti yi+1 to yi (via transmission) and wave
amplitude ri yi+1 to xi+1 (via reflection). Thus we have

xi+1 = ti xi + ri yi+1 , yi = ri xi + ti yi+1 , i = 1, 2, . . . , n − 1.

We model the last interface as totally reflective, which means that yn = xn .

a) Explain how to find the scattering coefficient S, given the transmission and reflection
coefficients for the first n − 1 layers.

31
b) Carry out your method for a medium with n = 20 layers, and ti = 0.96, ri = 0.02 for
i = 1, . . . , n − 1. Plot the left- and right-traveling wave amplitudes xi , yi versus i, and
report the value of S you find.
Hint: You may find the matlab function diag(x,k) useful.

c) Fault location. A fault in interface k results in a reversal: tk = 0.02, rk = 0.96, with


all other interfaces having their nominal values ti = 0.96, ri = 0.02. You measure the
scattering coefficient S = S fault with the fault (but you don’t have access to the left- or
right-traveling waves with the faulted interface). Explain how to find which interface is
faulted. Carry out your method with S fault = 0.70. You may assume that the last (fully
reflective) interface is not faulty. Be sure to give the value of k that is most consistent
with the measurement.

3.500. Digital circuit gate sizing. A digital circuit consists of a set of n (logic) gates, intercon-
nected by wires. Each gate has one or more inputs (typically between one and four), and one
output, which is connected via the wires to other gate inputs and possibly to some external
circuitry. When the output of gate i is connected to an input of gate j, we say that gate i
drives gate j, or that gate j is in the fan-out of gate i. We describe the topology of the circuit
by the fan-out list for each gate, which tells us which other gates the output of a gate connects
to. We denote the fan-out list of gate i as FO(i) ⊆ {1, . . . , n}. We can have FO(i) = ∅,
which means that the output of gate i does not connect to the inputs of any of the gates
1, . . . , n (presumably the output of gate i connects to some external circuitry). It’s common
to order the gates in such a way that each gate only drives gates with higher indices, i.e., we
have FO(i) ⊆ {i + 1, . . . , n}. We’ll assume that’s the case here. (This means that the gate
interconnections form a directed acyclic graph.)
To illustrate the notation, a simple digital circuit with n = 4 gates, each with 2 inputs, is
shown below. For this circuit we have

FO(1) = {3, 4}, FO(2) = {3}, FO(3) = ∅, FO(4) = ∅.

1
3

2
4

The 3 input signals arriving from the left are called primary inputs, and the 3 output signals
emerging from the right are called primary outputs of the circuit. (You don’t need to know
this, however, to solve this problem.)
Each gate has a (real) scale factor or size xi . These scale factors are the design variables
in the gate sizing problem. They must satisfy 1 ≤ xi ≤ xmax , where xmax is a given maximum
allowed gate scale factor (typically on the order of 100). The total area of the circuit has the

32
form
n
X
A= ai xi ,
i=1
where ai are positive constants.
Each gate has an input capacitance Ciin , which depends on the scale factor xi as

Ciin = αi xi ,

where αi are positive constants.


Each gate has a delay di , which is given by

di = βi + γi Ciload /xi ,

where βi and γi are positive constants, and Ciload is the load capacitance of gate i. Note that
the gate delay di is always larger than βi , which can be intepreted as the minimum possible
delay of gate i, achieved only in the limit as the gate scale factor becomes large.
The load capacitance of gate i is given by
X
Ciload = Ciext + Cjin ,
j∈FO(i)

where Ciext is a positive constant that accounts for the capacitance of the interconnect wires
and external circuitry.
We will follow a simple design method, which assigns an equal delay T to all gates in the
circuit, i.e., we have di = T , where T > 0 is given. For a given value of T , there may or may
not exist a feasible design (i.e., a choice of the xi , with 1 ≤ xi ≤ xmax ) that yields di = T for
i = 1, . . . , n. We can assume, of course, that T > maxi βi , i.e., T is larger than the largest
minimum delay of the gates.
Finally, we get to the problem.

a) Explain how to find a design x? ∈ Rn that minimizes T , subject to a given area constraint
A ≤ Amax . You can assume the fanout lists, and all constants in the problem description
are known; your job is to find the scale factors xi . Be sure to explain how you determine
if the design problem is feasible, i.e., whether or not there is an x that gives di = T ,
with 1 ≤ xi ≤ xmax , and A ≤ Amax .
Your method can involve any of the methods or concepts we have seen so far in the
course. It can also involve a simple search procedure, e.g., trying (many) different values
of T over a range.
Note: this problem concerns the general case, and not the simple example shown above.

b) Carry out your method on the particular circuit with data given in the file gate_sizing_data.json
The fan-out lists are given as an n × n matrix F, with i, j entry one if j ∈ FO(i), and
zero otherwise. In other words, the ith row of F gives the fanout of gate i. The jth entry
in the ith row is 1 if gate j is in the fan-out of gate i, and 0 otherwise.

Comment. You do not need to know anything about digital circuits; everything you need to
know is stated above.

33
3.510. Interpolation with rational functions.. Consider a function f : R → R of the form
a0 + a1 x + · · · + am xm
f (x) = ,
1 + b1 x + · · · + bm xm
where a0 , . . . , am and b1 , . . . , bm are parameters, with either am 6= 0 or bm 6= 0. Such a
function is called a rational function of degree m. We are given data points x1 , . . . , xN ∈ R,
and y1 , . . . , yN ∈ R, where yi = f (xi ).
a) Explain how to find a rational function of smallest degree that is consistent with the
data: that is, explain how to find the smallest value of m, and corresponding values of
a0 , . . . , am , and b1 , . . . , bm such that f (xi ) = yi for i = 1, . . . , N .
b) Carry out your method on the data in rational_interpolation_data.m. Report your
value of m, and the corresponding coefficients a0 , . . . , am , and b1 , . . . , bm . Plot the data
and the rational function f (x). Verify that yi = f (xi ) for i = 1, . . . , N (possibly with
small numerical errors).

3.520. Transmit powers in a wireless network. We consider a network of n transmitter/receiver


pairs. Transmitter i transmits at power level pi , which must satisfy 0 ≤ pi ≤ P max , where
P max is a given maximum transmitter power (which is the same for all transmitters). The path
gain from transmitter j to receiver i is Gij (which are all nonnegative, and Gii are positive).
The signal power at receiver i is given by si = Gii pi . The noise plus interference power at
receiver i is given by X
qi = σ + Gij pj
j6=i

where σ > 0 is the self-noise power of the receivers (assumed to be the same for all receivers).
The signal to interference plus noise ratio (SINR) at receiver i is defined as Si = si /qi .
a) Explain how to determine if there is a power allocation (i.e., a vector p) that satisfies
the constraints 0 ≤ pi ≤ P max and achieves Si = S target for i = 1, . . . , n, where S target is
a (positive) target value of SINR. Explain how to find such a power allocation when it
exists. You can assume that a matrix appearing in your analysis is full rank, but please
make this assumption explicit.
b) Among the SINR target values S target = 2, 2.1, 2.2, . . . , 3.9, 4, find the largest for which
there is a power allocation that satisfies the constraints 0 ≤ pi ≤ P max and achieves
Si = S target for i = 1, . . . , n, for the problem data
 
1 .2 .1
G =  .1 2 .1  , σ = 0.01, P max = 0.1.
.3 .1 3

Remarks.
• Yes, this problem includes constraints on p (i.e., that its entries are nonnegative and no
more than P max ), which we have not covered in EE263. Still, you can solve it (with
material we have covered).
• If you solve this problem using methods that are more advanced or complicated than
needed, we will deduct points.

34
3.530. Checking some range and nullspace conditions. Explain how to determine whether or
not the following statements hold:

a) range(A) = range(B).

b) range(A) ⊥ range(B).

c) range(A) ∩ range(B) = {0}.

d) range(C) ⊆ null(B).

The matrices have dimensions A ∈ Rm×n , B ∈ Rm×p , C ∈ Rp×m .


Your answer can involve standard matrix operations on the matrices above, such as addi-
tion, multiplication, transposition, concatenation (i.e., building block matrices), and inversion,
as well as a function rank(X), that gives the rank of a matrix X, and det(X), which gives the
determinant of a (square) matrix X.
For example, you might assert that (a) holds if and only if rank([A B]) = m. (This is not
correct; it’s just an example of what your answer might look like.)
You do not need to give a proof or long justification that your conditions are correct; a
short one or two sentence explanation for each statement is fine. Points will be deducted from
correct answers that are substantially longer than they need to be, or are confusing (to us).

3.540. Sparse solution of underdetermined equations. Suppose that y = Ax, where A ∈


Rm×n , with m < n (so these equations are underdetermined). You are given A and y, but not
x. Without any further assumptions, you cannot determine x. But now we add the additional
information that x has k < n nonzero entries. You are told k, the number of nonzero entries
in x, but not the particular indices of the entries of x that are nonzero. In some cases, it is
possible to determine x (given the additional information that it has k nonzeros), even though
the linear equations are underdetermined. (This is a basic problem in a fascinating area of
current research called compressed sensing, compressive sampling, and several other names.
Of course, you don’t need to know any of this research to solve this problem.)
Now consider the specific case with A, y, and k given in the file underdet_sparse_data.m.
Choose one of the following.

a) You can’t find x. To show this, find x and x̃, not the same, each with k nonzero entries,
which satisfy y = Ax = Ax̃.

b) You can find x. Find x, and verify that it satisfies y = Ax, and has k nonzero entries.
Explain how you know that there is no other x̃, with k nonzero entries, that satisfies
y = Ax.

In either case, give the code that you use to verify that the required property holds (and in
the second case, that the x you found is the only one).
Your solution to either problem can use any of the concepts and methods we have covered in
the class so far: QR factorization, rank, range, nullspace, least-squares approximate solutions,
and so on. Your solution can involve a loop or loops over a finite (and possibly large) number
of calculations involving the ideas above.

35
4.560. Bessel’s inequality. Suppose the columns of U ∈ Rn×k are orthonormal. Show that
kU T xk ≤ kxk. When do we have kU T xk = kxk?

4.570. Orthogonal matrices.

a) Show that if U and V are orthogonal, then so is U V .

b) Show that if U is orthogonal, then so is U −1 .

c) Suppose that U ∈ R2×2 is orthogonal. Show that U is either a rotation or a reflection.


Make clear how you decide whether a given orthogonal U is a rotation or reflection.

4.580. Projection matrices. A matrix P ∈ Rn×n is called a projection matrix if P = P T and


P2 = P.

a) Show that if P is a projection matrix then so is I − P .

b) Suppose that the columns of U ∈ Rn×k are orthonormal. Show that U U T is a projection
matrix. (Later we will show that the converse is true: every projection matrix can be
expressed as U U T for some U with orthonormal columns.)

c) Suppose A ∈ Rn×k is full rank, with k ≤ n. Show that A(AT A)−1 AT is a projection
matrix.

d) If S ⊆ Rn and x ∈ Rn , the point y in S closest to x is called the projection of x on S.


Show that if P is a projection matrix, then y = P x is the projection of x on range(P ).
(Which is why such matrices are called projection matrices . . . )

4.590. Reflection through a hyperplane. Find the matrix R ∈ Rn×n such that reflection of x
through the hyperplane {z | aT z = 0} (with a 6= 0) is given by Rx. Verify that the matrix R
is orthogonal. (To reflect x through the hyperplane means the following: find the point z on
the hyperplane closest to x. Starting from x, go in the direction z − x through the hyperplane
to a point on the opposite side, which has the same distance to z as x does.)

4.600. Sensor integrity monitor. A suite of m sensors yields measurement y ∈ Rm of some vector
of parameters x ∈ Rn . When the system is operating normally (which we hope is almost
always the case) we have y = Ax, where m > n. If the system or sensors fail, or become
faulty, then we no longer have the relation y = Ax. We can exploit the redundancy in our
measurements to help us identify whether such a fault has occured. We’ll call a measurement
y consistent if it has the form Ax for some x ∈ Rn . If the system is operating normally then
our measurement will, of course, be consistent. If the system becomes faulty, we hope that
the resulting measurement y will become inconsistent, i.e., not consistent. (If we are really
unlucky, the system will fail in such a way that y is still consistent. Then we’re out of luck.)
A matrix B ∈ Rk×m is called an integrity monitor if the following holds:

• By = 0 for any y which is consistent.

• By 6= 0 for any y which is inconsistent.

36
If we find such a matrix B, we can quickly check whether y is consistent; we can send an
alarm if By 6= 0. Note that the first requirement says that every consistent y does not trip the
alarm; the second requirement states that every inconsistent y does trip the alarm. Finally,
the problem. Find an integrity monitor B for the matrix
 
1 2 1
 1 −1 −2 
 
A=  −2 1 3 .
 1 −1 −2 
1 1 0
Your B should have the smallest k (i.e., number of rows) as possible. As usual, you have to
explain what you’re doing, as well as giving us your explicit matrix B. You must also verify
that the matrix you choose satisfies the requirements. Hints:
• You might find one or more of the Julia functions nullspace or qr useful. Then again,
you might not; there are many ways to find such a B.
• When checking that your B works, don’t expect to have By exactly zero for a consistent
y; because of roundoff errors in computer arithmetic, it will be really, really small. That’s
OK.
• Be very careful typing in the matrix A. It’s not just a random matrix.

4.610. Householder reflections. A Householder matrix is defined as


Q = I − 2uuT ,
where u ∈ Rn is normalized, that is, uT u = 1.
a) Show that Q is orthogonal.
b) Show that Qu = −u. Show that Qv = v, for any v such that uT v = 0. Thus, multipli-
cation by Q gives reflection through the plane with normal vector u.
c) Given a vector x ∈ Rn , find a unit-length vector u for which Qx lies on the line through
e1 . Hint: Try a u of the form u = v/kvk, with v = x + αe1 (find the appropriate α
and show that such a u works . . . ) Compute such a u for x = (3, 2, 4, 1, 5). Apply the
corresponding Householder reflection to x to find Qx.
Note: Multiplication by an orthogonal matrix has very good numerical properties, in the sense
that it does not accumulate much roundoff error. For this reason, Householder reflections are
used as building blocks for fast, numerically sound algorithms.

4.620. Finding a basis for the intersection of ranges.


a) Suppose you are given two matrices, A ∈ Rn×p and B ∈ Rn×q . Explain how you can
find a matrix C ∈ Rn×r , with independent columns, for which
range(C) = range(A) ∩ range(B).
This means that the columns of C are a basis for range(A) ∩ range(B).

37
b) Carry out the method described in part (a) for the particular matrices A and B defined
in intersect_range_data.m.
Be sure to give us your matrix C, as well as the matlab (or other) code that generated
it. Verify that range(C) ⊆ range(A) and range(C) ⊆ range(B), by showing that each
column of C is in the range of A, and also in the range of B.
Please carefully separate your answers to part (a) (the general case) and part (b) (the specific
case).

4.630. Groups of equivalent statements. In the list below there are 11 statements about two
square matrices A and B in Rn×n .
a) range(B) ⊆ range(A).
b) there exists a matrix Y ∈ Rn×n such that B = Y A.
c) AB = 0.
d) BA = 0.
e) rank( A B ) = rank(A).
 

f) range(A) ⊥ null(B T ).
 
A
g) rank( ) = rank(A).
B
h) range(A) ⊆ null(B).
i) there exists a matrix Z ∈ Rn×n such that B = AZ.
j) rank( A B ) = rank(B).
 

k) null(A) ⊆ null(B).
Your job is to collect them into (the largest possible) groups of equivalent statements. Two
statements are equivalent if each one implies the other. For example, the statement ‘A is
onto’ is equivalent to ‘null(A) = {0}’ (when A is square, which we assume here), because
every square matrix that is onto has zero nullspace, and vice versa. Two statements are not
equivalent if there exist (real) square matrices A and B for which one holds, but the other does
not. A group of statements is equivalent if any pair of statements in the group is equivalent.
We want just your answer, which will consist of lists of mutually equivalent statements;
we do not need any justification.
Put your answer in the following specific form. List each group of equivalent statements on
a line, in (alphabetic) order. Each new line should start with the first letter not listed above.
For example, you might give your answer as
a, c, d, h
b, i
e
f, g, j, k.

38
This means you believe that statements a, c, d, and h are equivalent; statements b and i are
equivalent; and statements f, g, j, and k are equivalent. You also believe that the first group
of statements is not equivalent to the second, or the third, and so on.

4.640. Determinant of an orthogonal matrix. Suppose Q ∈ Rn×n is orthogonal. What can you
say about its determinant?

4.650. Tellegen’s theorem. An electrical circuit has n nodes and b branches, with topology de-
scribed by a directed graph. (The direction of each edge is the reference flow direction in
the branch: current flowing in this direction is considered positive, while current flow in the
opposite direction is considered negative.) The directed graph is given by the incidence matrix
A ∈ Rn×b , defined as
+1 edge k leaves node i


Aik = −1 edge k enters node i
otherwise.

0

Each node in the circuit has a potential; each branch has a voltage and current. We let e ∈ Rn
denote the vector of node potentials, v ∈ Rb the vector of branch voltages, and j ∈ Rb the
vector of branch currents.

a) Kirchhoff ’s current law (KCL) states that, for each node, the sum of the currents on
branches entering the node equals the sum of the currents on branches leaving the node.
Show that this can be expressed Aj = 0, i.e., j ∈ null(A).

b) Kirchhoff ’s voltage law (KVL) states that the voltage across any branch is the difference
between the potential at the node the branch leaves and the potential at the node the
branch enters. Show that this can be expressed v = AT e, i.e., v ∈ range(AT ).

c) Tellegen’s theorem. Tellegen’s theorem states that for any circuit, we have v T j = 0.
Explain how this follows from parts (a) and (b) above. The product vk jk is the power
entering (or dissipated by) branch k (when vk jk < 0, |vk jk | is the power supplied by
branch k). We can interpret Tellegen’s theorem as saying that the total power supplied
by branches that supply power is equal to the total power dissipated by branches that
dissipate power. In other words, Tellegen’s theorem is a power conservation law.

4.660. Norm preserving implies orthonormal columns. In lecture we saw that if A ∈ Rm×n
has orthonormal columns, i.e., AT A = I, then for any vector x ∈ Rn we have kAxk = kxk. In
other words, multiplication by such a matrix preserves norm.
Show that the converse holds: If A ∈ Rm×n satisfies kAxk = kxk for all x ∈ Rn , then A
has orthonormal columns (and in particular, m ≥ n).
Hint. Start with kAxk2 = kxk2 , and try x = ei , and also x = ei + ej , for all i 6= j.

4.670. Solving linear equations via QR factorization. Consider the problem of solving the
linear equations Ax = y, with A ∈ Rn×n nonsingular, and y given. We can use the Gram-
Schmidt procedure to compute the QR factorization of A, and then express x as x = A−1 y =
R−1 (QT y) = R−1 z, where z = QT y. In this exercise, you’ll develop a method for computing

39
x = R−1 z, i.e., solving Rx = z, when R is upper triangular and nonsingular (which means its
diagonal entries are all nonzero).
The trick is to first find xn ; then find xn−1 (remembering that now you know xn ); then
find xn−2 (remembering that now you know xn and xn−1 ); and so on. The algorithm you will
discover is called back substitution, because you are substituting known or computed values of
xi into the equations to compute the next xi (in reverse order). Be sure to explain why the
algorithm you describe cannot fail.

5.680. Least-squares residuals. Suppose A is skinny and full-rank. Let xls be the least-squares
approximate solution of Ax = y, and let yls = Axls . Show that the residual vector r = y − yls
satisfies
krk2 = kyk2 − kyls k2 .
Also, give a brief geometric interpretation of this equality (just a couple of sentences, and
maybe a conceptual drawing).

5.690. Complex linear algebra and least-squares. Most of the linear algebra you have seen is
unchanged when the scalars, matrices, and vectors are complex, i.e., have complex entries.
For example, we say a set of complex vectors {v1 , . . . , vn } is dependent if there exist complex
scalars α1 , . . . , αn , not all zero, such that α1 v1 + · · · + αn vn = 0. There are some slight
differences when it comes to the inner product and other expressions that, in the real case,
involve the transpose operator. For complex matrices (or vectors) we define the Hermitian
conjugate as the complex conjugate of the transpose. We denote this as A∗ , which is equal to
(A)T . Thus, the ij entry of the matrix A∗ is given by (Aji ). The Hermitian conjugate of a
matrix is sometimes called its conjugate transpose (which is a nice, explanatory name). Note
that for a real matrix or vector, the Hermitian conjugate is the same as the transpose. We
define the inner product of two complex vectors u, v ∈ Cn as

hu, vi = u∗ v,

which, in general, is a complex number. The norm of a complex vector is defined as


p 1/2
kuk = hu, ui = |u1 |2 + · · · + |un |2 .

Note that these two expressions agree with the definitions you already know when the vectors
are real. The complex least-squares problem is to find the x ∈ Cn that minimizes kAx − yk2 ,
where A ∈ Cm×n and y ∈ Cm are given. Assuming A is full rank and skinny, the solution is
xls = A† y, where A† is the (complex) pseudo-inverse of A, given by

A† = (A∗ A)−1 A∗ .

(Which also reduces to the pseudo-inverse you’ve already seen when A is real). There are
two general approaches to dealing with complex linear algebra problems. In the first, you
simply generalize all the results to work for complex matrices, vectors, and scalars. Another
approach is to represent complex matrices and vectors using real matrices and vectors of twice
the dimensions, and then you apply what you already know about real linear algebra. We’ll

40
explore that idea in this problem. We associate with a complex vector u ∈ Cn a real vector
ũ ∈ R2n , given by  
<u
ũ = .
=u
We associate with a complex matrix A ∈ Cm×n the real matrix à ∈ R2m×2n given by
 
<A −=A
à = .
=A <A

a) What is the relation between hu, vi and hũ, ṽi? Note that the first inner product involves
complex vectors and the second involves real vectors.

b) What is the relation between kuk and kũk?

c) What is the relation between Au (complex matrix-vector multiplication) and Ãũ (real
matrix-vector multiplication)?

d) What is the relation between ÃT and A∗ ?

e) Using the results above, verify that A† y solves the complex least-squares problem of
minimizing kAx − yk (where A, x, y are complex). Express A† y in terms of the real and
imaginary parts of A and y. (You don’t need to simplify your expression; you can leave
block matrices in it.)

6.700. AR system identification. In this problem you will use least-squares to develop and vali-
date auto-regressive (AR) models of a system from some input/output (I/O) records. You are
given I/O records
u(1), . . . , u(N ), y(1), . . . , y(N ),
which are the measured input and output of an unknown system. You will use least-squares
to find approximate models of the form

y(t) = a0 u(t) + b1 y(t − 1) + · · · + bn y(t − n).

Specifically you will choose coefficients a0 , b1 , . . . , bn that minimize


N
X
(y(t) − a0 u(t) − b1 y(t − 1) − · · · − bn y(t − n))2
t=n+1

where u, y are the given data record. qP The squareroot of this quantity is the residual norm
N
(on the model data). Dividing by t=n+1 y(t) yields the relative error. You’ll plot this as
2

a function of n for n = 1, . . . , 35. To validate or evaluate your models, you can try them on
validation data records
ũ(1), . . . , ũ(N ), ỹ(1), . . . , ỹ(N ).
To find the predictive ability of an AR model with coefficients a0 , b1 , . . . , bn , you can form the
signal
ŷ(t) = a0 ũ(t) + b1 ỹ(t − 1) + · · · + bn ỹ(t − n)

41
for t = n+1, . . . , N , and compare it to the actual output signal, ỹ. You will plot the squareroot
of the sum of squares of the difference, divided by the squareroot of the sum of squares of ỹ,
for n = 1, . . . , 35. Compare this to the plot above. Briefly discuss the results. To develop the
models for different values of n, you can use inefficient code that just loops over n; you do
not have to try to use an efficient method based on one QR factorization. The file IOdata.m
contains the data for this problem and is available on the class web page. The toeplitz()
command may be helpful.

6.710. The middle inverse. In this problem we consider the matrix equation

AXB = I,

where A ∈ Rn×p , B ∈ Rq×n , and X ∈ Rp×q . The matrices A and B are given, and the goal
is to find a matrix X that satisfies the equation, or to determine that no such matrix exists.
(When such an X exists, we call it a middle inverse of the pair A, B. It generalizes the notions
of left-inverse and right-inverse: When A = I, X is a left-inverse of B, and when B = I, X
is a right-inverse of A.) You will solve a specific instance of this problem, with data (i.e., the
matrices A and B) given in the mfile axb_data.m. If you think there is no X that satisfies
AXB = I, explain why this is the case. Your explanation should be as concrete as possible. If
you succeed in finding an X that satisfies AXB = I, please give it. You must explain how you
found it, and you must submit the code that you used to generate your solution. You must
also submit the matlab code and output showing that you checked that AXB = I holds (up to
very small numerical errors). You can do this by typing norm(A*X*B-eye(n)) in matlab, and
submitting a printout of what matlab prints out. (We haven’t yet studied the matrix norm,
but it doesn’t matter. Like the norm of a vector, it measures size, and here you are using it
only to check that AXB − I is small.)
The following interpretation is not needed to solve the problem. We give it just to mention a
concrete situation where a problem like this one might arise. One situation where this problem
comes up is a nonstandard filtering or equalization problem. A vector signal x ∈ Rn is first
processed by one channel, represented by B. At this point the signal is available for some
filtering or processing by us, which is represented by the matrix X. After this processing, it
is acted on by another channel, given by A. Our goal is to do the intermediate processing in
such a way that it undoes the effect of the first and last channels.

42
6.720. Approximate inductance formula. The figure below shows a planar spiral inductor, im-
plemented in CMOS, for use in RF circuits.

The inductor is characterized by four key parameters:


• n, the number of turns (which is a multiple of 1/4, but that needn’t concern us)
• w, the width of the wire
• d, the inner diameter
• D, the outer diameter
The inductance L of such an inductor is a complicated function of the parameters n, w, d, and
D. The inductance L can be found by solving Maxwell’s equations, which takes considerable
computer time, or by fabricating the inductor and measuring the inductance. In this problem
you will develop a simple approximate inductance model of the form

L̂ = αnβ1 wβ2 dβ3 Dβ4 ,

where α, β1 , β2 , β3 , β4 ∈ R are constants that characterize the approximate model. (since


L is positive, we have α > 0, but the constants β2 , . . . , β4 can be negative.) This simple
approximate model, if accurate enough, can be used for design of planar spiral inductors.
The file inductor_data.json on the course web site contains data for 50 inductors. (The
data is real, not that it would affect how you solve the problem . . . ) For inductor i, we give
parameters ni , wi , di , and Di (all in µm), and also, the inductance Li (in nH) obtained from
measurements. (The data are organized as vectors of length 50. Thus, for example, w13 gives
the wire width of inductor 13.) Your task, i.e., the problem, is to find α, β1 , . . . , β4 so that

L̂i = αnβi 1 wiβ2 dβi 3 Diβ4 ≈ Li for i = 1, . . . , 50.

Your solution must include a clear description of how you found your parameters, as well
as their actual numerical values. Note that we have not specified the criterion that you use
to judge the approximate model (i.e., the fit between L̂i and Li ); we leave that to your
engineering judgment. But be sure to tell us what criterion you use. We define the percentage
error between L̂i and Li as
ei = 100|L̂i − Li |/Li .

43
Find the average percentage error for your model, i.e., (e1 + · · · + e50 )/50. (We are only asking
you to find the average percentage error for your model; we do not require that your model
minimize the average percentage error.) Hint: you might find it easier to work with log L.

6.730. Quadratic extrapolation of a time series, using least-squares fit. We are given a
series z up to time t. We extrapolate, or predict, z(t + 1) based on a least-squares fit of a
quadratic function to the previous ten elements of the series, z(t), z(t − 1), . . . , z(t − 9). We’ll
denote the predicted value of z(t + 1) by ẑ(t + 1). More precisely, to find ẑ(t + 1), we find the
quadratic function f (τ ) = a2 τ 2 + a1 τ + a0 for which
t
X
(z(τ ) − f (τ ))2
τ =t−9

is minimized. The extrapolated value is then given by ẑ(t + 1) = f (t + 1).

a) Show that  
z(t)
 z(t − 1) 
ẑ(t + 1) = c  .. ,
 
 . 
z(t − 9)
where c ∈ R1×10 does not depend on t. Find c explicitly.

b) Use the following matlab code to generate a time series z:

t = 1:1000;
z = 5*sin(t/10 + 2) + 0.1*sin(t) + 0.1*sin(2*t - 5);

Use the quadratic extrapolation method from part (a) to find ẑls (t) for t = 11, . . . , 1000.
Find the relative root-mean-square (RMS) error, which is given by
P1000 !1/2
2
(1/990) j=11 (ẑ(j) − z(j))
.
(1/990) 1000 2
P
j=11 z(j)

c) In a previous problem you developed a similar predictor for the same time series z. In
that case you obtained the quadratic extrapolator by interpolating the last three samples;
now you are obtaining it as the least squares fit to the last ten samples. Compare the
RMS error for these methods and plot z (the true values), ẑls (the estimated values
using least-squares), and ẑint (the estimated values using interpolation), on the same
plot. Restrict your plot to t = 1, . . . , 100.

6.741. Image reconstruction from line integrals. In this problem we explore a simple version
of a tomography problem. We consider a square region, which we divide into an n × n array

44
of square pixels, as shown below.

x1 xn+1

x2

xn x2n xn2

The pixels are indexed column first, by a single index i ranging from 1 to n2 , as shown above.
We are interested in some physical property such as density (say) which varies over the region.
To simplify things, we’ll assume that the density is constant inside each pixel, and we denote
2
by xi the density in pixel i, i = 1, . . . , n2 . Thus, x ∈ Rn is a vector that describes the density
across the rectangular array of pixels. The problem is to estimate the vector of densities x,
from a set of sensor measurements that we now describe. Each sensor measurement is a line
integral of the density over a line L. In addition, each measurement is corrupted by a (small)
noise term. In other words, the sensor measurement for line L is given by

n 2
X
li xi + v,
i=1

where li is the length of the intersection of line L with pixel i (or zero if they don’t intersect),
and v is a (small) measurement noise. This is illustrated below for a problem with n = 3. In
this example, we have l1 = l6 = l8 = l9 = 0.

line L

x1 x4 l7

l4
x2 x5 x8
l5

l2
x3 x6 x9

l3

45
Now suppose we have N line integral measurements, associated with lines L1 , . . . , LN . From
these measurements, we want to estimate the vector of densities x. The lines are characterized
by the intersection lengths
lij , i = 1, . . . , n2 , j = 1, . . . , N,
where lij gives the length of the intersection of line Lj with pixel i. Then, the whole set of
measurements forms a vector y ∈ RN whose elements are given by
n 2
X
yj = lij xi + vj , j = 1, . . . , N.
i=1

And now the problem: you will reconstruct the pixel densities x from the line integral measure-
ments y. The class webpage contains the file tomo_data.json, which contains the following
variables:

• N, the number of measurements (N ),


• npixels, the side length in pixels of the square region (n),
• y, a vector with the line integrals yj , j = 1, . . . , N ,
• line_pixel_lengths, an n2 × N matrix containing the intersection lengths lij of each
pixel i = 1, . . . , n2 (ordered column-first as in the above diagram) and each line j =
1, . . . , N ,
• lines_d, a vector containing the displacement (distance from the center of the region in
pixel lengths) dj of each line j = 1, . . . , N , and
• lines_theta, a vector containing the angles θj of each line j = 1, . . . , N .

(You shouldn’t need lines_d or lines_theta, but we’re providing them to give you some
idea of how the data was generated. Similarly, the file tmeasure.jl shows how we computed
the measurements, but you don’t need it or anything in it to solve the problem. The variable
line_pixel_lengths was computed using the function in this file.)
Use this information to find x, and display it as an image (of n by n pixels). You’ll know
you have it right.
Julia hints:
• The reshape function might help with converting between vectors and matrices, for
example, A = reshape(v, m, n) will convert a vector with v = mn elements into an
m × n matrix.
• To display a matrix A as a grayscale image, you can use: (or any method that works for
you)
heatmap(A, yflip=true, aspect_ratio=:equal, color=:gist_gray,
cbar=:none, framestyle=:none)
You’ll need to have loaded the JuliaPlots package with using Plots to access the
heatmap function. (The yflip argument gets it to plot the origin in the top-left rather
than the bottom-left.)

46
Note: While irrelevant to your solution, this is actually a simple version of tomography,
best known for its application in medical imaging as the CAT scan. If an x-ray gets attenuated
at rate xi in pixel i (a little piece of a cross-section of your body), the j-th measurement is
n2
Y
zj = e−xi lij ,
i=1

with the lij as before. Now define yj = − log zj , and we get


n 2
X
yj = xi lij .
i=1

6.750. Least-squares model fitting. In this problem you will use least-squares to fit several
different types of models to a given set of input/output data. The data consist of a scalar
input sequence u, and a scalar output sequence y, for t = 1, . . . , N . You will develop several
different models that relate the signals u and y.
• Memoryless models. In a memoryless model, the output at time t, i.e., y(t), depends
only the input at time t, i.e., u(t). Another common term for such a model is static.

constant model: y(t) = c0


static linear: y(t) = c1 u(t)
static affine: y(t) = c0 + c1 u(t)
static quadratic: y(t) = c0 + c1 u(t) + c2 u(t)2

• Dynamic models. In a dynamic model, y(t) depends on u(s) for some s 6= t. We consider
some simple time-series models (see problem 2 in the reader), which are linear dynamic
models.

moving average (MA): y(t) = a0 u(t) + a1 u(t − 1) + a2 u(t − 2)


autoregressive (AR): y(t) = a0 u(t) + b1 y(t − 1) + b2 y(t − 2)
autoregressive moving average (ARMA): y(t) = a0 u(t) + a1 u(t − 1) + b1 y(t − 1)

Note that in the AR and ARMA models, y(t) depends indirectly on all previous inputs,
u(s) for s < t, due to the recursive dependence on y(t − 1). For this reason, the AR and
ARMA models are said to have infinite memory. The MA model, on the other hand, has
a finite memory: y(t) depends only on the current and two previous inputs. (Another
term for this MA model is 3-tap system, where taps refer to taps on a delay line.)
Each of these models is specified by its parameters, i.e., the scalars ci , ai , bi . For each of these
models, find the least-squares fit to the given data. In other words, find parameter values that
minimize the sum-of-squares of the residuals. For example, for the ARMA model, pick a0 , a1 ,
and b1 that minimize
N
X
(y(t) − a0 u(t) − a1 u(t − 1) − b1 y(t − 1))2 .
t=2

47
(Note that we start the sum at t = 2 which ensures that u(t − 1) and y(t − 1) are defined.)
For each model, give the root-mean-square (RMS) residual, i.e., the squareroot of the mean
of the optimal residual squared. Plot the output ŷ predicted by your model, and plot the
residual (which is y − ŷ). The data for this problem are available from the class web page in
the file uy_data.json. This file contains the vectors u and y and the scalar N (the length of
the vectors). Now you can plot u, y, etc. Note: the dataset u, y is not generated by any of
the models above. It is generated by a nonlinear recursion, which has infinite memory.

6.760. Least-squares deconvolution. A communications channel is modeled by a finite-impulse-


response (FIR) filter:
n−1
X
y(t) = u(t − τ )h(τ ),
τ =0

where u : Z → R is the channel input sequence, y : Z → R is the channel output, and


h(0), . . . , h(n − 1) is the impulse response of the channel. In terms of discrete-time convolution
we write this as y = h ∗ u. You will design a deconvolution filter or equalizer which also has
FIR form:
m−1
X
z(t) = y(t − τ )g(τ ),
τ =0

where z : Z → R is the filter output, y is the channel output, and g(0), . . . , g(m − 1) is the
impulse response of the filter, which we are to design. This is shown in the block diagram
below.
y
u ∗h ∗g z

The goal is to choose g = (g(0), . . . , g(m − 1)) so that the filter output is approximately the
channel input delayed by D samples, i.e., z(t) ≈ u(t − D). Since z = g ∗ h ∗ u (discrete-time
convolution), this means that we’d like
(
0 t 6= D,
(g ∗ h)(t) ≈
1 t=D

We will refer to g∗h as the equalized impulse response; the goal is to make it as close as possible
to a D-sample delay. Specifically, we want the least-squares equalizer is g that minimizes the
sum-of-squares error X
(g ∗ h)(t)2 ,
t6=D

subject to the constraint


(g ∗ h)(D) = 1.
To solve the problem below you’ll need to get the file deconv_data.m from the class web page
in the matlab files section. It will define the channel impulse response h as a matlab vector h.

48
(Indices in matlab run from 1 to n, while the argument of the channel impulse response runs
from t = 0 to t = n − 1, so h(3) in matlab corresponds to h(2).)
a) Find the least-squares equalizer g, of length m = 20, with delay D = 12. Plot the
impulse responses of the channel (h) and the equalizer (g). Plot the equalized impulse
response (g ∗ h).

b) The vector y (also defined in deconv_data.m) contains the channel output corresponding
to a signal u passed through the channel (i.e., y = h ∗ u). The signal u is binary, i.e.,
u(t) ∈ {−1, 1}, and starts at t = 0 (i.e., u(t) = 0 for t < 0). Pass y through the least-
squares equalizer found in part a, to form the signal z. Give a histogram plot of the
amplitude distribution of both y and z. (You can remove the first and last D samples
of z before making the histogram plot.) Comment on what you find.
Matlab hints: The command conv convolves two vectors; the command hist plots a histogram
(of the amplitude distribution).

6.770. Estimation with sensor offset and drift. We consider the usual estimation setup:

yi = aT
i x + vi , i = 1, . . . , m,

where
• yi is the ith (scalar) measurement

• x ∈ Rn is the vector of parameters we wish to estimate from the measurements

• vi is the sensor or measurement error of the ith measurement


In this problem we assume the measurements yi are taken at times evenly spaced, T seconds
apart, starting at time t = T . Thus, yi , the ith measurement, is taken at time t = iT . (This
isn’t really material; it just makes the interpretation simpler.) You can assume that m ≥ n
and the measurement matrix  T
a1
 aT 
 2 
A= . 
 .. 
aT
m

is full rank (i.e., has rank n). Usually we assume (often implicitly) that the measurement
errors vi are random, unpredictable, small, and centered around zero. (You don’t need to
worry about how to make this idea precise.) In such cases, least-squares estimation of x works
well. In some cases, however, the measurement error includes some predictable terms. For
example, each sensor measurement might include a (common) offset or bias, as well as a term
that grows linearly with time (called a drift). We model this situation as

vi = α + βiT + wi

where α is the sensor bias (which is unknown but the same for all sensor measurements), β
is the drift term (again the same for all measurements), and wi is part of the sensor error
that is unpredictable, small, and centered around 0. If we knew the offset α and the drift

49
term β we could just subtract the predictable part of the sensor signal, i.e., α + βiT from the
sensor signal. But we’re interested in the case where we don’t know the offset α or the drift
coefficient β. Show how to use least-squares to simultaneously estimate the parameter vector
x ∈ Rn , the offset α ∈ R, and the drift coefficient β ∈ R. Clearly explain your method. If your
method always works, say so. Otherwise describe the conditions (on the matrix A) that must
hold for your method to work, and give a simple example where the conditions don’t hold.

6.780. Estimating emissions from spot measurements. There are n sources of a pollutant, at
known locations s1 , . . . , sn ∈ R2 . Each source emits the pollutant at some emission rate; we
let xj denote the emission rate for source j. (These are positive, but to simplify things we
won’t concern ourselves with that.) The emission rates are to be determined, or estimated.
We measure the total pollutant level at m spots, located at t1 , . . . , tm ∈ R2 , which are known.
The total pollutant measured at spot i is the sum of the contributions from the n sources.
The contribution from source j to measurement i is given by αxj /ksj − ti k2 , where α is a
known (positive) constant. In other words, the pollutant concentration from a source follows
an inverse square law, and is proportional to the emission rate. We assume that measurement
spots do not coincide with the source locations, i.e., we do not have sj = ti for any i or j. We
also assume that none of the spot locations is repeated (i.e., we have ti 6= tj for i 6= j) and
that none of the source locations is repeated (i.e., we have si 6= sj for i 6= j).

a) Give a specific example of source and spot measurement locations, with 4 sensors and
3 sources, for which it is impossible to find the emission rates given the spot measure-
ments. In this part, we ignore the issue of noise or sensor errors; we assume the spot
measurements are exactly as described above. To show that your configuration is a valid
example, give two specific different sets of emission rates that yield identical spot mea-
surements. You are free to (briefly) explain your example using concepts such as range,
nullspace, rank, and so on; but remember, we want a specific numerical example, such
as as s1 = [0 1]T , . . . , s3 = [1 2]T , t1 = [1 1]T , . . . , t4 = [3 2]T . (And similarly for the two
emission rates that give the same spot measurements.)

b) Get the data from the file emissions_data.m that is available on the class web site.
This file defines three source locations (given as a 2 × 3 matrix; the columns give the
locations), and ten spot measurement locations (given as a 2 × 10 matrix). It also gives
two sets of spot measurements: one for part (b), and one for part (c). Be careful to use
the right set of measurements for each problem! The spot measurements are not perfect
(as we assumed in part (a)); they contain small noise and errors. Estimate the pollutant
emission rates. Explain your method, and give your estimate for the emissions rates of
the three sources.

c) Now we suppose that one of the spot measurments is faulty, i.e., its associated noise
or error is far larger than the errors of the other spot measurements. Explain how
you would identify or guess which one is malfunctioning, and then estimate the source
emission rates. Carry out your method on the data given in the matlab file. Be sure
to tell us which spot measurement you believe to be faulty, and what your guess of the
emission rates is. (The emission rates are not the same as in part (b), but the source
and spot measurement locations are.)

50
6.790. Identifying a system from input/output data. We consider the standard setup:

y = Ax + v,

where A ∈ Rm×n , x ∈ Rn is the input vector, y ∈ Rm is the output vector, and v ∈ Rm is the
noise or disturbance. We consider here the problem of estimating the matrix A, given some
input/output data. Specifically, we are given the following:

x(1) , . . . , x(N ) ∈ Rn , y (1) , . . . , y (N ) ∈ Rm .

These represent N samples or observations of the input and output, respectively, possibly
corrupted by noise. In other words, we have

y (k) = Ax(k) + v (k) , k = 1, . . . , N,

where v (k) are assumed to be small. The problem is to estimate the (coefficients of the) matrix
A, based on the given input/output data. You will use a least-squares criterion to form an
estimate  of A. Specifically, you will choose as your estimate  the matrix that minimizes
the quantity
XN
J= kAx(k) − y (k) k2
k=1
over A.

a) Explain how to do this. If you need to make an assumption about the input/output
data to make your method work, state it clearly. You may want to use the matrices
X ∈ Rn×N and Y ∈ Rm×N given by

X = x(1) · · · x(N ) ,
 
Y = y (1) · · · y (N )
 

in your solution.

b) On the course web site you will find some input/output data for an instance of this
problem in the file sysid_data.json. Executing this Julia file will assign values to m, n,
and N , and create two matrices that contain the input and output data, respectively. The
n × N matrix variable X contains the input data x(1) , . . . , x(N ) (i.e., the first column of X
contains x(1) , etc.). Similarly, the m×N matrix Y contains the output data y (1) , . . . , y (N ) .
You must give your final estimate Â, your source code, and also give an explanation of
what you did.

6.800. Robust least-squares estimation methods. We consider a standard measurement setup,


with y = Ax + v, where x ∈ Rn is a vector we’d like to estimate, y ∈ Rm is the vector of
measurements, v ∈ Rm is the vector of measurement errors, and A ∈ Rm×n . We assume that
m > n, i.e., there are more measurements than parameters to be estimated. The measurement
error v is not known, but is assumed to be small. The goal is to estimate x, given y. Here is
the twist: we do not know the matrix A exactly. In fact we calibrated our sensor system on
k > 1 different days, and found the values

A(1) , . . . , A(k)

51
for the matrix A, on the different days. These matrices are close to each other, but not
exactly the same. There is no pattern to the (small) variations between the matrices; for
example, there is no discernable drift; the variations appear to be small and random. You
can assume that all of the matrices are full rank, i.e., have rank n. Now suppose we have a
measurement y taken on a day when we did not calibrate the sensor system. We want to form
an estimate x̂, based on this measurement. We don’t know A exactly, but we can assume that
it is close to the known values A(1) , . . . , A(k) found during calibration. A method for guessing
x in this situtation is called a robust estimation method, since it attempts to take into account
the uncertainty in the matrix A. Three very reasonable proposals for robust estimation are
described below.
• The average then estimate method. First, we form the average of the calibration values,
k
1 X (j)
Aavg = A ,
k
j=1

which is supposed to represent the most typical value of A. We then choose our estimate
x̂ to minimize the least squares residual using Aavg , i.e., to minimize kAavg x̂ − yk. We
refer to this value of x̂ as x̂ae , where the subscript stands for ‘average (then) estimate’.
(You can assume that Aavg is full rank.)
• The estimate then average method. First, we find the least-squares estimate of x for
each of the calibration values, i.e., we find x̂(j) that minimizes kA(j) x̂ − yk over x̂, for
j = 1, . . . , k. Since the matrices A(j) are close but not equal, we find that the estimates
x̂(j) are also close but not equal. We find our final estimate of x as the average of these
estimates:
k
1 X (j)
x̂ea = x̂ .
k
j=1
(Here the subscript ‘ea’ stands for ‘estimate (then) average’.)
• Minimum RMS residuals method. If we make the guess x̂, then the residual, using the
jth calibrated value of A, is given by r(j) = A(j) x̂ − y. The RMS value of the collection
of residuals is given by
 1/2
k
1 X
 kr(j) k2  .
k
j=1

In the minimum RMS residual method, we choose x̂ to minimize this quantity. We


denote this estimate of x as x̂rms .
Here is the problem:
a) For each of these three methods, say whether the estimate x̂ is a linear function of y.
If it is a linear function, give a formula for the matrix that gives x̂ in terms of y. For
example, if you believe that x̂ea is a linear function of y, then you should give a formula
for Bea (in terms of A(1) , . . . , A(k) ), where x̂ea = Bea y.
b) Are the three methods described above different? If any two are the same (for all possible
values of the data A(1) , . . . , A(k) and y), explain why. If they are different, give a specific
example in which the estimates differ.

52
6.810. Estimating a signal with interference. This problem concerns three proposed methods
for estimating a signal, based on a measurement that is corrupted by a small noise and also
by an interference, that need not be small. We have

y = Ax + Bv + w,

where A ∈ Rm×n and B ∈ Rm×p are known. Here y ∈ Rm is the measurement (which is
known), x ∈ Rn is the signal that we want to estimate, v ∈ Rp is the interference, and w is a
noise. The noise is unknown, and can be assumed to be small. The interference is unknown,
but cannot be assumed to be small. You can assume that the matrices A and B are skinny
and full rank (i.e., m > n, m > p), and that the ranges of A and B intersect only at 0. (If
this last condition does not hold, then there is no hope of finding x, even when w = 0, since a
nonzero interference can masquerade as a signal.) Each of the EE263 TAs proposes a method
for estimating x. These methods, along with some informal justification from their proposers,
are given below. Nikola proposes the ignore and estimate method. He describes it as
follows:

We don’t know the interference, so we might as well treat it as noise, and just ignore
it during the estimation process. We can use the usual least-squares method, for
the model y = Ax + z (with z a noise) to estimate x. (Here we have z = Bv + w,
but that doesn’t matter.)

Almir proposes the estimate and ignore method. He describes it as follows:

We should simultaneously estimate both the signal x and the interference v, based
on y, using a standard least-squares method to estimate [xT v T ]T given y. Once
we’ve estimated x and v, we simply ignore our estimate of v, and use our estimate
of x.

Miki proposes the estimate and cancel method. He describes it as follows:

Almir’s method makes sense to me, but I can improve it. We should simultaneously
estimate both the signal x and the interference v, based on y, using a standard
least-squares method, exactly as in Almir’s method. In Almir’s method, we then
throw away v̂, our estimate of the interference, but I think we should use it. We
can form the “pseudo-measurement” ỹ = y − Bv̂, which is our measurement, with
the effect of the estimated interference subtracted off. Then, we use standard least-
squares to estimate x from ỹ, from the simple model ỹ = Ax + z. (This is exactly
as in Nikola’s method, but here we have subtracted off or cancelled the effect of
the estimated interference.)

These descriptions are a little vague; part of the problem is to translate their descriptions into
more precise algorithms.

a) Give an explicit formula for each of the three estimates. (That is, for each method give
a formula for the estimate x̂ in terms of A, B, y, and the dimensions n, m, p.)

b) Are the methods really different? Identify any pairs of the methods that coincide (i.e.,
always give exactly the same results). If they are all three the same, or all three different,

53
say so. Justify your answer. To show two methods are the same, show that the formulas
given in part (a) are equal (even if they don’t appear to be at first). To show two
methods are different, give a specific numerical example in which the estimates differ.
c) Which method or methods do you think work best? Give a very brief explanation. (If
your answer to part (b) is “The methods are all the same” then you can simply repeat
here, “The methods are all the same”.)

6.820. Vector time-series modeling. This problem concerns a vector time-series, y(1), . . . , y(T ) ∈
Rn . The n components of y(t) might represent measurements of different quantities, or prices
of different assets, at time period t. Our goal is to develop a model that allows us to predict
the next element in the time series, i.e., to predict y(t + 1), given y(1), . . . , y(t). A consultant
proposes the following model for the time-series:
y(t) = Ay(t − 1) + v(t), t = 2, . . . , T,
where the matrix A ∈ Rn×n is the parameter of the model, and v(t) ∈ Rn is a signal that
is small and unpredictable. (We keep the definition of the terms ‘small’ and ‘unpredictable’
vague, since the exact meaning won’t matter.) This type of model has several names. It is
called an VAR(1) model, which is short for vector auto-regressive, with one time lag. It is
also called a Gauss-Markov model, which is a fancy name for a linear system driven by a
noise. Once we have a model of this form, we can predict the next time-series sample using
the formula
ŷ(t + 1) = Ay(t), t = 1, . . . , T.
The idea here is that v(t) is unpredictable, so we simply replace it with zero when we estimate
the next time-series sample. The prediction error is given by
e(t) = ŷ(t) − y(t), t = 2, . . . , T.
The prediction error depends on the time-series data, and also A, the parameter in our model.
There is one more twist. It is known that y1 (t + 1), the first component of the next time-
series sample, does not depend on y2 (t), . . . , yn (t). The second component, y2 (t + 1), does
not depend on y3 (t), . . . , yn (t). In general, the ith component, yi (t + 1), does not depend
on yi+1 (t), . . . , yn (t). Roughly speaking, this means that the current time-series component
yi (t) only affects the next time-series components y1 (t + 1), . . . , yi (t + 1). This means that the
matrix A is lower triangular, i.e., Aij = 0 for i < j. To find the parameter A that defines our
model, you will use a least-squares criterion. You will pick A that minimizes the mean-square
prediction error,
T
1 X
ke(t)k2 ,
T −1
t=2
over all lower-triangular matrices. Carry out this method, using the data found in the
vts_data.m, which contains an n × T matrix Y, whose columns are the vector time-series
samples at t = 1, . . . , T . Explain your method, and submit the code that you use to solve the
problem. Give your final estimated model parameter A, and the resulting mean-square error.
Compare your mean-square prediction error to the mean-square value of y, i.e.,
T
1X
ky(t)k2 .
T
t=1

54
Finally, predict what you think y(T + 1) is, based on the data given.

6.830. Fitting a rational transfer function to frequency response data. This problem con-
cerns a rational function H : C → C of the form
A(s)
H(s) = ,
B(s)
where A and B are the polynomials

A(s) = a0 + a1 s + · · · + am sm , B(s) = 1 + b1 s + · · · + bm sm .

Here a0 , . . . , am ∈ R and b1 , . . . , bm ∈ R are real parameters, and s ∈ C is the complex


independent variable. We define a = (a0 , . . . , am ) ∈ Rm+1 and b = (b1 , . . . , bm ) ∈ Rm , i.e., a
and b are vectors containing the coefficients of A and B (not including the constant coefficient
of B, which is fixed at one). We are given noisy measurements of H at some points on the
imaginary axis, i.e., some data

s1 = jω1 , . . . , sN = jωN ∈ C, h1 , . . . , hN ∈ C,

and hope to choose a and b so that we have H(si ) ≈ hi . Here ω1 , . . . , ωN are real and
nonnegative, and h1 , . . . , hN are complex. To judge the quality of fit we use the mean-square
error,
N
1 X
J= |H(si ) − hi |2 .
N
i=1
Interpretation. (Not needed to solve the problem.) You can think of H as a rational transfer
function, with s the complex frequency variable. The data is a set of frequency response
measurements, with some measurement errors. The goal is to find a rational transfer function
that fits the measured frequency response. This problem explores a famous heuristic method,
based on solving a sequence of (linear) least-squares problems, for finding coefficients a, b that
approximately minimize J. We start by expressing J in the following (strange) way:
N 2
1 X A(si ) − hi B(si )
J= , zi = B(si ), i = 1, . . . , N.
N zi
i=1

The method works by choosing a and b that minimize the lefthand expression (with zi fixed),
then updating the numbers zi using the righthand formula, and then repeating. More pre-
(k)
cisely, let k denote the iteration number, with a(k) , b(k) , and zi denoting the values of these
parameters at iteration k, and A(k) , B (k) denoting the associated polynomials. To update
these parameters from iteration k to iteration k + 1, we proceed as follows. First, we set
(k+1)
zi = B (k) (si ), for i = 1, . . . , N . Then we choose a(k+1) and b(k+1) that minimize
N 2
1 X A(k+1) (si ) − hi B (k+1) (si )
(k+1)
.
N z
i=1 i

(1)
(This can be done using ordinary linear least-squares.) We can start the iteration with zi = 1,
i = 1, . . . , N (which is what would happen if we set B (0) (s) = 1). The iteration is stopped

55
when (or more accurately, if) successive iterates are very close, i.e., we have a(k+1) ≈ a(k) ,
and b(k+1) ≈ b(k) . Several pathologies can arise in this algorithm. For example, we can end
(k)
up with zi = 0, or a certain matrix can be less than full rank, which complicates solving the
least-squares problem to find a(k) and b(k) . You can ignore these pathologies, however.

a) Explain how to obtain a(k+1) and b(k+1) , given z (k+1) . You must explain the math; you
may not refer to any matlab notation or operators (and especially, backslash) in your
explanation. Please bear in mind that a0 , . . . , am and b1 , . . . , bm are real, whereas many
other variables and data in this problem are complex.

b) Implement the method, and apply it to the data given in rat_data.m. This file contains
the data ω1 , . . . , ωN , h1 , . . . , hN , as well as m and N . Give the final coefficient vectors
a, b, and the associated final value of J. Terminate the algorithm when
 (k+1)
− a(k)

a
≤ 10−6 .
b(k+1) − b(k)

Plot J versus iteration k, with J on a logarithmic scale, and k on a linear scale, using
the command semilogy. Plot |H(jω)| on a logarithmic scale versus ω on a linear scale
(using semilogy), for the first iteration, last iteration, and the problem data. To eval-
uate a polynomial in matlab, you can either write your own (short) code, or use the
matlab command polyval. This is a bit tricky, since polyval expects the polynomial
coefficients to be listed in the reverse order than we use here. To evaluate A(s) in mat-
lab you can use the command polyval(a(m+1:-1:1),s). To evaluate b(s) you can use
polyval([b(m:-1:1);1],s).

Note: no credit will be given for implementing any algorithm other than the one described
in this problem.

6.840. Quadratic placement. We consider an integrated circuit (IC) that contains N cells or
modules that are connected by K wires. We model a cell as a single point in R2 (which
gives its location on the IC) and ignore the requirement that the cells must not overlap. The
positions of the cells are
(x1 , y1 ), (x2 , y2 ), . . . , (xN , yN ),
i.e., xi gives the x-coordinate of cell i, and yi gives the y-coordinate of cell i. We have two
types of cells: fixed cells, whose positions are fixed and given, and free cells, whose positions
are to be determined. We will take the first n cells, at positions

(x1 , y1 ), . . . , (xn , yn ),

to be the free ones, and the remaining N − n cells, at positions

(xn+1 , yn+1 ), . . . , (xN , yN ),

to be the fixed ones. The task of finding good positions for the free cells is called placement.
(The fixed cells correspond to cells that are already placed, or external pins on the IC.) There
are K wires that connect pairs of the cells. We will assign an orientation to each wire (even
though wires are physically symmetric). Specifically, wire k goes from cell I(k) to cell J(k).

56
Here I and J are functions that map wire number (i.e., k) into the origination cell number
(i.e., I(k)), and the destination cell number (i.e., J(k)), respectively. To describe the wire/cell
topology and the functions I and J, we’ll use the node incidence matrix A for the associated
directed graph. The node incidence matrix A ∈ RK×N is defined as

wire k goes to cell j, i.e., j = J(k)



1

Akj = −1 wire k goes from cell j, i.e., j = I(k)
otherwise.

0

Note that the kth row of A is associated with the kth wire, and the jth column of A is
associated with the jth cell. The goal in placing the free cells is to use the smallest amount of
interconnect wire, assuming that the wires are run as straight lines between the cells. (In fact,
the wires in an IC are not run on straight lines directly between the cells, but that’s another
story. Pretending that the wires do run on straight lines seems to give good placements.) One
common method, called quadratic placement, is to place the free cells in order to minimize the
the total square wire length, given by
K
X
(xI(k) − xJ(k) )2 + (yI(k) − yJ(k) )2 .

J=
k=1

a) Explain how to find the positions of the free cells, i.e.,

(x1 , y1 ), . . . , (xn , yn ),

that minimize the total square wire length. You may make an assumption about the
rank of one or more matrices that arise.

b) In this part you will determine the optimal quadratic placement for a specific set of
cells and interconnect topology. The mfile qplace_data.json defines an instance of the
quadratic placement problem. Specifically, it defines the dimensions n, N , and K, and
N − n vectors xfixed and yfixed, which give the x- and y-coordinates of the fixed cells.
The mfile also defines the node incidence matrix A, which is K × N . Be sure to explain
how you solve this problem, and to explain the source code that solves it (which you
must submit). Give the optimal locations of the free cells. Check your placement against
various others, such as placing all free cells at the origin.

6.850. Least-squares state tracking. Consider the system x(t + 1) = Ax(t) + Bu(t) ∈ Rn , with
x(0) = 0. We do not assume it is controllable. Suppose xdes (t) ∈ Rn is given for t = 1, . . . , N
(and is meant to be the desired or target state trajectory). For a given input u, we define the
mean-square tracking error as
N
1 X
E(u) = kx(t) − xdes (t)k2 .
N
t=1

a) Explain how to find uopt that minimizes E (in the general case). Your solution can
involve a (general) pseudo-inverse.

57
b) True or false: If the system is controllable, there is a unique uopt that minimizes E(u).
Briefly justify your answer.

c) Find E(uopt ) for the specific system with


   
0.8 0.1 0.1 1
A= 1 0 0 , B =  0 ,
0 1 0 0

xdes (t) = [t 0 0]T , and N = 10.

6.860. Time series prediction. We consider an autonomous discrete-time linear system of the
form
x(t + 1) = Ax(t), y(t) = Cx(t) + v(t),
where x(t) ∈ Rn , y(t) ∈ R is the measured output signal, and v(t) ∈ R represents an output
noise signal. In this problem, you do not know the matrices A ∈ Rn×n or C ∈ R1×n , the state
x(t) (including the initial state x(0)), or even the system order n. You do know the measured
output signal for t = 1, . . . , p:
y(1), . . . , y(p).
We give you two more pieces of information: the system order n is less than 20, and the RMS
1/2
value of the noise, i.e., (1/p) pt=1 v(t)2 , is small (on the order of 0.001). The goal is to
P
predict y(t) for the next q time steps, i.e., to predict what y(p + 1), . . . , y(p + q) will be. Here
is the problem: get the time series data from the class web site in the file timeseriesdata.m,
which gives y(1), . . . , y(200). (We have p = 200 in this specific problem.) Then, predict what
y(201), . . . , y(220) are. Plot your estimates ŷ(201), . . . , ŷ(220), and also, of course, give us
the numbers. (You may also want to plot the whole set of data, from t = 1 to t = 220, just
to make sure your prediction satisfies the ‘eyeball test’.) It is extremely important that you
explain very clearly how you come up with your prediction. What is your method? If you
make choices during your procedure, how do you make them?

6.870. Reconstructing values from sums over subsets. There are real numbers u1 , . . . , up that
we do not know, but want to find. We do have information about sums of some subsets of the
numbers. Specifically, we know v1 , . . . , vq , where
X
vi = uj .
j∈Si

Here, Si denotes the subset of {1, . . . , p} that defines the partial sum used to form vi . (We
know both vi and Si , for i = 1, . . . , q.) We call the collection of subsets S1 , . . . , Sq informative
if we can determine, or reconstruct, u1 , . . . , up without ambiguity, from v1 , . . . , vq . If the set
of subsets is not informative, we say it is uninformative. As an example with p = 3 and q = 4,

v1 = u2 + u3 , v2 = u1 + u2 + u3 , v3 = u1 + u3 , v4 = u1 + u2 .

This corresponds to the subsets

S1 = {2, 3}, S2 = {1, 2, 3}, S3 = {1, 3}, S4 = {1, 2}.

58
This collection of subsets is informative. To see this, we show how to reconstruct u1 , u2 , u3 .
First we note that u1 = v2 − v1 . Now that we know u1 we can find u2 from u2 = v4 − u1 =
v4 − v2 + v1 . In the same way we can get u3 = v3 − u1 = v3 − v2 + v1 . Note: this is only an
example to illustrate the notation.

a) This subproblem concerns the following specific case, with p = 6 numbers and q = 11
subsets. The subsets are
S1 = {1, 2, 3}, S2 = {1, 2, 4}, S3 = {1, 2, 6}, S4 = {1, 3, 5}, S5 = {1, 4, 5},
S6 = {2, 3, 6}, S7 = {2, 4, 6}, S8 = {3, 4, 5}, S9 = {3, 5, 6}, S10 = {4, 5, 6},
S11 = {1, 2, 3, 4, 5, 6}.

The associated sums are


v1 = −2, v2 = 14, v3 = 6, v4 = 4, v5 = 20, v6 = −5,
v7 = 11, v8 = 9, v9 = 1, v10 = 17, v11 = 15.

Choose one of the following:

• The collection of subsets S1 , . . . , S11 is informative.


Justify why you believe this is the case, and reconstruct u1 , . . . , u6 .
• The collection of subsets S1 , . . . , S11 is uninformative.
To justify this, give two different sets of values u1 , . . . , u6 , and ũ1 , . . . , ũ6 , whose
given subset sums agree with the given v1 , . . . , v11 .

b) This subproblem concerns a general method for reconstructing u = (u1 , . . . , up ) given


v = (v1 , . . . , vq ) (and of course, the subsets S1 , . . . , Sq ). We define the subset count
matrix Z ∈ Rp×p as follows: Zij is the number of subsets containing both i and j.
(Thus, Zii is the number of subsets that contain i.) For each i, we define fi as the sum
of all vj , over subsets that contain i:
X
fi = vj , i = 1, . . . , p.
i∈Sj

Then we reconstruct u as u = Z −1 f . (Of course, this requires that Z is invertible.)


Choose one of the following:

• The method works, whenever the collection of subsets is informative.


By ‘works’ we mean that Z is invertible, and that Z −1 f is the unique u with subset
sums v. If you believe this is the case, explain why.
• The method can fail, even when the collection of subsets is informative.
To convince us of this, give a specific example, where the collection of subsets is
informative, but the method above fails, i.e., either Z is singular, or Z −1 f does not
have the required subset sums. (Please give us the simplest example you can think
of.)

59
6.880. Signal estimation using least-squares. This problem concerns discrete-time signals de-
fined for t = 1, . . . , 500. We’ll represent these signals by vectors in R500 , with the index
corresponding to the time. We are given a noisy measurement ymeas (1), . . . , ymeas (500), of a
signal y(1), . . . , y(500) that is thought to be, at least approximately, a linear combination of
the 22 signals
 
−(t−50k)2 /252 t − 50k 2 2
fk (t) = e , gk (t) = e−(t−50k) /25 ,
10
where t = 1, . . . , 500 and k = 0, . . . , 10. Plots of f4 and g7 (as examples) are shown below.
1.5

1
f4 (t)

0.5

−0.5
0 50 100 150 200 250 300 350 400 450 500

1.5

0.5
g7 (t)

−0.5

−1

−1.5
0 50 100 150 200 250 300 350 400 450 500

As our estimate of the original signal, we will use the signal ŷ = (ŷ(1), . . . , ŷ(500)) in the
span of f0 , . . . , f10 , g0 , . . . , g10 , that is closest to ymeas = (ymeas (1), . . . , ymeas (500)) in the RMS
(root-mean-square) sense. Explain how to find ŷ, and carry out your method on the signal
ymeas given in sig_est_data.m on the course web site. Plot ymeas and ŷ on the same graph.
Plot the residual (the difference between these two signals) on a different graph, and give its
RMS value.

6.890. Point of closest convergence of a set of lines. We have m lines in Rn , described as


Li = {pi + tvi | t ∈ R}, i = 1, . . . , m,
where pi ∈ Rn , and vi ∈ Rn , with kvi k = 1, for i = 1, . . . , m. We define the distance of a point
z ∈ Rn to a line L as
dist(z, L) = min{kz − uk | u ∈ L}.
(In other words, dist(z, L) gives the closest distance between the point z and the line L.)
We seek a point z ? ∈ Rn that minimizes the sum of the squares of the distances to the
lines,
Xm
dist(z, Li )2 .
i=1

60
The point z ? that minimizes this quantity is called the point of closest convergence.
a) Explain how to find the point of closest convergence, given the lines (i.e., given p1 , . . . , pm
and v1 , . . . , vm ). If your method works provided some condition holds (such as some
matrix being full rank), say so. If you can relate this condition to a simple one involving
the lines, please do so.
b) Find the point z ? of closest convergence for the lines with data given in the matlab file
line_conv_data.m. This file contains n × m matrices P and V whose columns are the
vectors p1 , . . . , pm , and v1 , . . . , vm , respectively. The file also contains commands to plot
the lines and the point of closest convergence (once you have found it). Please include
this plot with your solution.

6.900. Estimating direction and amplitude of a light beam. A light beam with (nonnegative)
amplitude a comes from a direction d ∈ R3 , where kdk = 1. (This means the beam travels
in the direction −d.) The beam falls on m ≥ 3 photodetectors, each of which generates a
scalar signal that depends on the beam amplitude and direction, and the direction in which
the photodetector is pointed. Specifically, photodetector i generates an output signal pi , with
pi = aα cos θi + vi ,
where θi is the angle between the beam direction d and the outward normal vector qi of the
surface of the ith photodetector, and α is the photodetector sensitivity. You can interpret
qi ∈ R3 , which we assume has norm one, as the direction the ith photodetector is pointed. We
assume that |θi | < 90◦ , i.e., the beam illuminates the top of the photodetectors. The numbers
vi are small measurement errors.
You are given the photodetector direction vectors q1 , . . . , qm ∈ R3 , the photodetector
sensitivity α, and the noisy photodetector outputs, p1 , . . . , pm ∈ R. Your job is to estimate
the beam direction d ∈ R3 (which is a unit vector), and a, the beam amplitude.
To describe unit vectors q1 , . . . , qm and d in R3 we will use azimuth and elevation, defined
as follows:  
cos φ cos θ
q =  cos φ sin θ  .
sin φ
Here φ is the elevation (which will be between 0◦ and 90◦ , since all unit vectors in this problem
have positive 3rd component, i.e., point upward). The azimuth angle θ, which varies from 0◦
to 360◦ , gives the direction in the plane spanned by the first and second coordinates. If q = e3
(i.e., the direction is directly up), the azimuth is undefined.
a) Explain how to do this, using a method or methods from this class. The simpler the
method the better. If some matrix (or matrices) needs to be full rank for your method
to work, say so.
b) Carry out your method on the data given in beam_estim_data.m. This mfile defines p,
the vector of photodetector outputs, a vector det_az, which gives the azimuth angles of
the photodetector directions, and a vector det_el, which gives the elevation angles of
the photodetector directions. Note that both of these are given in degrees, not radians.
Give your final estimate of the beam amplitude a and beam direction d (in azimuth and
elevation, in degrees).

61
6.910. Smooth interpolation on a 2D grid. This problem concerns arrays of real numbers on
an m × n grid. Such as array can represent an image, or a sampled description of a function
defined on a rectangle. We can describe such an array by a matrix U ∈ Rm×n , where Uij gives
the real number at location i, j, for i = 1, . . . , m and j = 1, . . . , n. We will think of the index
i as associated with the y axis, and the index j as associated with the x axis.
It will also be convenient to describe such an array by a vector u = vec(U ) ∈ Rmn . Here
vec is the function that stacks the columns of a matrix on top of each other:
 
u1
vec(U ) =  ...  ,
 

un

where U = [u1 · · · un ]. To go back to the array representation, from the vector, we have
U = vec−1 (u). (This looks complicated, but isn’t; vec−1 just arranges the elements in a vector
into an array.)
We will need two linear functions that operate on m × n arrays. These are simple approx-
imations of partial differentiation with respect to the x and y axes, respectively. The first
function takes as argument an m × n array U and returns an m × (n − 1) array V of forward
(rightward) differences:

Vij = Ui,j+1 − Uij , i = 1, . . . , m, j = 1, . . . , n − 1.

We can represent this linear mapping as multiplication by a matrix Dx ∈ Rm(n−1)×mn , which


satisfies
vec(V ) = Dx vec(U ).
(This looks scarier than it is—each row of the matrix Dx has exactly one +1 and one −1 entry
in it.)
The other linear function, which is a simple approximation of partial differentiation with
respect to the y axis, maps an m × n array U into an (m − 1) × n array W , is defined as

Wij = Ui+1,j − Uij , i = 1, . . . , m − 1, j = 1, . . . , n.

We define the matrix Dy ∈ R(m−1)n×mn , which satisfies vec(W ) = Dy vec(U ).


We define the roughness of an array U as

R = kDx vec(U )k2 + kDy vec(U )k2 .

The roughness measure R is the sum of the squares of the differences of each element in
the array and its neighbors. Small R corresponds to smooth, or smoothly varying, U . The
roughness measure R is zero precisely for constant arrays, i.e., when Uij are all equal.
Now we get to the problem, which is to interpolate some unknown values in an array in
the smoothest possible way, given the known values in the array. To define this precisely,
we partition the set of indices {1, . . . , mn} into two sets: Iknown and Iunknown . We let k ≥ 1
denote the number of known values (i.e., the number of elements in Iknown ), and mn − k the
number of unknown values (the number of elements in Iunknown ). We are given the values ui
for i ∈ Iknown ; the goal is to guess (or estimate or assign) values for ui for i ∈ Iunknown . We’ll
choose the values for ui , with i ∈ Iunknown , so that the resulting U is as smooth as possible,

62
i.e., so it minimizes R. Thus, the goal is to fill in or interpolate missing data in a 2D array
(an image, say), so the reconstructed array is as smooth as possible.
We give the k known values in a vector wknown ∈ Rk , and the mn − k unknown values in
a vector wunknown ∈ Rmn−k . The complete array is obtained by putting the entries of wknown
and wunknown into the correct positions of the array. We describe these operations using two
matrices Zknown ∈ Rmn×k and Zunknown ∈ Rmn×(mn−k) , that satisfy

vec(U ) = Zknown wknown + Zunknown wunknown .

(This looks complicated, but isn’t: Each row of these matrices is a unit vector, so multiplication
with either matrix just stuffs the entries of the w vectors into particular locations in vec(U ).
In fact, the matrix [Zknown Zunknown ] is an mn × mn permutation matrix.)
In summary, you are given the problem data wknown (which gives the known array values),
Zknown (which gives the locations of the known values), and Zunknown (which gives the locations
of the unknown array values, in some specific order). Your job is to find wunknown that
minimizes R.

a) Explain how to solve this problem. You are welcome to use any of the operations,
matrices, and vectors defined above in your solution (e.g., vec, vec−1 , Dx , Dy , Zknown ,
Zunknown , wknown , . . . ). If your solution is valid provided some matrix is (or some matrices
are) full rank, say so.

b) Carry out your method using the data created by smooth_interpolation.m. The file
gives m, n, wknown , Zknown and Zunknown . This file also creates the matrices Dx and Dy ,
which you are welcome to use. (This was very nice of us, by the way.) You are welcome
to look at the code that generates these matrices, but you do not need to understand
it. For this problem instance, around 50% of the array elements are known, and around
50% are unknown.
The mfile also includes the original array Uorig from which we removed elements to
create the problem. This is just so you can see how well your smooth reconstruction
method does in reconstructing the original array. Of course, you cannot use Uorig to
create your interpolated array U.
To visualize the arrays use the matlab command imagesc(), with matrix argument. If
you prefer a grayscale image, or don’t have a color printer, you can issue the command
colormap gray. The mfile that gives the problem data will plot the original image
Uorig, as well as an image containing the known values, with zeros substituted for the
unknown locations. This will allow you to see the pattern of known and unknown array
values.
Compare Uorig (the original array) and U (the interpolated array found by your method),
using imagesc(). Hand in complete source code, as well as the plots. Be sure to give
the value of roughness R of U .

Hints:
• In matlab, vec(U ) can be computed as U(:);

• vec−1 (u) can be computed as reshape(u,m,n).

63
6.920. Designing a nonlinear equalizer from I/O data. This problem concerns the discrete-
time system shown below, which consists of a memoryless nonlinearity φ, followed by a con-
volution filter with finite impulse response h. The scalar signal u is the input, and the scalar
signal z is the output.

v
u φ ∗h z

What this means is


M
X −1
z(t) = h(τ )v(t − τ ), v(t) = φ(u(t)), t ∈ Z.
τ =0

(Note that these signals are defined for all integer times, not just nonnegative times.)
Here φ : R → R, with the specific form

a
 −1 ≤ a ≤ 1
φ(a) = 1 − s + sa a>1

−1 + s + sa a < −1,

where s > 0 is a parameter. This function is shown below.

φ(a)

s
1

a
−1 1

−1

Here is an interpretation (that is not needed to solve the problem). The nonlinear function
φ represents a power amplifier that is nonlinear for input signals larger than one in magni-
tude; s is called the saturation gain of the amplifier. The convolution system represents the
transmission channel.
We are going to design an equalizer for the system, i.e., another system that takes the
signal z as input, and gives an output û which is an approximation of the input signal u.
Our equalizer will have the form shown below.


z ∗g ψ û

64
This means
M
X −1
v̂(t) = g(τ )z(t − τ ), û(t) = ψ(v̂(t)), t ∈ Z.
τ =0
This equalizer will work well provided g ∗ h ≈ δ (in which case v̂(t) ≈ v(t)), and ψ = φ−1
(i.e., ψ(φ(a)) = a for all a).
To make sure our (standard) notation here is clear, recall that
min{M −1,t}
X
(g ∗ h)(t) = g(τ )h(t − τ ), t = 0, . . . , 2M − 1.
τ =max{0,t−M +1}

(Note: in matlab conv(g,h) gives the convolution of g and h, but these vectors are indexed
from 1 to M , i.e., g(1) corresponds to g(0).) The term δ is the Kronecker delta, defined as
δ(0) = 1, δ(i) = 0 for i 6= 0.
Now, finally, we come to the problem. You are given some input/output (I/O) data
u(1), . . . , u(N ), z(1), . . . , z(N ), and M (the length of g, and also the length of h). You do not
know the parameter s, or the channel impulse response h(0), . . . , h(M − 1). You also don’t
know u(t), z(t) for t ≤ 0.
a) Explain how to find ŝ, an estimate of the saturation gain s, and g(0), . . . , g(M − 1), that
minimize
N 
1 X 2
J= v̂(i) − φ(u(i)) .
N −M +1
i=M
Here u refers to the given input data, and v̂ comes from the given output data z. Note
that if g ∗ h = δ and s = ŝ, we have J = 0.
We exclude i = 1, . . . , M − 1 in the sum defining J because these terms depend (through
v̂) on z(0), z(−1), . . ., which are unknown.
b) Apply your method to the data given in the file nleq_data.m. Give the values of the
parameters ŝ and g(0), . . . , g(M − 1) found, as well as J. Plot g using the matlab
command stem.
c) Using the values of ŝ and g(0), . . . , g(M − 1) found in part (b), find the equalized signal
û(t), for t = 1, . . . , N . For the purposes of finding û(t) you can assume that z(t) = 0
for t ≤ 0. As a result, we can expect a large equalization error (i.e., û(t) − u(t)) for
t = 1, . . . , M − 1.
Plot the input signal u(t), the output signal z(t), the equalized signal û(t), and the
equalization error û(t) − u(t), for t = 1, . . . , N .

6.930. Simple fitting. You are given some data x1 , . . . , xN ∈ R and y1 , . . . , yN ∈ R. These data
are available in simplefitdata.m on the course web site.
a) Find the best affine fit, i.e., yi ≈ axi +b, where ‘best’ means minimizing N
P
i=1 (yi −(axi +
b))2 . (This is often called the ’best linear fit’.) Set this up and solve it as a least-squares
problem. Plot the data and the fit in the same figure. Give us a and b, and submit the
code you used to find a and b.
b) Repeat for the best least-squares cubic fit, i.e., yi ≈ ax3i + bx2i + cxi + d.

65
6.940. Estimating parameters from noisy measurements. In this problem you will compare
a least-squares estimate of a parameter vector (which uses all available measurements) with a
method that uses just enough measurements. Carry out the following steps.
a) First we generate some problem data in matlab. (You’re free to use any other software
system instead.) Generate a 50 × 20 matrix A using A=randn(50,20). (This chooses the
entries from a normal distribution, but this doesn’t really matter for us.) Generate a
noise vector v of length 50 using v=0.1*randn(50,1). Generate a measurement vector x
of length 20 using x=randn(20,1). Finally, generate a measurement vector y = Ax + v.
b) Find the least-squares approximate solution of y = Ax, and call it xls . Find the relative
error kxls − xk/kxk.
c) Now form a 20-long truncated measurement vector y trunc which consists of the first 20
entries of y. Form an estimate of x from y trunc . Call this estimate xjem (‘Just Enough
Measurements’). Find the relative error of xjem .
d) Run your script (i.e., (a)–(c)) several times. You’ll generate different different data each
time, and you’ll get different numerical results in parts (b) and (c). Give a one sentence
comment about what you observe.
Note. Since you are generating the data randomly, it is remotely possible that the
second method will work better than the first, at least for one run. If this happens to
you, quickly run your script again. Do not mention the incident to anyone.

6.950. Signal reconstruction for a bandlimited signal. In this problem we refer to signals,
which are just vectors, with index interpreted as (discrete) time. It is common to write the
index for a signal as an argument, rather than as a subscript; for example, if y ∈ RN is a
signal, we use y(t) to denote yt , with t ∈ {1, 2, . . . , N }. Another notation you’ll sometimes see
in signal processing texts is y[t] for yt .
The discrete cosine transformation (DCT) of the signal y ∈ RN is another signal, typically
denoted using the corresponding upper case symbol Y ∈ RN . It is defined as
N
X π(2t − 1)(k − 1)
Y (k) = y(t)w(k) cos , k = 1, . . . , N,
2N
t=1

where w(k) are weights, with


(p
1/N , k = 1,
w(k) = p
2/N , k = 2, . . . , N.

The number Y (k) is referred to as the kth DCT coefficient of y. The DCT bandwidth of
the signal y is the smallest K for which Y (K) 6= 0, and Y (k) = 0 for k = K + 1, . . . , N . When
K < N , the signal is called DCT bandlimited. (The term is typically used to refer to the case
when the DCT bandwidth, K, is significantly smaller than N .)
A signal y can be reconstructed from its DCT Y , via the inverse DCT transform, with
N
X π(2t − 1)(k − 1)
y(t) = Y (k)w(k) cos , t = 1, . . . , N,
2N
k=1

66
where w(k) are the same weights as those used above in the DCT.
Now for the problem. You are given noise-corrupted values of a DCT bandlimited signal
y, at some (integer) times t1 , . . . , tM , where 1 ≤ t1 < t2 < · · · < tM ≤ N :
yisamp = y(ti ) + vi , i = 1, . . . , M.
Here, vi are small noises or errors. You don’t know v, but you do know that its RMS value
is approximately σ, a known constant. (In signal processing, y samp would be called a non-
uniformly sampled, noise corrupted version of y.)
Your job is to
• Determine the smallest DCT bandwidth (i.e., the smallest K) that y could have.
• Find an estimate of y, ŷ, which has this bandwidth.
Your estimate ŷ must be consistent with the sample measurements y samp . While it need not
match exactly (you were told there was a small amount of noise in y samp ), you should ensure
that the vector of differences,
(y1samp − ŷ(tsamp
1
samp
), . . . , yM − ŷ(tsamp
M )),

has a small RMS value, on the order of σ (and certainly no more than 3σ).

a) Clearly describe how to solve this problem. You can use any concepts we have used, to
date, in EE263. You cannot use (and do not need) any concepts from outside the class.
This includes the Fourier transform and other signal processing methods you might know.
b) Carry out your method on the data in bandlimit.m. Running this script will define N,
ysamp, M, tsamp, and sigma. It will also plot the sampled signal.
Give K, your estimate of the DCT bandwidth of y. Show ŷ on the same plot as the
original sampled signal. (We have added the command to do this in bandlimit.m, but
commented it out.)
Also, give us ŷ(129), to four significant figures.

You might find the matlab functions dct and idct useful; dct(eye(N)) and idct(eye(N))
will return matrices whose columns are the DCT, and inverse DCT transforms, respectively, of
the unit vectors. Note, however, that you can solve the problem without using these functions.

6.960. Fitting a model for hourly temperature. You are given a set of temperature measure-
ments (in degrees C), yt ∈ R, t = 1, . . . , N , taken hourly over one week (so N = 168). An
expert says that over this week, an appropriate model for the hourly temperature is a trend
(i.e., a linear function of t) plus a diurnal component (i.e., a 24-periodic component):
ŷt = at + pt ,
where a ∈ R and p ∈ RN satisfies pt+24 = pt , for t = 1, . . . , N − 24. We can interpret a
(which has units of degrees C per hour) as the warming or cooling trend (for a > 0 or a < 0,
respectively) over the week.

a) Explain how to find a ∈ R and p ∈ RN (which is 24-periodic) that minimize the RMS
value of y − ŷ.

67
b) Carry out the procedure described in part (a) on the data set found in tempfit_data.json.
Give the value of the trend parameter a that you find. Plot the model ŷ and the measured
temperatures y on the same plot. (The matlab code to do this is in the data file, but
commented out.)

c) Temperature prediction. Use the model found in part (b) to predict the temperature for
the next 24-hour period (i.e., from t = 169 to t = 192). The file tempfit_data.json
also contains a 24 long vector ytom with tomorrow’s temperatures. Plot tomorrow’s
temperature and your prediction of it, based on the model found in part (b), on the same
plot. What is the RMS value of your prediction error for tomorrow’s temperatures?

6.970. Empirical algorithm complexity. The runtime T of an algorithm depends on its input
data, which is characterized by three key parameters: k, m, and n. (These are typically
integers that give the dimensions of the problem data.) A simple and standard model that
shows how T scales with k, m, and n has the form

T̂ = αk β mγ nδ ,

where α, β, γ, δ ∈ R are constants that characterize the approximate runtime model. If, for
example, δ ≈ 3, we say that the algorithm has (approximately) cubic complexity in n. (In
general, the exponents β, γ, and δ need not be integers, or close to integers.)
Now suppose you are given measured runtimes for N executions of the algorithm, with
different sets of input data. For each data record, you are given Ti (the runtime), and the
parameters ki , mi , and ni . It’s possible (and often occurs) that two data records have identical
values of k, m, and n, but different values of T . This means the algorithm was run on two
different data sets that had the same dimensions; the corresponding runtimes can be (and
often are) a little different.
We wish to find values of α, β, γ, and δ for which our model (approximately) fits our
measurements. We define the fitting cost as
N 
X 2
J = (1/N ) log(T̂i /Ti ) ,
i=1

where T̂i = αkiβ mγi nδi is the runtime predicted by our model, using the given parameter
values. This fitting cost can be (loosely) interpreted in terms of relative or percentage fit. If
√ √
(log(T̂i /Ti ))2 ≤ , then T̂i lies between Ti / exp  and Ti exp .
Your task is to find constants α, β, γ, δ that minimize J.

a) Explain how to do this. If your method always finds the values that give the true global
minimum value of J, say so. If your algorithm cannot guarantee finding the true global
minimum, say so. If your method requires some matrix (or matrices) to be full rank, say
so.

b) Carry out your method on the data found in empac_data.m. Give the values of α, β, γ,
and δ you find, and the corresponding value of J.

68
6.980. State trajectory estimation. We consider a discrete-time linear dynamical system

x(t + 1) = Ax(t) + Bu(t) + w(t), y(t) = Cx(t) + v(t), t = 1, 2, . . . ,

with state x(t) ∈ Rn , input u(t) ∈ Rm and output y(t) ∈ Rp . The signal w(t) is called the
process noise, and the signal v(t) is the measurement noise. You know the matrices A, B,
C, the inputs u(t), t = 1, 2, . . . , T − 1, and outputs y(t), t = 1, 2, . . . , T . You do not know
x(t), w(t), or v(t). Your job is to estimate the state trajectory x(t), for t = 1, . . . , T . We will
denote your estimate of the state trajectory as x̂(t), t = 1, . . . , T . When we guess the state
trajectory x̂(t), t = 1, . . . , T , we have two sets of residuals,

x̂(t + 1) − (Ax̂(t) + Bu(t)), t = 1, . . . , T − 1, y(t) − C x̂(t), t = 1, . . . , T,

which correspond to (implicit) estimates of w(t) and v(t), respectively.


You will choose x̂(t) so as to minimize the overall objective
T
X −1 T
X
2
J= kx̂(t + 1) − (Ax̂(t) + Bu(t))k + ρ ky(t) − C x̂(t)k2 ,
t=1 t=1

where ρ > 0 is a given parameter (related to our guess of the relative sizes of w(t) and v(t)).
The objective J is a weighted sum of norm squares of our two residuals.

a) Explain how to find the state trajectory estimate x̂(t), t = 1, . . . , T , using any concepts
from the course. If one or more matrices must satisfy a rank condition for your method
to work, say so.

b) Carry out your method from part (a) using state_traj_estim_data.m, which gives A,
B, C, the dimensions n, m, p, the parameter ρ, and the time horizon T . The input and
output trajectories are given as m × T and p × T matrices, respectively. (The tth column
gives the vector at the tth period.)
Give the value of J corresponding to your estimate.
The mfile includes the true value of the state trajectory, x(t), (of course you may not
use it in forming your estimate x̂(t)). Plot x1 (t) (the true first state component) and
x̂1 (t) (the estimated first state component) on the same plot.
Matlab hints:

• The matlab command x = X(:), where X is an n by m matrix, stacks the columns


of X into a vector of dimension nm. You may then recover X with the command
X = reshape(x,n,m).
• You might find the matlab function blkdiag useful.

6.990. Fleet modeling. In this problem, we will consider model estimation for vehicles in a fleet.
We collect input and output data at multiple time instances, for each vehicle in a fleet of
vehicles:
x(k) (t) ∈ Rn , y (k) (t) ∈ R, t = 1, . . . , T, k = 1, . . . , K.

69
Here k denotes the vehicle number, t denotes the time, x(k) (t) ∈ Rn the input, and y (k) (t) ∈ R
the output. (In the general case the output would also be a vector; but for simplicity here we
consider the scalar output case.)
While it does not affect the problem, we describe a more specific application, where the
vehicles are airplanes. The components of the inputs might be, for example, the deflections of
various control surfaces and the thrust of the engines; the output might be vertical acceleration.
Airlines are required to collect this data, called FOQA data, for every commercial flight. (This
description is not needed to solve the problem.)
We will fit a model of the form
y (k) (t) ≈ aT x(k) (t) + b(k) ,
where a ∈ Rn is the (common) linear model parameter, and b(k) ∈ R is the (individual) offset
for the kth vehicle.
We will choose these to minimize the mean square error
T K
1 X X  (k) 2
E= y (t) − aT x(k) (t) − b(k) .
TK
t=1 k=1

a) Explain how to find the model parameters a and b(1) , . . . , b(K) .


b) Carry out your method on the data given in fleet_mod_data.m. The data is given using
cell arrays X and y. The columns of the n × T matrix X{k} are x(k) (1), . . . , x(k) (T ), and
the 1 × T row vector y{k} contains y (k) (1), . . . , y (k) (T ). Give the model parameters a
and b(1) , . . . , b(K) , and report the associated mean square error E. Compare E to the
(minimum) mean square error E com obtained using a common offset b = b(1) = · · · = b(K)
for all vehicles.
By examining the offsets for the different vehicles, suggest a vehicle you might want to
have a maintenance crew check out. (This is a simple, straightforward question; we don’t
want to hear a long explanation or discussion.)

6.1000. Regulation using ternary inputs. Consider a discrete-time linear dynamical system
x(t + 1) = Ax(t) + bu(t), t = 1, 2, . . . ,
with x(t) ∈ Rn , u(t) ∈ {−1, 0, 1}, and b ∈ Rn , b 6= 0. (The problem title comes from the
restriction that the input can only take three possible values.) Our goal is to regulate the
system, i.e., choose the inputs u(t) so as to drive the state x(t) towards zero. We will adopt
a greedy strategy: At each time t, we will choose u(t) so as to minimize kx(t + 1)k.
a) Show that u(t) has the form u(t) = round(kx(t)), where k ∈ R1×n , and round(a)
rounds the number a to the closest of {−1, 0, 1}, i.e.,

1
 a > 1/2
round(a) = 0 |a| ≤ 1/2

−1 a < −1/2.

(We don’t care about what happens when there are ties; we have arbitrarily broken ties
in favor of a = 0.) Give an explicit expression for k.

70
b) Consider the specific problem with data
     
1 .2 −.2 0 .1 −4
 −.2 1 0 .15   −.1   0 
A=  .2
, b=
 .1  ,
 x(1) = 
 0 .

0 .9 0 
0 −.15 0 1 −.1 −4
Give k, and plot kx(t)k and u(t) for t = 1, . . . , 100. Use the matlab function stairs to
plot u(t).

6.1010. Extracting diurnal and weather-related components from power consumption pro-
files. . We have data on hourly electrical power consumption (in kWh) of a household, from
time t = 1 (say, 1 am) to t = n, given as a vector c ∈ Rn , as well as data on the outdoor
temperature (in degrees C) over the same period, given as a vector T ∈ Rn . (You can assume
that the data contains an integral number of days, i.e., n is a multiple of 24, with at least two
days of data.) Our goal is to break up the consumption into three components:
c = d + w + r,
described below.
• The diurnal component d ∈ Rn is the diurnal (repeated daily) consumption component,
meaning that it is 24-hour periodic: dt+24 = dt , for t = 1, . . . , n − 24.
• The weather-related component w ∈ Rn is the consumption component due to air condi-
tioning, which is a function of the outdoor temperature:
wt = α max{Tt − 25, 0}.
(The parameter α is to be determined.)
• The residual r ∈ Rn is r = c − d − w, which we assume is small, or at least not large.
To carry out this decomposition, we choose the diurnal component d and the weather-related
component w (i.e., we choose α) so as to minimize the RMS value of the residual,
n
!1/2
1X 2
rt .
n
t=1

a) Explain how to find the diurnal and weather-related components. If your method requires
a rank assumption to work, state the assumption. Give a brief discussion, in terms of
the original problem, of the conditions under which the rank assumption fails.
b) Carry out the method of part (a) on the data found in diur_weath_decomp_data.m
Plot c, d, and w, and r. Give the RMS value of r.
c) Electricity consumption prediction. The data file includes consumption data for the day
after the end of the given data, as well as a prediction of the temperature over that
day. Use these data to predict the hourly consumption over the next day, by continuing
the diurnal component found in part (b) and using the weather-related model found in
part (b). Compare your prediction with the true power consumption for the following
day. Plot both, on the same plot and report the RMS value of the prediction error.

71
6.1020. Fitting vector auto-regressive model coefficients to data. A vector auto-regressive
(VAR) model has the form

y(t + 1) = A1 y(t) + · · · + Ap y(t − p + 1) + v(t), t = p, p + 1, . . . .

Here y(t) ∈ Rn is a vector, and the coefficients Ai are matrices. The sequence y is the signal
we are interested in, and the sequence v is the residual or noise in the AR model, which we
assume is small, or at least, not large. The model is called auto-regressive since it expresses
the next signal value as a linear combination of the p last values, plus a noise.
Note that if we fix the VAR coefficients A1 , . . . , Ap , we can make a simple prediction at
time step t of the next signal value y(t + 1):

ŷ(t + 1|t) = A1 y(t) + · · · + Ap y(t − p + 1), t = p, p + 1, . . . .

The notation ŷ(t + 1|t) means this quantity is our estimate of y(t + 1) that we make at time t
(i.e., knowing y(t), y(t − 1), . . .). The one-step-ahead predictor is obtained by simply assuming
that v(t) is zero. (You can probably imagine many practical applications where the ability to
make a prediction of the next value of a time series or signal is very valuable. One obvious
example is finance.)
The associated one-step-ahead prediction error is defined as

e(t + 1) = ŷ(t + 1|t) − y(t + 1).

Suppose we are given the data y(1), . . . , y(T ). One common method for choosing the coeffi-
cients A1 , . . . , Ap is by minimizing the RMS value of the prediction error over t = p, . . . , T − 1,

T −1
!1/2
1 X
ke(t + 1)k2 .
T − p t=p

Now we get to the problem. The file vector_ar_model_data.m contains a vector signal y,
given as an n × T matrix. Find the coefficients A1 and A2 (we take p = 2) that minimize the
RMS value of e over t = p, . . . , T − 1. Give the RMS value of the prediction error obtained
with your coefficients.
A second (test) data set is given in the matrix y_test. Evaluate the VAR model found
above (using the data in y), by calculating the one-step-ahead prediction for y_test for t =
p, . . . , T − 1. For all components plot the original as well as predicted signals. Compute and
report the RMS prediction error.

6.1030. Auto-Bob. A set of 10 powerful lamps, each of whose powers we can choose over the tra-
ditional scale [0, 10], is used to heat the surface of an object to a target temperature T des
(in degrees C). We let p ∈ R10 denote the lamp powers, and we let T ∈ R100 denote the
temperature of the surface at 100 locations on a 10 × 10 grid. The mapping between p and
T , T = F (p), is not quite affine, but reasonably close. The mapping F : R10 → R100 is quite
complicated, since every lamp power affects every surface location temperature, and various
linear and nonlinear heat transport mechanisms are involved. In principle, we could derive a
physics-based model of F , but this hasn’t been done. But we do have the device itself, which
means we can set the lamp powers to any levels we like (with pi ∈ [0, 10]) and measure the

72
resulting surface temperature vector T ∈ R100 . In other words, we can carry out experiments
to evaluate the function F .
We want to find p ∈ R10 , with 0 ≤ pi ≤ 10, that (at least approximately) minimizes the
RMS temperature error,
100
!1/2
1 X des 2
e= (Ti − T ) ,
100
i=1

where T des is a given target temperature.


Bob, a technician in the lab, is very good at adjusting the lamp powers by hand so that
e is small. He does this by adjusting one lamp power at a time and observing the resulting
temperature profile. Your goal is to use the material you have learned in EE263 to adjust the
lamp powers as well as, or perhaps better than, Bob. Thus the problem title.
We have given you the function F as a matlab p-file surface_heating_sim.p. If you call
this function as surface_heating_sim(p), where p is a 10-vector of powers (with entries in
the allowed range [0, 10]), it will return the 100-vector of temperatures, and also give a 2D
plot of the surface temperature.
The implementation of the function (i.e., exactly what it does) is obscured. And it takes
a few seconds to evaluate it, so calling the p-file function is something like a carrying out a
real physical experiment.
To get a feel for the heating system, we recommend that you try out various powers to see
the resulting temperature profile. For example, you might try p = 10ei , i = 1, . . . , 10, which
corresponds to turning on each lamp at full power. You might also try p = α1, for some values
of α between 0 and 10, which corresponds to turning on all lamps at the same power level.
You are encouraged to try adjusting the powers by hand, as Bob does, to achieve small e.
Explain how you would use the ideas of EE263 to approximately solve this problem, for
target temperature T des = 500. We are not looking for a complicated method (e.g., an iterative
method); we are looking for a simple method that can achieve the goal of finding lamp powers
that achieve small e, using just a few tens of experiments (calls of the p-file function), and
does not rely on Bob.
Give the lamp powers that your method finds, and the associated value of e. Print out the
temperature profile that is displayed by the p-file. (We will accept a black and white plot, if
you don’t have access to a color printer.) Report the number of times you need to call the
surface_heating_sim function in order to obtain your power settings estimate, not counting
the first few tens of calls when you are just getting a feel for what F looks like. (We will
penalize solutions that require more than a few tens of function calls.)

7.1040. Fitting a Gaussian function to data. A Gaussian function has the form
2 /σ 2
f (t) = ae−(t−µ) .

Here t ∈ R is the independent variable, and a ∈ R, µ ∈ R, and σ ∈ R are parameters that


affect its shape. The parameter a is called the amplitude of the Gaussian, µ is called its center,
and σ is called the spread or width. We can always take σ > 0. For convenience we define
p ∈ R3 as the vector of the parameters, i.e., p = [a µ σ]T . We are given a set of data,

t1 , . . . , t N , y1 , . . . , yN ,

73
and our goal is to fit a Gaussian function to the data. We will measure the quality of the fit
by the root-mean-square (RMS) fitting error, given by

N
!1/2
1 X
E= (f (ti ) − yi )2 .
N
i=1

Note that E is a function of the parameters a, µ, σ, i.e., p. Your job is to choose these
parameters to minimize E. You’ll use the Gauss-Newton method.

a) Work out the details of the Gauss-Newton method for this fitting problem. Explicitly
describe the Gauss-Newton steps, including the matrices and vectors that come up.
You can use the notation ∆p(k) = [∆a(k) ∆µ(k) ∆σ (k) ]T to denote the update to the
parameters, i.e.,
p(k+1) = p(k) + ∆p(k) .
(Here k denotes the kth iteration.)

b) Get the data t, y (and N ) from the file gauss_fit_data.json, available on the class
website. Implement the Gauss-Newton (as outlined in part (a) above). You’ll need an
initial guess for the parameters. You can visually estimate them (giving a short justi-
fication), or estimate them by any other method (but you must explain your method).
Plot the RMS error E as a function of the iteration number. (You should plot enough
iterations to convince yourself that the algorithm has nearly converged.) Plot the final
Gaussian function obtained along with the data on the same plot. Repeat for another
reasonable, but different initial guess for the parameters. Repeat for another set of pa-
rameters that is not reasonable, i.e., not a good guess for the parameters. (It’s possible,
of course, that the Gauss-Newton algorithm doesn’t converge, or fails at some step; if
this occurs, say so.) Briefly comment on the results you obtain in the three cases.

7.1050. E-911. The federal government has mandated that cellular network operators must have the
ability to locate a cell phone from which an emergency call is made. This problem concerns
a simplified version of an E-911 system that uses time of arrival information at a number of
base stations to estimate the cell phone location. A cell phone at location x ∈ R2 (we assume
that the elevation is zero for simplicity) transmits an emergency signal at time τ . This signal
is received at n base stations, located at locations s1 , . . . , sn ∈ R2 . Each base station can
measure the time of arrival of the emergency signal, within a few tens of nanoseconds. (This
is possible because the base stations are synchronized using the Global Positioning System.)
The measured times of arrival are
1
ti = ksi − xk + τ + vi , i = 1, . . . , n,
c
where c is the speed of light, and vi is the noise or error in the measured time of arrival. You
can assume that vi is on the order of a few tens of nanseconds. The problem is to estimate
the cell phone position x ∈ R2 , as well as the time of transmission τ , based on the time of
arrival measurements t1 , . . . , tn . The mfile e911_data.m, available on the course web site,
defines the data for this problem. Specifically, it defines a 2 × 9 matrix S, whose columns
give the positions of the 9 basestations, a 1 × 9 vector t that contains the measured times of

74
arrival, and the constant c, which is the speed of light. Distances are given in meters, times in
nanoseconds, and the speed of light in meters/nanosecond. You can assume that the position
x is somewhere in the box
|x1 | ≤ 3000, |x2 | ≤ 3000,
and that |τ | ≤ 5000 (although all that really matters are the time differences). Your solution
must contain the following:

• An explanation of your approach to solving this problem, including how you will check
that your estimate is reasonable.

• The matlab source code you use to solve the problem, and check the results.

• The numerical results obtained by your method, including the results of any verification
you do.

7.1060. Curve-smoothing. We are given a function F : [0, 1] → R (whose graph gives a curve in
R2 ). Our goal is to find another function G : [0, 1] → R, which is a smoothed version of F .
We’ll judge the smoothed version G of F in two ways:

• Mean-square deviation from F , defined as


Z 1
D= (F (t) − G(t))2 dt.
0

• Mean-square curvature, defined as


Z 1
C= G00 (t)2 dt.
0

We want both D and C to be small, so we have a problem with two objectives. In general
there will be a trade-off between the two objectives. At one extreme, we can choose G = F ,
which makes D = 0; at the other extreme, we can choose G to be an affine function (i.e.,
to have G00 (t) = 0 for all t ∈ [0, 1]), in which case C = 0. The problem is to identify the
optimal trade-off curve between C and D, and explain how to find smoothed functions G
on the optimal trade-off curve. To reduce the problem to a finite-dimensional one, we will
represent the functions F and G (approximately) by vectors f, g ∈ Rn , where

fi = F (i/n), gi = G(i/n).

You can assume that n is chosen large enough to represent the functions well. Using this
representation we will use the following objectives, which approximate the ones defined for the
functions above:

• Mean-square deviation, defined as


n
1X
d= (fi − gi )2 .
n
i=1

75
• Mean-square curvature, defined as
n−1  2
1 X gi+1 − 2gi + gi−1
c= .
n−2 1/n2
i=2

In our definition of c, note that


gi+1 − 2gi + gi−1
1/n2
gives a simple approximation of G00 (i/n). You will only work with this approximate version
of the problem, i.e., the vectors f and g and the objectives c and d.

a) Explain how to find g that minimizes d + µc, where µ ≥ 0 is a parameter that gives
the relative weighting of sum-square curvature compared to sum-square deviation. Does
your method always work? If there are some assumptions you need to make (say, on
rank of some matrix, independence of some vectors, etc.), state them clearly. Explain
how to obtain the two extreme cases: µ = 0, which corresponds to minimizing d without
regard for c, and also the solution obtained as µ → ∞ (i.e., as we put more and more
weight on minimizing curvature).

b) Get the file curve_smoothing.json from the course web site. This file defines a specific
vector f that you will use. Find and plot the optimal trade-off curve between d and c.
Be sure to identify any critical points (such as, for example, any intersection of the curve
with an axis). Plot the optimal g for the two extreme cases µ = 0 and µ → ∞, and for
three values of µ in between (chosen to show the trade-off nicely). On your plots of g,
be sure to include also a plot of f , say with dotted line type, for reference.

7.1070. Regularization and Laplacian smoothing. We are given a set of noisy measurements
of some quantity at n locations, given by y1 , . . . , yn ∈ R. We will use knowledge of some
relationships between the quantities to smooth the measurements. The knowledge is given as
a graph on the indices 1, . . . , n, given as a set of edges E, where an edge is a pair of indices
(i, j) with i < j. (The graph is symmetric, so the edge (i, j) simply means that i and j are
connected by an edge.) An edge (i, j) tells us that the locations are ‘near’, ‘connected’, or
‘directly related’.
To carry out smoothing, we choose ŷi ∈ R, i = 1, . . . , n, so as to minimize
n
X X
(ŷi − yi )2 + λ (ŷi − ŷj )2 ,
i=1 (i,j)∈E

where λ > 0 is a parameter used to control the level of smoothing desired. The first term
penalizes deviations of the smoothed quantities ŷi from the measurements yi , and the second
term penalizes differences in smoothed quantities that are neighbors in the graph.
Here is a sample application (which is not needed to solve the problem). The locations
are users of a social network, the edges represent friendships between users, the quantities are
user parameters of interest (say, to advertisers), and the measurements are (noisy) estimates

76
of the parameters obtained from other sources or information. Smoothing relies on the idea
that users who are friends tend have similar values of the parameter.

a) Explain how to find the smoothed quantities ŷi , using concepts from the course. You
must justify that any matrix inverses you use actually exist; you cannot simply assume
that matrices appearing in your solution are invertible (as we often let you do).
b) Carry out your method on the data given in laplacian_smoothing_data.m, for the
regularization parameter values λ = 0.2, λ = 2, and λ = 20. (This will produce three
different smoothed estimates.) The graph is given as a K × 2 matrix Edges, with each
row giving one edge (i, j).
In this data set the locations are arranged on a grid, with edges between adjacent lo-
cations except when there is an obstruction. Executing the mfile will plot the noisy
data, and the ‘true’ data (i.e., the values of the quantities without the noise). Black
lines in the plots denote obstructions, i.e., adjacent locations on the grid which are not
connected by an edge.
Use the function in laplacian_smoothing_plot.m to show the smoothed estimates for
λ = 0.2, λ = 2, and λ = 20.
Note. In any real application you would not have access to the ‘true’ quantity values, as
you do here. We give it so you can see how well (or poorly) the smoothing does.

8.1080. Optimal control of unit mass. In this problem you will use the language you prefer to
solve an optimal control problem for a force acting on a unit mass. Consider a unit mass at
position p(t) with velocity ṗ(t), subjected to force f (t), where f (t) = xi for i − 1 < t ≤ i, for
i = 1, . . . , 10.
a) Assume the mass has zero initial position and velocity: p(0) = ṗ(0) = 0. Find x that
minimizes Z 10
f (t)2 dt
t=0
subject to the following specifications: p(10) = 1, ṗ(10) = 0, and p(5) = 0. Plot the
optimal force f , and the resulting p and ṗ. Make sure the specifications are satisfied.
Give a short intuitive explanation for what you see.
b) Assume the mass has initial position p(0) = 0 and velocity ṗ(0) = 1. Our goal is to
bring the mass near or to the origin at t = 10, at or near rest, i.e., we want

J1 = p(10)2 + ṗ(10)2 ,

small, while keeping Z 10


J2 = f (t)2 dt
t=0
small, or at least not too large. Plot the optimal trade-off curve between J2 and J1 .
Check that the end points make sense to you. Hint: the parameter µ has to cover a very
large range, so it usually works better in practice to give it a logarithmic spacing, using,
e.g., logspace in matlab (and similar functions in Julia and Python, etc.). You don’t
need more than 50 or so points on the trade-off curve.

77
Your solution to this problem should consist of a clear written narrative that explains what
you are doing, and gives formulas symbolically, and the final plots produced.

8.1090. Smallest input that drives a system to a desired steady-state output. We start
with the discrete-time model of the system used in lecture 1:
x(t + 1) = Ad x(t) + Bd u(t), y(t) = Cd x(t), t = 1, 2, . . . ,
where Ad ∈ R16×16 , Bd ∈ R16×2 , Cd ∈ R2×16 . The system starts from the zero state, i.e.,
x(1) = 0. (We start from initial time t = 1 rather than the more conventional t = 0 since
matlab indexes vectors starting from 1, not 0.) The data for this problem can be found in
ss_small_input_data.m.
The goal is to find an input u that results in y(t) → ydes = (1, −2) as t → ∞ (i.e.,
asymptotic convergence to a desired output) or, even better, an input u that results in y(t) =
ydes for t = T + 1, . . . (i.e., exact convergence after T steps).
a) Steady-state analysis for desired constant output. Suppose that the system is in steady-
state, i.e., x(t) = xss , u(t) = uss and y(t) = ydes are constant (do not depend on t). Find
uss and xss .
b) Simple simulation. Find y(t), with initial state x(1) = 0, with u(t) = uss , for t =
1, . . . , 20000. Plot u and y versus t. If you’ve done everything right, you should observe
that y(t) appears to be converging to ydes .
You can use the following matlab code to obtain plots that look like the ones in lecture 1.

figure;
subplot(411); plot(u(1,:));
subplot(412); plot(u(2,:));
subplot(413); plot(y(1,:));
subplot(414); plot(y(2,:));

Here we assume that u and y are 2 × 20000 matrices. There will be two differences
between these plots and those in lecture 1: These plots start from t = 1, and the plots
in lecture 1 scale t by a factor of 0.1.
c) Smallest input. Let u? (t), for t = 1, . . . , T , be the input with minimum RMS value
T
!1/2
1X
ku(t)k2
T
t=1

that yields x(T + 1) = xss (the value found in part (a)). Note that if u(t) = u? (t) for
t = 1, . . . , T , and then u(t) = uss for t = T + 1, T + 2, . . ., then y(t) = ydes for t ≥ T + 1.
In other words, we have exact convergence to the desired output in T steps.
For the three cases T = 100, T = 200, and T = 500, find u? and its associated RMS
value. For each of these three cases, plot u and y versus t.
d) Plot the RMS value of u? versus T for T between 100 and 1000 (for multiples of 10, if
you like). The plot is probably better viewed on a log-log scale, which can be done using
the command loglog instead of the command plot.

78
8.1100. Minimum fuel and minimum peak input solutions. Suppose A ∈ Rm×n is fat and full
rank, so there are many x’s that satisfy Ax = y. In lecture we encountered the least-norm
solution given by xln = AT (AAT )−1 y. This solution has the minimum (Euclidean) norm
among all solutions of Ax = y. In many applications we want to minimize another norm of
x (i.e., measure of size of x) subject to Ax = y. Two common examples are the 1-norm and
∞-norm, which are defined as
n
X
kxk1 = |xi |, kxk∞ = max |xi |.
i=1,...,n
i=1

The 1-norm, for example, is often a good measure of fuel use; the ∞-norm is the peak of the
vector or signal x. There is no simple formula for the least 1-norm or ∞-norm solution of
Ax = y, like there is for the least (Euclidean) norm solution. They can be computed very
easily, however. (That’s one of the topics of EE364.) The analysis is a bit trickier as well, since
we can’t just differentiate to verify that we have the minimizer. For example, how would you
know that a solution of Ax = y has minimum 1-norm? In this problem you will explore this
idea. First verify the following inequality, which is like the Cauchy-Schwarz inequality (but
even easier to prove): for any v, w ∈ Rp , the following inequality holds: wT v ≤ kvk∞ kwk1 .
From this inequality it follows that whenever v 6= 0,

wT v
kwk1 ≥ .
kvk∞

Now let z be any solution of Az = y, and let λ ∈ Rm be such that AT λ 6= 0. Explain why we
must have
λT y
kzk1 ≥ .
kAT λk∞
Thus, any solution of Az = y must have 1-norm at least as big as the righthand side expression.
Therefore if you can find xmf ∈ Rn (mf stands for minimum fuel) and λ ∈ Rm such that
Axmf = y and
λT y
kxmf k1 = ,
kAT λk∞
then xmf is a minimum fuel solution. (Explain why.) Methods for computing xmf and the
mysterious vector λ are described in EE364. In the rest of this problem, you’ll use these ideas
to verify a statement made during lecture. Now consider the problem from the lecture notes
of a unit mass acted on by forces x1 , . . . , x10 for one second each. The mass starts at position
p(0) = 0 with zero velocity and is required to satisfy p(10) = 1, ṗ(10) = 0. There are, of
course, many force vectors that satisfy these requirements. In the lecture notes, you can see
a plot of the least (Euclidean) norm force profile. In class I stated that the minimum fuel
solution is given by xmf = (1/9, 0, . . . , 0, −1/9), i.e., an accelerating force at the beginning, 8
seconds of coasting, and a (braking) force at the end to decelerate the mass to zero velocity
at t = 10. Prove this. Hint: try λ = (1, −5). Verify that the 1-norm of xmf is less than the
1-norm of xln , the (Euclidean) least-norm solution. Feel free to write and execute codes in
your preferred language for your purpose. There are several convenient ways to find the 1- and
∞-norm of a vector z, e.g., norm(z,1) and norm(z,inf) or sum(abs(z)) and max(abs(z)).
One last question, for fun: what do you think is the minimum peak force vector xmp ? How

79
would you verify that a vector xmp (mp for minimum peak) is a minimum ∞-norm solution
of Ax = y? This input, by the way, is very widely used in practice. It is (basically) the input
used in a disk drive to move the head from one track to another, while respecting a maximum
possible current in the disk drive motor coil. Hints:
• The input is called bang-bang.
• Some people drive this way.

8.1110. Simultaneous left inverse of two matrices. Consider a system where


y = Gx, ỹ = G̃x
where G ∈ Rm×n , G̃ ∈ Rm×n . Here x is some variable we wish to estimate or find, y gives
the measurements with some set of (linear) sensors, and ỹ gives the measurements with some
alternate set of (linear) sensors. We want to find a reconstruction matrix H ∈ Rn×m such
that HG = H G̃ = I. Such a reconstruction matrix has the nice property that it recovers x
perfectly from either set of measurements (y or ỹ), i.e., x = Hy = H ỹ. Consider the specific
case    
2 3 −3 −1
 1 0  −1 0 
   
G =  0 4  , G̃ =   2 −3  .
  
 1 1  −1 −3 
−1 2 1 2
Either find an explicit reconstruction matrix H, or explain why there is no such H.

8.1120. Phased-array antenna weight design. We consider the phased-array antenna system
shown below.

The array consists of n individual antennas (called antenna elements) spaced on a line, with
spacing d between elements. A sinusoidal plane wave, with wavelength λ and angle of arrival θ,
impinges on the array, which yields the output e2πj(k−1)(d/λ) cos θ (which is a complex number)
from the kth element. (We’ve chosen the phase center as element 1, i.e., the output of element
1 does not depend on the incidence angle θ.) A (complex) linear combination of these outputs
is formed, and called the combined array output,
n
X
y(θ) = wk e2πj(k−1)(d/λ) cos θ .
k=1

80
The complex numbers w1 , . . . , wn , which are the coefficients of the linear combination, are
called the antenna weights. We can choose, i.e., design, the weights. The combined array
output depends on the angle of arrival of the wave. The function |y(θ)|, for 0◦ ≤ θ ≤ 180◦ , is
called the antenna array gain pattern. By choosing the weights w1 , . . . , wn intelligently, we can
shape the gain pattern to satisfy some specifications. As a simple example, if we choose the
weights as w1 = 1, w2 = · · · = wn = 0, then we get a uniform or omnidirectional gain pattern;
|y(θ)| = 1 for all θ. In this problem, we want a gain pattern that is one in a given (‘target’)
direction θtarget , but small at other angles. Such a pattern would receive a signal coming from
the direction θtarget , and attenuate signals (e.g., ‘jammers’ or multipath reflections) coming
from other directions. Here’s the problem. You will design the weights for an array with
n = 20 elements, and a spacing d = 0.4λ (which is a typical value). We want y(70◦ ) = 1,
and we want |y(θ)| small for 0◦ ≤ θ ≤ 60◦ and 80◦ ≤ θ ≤ 180◦ . In other words, we want the
antenna array to be relatively insensitive to plane waves arriving from angles more than 10◦
away from the target direction. (In the language of antenna arrays, we want a beamwidth of
20◦ around a target direction of 70◦ .) To solve this problem, you will first discretize the angles
between 0◦ and 180◦ in 1◦ increments. Thus y ∈ C180 will be a (complex) vector, with yk
equal to y(k ◦ ), i.e., y(πk/180), for k = 1, . . . , 180. You are to choose w ∈ C20 that minimizes
60
X 180
X
|yk |2 + |yk |2
k=1 k=80

subject to the constraint y70 = 1. As usual, you must explain how you solve the problem.
Give the weights you find, and also a plot of the antenna array response, i.e., |yk |, versus k
(which, hopefully, will achieve the desired goal of being relatively insensitive to plane waves
arriving at angles more than 10◦ from θ = 70◦ ). Hints:
• You’ll probably want to rewrite the problem as one involving real variables (i.e., the real
and imaginary parts of the antenna weights), and real matrices. You can then rewrite
your solution in a more compact formula that uses complex matrices and vectors (if you
like).

• Very important: in matlab, the prime is actually the Hermitian conjugate operator.
In other words, if A is a complex matrix or vector, A’ gives the conjugate transpose, or
Hermitian conjugate, of A.

• Although we don’t require you to, you might find it fun to also plot your antenna gain
pattern on a polar plot, which allows you to easily visualize the pattern. In matlab, this
is done using the polar command.

8.1130. Modifying measurements to satisfy known conservation laws. A vector y ∈ Rn


contains n measurements of some physical quantities x ∈ Rn . The measurements are good,
but not perfect, so we have y ≈ x. From physical principles it is known that the quantities x
must satisfy some linear equations, i.e.,

aT
i x = bi , i = 1, . . . , m,

where m < n. As a simple example, if x1 is the current in a circuit flowing into a node,
and x2 and x3 are the currents flowing out of the node, then we must have x1 = x2 + x3 .

81
More generally, the linear equations might come from various conservation laws, or balance
equations (mass, heat, energy, charge . . . ). The vectors ai and the constants bi are known, and
we assume that a1 , . . . , am are independent. Due to measurement errors, the measurement y
won’t satisfy the conservation laws (i.e., linear equations above) exactly, although we would
expect aT
i y ≈ bi . An engineer proposes to adjust the measurements y by adding a correction
term c ∈ Rn , to get an adjusted estimate of x, given by

yadj = y + c.

She proposes to find the smallest possible correction term (measured by kck) such that the
adjusted measurements yadj satisfy the known conservation laws. Give an explicit formula for
the correction term, in terms of y, ai , bi . If any matrix inverses appear in your formula, explain
why the matrix to be inverted is nonsingular. Verify that the resulting adjusted measurement
satisfies the conservation laws, i.e., aTi yadj = bi .

8.1140. Estimator insensitive to certain measurement errors. We consider the usual measure-
ment setup: y = Ax + v, where

• y ∈ Rm is the vector of measurements

• x ∈ Rn is the vector of parameters we wish to estimate

• v ∈ Rm is the vector of measurement errors

• A ∈ Rm×n is the coefficient matrix relating the parameters to the measurements

You can assume that m > n, and A is full rank. In this problem we assume that the measure-
ment errors lie in the subspace
V = span{f1 , . . . , fk },
where f1 , . . . , fk ∈ Rm are given, known vectors. Now consider a linear estimator of the form
x̂ = By. Recall that the estimator is called unbiased if whenever v = 0, we have x̂ = x,
for any x ∈ Rn . In other words, an unbiased estimator predicts x perfectly when there is
no measurement error. In this problem we consider the stronger condition that the estimator
predicts x perfectly, for any measurement error in V. In other words, we have x̂ = x, for any
x ∈ Rn , and any v ∈ V. If this condition holds, we say that the estimator is insensitive to
measurement errors in V. (Note that this condition is a stronger condition than the estimator
being unbiased.)

a) Show that if range(A) ∩ V =


6 {0}, then there is no estimator insensitive to measurement
errors in V.

b) Now we consider a specific example, with


     
1 0 1 3
 1 1   2  3
     
A=  1 −1  ,  −1  ,
f1 =   2 .
f2 = 
  
 2 1   1  2
−1 2 0 1

82
Either construct a specific B ∈ R2×5 for which the linear estimator x̂ = By is insensitive
to measurement errors in V, or explain in detail why none exists. If you find such a
B, you must explain how you found it, and verify (say, in matlab) that it satisfies the
required properties. (We’ll be really annoyed if you just give a matrix and leave the
verification to us!)

8.1150. Optimal flow on a data collection network. We consider a communications network with
m nodes, plus a special destination node, and n communication links. Each communication
link connects two (distinct) nodes and is bidirectional, i.e., information can flow in either
direction. We will assume that the network is connected, i.e., there is a path, or sequence
of links, from every node (including the special destination node) to every other node. With
each communication link we associate a directed arc, which defines the direction of information
flow that we will call positive. Using these reference directions, the flow or traffic on link j
is denoted fj . (The units are bits per second, but that won’t matter to us.) The traffic on
the network (i.e., the flow in each communication link) is given by a vector f ∈ Rn . A small
example is shown in part 2 of this problem. In this example, nodes 1 and 3 are connected by
communication link 4, and the associated arc points from node 1 to node 3. Thus f4 = 12
means the flow on that link is 12 (bits per second), from node 1 to node 3. Similarly, f4 = −3
means the flow on link 4 is 3 (bits per second), from node 3 to node 1. External information
enters each of the m regular nodes and flows across links to the special destination node. In
other words, the network is used to collect information from the nodes and route it through the
links to the special destination node. (That explains why we call it a data collection network.)
At node i, an external information flow si (which is nonnegative) enters. The vector s ∈ Rm
of external flows is sometimes called the source vector. Information flow is conserved. This
means that at each node (except the special destination node) the sum of all flows entering
the node from communication links connected to that node, plus the external flow, equals the
sum of the flows leaving that node on communication links. As an example, consider node 3
in the network of part 2. Links 4 and 5 enter this node, and link 6 leaves the node. Therefore,
flow conservation at node 3 is given by

f4 + f5 + s3 = f6 .

The first two terms on the left give the flow entering node 3 on links 4 and 5; the last term on
the left gives the external flow entering node 3. The term on the righthand side gives the flow
leaving over link 6. Note that this equation correctly expresses flow conservation regardless of
the signs of f4 , f5 , and f6 . Finally, here is the problem.

a) The vector of external flows, s ∈ Rm , and the network topology, are given, and you must
find the flow f that satisfies the conservation equations, and minimizes the mean-square
traffic on the network, i.e.,
n
1X 2
fj .
n
j=1

Your answer should be in terms of the external flow s, and the node incidence matrix

83
A ∈ Rm×n that describes the network topology. The node incidence matrix is defined as

arc j enters (or points into) node i



1

Aij = −1 arc j leaves (or points out of) node i
otherwise.

0

Note that each row of A is associated with a node on the network (not including the
destination node), and each column is associated with an arc or link.

b) Now consider the specific (and very small) network shown below. The nodes are shown
as circles, and the special destination node is shown as a square. The external flows are
 
1
 4 
s= 10  .

10

One simple feasible flow is obtained by routing all the external flow entering each node
along a shortest path to the destination. For example, all the external flow entering
node 2 goes to node 1, then to the destination node. For node 3, which has two shortest
paths to the destination, we arbitrarily choose the path through node 4. This simple
routing scheme results in the feasible flow
 
5
 4 
 
 0 
 
 0 .
fsimple =  
 0 
 
 10 
20

Find the mean square optimal flow for this problem (as in part 1). Compare the mean
square flow of the optimal flow with the mean square flow of fsimple .

s2 2 f5

f2 3 s3
f4
s1 1
f6
f3

f1
4 s4

f7
D

84
8.1160. Random geometry antenna weight design. We consider the phased-array antenna sys-
tem shown below.

(xk , yk )

The array consists of n individual antennas (called antenna elements) randomly placed on
2d space, with the coordinates of the kth element being xk and yk . A sinusoidal plane wave,
with wavelength λ and angle of arrival θ, impinges on the array, which yields the output
e2πj(xk cos θ+yk sin θ)/λ (which is a complex number) from the kth element. A (complex) linear
combination of these outputs is formed, and called the combined array output,
n
X
r(θ) = wk e2πj(xk cos θ+yk sin θ)/λ .
k=1

The complex numbers w1 , . . . , wn , which are the coefficients of the linear combination, are
called the antenna weights. We can choose, i.e., design, the weights. The combined array
output depends on the angle of arrival of the wave. The function |r(θ)|, for 0◦ ≤ θ < 360◦ , is
called the antenna array gain pattern. By choosing the weights w1 , . . . , wn intelligently, we can
shape the gain pattern to satisfy some specifications. In this problem, we want a gain pattern
that is one in a given (‘target’) direction θtarget , but small at other angles. Such a pattern
would receive a signal coming from the direction θtarget , and attenuate signals (e.g., ‘jammers’
or multipath reflections) coming from other directions. Here’s the problem. Design the weights
for the antenna array, whose elements have coordinates given in the file antenna_geom.m.
We want r(70◦ ) = 1, and we want |r(θ)| small for 0◦ ≤ θ ≤ 60◦ and 80◦ ≤ θ < 360◦ . In
other words, we want the antenna array to be relatively insensitive to plane waves arriving from
angles more that 10◦ away from the target direction. (In the language of antenna arrays, we
want a beamwidth of 20◦ around a target direction of 70◦ .) You are told that λ = 1. To solve
this problem, you will first discretize the angles between 1◦ and 360◦ in 1◦ increments. Thus
r ∈ C360 will be a (complex) vector, with rk equal to r(k ◦ ), i.e., r(πk/180), for k = 1, . . . , 360.
You are to choose w ∈ Cn that minimizes
60
X 360
X
2
|rk | + |rk |2
k=1 k=80

subject to the constraint r70 = 1. As usual, you must explain how you solve the problem.
Give the weights you find, and also a plot of the antenna array response, i.e., |rk |, versus k
(which, hopefully, will achieve the desired goal of being relatively insensitive to plane waves
arriving at angles more than 10◦ from θ = 70◦ ). Hints:
• You’ll probably want to rewrite the problem as one involving real variables (i.e., the real
and imaginary parts of the antenna weights), and real matrices. You can then rewrite

85
your solution in a more compact formula that uses complex matrices and vectors (if you
like).

• Very important: in matlab, the prime is actually the Hermitian conjugate operator.
In other words, if A is a complex matrix or vector, A’ gives the conjugate transpose, or
Hermitian conjugate, of A.

• Although we don’t require you to, you might find it fun to also plot your antenna gain
pattern on a polar plot, which allows you to easily visualize the pattern. In matlab, this
is done using the polar command.

8.1170. Estimation with known input norm. We consider a standard estimation setup: y =
Ax + v, where A ∈ Rm×n is a full rank, skinny matrix, x ∈ Rn is the vector we wish to
estimate, v ∈ Rm is an unknown noise vector, and y ∈ Rm is the measurement vector. As
usual, we assume that smaller values of kvk are more plausible than larger values. In this
problem, we add one more piece of prior information: we know that kxk = 1. (In other words,
the vector we are estimating is known ahead of time to have norm one.) This might occur in
a communications system, where the transmitted signal power is known to be equal to one.
(You may assume that the norm of the least-squares approximate solution exceeds one, i.e.,
k(AT A)−1 AT yk > 1.)

a) Explain clearly how would you find the best estimate of x, taking into account the prior
information kxk = 1. Explain how you would compute your estimate x̂, given A and y.
Is your estimate x̂ a linear function of y?

b) On the EE263 webpage, you will find the file ekin.m, which gives the matrix A and the
observed vector y. Carry out the estimation procedure you developed in part (a). Give
your estimate x̂, and verify that it satisfies kx̂k = 1. Give the matlab source you use to
compute x̂.

8.1180. Minimum energy rendezvous. The dynamics of two vehicles, at sampling times t =
0, 1, 2, . . ., are given by

x(t + 1) = Ax(t) + bu(t), z(t + 1) = F z(t) + gv(t)

where

• x(t) ∈ Rn is the state of vehicle 1

• z(t) ∈ Rn is the state of vehicle 2

• u(t) ∈ R is the (scalar) input to vehicle 1

• v(t) ∈ R is the (scalar) input to vehicle 2

The initial states of the two vehicles are fixed and given:

x(0) = x0 , z(0) = z0 .

86
We are interested in finding inputs for the two vehicles over the time interval t = 0, 1, . . . , N −1
so that they rendezvous at state w ∈ Rn at time t = N , i.e., x(N ) = w, z(N ) = w. (The
point w ∈ Rn is called the rendezvous point.) You can select the inputs to the two vehicles,

u(0), u(1), . . . , u(N − 1), v(0), v(1), . . . , v(N − 1),

as well as the rendezvous point w ∈ Rn . Among choices of u, v, and w that satisfy the
rendezvous condition, we want the one that minimizes the total input energy defined as
N
X −1 N
X −1
E= u(t)2 + v(t)2 .
t=0 t=0

Give explicit formulas for the optimal u, v, and w in terms of the problem data, i.e., A, b, F ,
g, x0 , and z0 . If you need to assume that one or more matrices that arise in your solution are
invertible, full rank, etc., that’s fine, but be sure to make very clear what you’re assuming.

8.1190. Least-norm solution of nonlinear equations. Suppose f : Rn → Rm is a function, and


y ∈ Rm is a vector, where m < n (i.e., x has larger dimension than y). We say that x ∈ Rn is
a least-norm solution of f (x) = y if for any z ∈ Rn that satisfies f (z) = y, we have kzk ≥ kxk.
When the function f is linear or affine (i.e., linear plus a constant), the equations f (x) = y
are linear, and we know how to find the least-norm solution for such problems. In general,
however, it is an extremely difficult problem to compute a least-norm solution to a set of
nonlinear equations. There are, however, some good heuristic iterative methods that work
well when the function f is not too far from affine, i.e., its nonlinear terms are small compared
to its linear and constant part. You may assume that you have a starting guess, which we’ll
call x(0) . This guess doesn’t necessarily satisfy the equations f (x) = y.
a) Suggest an iterative method for (approximately) solving the nonlinear least-norm prob-
lem, starting from the initial guess x(0) . Use the notation x(k) to denote the kth iteration
of your method. Explain clearly how you obtain x(k+1) from x(k) . If you need to make
any assumptions about rank of some matrix, do so. (You don’t have to worry about
what happens if the matrix is not full rank.) Your method should have the property
that f (x(k) ) converges to y as k increases. (In particular, we don’t need to have the
iterates satsfiy the nonlinear equations exactly.) Suggest a name for the method you
invent. Your method should not be complicated or require a long explanation. You do
not have to prove that the method converges, or that when it converges, it converges
to a least-norm solution. All you have to do is suggest a sensible, simple method that
ought to work well when f is not too nonlinear, and the starting guess x(0) is good.
b) Now we consider a specific example, with the function f : R5 → R2 given by

f1 (x) = 2x1 − 3x3 + x5 + 0.1x1 x2 − 0.5x2 x5 ,


f2 (x) = −x2 + x3 − x4 + x5 − 0.6x1 x4 + 0.3x3 x4 .

Note that each component of f consists of a linear part, and also a quadratic part. Use
the method you invented in part a to find the least-norm solution of
 
1
f (x) = y = .
1

87
(We repeat that you do not have to prove that the solution you found is really the least-
norm one.) As initial guess, you can use the least-norm solution of the linear equations
resulting if you ignore the quadratic terms in f . Make sure to turn in your matlab code
as well as to identify the least-norm x you find, its norm, and the equation residual, i.e.,
f (x) − y (which should be very small).

8.1200. The smoothest input that takes the state to zero. We consider the discrete-time linear
dynamical system x(t + 1) = Ax(t) + Bu(t), with
     
1.0 0.5 0.25 1.0 25
A =  0.25 0 1.0  , B =  0.1  , x(0) =  0  .
1.0 −0.5 0 0.5 −25
The goal is to choose an input sequence u(0), u(1), . . . , u(19) that yields x(20) = 0. Among the
input sequences that yield x(20) = 0, we want the one that is smoothest, i.e., that minimizes
19
!1/2
1 X 2
Jsmooth = (u(t) − u(t − 1)) ,
20
t=0

where we take u(−1) = 0 in this formula. Explain how to solve this problem. Plot the
smoothest input usmooth , and give the associated value of Jsmooth .

8.1210. Minimum energy input with way-point constraints. We consider a vehicle that moves
in R2 due to an applied force input. We will use a discrete-time model, with time index
k = 1, 2, . . .; time index k corresponds to time t = kh, where h > 0 is the sample interval.
The position at time index k is denoted by p(k) ∈ R2 , and the velocity by v(k) ∈ R2 , for
k = 1, . . . , K + 1. These are related by the equations
p(k + 1) = p(k) + hv(k), v(k + 1) = (1 − α)v(k) + (h/m)f (k), k = 1, . . . , K,
where f (k) ∈ R2 is the force applied to the vehicle at time index k, m > 0 is the vehicle
mass, and α ∈ (0, 1) models drag on the vehicle: In the absence of any other force, the vehicle
velocity decreases by the factor 1 − α in each time index. (These formulas are approximations
of more accurate formulas that we will see soon, but for the purposes of this problem, we
consider them exact.) The vehicle starts at the origin, at rest, i.e., we have p(1) = 0, v(1) = 0.
(We take k = 1 as the initial time, to simplify indexing.)
The problem is to find forces f (1), . . . , f (K) ∈ R2 that minimize the cost function
K
X
J= kf (k)k2 ,
k=1
subject to way-point constraints
p(ki ) = wi , i = 1, . . . , M,
where ki are integers between 1 and K. (These state that at the time ti = hki , the vehicle
must pass through the location wi ∈ R2 .) Note that there is no requirement on the vehicle
velocity at the way-points.
a) Explain how to solve this problem, given all the problem data (i.e., h, α, m, K, the
way-points w1 , . . . , wM , and the way-point indices k1 , . . . , kM ).

88
b) Carry out your method on the specific problem instance with data h = 0.1, m = 1,
α = 0.1, K = 100, and the M = 4 way-points
       
2 −2 4 −4
w1 = , w2 = , w3 = , w4 = ,
2 3 −3 −2

with way-point indices k1 = 10, k2 = 30, k3 = 40, and k4 = 80.


Give the optimal value of J.
Plot f1 (k) and f2 (k) versus k, using

subplot(211); plot(f(1,:));
subplot(212); plot(f(2,:));

We assume here that f is a 2 × K matrix, with columns f (1), . . . , f (K).


Plot the vehicle trajectory, using plot(p(1,:),p(2,:)). Here p is a 2 × (K + 1) matrix
with columns p(1), . . . , p(K + 1).

8.1220. Invertibility of certain matrices. In this problem you will show that, for any matrix A,
and any positive number µ, the matrices AT A + µI and AAT + µI are both invertible, and

(AT A + µI)−1 AT = AT (AAT + µI)−1 .

a) Let’s first show that AT A + µI is invertible, assuming µ > 0. (The same argument, with
AT substituted for A, will show that AAT +µI is invertible.) Suppose that (AT A+µI)z =
0. Multiply on the left by z T , and argue that z = 0. This is what we needed to show.
(Your job is to fill all details of the argument.)

b) Now let’s establish the identity above. First, explain why

AT (AAT + µI) = (AT A + µI)AT

holds. Then, multiply on the left by (AT A + µI)−1 , and on the right by (AAT + µI)−1 .
(These inverses exist, by part (a).)

c) Now assume that A is fat and full rank. Show that as µ tends to zero from above (i.e.,
µ is positive) we have
(AT A + µI)−1 AT → AT (AAT )−1 .
(This is asserted, but not shown, in the lecture notes on page 8-12.)

8.1230. Singularity of the KKT matrix. This problem concerns the general norm minimization
with equality constraints problem (described in the lectures notes on pages 8-13),

minimize kAx − bk
subject to Cx = d

where the variable is x ∈ Rn , A ∈ Rm×n , and C ∈ Rk×n . We asume that C is fat (k ≤ n),
i.e., the number of equality constraints is no more than the number of variables.

89
Using Lagrange multipliers, we found that the solution can be obtained by solving the
linear equations  T
A A CT
   T 
x A b
=
C 0 λ d
for x and λ. (The vector x gives the solution of the norm minimization problem above.) The
matrix above, which we will call K ∈ R(n+k)×(n+k) , is called the KKT matrix for the problem.
(KKT are the initials of some of the people who came up with the optimality conditions for a
more general type of problem.)
One question that arises is, when is the KKT matrix K nonsingular? The answer is: K is
nonsingular if and only if C is full rank and null(A) ∩ null(C) = {0}.
You will fill in all details of the argument below.

a) Suppose C is not full rank. Show that K is singular.

b) Suppose that there is a nonzero u ∈ null(A) ∩ null(C). Use this u to show that K is
singular.

c) Suppose that K is singular, so there exists a nonzero vector [uT v T ]T for which
 T
A A CT
 
u
= 0.
C 0 v

Write this out as two block equations, AT Au + C T v = 0 and Cu = 0. Conclude that


u ∈ null(C). Multiply AT Au + C T v = 0 on the left by uT , and use Cu = 0 to conclude
that kAuk = 0, which implies u ∈ null(A). Finish the argument that leads to the
conclusion that either C is not full rank, or null(A) ∩ null(C) 6= {0}.

8.1240. Minimum energy roundtrip. We consider the linear dynamical system

x(t + 1) = Ax(t) + Bu(t), x(0) = 0,

with u(t) ∈ R and x(t) ∈ Rn . We must choose u(0), u(1), . . . , u(T − 1) so that x(T ) = 0 (i.e.,
after T steps we are back at the zero state), and x(tdest ) = xdest (i.e., at time tdest the state is
equal to xdest ). Here xdest ∈ Rn is a given destination state. The time tdest is not given; it can
be any integer between 1 and T − 1. The goal is to minimize the total input energy, defined
as
T
X −1
E= u(t)2 .
t=0

Note that you have to find tdest , the time when the state hits the desired state, as well as the
input trajectory u(0), . . . , u(T − 1).

a) Explain how to do this. For this problem, you may assume that n ≤ tdest ≤ T − n. If
you need some matrix or matrices that arise in your analysis to be full rank, you can
just assume they are. But you must state this clearly.

90
b) Carry out your method on the particular problem instance with data
     
1 0 0 1 1
A =  1 1 0  , B =  0  , T = 30, xdest =  1  .
0 1 1 0 −1

Give the optimal value of tdest and the associated value of E, and plot the optimal input
trajectory u.

8.1250. Optimal dynamic purchasing. You are to complete a large order to buy a certain number,
B, of shares in some company. You are to do this over T time periods. (Depending on the
circumstances, a single time period could be between tens of milliseconds and minutes.) We
will let bt denote the number of shares bought in time period t, for t = 1, . . . , T , so we have
b1 + · · · + bT = B. (The quantities B, b1 , . . . , bT can all be any real number; bt < 0, for
example, means we sold shares in the period t. We also don’t require bt to be integers.) We
let pt denote the price per share in period t, so the total cost of purchasing the B shares is
C = p1 b1 + · · · + pT bT .
The amounts we purchase are large enough to have a noticeable effect on the price of the
shares. The prices change according to the following equations:

p1 = p̄ + αb1 , pt = θpt−1 + (1 − θ)p̄ + αbt , t = 2, . . . , T.

Here p̄ is the base price of the shares and α and θ are parameters that determine how purchases
affect the prices. The parameter α, which is positive, tells us how much the price goes up
in the current period when we buy one share. The parameter θ, which lies between 0 and 1,
measures the memory: If θ = 0 the share price has no memory, and the purchase made in
period t only affects the price in that period; if θ is 0.5 (say), the effect a purchase has on the
price decays by a factor of two between periods. If θ = 1, the price has perfect memory and
the price change will persist for all future periods.
If purchases didn’t increase the price, the cost of purchasing the shares would always be
p̄B. The difference between the total cost and this cost, C − p̄B, is called the transaction cost.
Find the purchase quantities b1 , . . . , bT that minimize the transaction cost C − p̄B, for the
particular problem instance with

B = 10000, T = 10, p̄ = 10, θ = 0.8, α = 0.00015.

Give the optimal transaction cost. Also give the transaction cost if all the shares were pur-
chased in the first period, and the transaction cost if the purchases were evenly spread over the
periods (i.e., if 1000 shares were purchased in each period). Compare these three quantities.
You must explain your method clearly, using any concepts from this class, such as least-
squares, pseudo-inverses, eigenvalues, singular values, etc. If your method requires that some
rank or other conditions to hold, say so. You must also check, in your matlab code, that these
conditions are satisfied for the given problem instance.

8.1260. Least-squares classification. For each of N documents we are given a feature vector x(i) ∈
Rn , and a label yi ∈ {−1, 1}. (This is called a binary label.) Each component of the feature
vector could be, for example, the number of occurrences of a certain term in the document;

91
the label could be decided by a person working with the documents, with +1 meaning the
document is interesting or useful, and −1 meaning the document is not (for example, spam).
From this data set we construct w ∈ Rn and v ∈ R that minimize
N
X
(wT x(i) + v − yi )2 .
i=1

We can now use w and v to predict the label for other documents, i.e., to guess whether an
as-yet-unread document is interesting, by forming ŷ = sign(wT x + v). For scalar a, we define
sign(a) = +1 for a ≥ 0 and sign(a) = −1 for a < 0; for vector arguments, sign() is taken
elementwise.

a) Explain (briefly) how to find w and v. If you need to make an assumption about the
rank of a matrix, say so.

b) Find w and v for the data in ls_classify_data.m, which defines X, whose columns are
x(i) , and y. This M-file will also define a second data set, Xtest and ytest, of the same
size (i.e., n and N ). Use the w and v you found to make predictions about whether the
documents in the test set are interesting. Give the number of correct predictions (for
which ŷi = yi ), false positives (ŷi = +1 while yi = −1), and false negatives (ŷi = −1
while yi = +1) for the test set.
You may find the matlab function sign() useful. To count false positives, for example,
you can use sum((yhat == 1) & (y == -1)).

Remark. There are better methods for binary classification, which you can learn about in a
modern statistics or machine learning course, or in EE364a. But least-squares classification
can sometimes work well.

8.1270. Minimum time control. We consider a discrete-time linear dynamical system

x(t + 1) = Ax(t) + Bu(t), t = 0, 1, . . . ,

with x(t) ∈ Rn , u(t) ∈ Rm .

a) You are given A, B, and x(0) = xinit . Explain how to find an input sequence u(0), u(1), . . . , u(N −
1), so that x(N ) = 0, with N is as small as possible. Your answer can involve any of
the concepts used in the course so far, e.g., range, rank, nullspace, least-squares, QR
factorization, etc.

b) Apply the method described in part (a) to the specific problem instance with data
     
0 0 1 1 0 1
0 1 1 1 1 1
A=  1 0 1 0  , B =  0  , xinit =  1  ,
    

1 1 1 0 1 1

(where n = 4 and m = 1). You must give us the (minimum) value of N , and a sequence
of inputs u(0), . . . , u(N − 1) that results in x(N ) = 0.

92
8.1280. Interference cancelling equalizers. Two vector signals x ∈ Rp and y ∈ Rq are to be
transmitted to two receivers. The transmitter broadcasts the signal z = Ax + By ∈ Rn
to each receiver. (The matrices A and B are called the coding matrices, and are known.)
Receiver 1 forms an estimate of the signal x using the linear decoder x̂ = F z; receiver 2 forms
an estimate of the signal y using the linear decoder ŷ = Gz. (The matrices F ∈ Rp×n and
G ∈ Rq×n are called the decoding matrices.)
The goal is to find F and G so that x̂ = x and ŷ = y, no matter what values x and y take.
This means that both decoders are perfect; each reconstructs the exact desired signal, while
completely rejecting the other (undesired) signal. For this reason we call decoding matrices
with this property perfect.

a) When is it possible to find perfect decoding matrices F and G? (The conditions, of


course, depend on A and B.) Your answer can involve any of the concepts we’ve seen so
far in EE263.

b) Suppose that A and B satisfy the conditions in part (a). How would you find perfect
decoding matrices that, among all perfect decoding matrices, minimize
p X
X n q X
X n
Fij2 + G2ij .
i=1 j=1 i=1 j=1

We call such decoding matrices minimum norm perfect decoding matrices.

c) Find minimum norm perfect decoding matrices for the data (i.e., A and B) given in the
M-file mn_perf_dec_data.m.

8.1290. Piecewise affine fitting. In this problem we refer to vectors in RN as signals. We say
that a signal z is piecewise-affine (PWA), with kink points i1 , . . . , iK+1 , which are integers
satisfying i1 = 1 < i2 < · · · < iK+1 = N + 1, if

zj = α k j + β k , for ik ≤ j < ik+1 ,

for k = 1, . . . , K. Thus, the signal value is an affine function of the index j (which we might
interpret as time in this problem) over the (integer) intervals

1, . . . , i2 − 1; i2 , . . . , i3 − 1; ... iK , . . . , N.

We call αk and βk the slope and offset, respectively, in the kth interval. (It is very common
to refer to such a signal as piecewise-linear, since ‘linear’ is sometimes used to mean ‘affine’.)
We can also add a continuity requirement,

αk ik+1 + βk = αk+1 ik+1 + βk+1 , k = 1, . . . , K − 1.

This means that if each piecewise affine segment were extrapolated to the next index, the
value would agree with the starting value for the next segment. When a PWA signal satisfies
this condition, we say that it is continuous. (Of course, it doesn’t make sense to refer to a
discrete signal as continuous; this is just special notation for PWA signals that refers to the
condition above.)

93
Finally, we get to the problem.
a) You are given a signal y ∈ RN , and some kink points i1 , . . . , iK+1 . How would one find
the best PWA approximation ŷ pwa of y, with approximation error measured in the RMS
sense,
 1/2
N
1
X
(ŷjpwa − yj )2  .
N
j=1

b) Repeat part (a), but this time, you are to find the continuous PWA approximation ŷ pwac
that minimizes the RMS deviation from y.
c) Carry out your methods from parts (a) and (b) on the data given in pwa_data.m. Run-
ning this data file will define y and the kink points. The data file also includes a
commented out code template for plotting your results. Using this template, plot the
original signal along with the PWA and continuous PWA approximations. Give us the
RMS approximation error in both cases.

8.1300. Robust input design. We are given a system, which we know follows y = Ax, with A ∈
Rm×n . Our goal is to choose the input x ∈ Rn so that y ≈ y des , where y des ∈ Rm is a given
target outcome. We’ll assume that m ≤ n, i.e., we have more degrees of freedom in our choice
of input than specifications for the outcome. If we knew A, we could use standard EE263
methods to choose x. The catch here, though, is that we don’t know A exactly; it varies a bit,
say, day to day. But we do have some possible values of A,

A(1) , . . . , A(K) ,

which might, for example, be obtained by measurements of A taken on different days. We


now define y (i) = A(i) x, for i = 1, . . . , K. Our goal is to choose x so that y (i) ≈ y des , for
i = 1, . . . , K.
We will consider two different methods to choose x.
• Least norm method. Define Ā = (1/K) K i=1 A . Choose x
(i) ln to be the least-norm
P
solution of Āx = y des . (You can assume that Ā is full rank.)
• Mean-square error minimization method. Choose xmmse to minimize the mean-square
error
K
1 X (i)
ky − y des k2 .
K
i=1

a) Give formulas for xln and xmmse , in terms of y des and A(1) , . . . , A(K) . You can make any
needed rank assumptions about matrices that come up, but please state them explicitly.
b) Find xln and xmmse for the problem with data given in rob_inp_des_data.m. Running
this M-file will define ydes and the matrices A(i) (given as a 3 dimensional array; for
example, A(:,:,13) is A(13) ). Also included in the data file (commented out) is code to
produce scatter plots of your results. Write down the values of xln and xmmse you found.
Produce and submit scatter plots of y (i) for xln and xmmse . Use the code we provided as
a template for your plots.

94
8.1310. Unbiased estimation with deadlines. We consider a standard measurement set up, with
y = Ax+v, where y ∈ Rm is the vector of measurements, v ∈ Rm is the vector of measurement
noises, x ∈ Rn is the vector of parameters to be estimated, and A ∈ Rm×n characterizes the
measurement system. In this problem, you should think of the index for y as denoting a
time period, and you should imagine the measurements (i.e., the components of y) as arriving
sequentially. In the first time period, y1 becomes available, in the next time period y2 becomes
available, and so on, so that all m measurements are available in the mth time period.
You are to design a linear estimator, given by a matrix B ∈ Rn×m , with the estimate of x
given by x̂ = By. We require that the estimator be unbiased, i.e., that x̂ = x when v = 0.
In addition, we have deadline constraints, which we now explain. We require that x̂i can
be computed after ki time periods, i.e., we require that x̂i must be a function of y1 , . . . , yki
only. We say that ki is the deadline for computing x̂i , our estimate of the ith parameter to be
estimated. You are given increasing deadlines,

0 < k1 < k2 < · · · < kn = m.

Thus, x̂1 may only be computed from y1 , . . . , yk1 , while x̂n may be computed from all of the
measurements y1 , . . . , ym .
The data in this problem are the measurement matrix A and the deadlines k1 , . . . , kn .

a) How would you determine whether or not an unbiased linear estimator, which respects
the given deadlines, exists? Your answer does not have to be a single condition, such as
‘A is skinny and full rank’; it can involve a sequence of tests.
b) Assume that it is possible to find an unbiased linear estimator that respects the deadlines.
Explain how to find the smallest such estimator matrix, i.e., the B that minimizes
n X
X m
2
J= Bij .
i=1 j=1

If your method requires some matrix or matrices to be full rank, you can just assume
they are, but you must state this clearly.
c) Carry out the method described in part (b) on the data found in the M-file unbdl_data.m.
Compare the value of J found for your estimator with the value of J for B = A† . The
increase in J can be thought of as the cost of imposing the deadlines, in terms of the
size of estimator matrix.

8.1320. Portfolio selection with sector neutrality constraints. We consider the problem of
selecting a portfolio composed of n assets. We let xi ∈ R denote the investment (say, in
dollars) in asset i, with xi < 0 meaning that we hold a short position in asset i. We normalize
our total portfolio as 1T x = 1, where 1 is the vector with all entries 1. (With normalization,
the xi are sometimes called portfolio weights.)
The portfolio (mean) return is given by r = µT x, where µ ∈ Rn is a vector of asset (mean)
returns. We want to choose x so that r is large, while avoiding risk exposure, which we explain
next.
First we explain the idea of sector exposure. We have a list of k economic sectors (such as
manufacturing, energy, transportation, defense, . . . ). A matrix F ∈ Rk×n , called the factor

95
loading matrix, relates the portfolio x to the factor exposures, given as Rfact = F x ∈ Rk . The
number Rifact is the portfolio risk exposure to the ith economic sector. If Rifact is large (in
magnitude) our portfolio is exposed to risk from changes in that sector; if it is small, we are
less exposed to risk from that sector. If Rifact = 0, we say that the portfolio is neutral with
respect to sector i.
Another type of risk exposure is due to fluctations in the returns of the individual assets.
The idiosyncratic risk is given by
X n
id
R = σi2 x2i ,
i=1

where σi > 0 are the standard deviations of the asset returns. (You can take the formula
above as a definition; you do not need to understand the statistical interpretation.)
We will choose the portfolio weights x so as to maximize r − λRid , which is called the
risk-adjusted return, subject to neutrality with respect to all sectors, i.e., Rfact = 0. Of course
we also have the normalization constraint 1T x = 1. The parameter λ, which is positive, is
called the risk aversion parameter. The (known) data in this problem are µ ∈ Rn , F ∈ Rk×n ,
σ = (σ1 , . . . , σn ) ∈ Rn , and λ ∈ R.

a) Explain how to find x, using methods from the course. You are welcome (even en-
couraged) to express your solution in terms of block matrices, formed from the given
data.

b) Using the data given in sector_neutral_portfolio_data.json, find the optimal port-


folio. Report the associated values of r (the return), and Rid (the idiosyncratic risk).
Verify that 1T x = 1 (or very close) and Rfact = 0 (or very small).

8.1330. Minimum energy control with delayed destination knowledge. . We consider a


vehicle moving in R2 , with dynamics

x(t + 1) = Ax(t) + Bu(t), p(t) = Cx(t), t = 1, 2, . . . , x(1) = 0,

where x(t) ∈ Rn is the state, u(t) ∈ Rm is the input, and p(t) ∈ R2 is the position of the
vehicle, at time t. The matrices A ∈ Rn×n , B ∈ Rn×m and C ∈ R2×n , and the initial state
x(1), are given.
The vehicle must reach a destination d ∈ R2 at time t = M + N + 1, where M > 0 and
N > 0, i.e., we must have p(M + N + 1) = d. The subtlety here is that we are not told what
d is at t = 1; we simply know that it is one of K possible destinations d(1) , . . . , d(K) (which we
are given). At time t = M + 1, the destination (which is one of d(1) , . . . , d(K) ) will be revealed
to you.
Thus, you must choose the inputs up to time M , u(1), u(2), . . . , u(M ), independent of the
actual final destination; but you can choose u(M + 1), . . . , u(M + N ) depending on the final
destination. We will denote the choice of these inputs, in the case when the final destination
is d(k) , as u(k) (M + 1), . . . , u(k) (M + N ).
We will choose the inputs to minimize the cost function
M K M +N
X
2 1 X X
ku(t)k + ku(k) (t)k2 ,
K
t=1 k=1 t=M +1

96
which is the sum of squared-norm costs, averaged over all destinations.

a) Explain how to find u(1), . . . , u(M ) and u(k) (M + 1), . . . , u(k) (M + N ), for k = 1, . . . , K.

b) Carry out your method on the data given in delayed_dest_data.m. Report the optimal
cost function value, and for each possible destination plot the position of the vehicle
p(k) (1), . . . , p(k) (M + N + 1). (The data file contains commented-out code for producing
your plots.)
Comment briefly on the following statement: “Since we do not know where we are
supposed to go until t = M + 1, there’s no point using the input (for which we are
charged) until then.”

8.1340. Smooth and least-norm force profiles. Consider the mass/force example described in
the lecture notes (slides 2-11 and 8-10) with n = 10. For this problem, we are interested in
input force sequences which move the mass from an initial position and velocity of zero to
final position 1 and final velocity zero.

a) Find the sequence of forces that will move the mass as required, while minimizing the
norm of the force vector.

b) Define the roughness R of a vector x ∈ Rn as


n
X
R= (xi+1 − xi )2 ,
i=0

where we let x0 = xn+1 = 0. Find the sequence of forces with the smallest roughness R.
Show both force profiles in a single plot.

Remark. Please solve these problems exactly, i.e., do not solve a regularized least-squares
problem with µ set very large or small.

8.1350. Minimum energy control of docking vehicles. We consider two vehicles moving under
the influence of applied forces, which can operate in docked mode (connected together to move
as one unit) or in undocked mode, in which they move independently.
We will use a discrete time model. We let pi (k) ∈ R2 (vi (k) ∈ R2 ), k = 1, . . . denote the
position (velocity) of vehicle i at (continuous) time t = kh, for i = 1, 2. (We start at k = 1 to
simplify the indexing in your code.) The vehicles are docked in time periods k = 1, . . . , K − 1,
and undocked in periods k = K, . . ..
When the vehicles are docked, i.e., for k = 1, . . . , K − 1, we have p1 (k) = p2 (k), v1 (k) =
v2 (k), and

h2
pi (k + 1) = pi (k) + hvi (k) + (f1 (k) + f2 (k))
2(m1 + m2 )
h
vi (k + 1) = vi (k) + (f1 (k) + f2 (k))
m1 + m2
for i = 1, 2. Here mi is the (positive) mass of vehicle i, h > 0 is the sampling time, and
fi (k) ∈ R2 is the force applied to vehicle i over (continuous) time interval kh ≤ t < (k + 1)h.

97
When the vehicles are undocked, i.e., for k = K, . . . , N , we have, for i = 1, 2,

h2
pi (k + 1) = pi (k) + hvi (k) + fi (k)
2mi
h
vi (k + 1) = vi (k) + fi (k)
mi

The vehicles are given initial position and velocities pi (1) = pinit , and vi (1) = v init , for i = 1, 2.
The vehicles must arrive at time period N + 1 at (different) given final destinations, with zero
velocity, i.e., for i = 1, 2,

pi (N + 1) = pdest
i , vi (N + 1) = v2 (N + 1) = 0.

The problem is to find forces fi (k), k = 1, . . . , N , i = 1, 2, and the undocking time K, that
minimize the cost function
2 N
1 XX
J= kfi (k)k2 .
N
i=1 k=1

Solve this problem with the data h = 0.01, m1 = 1, m2 = 4, N = 100, and


       
init 0 init −1 dest 0.5 dest 2
p = , v = , p1 = , p2 = .
0 1 0.5 0

Give the optimal undocking time K and the associated value of J. Plot the trajectory of the
two vehicles in R2 using something similar to plot(p1(1,:),p1(2,:),p2(1,:),p2(2,:)).
Also, plot the optimal forces for each of the vehicles as a function of time.

9.1360. A simple population model. We consider a certain population of fish (say) each (yearly)
season. x(t) ∈ R3 will describe the population of fish at year t ∈ Z, as follows:

• x1 (t) denotes the number of fish less than one year old

• x2 (t) denotes the number of fish between one and two years old

• x3 (t) denotes the number of fish between two and three years

(We will ignore the fact that these numbers are integers.) The population evolves from year t
to year t + 1 as follows.

• The number of fish less than one year old in the next year (t + 1) is equal to the total
number of offspring born during the current year. Fish that are less than one year old
in the current year (t) bear no offspring. Fish that are between one and two years old
in the current year (t) bear an average of 2 offspring each. Fish that are between two
and three years old in the current year (t) bear an average of 1 offspring each.

• 40% of the fish less than one year old in the current year (t) die; the remaining 60% live
on to be between one and two years old in the next year (t + 1).

• 30% of the one-to-two year old fish in the current year die, and 70% live on to be
two-to-three year old fish in the next year.

98
• All of the two-to-three year old fish in the current year die.

Express the population dynamics as an autonomous linear system with state x(t), i.e., in the
form x(t + 1) = Ax(t). Remark: this example is silly, but more sophisticated population
dynamics models are very useful and widely used.

9.1370. Tridiagonal systems. A square matrix A is called tridiagonal if Aij = 0 whenever |i−j| > 1.
Tridiagonal matrices arise in many applications.

a) Draw a pretty block diagram of ẋ = Ax, where A ∈ R4×4 is tridiagonal.

b) Consider a Markov chain with four states labeled 1,2,3,4. Let z(k) denote the state at
time k. The state transition probabilities are described as follows: when z is not 4, it
increases by one with probability 0.3; when z is not 1, it decreases by one with probability
0.2. (If z neither increases nor decreases, it stays the same, i.e., z(k + 1) = z(k)). Draw
a graph of this Markov chain as in the lecture notes. Give the discrete time linear system
equations that govern the evolution of the state distribution.

c) Find the linear dynamical system description for the circuit shown below. Use state
x = [v1 v2 v3 v4 ]T , where vi is the voltage across the capacitor Ci .

R5 R6 R7

R1 C1 R2 C2 C3 R3 C4 R4

9.1380. A distributed congestion control scheme. A data network is modeled as a set of l


directed links that connect n nodes. There are p routes in the network, which is a path from
a source node, along one or more links in the network, to the destination node. The routes are
determined and known. Each route has a source rate (in, say, bits per second). We denote the
source rate for route j at time t as xj (t), t = 0, 1, 2, . . .. (We assume the system operates in
discrete time.) The total traffic on a link is the sum of the source rates for the routes that pass
through it. We use Ti (t) to denote the total traffic on link i at time t, for i = 1, . . . , l. Each
link has a target traffic level, which we denote Titarget , i = 1, . . . , l. We define the congestion on
link i as Ti (t) − Titarget , i = 1, . . . , l. The congestion is positive if the traffic exceeds the target
rate, and negative if it is below the target rate. The goal in congestion control is to adjust
the source rates in such a way that the traffic levels converge to the target levels if possible,
or close to the target levels otherwise. In this problem we consider a very simple congestion
control protocol. Each route monitors the congestion for the links along its route. It then
adjusts its source rate proportional to the sum of the congestion along its route. This can be
expressed as:

xj (t + 1) = xj (t) − α (sum of congestion along route j) , j = 1, . . . , p,

99
4

1 2
3
2 1

5 3

Figure 1: Data network for part (b), with links shown darker. Route 1 is (1, 2, 3), route 2 is
(1, 2, 3, 4), route 3 is (3, 4, 5), and route 4 is (4, 5, 1), where routes are defined as sequences of
links. All traffic and routes flow counterclockwise (although this doesn’t matter).

where α is a positive scalar that determines how aggressively the source rates react to conges-
tion. Note that this congestion control method is distributed ; each source only needs to know
the congestion along its own route, and does not directly coordinate its adjustments with the
other routes. In real congestion control, the rates and traffic are nonnegative, and the traffic
on each link must be below a maximum allowed level called the link capacity. In this problem,
however, we ignore these effects; we do not take into account the link capacities, and allow
the source rates and total traffic levels to become negative. Before we get to the questions, we
define a matrix that may be useful. The route-link matrix R ∈ Rl×p , is defined as
(
1 route j utilizes link i
Rij =
0 otherwise

a) Show that x(t), the vector of source rates, can be expressed as a linear dynamical system
with constant input, i.e., we have x(t + 1) = Ax(t) + b. Be as explicit as you can about
what A and b are. Try to use the simplest notation you can. Hint: use the matrix R.

b) Simulate the congestion control algorithm for the network shown in figure 1, from two
different initial source rates, using algorithm parameter α = 0.1, and all target traffic
levels equal to one. Plot the traffic level Ti (t) for each link (on the same plot) versus t,
for each of the initial source rates. (You are welcome to simulate the system from more
than two initial source rates; we only ask you to hand in the plots for two, however.)
Make a brief comment on the results.

c) Now we come back to the general case (and not just the specific example from part (b)).
Assume the congestion control update (i.e., the linear dynamical system found in part
(a)) has a unique equilibrium point x̄, and that the rate x(t) converges to it as t → ∞.
What can you say about x̄? Limit yourself to a few sentences. Does the rate x̄ always
correspond to zero congestion on every link? Is it optimal in any way?

100
d) Describe how you would check if the a traffic target level T target is achievable? Use your
method to see if the given traffic target level from part (b) is achievable? idea: given
T target need to check if it is in range(R). use matlab command,

>> dim = rank([orth(R) Ttarget])


dim = 5

e) Find a traffic target level T target with unit norm and all positive components (route traffic
levels) that is achievable with network topology in part (b). You need to show us that
this T target will achieve zero congestions on all the links. You can assume that congestion
algorithm will converge. idea: need to pick a positive unit vector from range(R). using
matlab,

>> basis = -orth(R);


>> Ttarget = basis(:,1)
Ttarget =
0.5130
0.3670
0.5130
0.5036
0.2920

f) stability criterion is |λmax (RT R)| ≤ 1/α

shown below: 01000


10 01000
9.1400. Controlling a system using the initial conditions. Consider the mechanical system
111 111
10
q1 q2
k1 k2
m1 m2

Here qi give the displacements of the masses, mi are the values of the masses, and ki are the
spring stiffnesses, respectively. The dynamics of this system are

0 0 1 0
 
 0 0 0 1
ẋ =  x
 − k1m+k
1
2 k2
m1 0 0
k2 k2
m2 −m 2
0 0

where the state is given by 



q1
 q2 
x=
 q̇1  .

q̇2

101
Immediately before t = 0, you are able to apply a strong impulsive force αi to mass i, which
results in initial condition  
0
 0 
x(0) =  α1 /m1  .

α2 /m2
(i.e., each mass starts with zero position and a velocity determined by the impulsive forces.)
This problem concerns selection of the impulsive forces α1 and α2 . For parts a–c below, the
parameter values are
m1 = m2 = 1, k1 = k2 = 1.
Consider the following specifications:

a) q2 (10) = 2

b) q1 (10) = 1, q2 (10) = 2

c) q1 (10) = 1, q2 (10) = 2, q̇1 (10) = 0, q̇2 (10) = 0

d) q2 (10) = 2 when the parameters have the values used above (i.e., m1 = m2 = 1,
k1 = k2 = 1), and also, q2 (10) = 2 when the parameters have the values m1 = 1,
m2 = 1.3, k1 = k2 = 1.

Determine whether each of these specifications is feasible or not (i.e., whether there exist
α1 , α2 ∈ R that make the specification hold). If the specification is feasible, find the particular
α1 , α2 that satisfy the specification and minimize α12 +α22 . If the specification is infeasible, find
the particular α1 , α2 that come closest, in a least-squares sense, to satisfying the specification.
(For example, if you cannot find α1 , α2 that satisfy q1 (10) = 1, q2 (10) = 2, then find αi that
minimize (q1 (10) − 1)2 + (q2 (10) − 2)2 .) Be sure to be very clear about which alternative holds
for each specification.

9.1410. Invariance of the unit square. Consider the linear dynamical system ẋ = Ax with A ∈
R2×2 . The unit square in R2 is defined by

S = { x | −1 ≤ x1 ≤ 1, − 1 ≤ x2 ≤ 1 }.

a) Find the exact conditions on A for which the unit square S is invariant under ẋ = Ax.
Give the conditions as explicitly as possible.

b) Consider the following statement: if the eigenvalues of A are real and negative, then S is
invariant under ẋ = Ax. Either show that this is true, or give an explicit counterexample.

9.1420. Iterative solution of linear equations. In many applications we need to solve a set of
linear equations Ax = b, where A is nonsingular (square) and x is very large (e.g., x ∈ R100000 ).
We assume that Az can be computed at reasonable cost, for any z, but the standard methods
for computing x = A−1 b (e.g., LU decomposition) are not feasible. A common approach is
to use an iterative method, which computes a sequence x(1), x(2) , . . . that converges to the
solution x = A−1 b. These methods rely on another matrix Â, which is supposed to be ‘close’

102
to A. More importantly, Â has the property that Â−1 z is easily or cheaply computed for
any given z. As a simple example, the matrix  might be the diagonal part of the matrix A
(which, presumably, has relatively small off-diagonal elements). Obviously computing Â−1 z
is fast; it’s just scaling the entries of z. There are many, many other examples. A simple
iterative method, sometimes called relaxation, is to set x̂(0) equal to some approximation of
x (e.g., x̂(0) = Â−1 b) and repeat, for t = 0, 1, . . .

r(t) = Ax̂(t) − b; x̂(t + 1) = x̂(t) − Â−1 r(t);

(The hat reminds us that x̂(t) is an approximation, after t iterations, of the true solution
x = A−1 b.) This iteration uses only ‘cheap’ calculations: multiplication by A and Â−1 . Note
that r(t) is the residual after the tth iteration.

a) Let β = kÂ−1 (A − Â)k (which is a measure of how close  and A are). Show that if we
choose x̂(0) = Â−1 b, then kx̂(t) − xk ≤ β t+1 kxk. Thus if β < 1, the iterative method
works, i.e., for any b we have x̂(t) → x as t → ∞. (And if β < 0.8, say, then convergence
is pretty fast.)

b) Find the exact conditions on A and  such that the method works for any starting
approximation x̂(0) and any b. Your condition can involve norms, singular values, con-
dition number, and eigenvalues of A and Â, or some combination, etc. Your condition
should be as explicit as possible; for example, it should not include any limits. Try to
avoid the following two errors:

• Your condition guarantees convergence but is too restrictive. (For example: β =


kÂ−1 (A − Â)k < 0.8)
• Your condition doesn’t guarantee convergence.

9.1430. Periodic solution of periodic linear dynamical system. Consider the linear dynamical
system ẋ = A(t)x where
(
A1 2k ≤ t < 2k + 1, k = 0, 1, 2, . . .
A(t) =
A2 2k + 1 ≤ t < 2k + 2, k = 0, 1, 2, . . .

In other words, A(t) switches between the two values A1 ∈ Rn×n and A2 ∈ Rn×n every second.
The matrix A(t) is periodic with period 2, i.e., A(t + 2) = A(t) for all t ≥ 0.

a) Existence of a periodic trajectory. What are the conditions on A1 and A2 under which
the system has a nonzero periodic trajectory, with period 2? By this we mean: there
exists x : R+ → Rn , x not identically zero, with x(t + 2) = x(t) and ẋ = A(t)x.

b) All trajectories are asymptotically periodic. What are the conditions on A1 and A2 under
which all trajectories of the system are asymptotically 2-periodic? By this we mean: for
every x : R+ → Rn with ẋ = A(t)x, we have

lim kx(t + 2) − x(t)k = 0.


t→∞

(Note that this holds when x converges to zero . . . )

103
Please note:

• Your conditions should be as explicit as possible. You can refer to the matrices A1
and A2 , or any matrices derived from them using standard matrix operations, their
eigenvalues and eigenvectors or Jordan forms, singular values and singular vectors, etc.

• We do not want you to give us a condition under which the property described holds.
We want you to give us the most general conditions under which the property holds.

9.1440. Analysis of a power control algorithm. In this problem we consider again the power
control method described in homework problem 2.1 Please refer to this problem for the setup
and background. In that problem, you expressed the power control method as a discrete-time
linear dynamical system, and simulated it for a specific set of parameters, with several values
of initial power levels, and two target SINRs. You found that for the target SINR value γ = 3,
the powers converged to values for which each SINR exceeded γ, no matter what the initial
power was, whereas for the larger target SINR value γ = 5, the powers appeared to diverge,
and the SINRs did not appear to converge. You are going to analyze this, now that you know
alot more about linear systems.

a) Explain the simulations. Explain your simulation results from the problem 1(b) for the
given values of G, α, σ, and the two SINR threshold levels γ = 3 and γ = 5.

b) Critical SINR threshold level. Let us consider fixed values of G, α, and σ. It turns out
that the power control algorithm works provided the SINR threshold γ is less than some
critical value γcrit (which might depend on G, α, σ), and doesn’t work for γ > γcrit .
(‘Works’ means that no matter what the initial powers are, they converge to values for
which each SINR exceeds γ.) Find an expression for γcrit in terms of G ∈ Rn×n , α, and
σ. Give the simplest expression you can. Of course you must explain how you came up
with your expression.

9.1450. Stability of a time-varying system. We consider a discrete-time linear dynamical system

x(t + 1) = A(t)x(t),

where A(t) ∈ {A1 , A2 , A3 , A4 }. These 4 matrices, which are 4 × 4, are given in tv_data.m.
Show that this system is stable, i.e., for any trajectory x, we have x(t) → 0 as t → ∞.
(This means that for any x(0), and for any sequence A(0), A(1), A(2), . . ., we have x(t) → 0
as t → ∞.)
You may use any methods or concepts used in the class, e.g., least-squares, eigenvalues,
singular values, controllability, and so on. Your proof will consist of two parts:

• An explanation of how you are going to show that any trajectory converges to zero.
Your argument of course will require certain conditions (that you will find) to hold for
the given data A1 , . . . , A4 .

• The numerical calculations that verify the conditions hold for the given data. You must
provide the source code for these calculations, and show the results as well.

104
9.1460. Linear dynamical system with constant input. We consider the system ẋ = Ax + b,
with x(t) ∈ Rn . A vector xe is an equilibrium point if 0 = Axe + b. (This means that the
constant trajectory x(t) = xe is a solution of ẋ = Ax + b.)
a) When is there an equilibrium point?

b) When are there multiple equilibrium points?

c) When is there a unique equilibrium point?

d) Now suppose that xe is an equilibrium point. Define z(t) = x(t)−xe . Show that ż = Az.
From this, give a general formula for x(t) (involving xe , exp(tA), x(0)).

e) Show that if all eigenvalues of A have negative real part, then there is exactly one
equilibrium point xe , and for any trajectory x(t), we have x(t) → xe as t → ∞.

9.1470. Optimal choice of initial temperature profile. We consider a thermal system described
by an n-element finite-element model. The elements are arranged in a line, with the temper-
ature of element i at time t denoted Ti (t). Temperature is measured in degrees Celsius above
ambient; negative Ti (t) corresponds to a temperature below ambient. The dynamics of the
system are described by
c1 Ṫ1 = −a1 T1 − b1 (T1 − T2 ),
ci Ṫi = −ai Ti − bi (Ti − Ti+1 ) − bi−1 (Ti − Ti−1 ), i = 2, . . . , n − 1,
and
cn Ṫn = −an Tn − bn−1 (Tn − Tn−1 ).
where c ∈ Rn , a∈ Rn ,and b ∈ Rn−1 are given and are all positive.
We can interpret this model as follows. The parameter ci is the heat capacity of element
i, so ci Ṫi is the net heat flow into element i. The parameter ai gives the thermal conduc-
tance between element i and the environment, so ai Ti is the heat flow from element i to the
environment (i.e., the direct heat loss from element i.) The parameter bi gives the thermal
conductance between element i and element i+1, so bi (Ti −Ti+1 ) is the heat flow from element
i to element i + 1. Finally, bi−1 (Ti − Ti−1 ) is the heat flow from element i to element i − 1.
The goal of this problem is to choose the initial temperature profile, T (0) ∈ Rn , so that
T (t ) ≈ T des . Here, tdes ∈ R is a specific time when we want the temperature profile to
des

closely match T des ∈ Rn . We also wish to satisfy a constraint that kT (0)k should be not be
too large.

To formalize these requirements, we use the objective (1/ n)kT (tdes ) − T des k and the

constraint (1/ n)kT (0)k ≤ T max . The first expression is the RMS temperature deviation,
at t = tdes , from the desired value, and the second is the RMS temperature deviation from
ambient at t = 0. T max is the (given) maximum inital RMS temperature value.

a) Explain how to find T (0) that minimizes the objective while satisfying the constraint.

b) Solve the problem instance with the values of n, c, a, b, tdes , T des and T max defined in
the file temp_prof_data.m.
Plot, on one graph, your T (0), T (tdes ) and T des . Give the RMS temperature error
√ √
(1/ n)kT (tdes ) − T des k, and the RMS value of initial temperature (1/ n)kT (0)k.

105
10.1480. Damped version of a linear system. Suppose ẋ = Ax and ż = σz + Az = (A + σI)z
where σ ∈ R, and x(0) = z(0). How are z(t) and x(t) related? Find the simplest possible
expression for z(t) in terms of x(t). Justify your answer. When σ < 0, some people refer to
the system ż = σz + Az as a damped version of ẋ = Ax. Another way to think of the damped
system is in terms of leaky integrators. A leaky integrator satisfies ẏ − σy = u; to get the
damped system, you replace every integrator in the original system with a leaky integrator.
 
0 ω
10.1490. Harmonic oscillator. The system ẋ = x is called a harmonic oscillator.
−ω 0

a) Find the eigenvalues, resolvent, and state transition matrix for the harmonic oscillator.
Express x(t) in terms of x(0).

b) Sketch the vector field of the harmonic oscillator.

c) The state trajectories describe circular orbits, i.e., kx(t)k is constant. Verify this fact
using the solution from part (a).

d) You may remember that circular motion (in a plane) is characterized by the velocity
vector being orthogonal to the position vector. Verify that this holds for any trajectory
of the harmonic oscillator. Use only the differential equation; do not use the explicit
solution you found in part (a).

10.1500. Properties of the matrix exponential.

a) Show that eA+B = eA eB if A and B commute, i.e., AB = BA.

b) Carefully show that d At


dt e = AeAt = eAt A.

10.1510. Two-point
 boundary
 value problem. Consider the system described by ẋ = Ax, where
−1 1
A= .
−1 1

a) Find eA .

b) Suppose x1 (0) = 1 and x2 (1) = 2. Find x(2). (This is called a two-point boundary value
problem, since we are given conditions on the state at two time points instead of the
usual single initial point.)

10.1520. Determinant of matrix exponential.

a) Suppose the eigenvalues of A ∈ Rn×n are λ1 , . . . , λn . Show that the eigenvalues of eA are
eλ1 , . . . , eλn . You can assume that A is diagonalizable, although it is true in the general
case.

b) Show that det eA = etrace A . Hint: det X is the product of the eigenvalues of X, and
trace Y is the sum of the eigenvalues of Y .

106
10.1530. Linear system with a quadrant detector. In this problem we consider the specific system
 
0.5 1.4
ẋ = Ax = x.
−0.7 0.5

We have a detector or sensor that gives us the sign of each component of the state x = [x1 x2 ]T
each second:
y1 (t) = sgn(x1 (t)), y2 (t) = sgn(x2 (t)), t = 0, 1, 2, . . .
where the function sgn : R → R is defined by

1
 a>0
sgn(a) = 0 a=0

−1 a < 0

There are several ways to think of these sensor measurements. You can think of y(t) =
[y1 (t) y2 (t)]T as determining which quadrant the state is in at time t (thus the name quadrant
detector ). Or, you can think of y(t) as a one-bit quantized measurement of the state at time
t. Finally, the problem. You observe the sensor measurements
   
1 1
y(0) = , y(1) = .
−1 −1

Based on these measurements, what values could y(2) possibly take on? In terms of the
quadrants, the problem can be stated as follows. x(0) is in quadrant IV, and x(1) is also in
quadrant IV. The question is: which quadrant(s) can x(2) possibly be in? You do not know
the initial state x(0). Of course, you must completely justify and explain your answer.

10.1540. Linear system with one-bit quantized output. We consider the system

ẋ = Ax, y(t) = sign (cx(t))

where  
−0.1 1  
A= , c = 1 −1 ,
−1 0.1
and the sign function is defined as

+1 if a > 0


sign(a) = −1 if a < 0
if a = 0

0

Rougly speaking, the output of this autonomous linear system is quantized to one-bit precision.
The following outputs are observed:

y(0.4) = +1, y(1.2) = −1, y(2.3) = −1, y(3.8) = +1

What can you say (if anything) about the following:

y(0.7), y(1.8), and y(3.7)?

107
Your response might be, for example: “y(0.7) is definitely +1, and y(1.8) is definitely −1, but
y(3.7) can be anything (i.e., −1, 0, or 1)”. Of course you must fully explain how you arrive
at your conclusions. (What we mean by “y(0.7) is definitely +1” is: for any trajectory of the
system for which y(0.4) = +1, y(1.2) = −1, y(2.3) = −1, and y(3.8) = +1, we also have
y(0.7) = +1.)

10.1550. Some basic properties of eigenvalues. Show the following:

a) The eigenvalues of A and AT are the same.

b) A is invertible if and only if A does not have a zero eigenvalue.

c) If the eigenvalues of A are λ1 , . . . , λn and A is invertible, then the eigenvalues of A−1


are 1/λ1 , . . . , 1/λn .

d) The eigenvalues of A and T −1 AT are the same.

Hint: you’ll need to use the facts that det A = det(AT ), det(AB) = det A det B, and, if A is
invertible, det A−1 = 1/ det A.

10.1560. Characteristic polynomial. Consider the characteristic polynomial X (s) = det(sI − A)


of the matrix A ∈ Rn×n .

a) Show that X is monic, which means that its leading coefficient is one: X (s) = sn + · · · .

b) Show that the sn−1


Pcoefficient of X is given by − trace A. (trace X is the trace of a
n
matrix: trace X = i=1 Xii .)

c) Show that the constant coefficient of X is given by det(−A).

d) Let λ1 , . . . , λn denote the eigenvalues of A, so that

X (s) = sn + an−1 sn−1 + · · · + a1 s + a0 = (s − λ1 )(s − λ2 ) · · · (s − λn ).

By equating coefficients show that an−1 = − ni=1 λi and a0 = ni=1 (−λi ).


P Q

10.1570. The adjoint system. The adjoint system associated with the linear dynamical system
ẋ = Ax is ż = AT z. Evidently the adjoint system and the system have the same eigenvalues.

a) How are the state-transition matrices of the system and the adjoint system related?

b) Show that z(0)T x(t) = z(t)T x(0).

10.1580. Spectral resolution of the identity. Suppose A ∈ Rn×n has n linearly independent eigen-
vectors p1 , . . . , pn , pT
i pi = 1, i = 1, . . . , n, with associated eigenvalues λi . Let P = [p1 · · · pn ]
and Q = P −1 . Let qiT be the ith row of Q.

a) Let Rk = pk qkT . What is the range of Rk ? What is the rank of Rk ? Can you describe
the null space of Rk ?

108
b) Show that Ri Rj = 0 for i 6= j. What is Ri2 ?

c) Show that
n
X Rk
(sI − A)−1 = .
s − λk
k=1

Note that this is a partial fraction expansion of (sI − A)−1 . For this reason the Ri ’s are
called the residue matrices of A.

d) Show that R1 + · · · + Rn = I. For this reason the residue matrices are said to constitute
a resolution of the identity.

e) Find the residue matrices for  


1 0
A=
1 −2
both ways described above (i.e., find P and Q and then calculate the R’s, and then do
a partial fraction expansion of (sI − A)−1 to find the R’s).

10.1590. Using matlab to find an invariant plane. Consider the continuous-time system ẋ = Ax
with A given by  
−0.1005 1.0939 2.0428 4.4599
 −1.0880 −0.1444 5.9859 −3.0481 
A=  −2.0510 −5.9709 −0.1387 1.9229 

−4.4575 3.0753 −1.8847 −0.1164


You can verify that the eigenvalues of A are

λ1,2 = −0.10 ± j5, λ3,4 = −0.15 ± j7.

a) Find an orthonormal basis (q1 , q2 ) for the invariant plane associated with λ1 and λ2 .

b) Find q3 , q4 ∈ R4 such that Q = [q1 q2 q3 q4 ] is orthogonal. You might find the matlab
command null useful; it computes an orthonormal basis of the null space of a matrix.

c) Plot the individual states constituting the trajectory x(t) of the system starting from an
initial point in the invariant plane, say x(0) = q1 , for 0 ≤ t ≤ 40.

d) If x(t) is in the invariant plane what can you say about the components of the vector
QT x(t)?

e) Using the result of part (d) verify that the trajectory you found in part (c) is in the
invariant plane.

Note: The A matrix is available on the class web site in the file inv_plane_matrix.m.

109
10.1600. Positive quadrant invariance. We consider a system ẋ = Ax with x(t) ∈ R2 (although
the results of this problem can be generalized to systems of higher dimension). We say the
system is positive quadrant invariant (PQI) if whenever x1 (T ) ≥ 0 and x2 (T ) ≥ 0, we have
x1 (t) ≥ 0 and x2 (t) ≥ 0 for all t ≥ T . In other words, if the state starts inside (or enters) the
positive (i.e., first) quadrant, then the state remains indefinitely in the positive quadrant.

a) Find the precise conditions on A under which the system ẋ = Ax is PQI. Try to express
the conditions in the simplest form.

b) True or False: if ẋ = Ax is PQI, then the eigenvalues of A are real.

10.1610. Some matlab exercises. Consider the continuous-time system ẋ = Ax where A can be
found in sys_dynamics_matA.m and is equal to
 
−0.1005 1.0939 2.0428 4.4599
 −1.0880 −0.1444 5.9859 −3.0481 
A=  −2.0510
.
−5.9709 −0.1387 1.9229 
−4.4575 3.0753 −1.8847 −0.1164

a) What are the eigenvalues of A? Is the system stable? You can use the command eig in
matlab.

b) Plot a few trajectories of x(t), i.e., x1 (t), x2 (t), x3 (t) and x4 (t), for a few initial condi-
tions. To do this you can use the matrix exponential command in matlab expm (not exp
which gives the element-by-element exponential of a matrix). Verify that the qualitative
behavior of the system is consistent with the eigenvalues you found in part (a).

c) Find the matrix Z such that Zx(t) gives x(t + 15). Thus, Z is the ‘15 seconds forward
predictor matrix’.

d) Find the matrix Y such that Y x(t) gives x(t − 20). Thus Y reconstructs what the state
was 20 seconds ago.

e) Briefly comment on the size of the elements of the matrices Y and Z.

f) Find x(0) such that x(10) = [1 1 1 1]T .

10.1620. Volume preserving flows. Suppose we have a set S ⊆ Rn and a linear dynamical system
ẋ = Ax. We can propagate S along the ‘flow’ induced by the linear dynamical system by
considering
S(t) = eAt S = { eAt s | s ∈ S }.
Thus, S(t) is the image of the set S under the linear transformation etA . What are the
conditions on A so that the flow preserves volume, i.e., vol S(t) = vol S for all t? Can the flow
ẋ = Ax be stable? Hint: if F ∈ Rn×n then vol(F S) = | det F | vol S, where F S = { F s | s ∈
S }.

110
10.1630. Stability of a periodic system. Consider the linear dynamical system ẋ = A(t)x where
(
A1 2n ≤ t < 2n + 1, n = 0, 1, 2, . . .
A(t) =
A2 2n + 1 ≤ t < 2n + 2, n = 0, 1, 2, . . .

In other words, A(t) switches between the two values A1 and A2 every second. We say that
this (time-varying) linear dynamical system is stable if every trajectory converges to zero, i.e.,
we have x(t) → 0 as t → ∞ for any x(0). Find the conditions on A1 and A2 under which the
periodic system is stable. Your conditions should be as explicit as possible.

10.1640. Computing trajectories of a continuous-time LDS. We have seen in class that if x(t)
is the solution to the continuous-time, time-invariant, linear dynamical system

ẋ = Ax, x(0) = x0 ,

then the Laplace transform of x(t) is given by

X(s) = (sI − A)−1 x0 .

Hence, we can obtain x(t) from the inverse Laplace transform of the resolvent of A:
 
x(t) = L−1 (sI − A)−1 x0 .

a) Assuming that A ∈ Rn×n has n independent eigenvectors, write x(t) in terms of the
residue matrices Ri and associated eigenvalues λi , i = 1, . . . , n. (The residue matrices
are defined in the previous problem.)

b) Consider once again the matrix


 
1 3
A= .
0 −1

Write the solution x(t) for this dynamics matrix, with the initial condition x0 = [ 2 − 1 ]T .
Compute x1 (2), i.e., the value of the first entry of x(t) at t = 2.

c) Forward Euler approximation. With this same A and x0 , compute an approximation


to the trajectory x(t) by Euler approximation, with different step-sizes h. Run your
simulation from t = 0 to t = 2, with N steps. For the number of steps N , use the values
10, 100, 1000, and 10000 (with the corresponding step-size h = 2/N ). For each run,
you’ll obtain the sequence resulting from the discrete-time LDS

y(k + 1) = (I + hA)y(k), k = 0, . . . , N − 1

with y(0) = x0 . On the same graph, plot the first entry, y1 (k), of each of the four
sequences you obtain (with hk on the horizontal axis).

d) Error in Euler approximation. For each of the four runs, compute the final error in x1 ,
given by  = y1 (N ) − x1 (2). Plot  as a function of N on a logarithmic scale (hint: use
the matlab function loglog). How many steps do you estimate you would you need to
achieve a precision of 10−6 ?

111
e) Matrix exponential. The matrix exponential is defined by the series
+∞
X 1 k
eA = I + A .
k!
k=1

With A as above and h = 0.5, compute an approximation of the matrix exponential of


hA by adding the first ten term of the series:
10
X 1
B=I+ (hA)k .
k!
k=1

Compute 4 iterates of the discrete-time LDS

z(k + 1) = Bz(k), k = 0, . . . , 3,

with z(0) = x0 . Add z1 (k) to the plot of the y1 (k). What is the final error  =
z1 (4) − x1 (2)? Note: The matlab function expm uses a much more efficient algorithm
to compute the matrix exponential. For this example, expm requires about the same
computational effort as is needed to add the first ten terms of the series, but the result is
much more accurate. (If you’re curious, go ahead and compute the corresponding final
error .)

10.1650. Determining a linear system from experiments. Suppose ẋ = Ax with A ∈ Rn×n .


Two one-second experiments are performed. In the first, x(0) = [1 1]T and x(1) = [4 − 2]T .
In the second, x(0) = [1 2]T and x(1) = [5 − 2]T .
a) Find x(1) and x(2), given x(0) = [3 − 1]T .

b) Find A, by first computing the matrix exponential.

c) Either find x(1.5) or explain why you cannot (x(0) = [3 − 1]T ).

d) More generally, for ẋ = Ax with A ∈ Rn×n , describe a procedure for finding A using
experiments with different initial values. What conditions must be satisfied for your
procedure to work?

10.1660. Output response envelope for linear system with uncertain initial condition. We
consider the autonomous linear dynamical system ẋ = Ax, y(t) = Cx(t), where x(t) ∈ Rn and
y(t) ∈ R. We do not know the initial condition exactly; we only know that it lies in a ball of
radius r centered at the point x0 :
kx(0) − x0 k ≤ r.
We call x0 the nominal initial condition, and the resulting output, ynom (t) = CetA x0 , the
nominal output. We define the maximum output or upper output envelope as

y(t) = max{y(t) | kx(0) − x0 k ≤ r},

i.e., the maximum possible value of the output at time t, over all possible initial conditions.
(Here you can choose a different initial condition for each t; you are not required to find a

112
single initial condition.) In a similar way, we define the minimum output or lower output
envelope as
y(t) = min{y(t) | kx(0) − x0 k ≤ r},
i.e., the minimum possible value of the output at time t, over all possible initial conditions.

a) Explain how to find y(t) and y(t), given the problem data A, C, x0 , and r.

b) Carry out your method on the problem data in uie_data.m. On the same axes, plot
ynom , y, and y, versus t, over the range 0 ≤ t ≤ 10.

10.1670. Alignment of a fleet of vehicles. We consider a fleet of vehicles, labeled 1, . . . , n, which


move along a line with (scalar) positions y1 , . . . , yn . We let v1 , . . . , vn denote the velocities of
the vehicles, and u1 , . . . , un the net forces applied to the vehicles. The vehicle motions are
governed by the equations
ẏi = vi , v̇i = ui − vi .
(Here we take each vehicle mass to be one, and include a damping term in the equations.)
We assume that y1 (0) < · · · < yn (0), i.e., the vehicles start out with vehicle 1 in the leftmost
position, followed by vehicle 2 to its right, and so on, with vehicle n in the rightmost position.
The goal is for the vehicles to converge to the configuration

yi = i, vi = 0, i = 1, . . . , n,

i.e., first vehicle at position 1, with unit spacing between adjacent vehicles, and all stationary.
We call this configuration aligned, and the goal is to drive the vehicles to this configuration, i.e.,
to align the vehicles. We define the spacing between vehicle i and i+1 as si (t) = yi+1 (t)−yi (t),
for i = 1, . . . , n − 1. (When the vehicles are aligned, these spacings are all one.) We will
investigate three control schemes for aligning the fleet of vehicles.

• Right looking control is based on the spacing to the vehicle to the right. We use the
control law
ui (t) = si (t) − 1, i = 1, . . . , n − 1,
for vehicles i = 1, . . . , n − 1. In other words, we apply a force on vehicle i proportional
to its spacing error with respect to the vehicle to the right (i.e., vehicle i + 1). The
rightmost vehicle uses the control law

un (t) = −(yn (t) − n),

which applies a force proportional to its position error, in the opposite direction. This
control law has the advantage that only the rightmost vehicle needs an absolute mea-
surement sensor; the others only need a measurement of the distance to their righthand
neighbor.

• Left and right looking control adjusts the input force based on the spacing errors to the
vehicle to the left and the vehicle to the right:

si (t) − 1 si−1 (t) − 1


ui (t) = − , i = 2, . . . , n − 1,
2 2

113
The rightmost vehicle uses the same absolute error method as in right looking control,
i.e.,
un (t) = −(yn (t) − n),
and the first vehicle, which has no vehicle to its left, uses a right looking control scheme,
u1 (t) = s1 (t) − 1.
This scheme requires vehicle n to have an absolute position sensor, but the other vehicles
only need to measure the distance to their neighbors.
• Independent alignment is based on each vehicle independently adjusting its position with
respect to its required position:
ui (t) = −(yi (t) − i), i = 1, . . . , n.
This scheme requires all vehicles to have absolute position sensors.
In the questions below, we consider the specific case with n = 5 vehicles.
a) Which of the three schemes work? By ‘work’ we mean that the vehicles converge to
the alignment configuration, no matter what the initial positions and velocities are.
Among the schemes that do work, which one gives the fastest asymptotic convergence
to alignment? (If there is a tie between two or three schemes, say so.) In this part of the
problem you can ignore the issue of vehicle collisions, i.e., spacings that pass through
zero.
b) Collisions. In this problem we analyze vehicle collisions, which occur when any spacing
between vehicles is equal to zero. (For example, s3 (5.7) = 0 means that vehicles 3 and
4 collide at t = 5.7.) We take the particular starting configuration
y = (0, 2, 3, 5, 7), v = (0, 0, 0, 0, 0),
which corresponds to the vehicles with zero initial velocity, but not in the aligned po-
sitions. For each of the three schemes above (whether or not they work), determine if
a collision occurs. If a collision does occur, find the earliest collision, giving the time
and the vehicles involved. (For example, ‘Vehicles 3 and 4 collide at t = 7.7.’) If there
is a tie, i.e., two pairs of vehicles collide at the same time, say so. If the vehicles do
not collide, find the point of closest approach, i.e., the minimum spacing that occurs,
between any pair of vehicles, for t ≥ 0. (Give the time, the vehicles involved, and the
minimum spacing.) If there is a tie, i.e., two or more pairs of vehicles have the same
distance of closest approach, say so. Be sure to give us times of collisions or closest
approach with an absolute precision of at least 0.1.

10.1680. Scalar time-varying linear dynamical system. Show that the solution of ẋ(t) = a(t)x(t),
where x(t) ∈ R, is given by
Z t 
x(t) = exp a(τ ) dτ x(0).
0

(You can just differentiate this expression, and show that it satisfies ẋ(t) = a(t)x(t).) Find
a specific example showing that the analogous formula does not hold when x(t) ∈ Rn , with
n > 1.

114
10.1690. Optimal initial conditions for a bioreactor. The dynamics of a bioreactor are given by
ẋ(t) = Ax(t), where x(t) ∈ Rn is the state, with xi (t) representing the total mass of species
or component i at time t. Component i has (positive) value (or cost) ci , so the total value
(or cost) of the components at time t is cT x(t). (We ignore any extra cost that would be
incurred in separating the components.) Your job is to choose the initial state, under a budget
constraint, that maximizes the total value at time T . More specifically, you are to choose x(0),
with all entries nonnegative, that satisfies cT x(0) ≤ B, where B is a given positive budget.
The problem data (i.e., things you know) are A, c, T , and B.
You can assume that A is such that, for any x(0) with nonnegative components, x(t) will
also have all components nonnegative, for any t ≥ 0. (This occurs, by the way, if and only if
the off-diagonal entries of A are nonnegative.)

a) Explain how to solve this problem.

b) Carry out your method on the specific instance with data


   
0.1 0.1 0.3 0 3.5
 0 0.2 0.4 0.3   , c =  0.6  , T = 10,
 
A=  0.1 B = 1.
0.3 0.1 0   1.1 
0 0 0.2 0.1 2.0

Give the optimal x(0), and the associated (optimal) terminal value cT x(T ).
Give us the terminal value obtained when the initial state has equal mass in each com-
ponent, i.e., x(0) = α1, with α adjusted so that the total initial cost is B. Compare this
with the optimal terminal value.
Also give us the terminal value obtained when the same amount, B/n, is spent on each
initial state component (i.e., x(0)i = B/(nci )). Compare this with the optimal terminal
value.

10.1700. Optimal espresso cup pre-heating. At time t = 0 boiling water, at 100◦ C, is poured into
an espresso cup; after P seconds (the ‘pre-heating time’), the water is poured out, and espresso,
with initial temperature 95◦ C, is poured in. (You can assume this operation occurs instanta-
neously.) The espresso is then consumed exactly 15 seconds later (yes, instantaneously). The
problem is to choose the pre-heating time P so as to maximize the temperature of the espresso
when it is consumed.
We now give the thermal model used. We take the temperature of the liquid in the cup
(water or espresso) as one state; for the cup we use an n-state finite element model. The
vector x(t) ∈ Rn+1 gives the temperature distribution at time t: x1 (t) is the liquid (water or
espresso) temperature at time t, and x2 (t), . . . , xn+1 (t) are the temperatures of the elements
in the cup. All of these are in degrees C, with t in seconds. The dynamics are
d
(x(t) − 20 · 1) = A(x(t) − 20 · 1),
dt

where A ∈ R(n+1)×(n+1) . (The vector 20 · 1, with all components 20, represents the ambient

115
temperature.) The initial temperature distribution is
 
100
 20 
x(0) =  .  .
 
.
 . 
20

At t = P , the liquid temperature changes instantly from whatever value it has, to 95; the other
states do not change. Note that the dynamics of the system are the same before and after
pre-heating (because we assume that water and espresso behave in the same way, thermally
speaking).
We have very generously derived the matrix A for you. You will find it in espressodata.json.
In addition to A, the file also defines n, and, respectively, the ambient, espresso and preheat
water temperatures Ta (which is 20), Te (95), and Tl (100).
Explain your method, submit your code, and give final answers, which must include the
optimal value of P and the resulting optimal espresso temperature when it is consumed. Give
both to an accuracy of one decimal place, as in

‘P = 23.5 s, which gives an espresso temperature at consumption of 62.3◦ C.’

(This is not the correct answer, of course.)

10.1710. Nuclear reactor dynamics. In this problem we consider the dynamics of a batch of nuclear
reactor fuel. We let N (t) ∈ Rn denote the amounts (in some scaled units of atoms/cm3 ) of n
different isotopes that participate in reactions in the fuel, at time t (measured in years). The
initial fuel isotope amounts, N (0) ∈ Rn , is given. These isotope amounts evolve according to
a time-varying autonomous linear dynamical system (called the Bateman equations),

Ṅ (t) = (A + φ(t)B)N (t),

where A and B are known constant matrices in Rn×n that describe the reactions, and φ(t) ≥ 0
is the neutron density (in some scaled units of neutrons/cm3 ), which can be changed by
lowering or raising graphite rods in the reactor.
The power output from the fuel (in GW) is given by

P (t) = φ(t)cT N (t),

where c ∈ Rn is given, and the total radiation level is given by

R(t) = dT N (t),

where d ∈ Rn is given.
The reactor is operated as follows. The neutron density φ is piecewise constant, with the
initial value chosen so that the power output is a given level P max at t = 0. The value of the
power output is checked once per week (i.e., every 1/52 year); if the power output at one of
these times is below a given threshold P min , the neutron density is increased (instantaneously)
so the power output (after the neutron density adjustment) equals P max . This process of
occasionally resetting the neutron density value continues until the time t reaches the fuel

116
batch lifetime T life , at which point the fuel is removed from the reactor and stored. For
t > T life the neutron density is zero.
The remainder of this problem concerns the specific problem instance with data given in
the file nuc_react_dyn_data.m. (which also gives the names of the isotopes in N_names).
Find the times 0 < T1 < · · · < Tk < T life when the neutron density is increased. (Be sure
to give k, the number of times the neutron density is increased.) Plot the power output versus
t over [0, T life ]. For times Ti when the neutron density is increased, you can plot the power
output after the increase (which should be P max ). Over the same time scale, plot neutron
density φ(t), and radiation R(t).
Finally, plot the radiation R(t) versus t over the interval [0, 100] (i.e., for 100 years). Find
the time T 5% , when the radiation drops to 5% of its maximum value. (T 5% should be reported
to an accuracy of 0.1 year.)
Of course, you must give a clear description of how you solve the problem, the code you
use to solve it, and the final numerical results and plots.

11.1720. Left eigenvector properties. Suppose w is a left eigenvector of A ∈ Rn×n with real
negative eigenvalue λ.

a) Find a simple expression for wT eAt .

b) Let α < β. The set { z | α ≤ wT z ≤ β } is referred to as a slab. Briefly explain this


terminology. Draw a picture in R2 .

c) Show that the slab { z | 0 ≤ wT z ≤ β } is invariant for ẋ = Ax.

11.1730. Qualitative description of linear systems. Consider the linear dynamical system ẋ = Ax
where A ∈ Rn×n is diagonalizable with eigenvalues λi , eigenvectors vi , and left eigenvectors wi
for i = 1, . . . , n. Assume that λ1 > 0 and <λi < 0 for i = 2, . . . , n. Describe the trajectories
qualitatively. Specifically, what happens to x(t) as t → ∞? Give the answer geometrically, in
terms of x(0).

11.1740. Another formula for the matrix exponential. You might remember that for any com-
plex number a ∈ C, ea = limk→∞ (1 + a/k)k . You will establish the matrix analog: for any
A ∈ Rn×n ,
eA = lim (I + A/k)k .
k→∞

To simplify things, you can assume A is diagonalizable. Hint: diagonalize.

11.1750. Synchronizing a communication network. The graph below shows a communication


network, with communication links shown as lines between the nodes, which are labeled

117
1, . . . , 6. We refer to one node as a neighbor of another if they are connected by a link.
1 2

5
6

Each node has a clock. The clocks run at the same speed, but are not (initially) synchronized.
The shift or offset of clock i, with respect to some absolute clock (e.g., NIST’s atomic clocks
or the clock for the GPS system) will be denoted xi . Thus xi > 0 means the clock at node
i is running in advance of the standard clock, while xi < 0 means the ith clock is running
behind the standard clock. The nodes do not know their own clock offsets (or the offsets of
any of the other clocks); we introduce the numbers xi only so we can analyze the system.
At discrete intervals, which we denote t = 0, 1, 2 . . ., the nodes exchange communications
messages. Through this exchange each node is able to find out the relative time offset of its
own clock compared to the clocks of its neighboring nodes. For example, node 2 is able to
find out the differences x1 − x2 and x5 − x2 . (But remember, node 2 does not know any of
the absolute clock offsets x1 , x2 , or x5 .) While node i does not know its absolute offset xi ,
it is able to adjust it by adding a delay or advance to it. The new offset takes effect at the
next interval. Thus we have xi (t + 1) = xi (t) + ai (t), where ai (t) is the adjustment made
by the ith node to its clock in the tth interval. An engineer suggests the following scheme of
adjusting the clock offsets. At each interval, each node determines its relative offset with each
of its neighboring nodes. Then it computes the average of these relative offsets. The node
then adjusts its offset by this average. For example, for node 2 we would have the adjustment

(x1 (t) − x2 (t)) + (x5 (t) − x2 (t))


a2 (t) = .
2
Finally, the question.

a) What happens?

b) Why?

We are interested in questions such as: do all the clocks become synchronized with the standard
clock (i.e., x(t) → 0 as t → ∞)? Do the clocks become synchronized with each other (i.e., do
all xi (t) − xj (t) converge to zero as t → ∞)? Does the system become synchronized no matter
what the initial offsets are, or only for some initial offsets? You are welcome to use matlab to
do some relevant numerical computations, but you must explain what you are doing and why.
We will not accept simulations of the network as an explanation. Another engineer suggests a
modification of the scheme described above. She notes that if the scheme above were applied
to a simple network consisting of two connected nodes, then the two nodes would just trade
their offsets each time interval, so synchronization does not occur. To avoid this, she proposes

118
to adjust each node’s clock by only half the average offset with its neighbors. Thus, for node
2, this means:
1 (x1 (t) − x2 (t)) + (x5 (t) − x2 (t))
a2 (t) = .
2 2
a) Would you say this scheme is better or worse than the original one described above?
If one is better than the other, how is it better? (For example, does it achieve syn-
chronization from a bigger set of initial offsets, does it achieve synchronization faster,
etc.)

11.1760. Population dynamics. In this problem we will study how some population distribution
(say, of people) evolves over time, using a discrete-time linear dynamical system model. Let
t = 0, 1, . . . denote time in years (since the beginning of the study). The vector x(t) ∈ Rn
will give the population distribution at year t (on some fixed census date, e.g., January 1).
Specifically, xi (t) is the number of people at year t, of age i−1. Thus x5 (3) denotes the number
of people of age 4, at year 3, and x1 (t) (the number of 0 year-olds) denotes the number of
people born since the last census. We assume n is large enough that no one lives to age n.
We’ll also ignore the fact that xi are integers, and treat them as real numbers. (If x3 (4) = 1.2
bothers you, you can imagine the units as millions, say.) The total population at year t is
given by 1T x(t), where 1 ∈ Rn is the vector with all components 1.

• Death rate. The death rate depends only on age, and not on time t. The coefficient di
is the fraction of people of age i − 1 who will die during the year. Thus we have, for
t = 0, 1, . . .,
xk+1 (t + 1) = (1 − dk )xk (t), k = 1, . . . , n − 1.
(As mentioned above, we assume that dn = 1, i.e., all people who make it to age n − 1
die during the year.) The death rate coefficients satisfy 0 < di < 1, i = 1, . . . , n − 1. We
define the survival rate coefficients as sk = 1 − dk , so 0 < sk < 1, k = 1, . . . , n − 1.

• Birth rate. The birth rate depends only on age, and not on time t. The coefficient bi
is the fraction of people of age i − 1 who will have a child during the year (taking into
account multiple births). Thus the total births during a year is given by

x1 (t + 1) = b1 x1 (t) + · · · + bn xn (t).

The birth rate coefficients satisfy bi ≥ 0, i = 1, . . . , n. We’ll assume that at least one of
the bk ’s is positive. (Of course you’d expect that bi would be zero for non-fertile ages,
e.g., age below 11 and over 60, but we won’t make that explicit assumption.)

The assumptions imply the following important property of our model: if xi (0) > 0 for
i = 1, . . . , n, then xi (t) > 0 for i = 1, . . . , n. Therefore we don’t have to worry about negative
xi (t), so long as our initial population distribution x(0) has all positive components. (To use
fancy language we’d say the system is positive orthant invariant.)

a) Express the population dynamics model described above as a discrete-time linear dy-
namical system. That is, find a matrix A such that x(t + 1) = Ax(t).

b) Draw a block diagram of the system found in part (a).

119
c) Find the characteristic polynomial of the system explicitly in terms of the birth and
death rate coefficients (or, if you prefer, the birth and survival rate coefficients).

d) Survival normalized variables. For each person born, s1 make it to age 1, s1 s2 make it
to age 2, and in general, s1 · · · sk make it to age k. We define

xk (t)
yk (t) =
s1 · · · sk−1

(with y1 (t) = x1 (t)) as new population variables that are normalized to the survival
rate. Express the population dynamics as a linear dynamical system using the variable
y(t) ∈ Rn . That is, find a matrix à such y(t + 1) = Ãy(t).

Determine whether each of the next four statements is true or false. (Of course by ‘true’ we
mean true for any values of the coefficients consistent with our assumptions, and by ‘false’ we
mean false for some choice of coefficients consistent with our assumptions.)

a) Let x and z both satisfy our population dynamics model, i.e., x(t + 1) = Ax(t) and
z(t + 1) = Az(t), and assume that all components of x(0) and z(0) are positive. If
1T x(0) > 1T z(0), then 1T x(t) > 1T z(t) for t = 1, 2, . . .. (In words: we consider two
populations that satisfy the same dynamics. Then the population that is initially larger
will always be larger.)

b) All the eigenvalues of A are real.

c) If dk ≥ bk for k = 1, . . . , n, then 1T x(t) → 0 as t → ∞, i.e., the population goes extinct.

d) Suppose that (b1 + · · · + bn )/n ≤ (d1 + · · · dn )/n, i.e., the ‘average’ birth rate is less than
the ‘average’ death rate. Then 1T x(t) → 0 as t → ∞.

11.1770. Rate of a Markov code. Consider the Markov language described in exercise , with five
symbols 1, 2, 3, 4, 5, and the following symbol transition rules:

• 1 must be followed by 2 or 3

• 2 must be followed by 2 or 5

• 3 must be followed by 1

• 4 must be followed by 4 or 2 or 5

• 5 must be followed by 1 or 3

a) The rate of the code. Let KN denote the number of allowed sequences of length N . The
number
log2 KN
R = lim
N →∞ N
(if it exists) is called the rate of the code, in bits per symbol. Find the rate of this code.
Compare it to the rate of the code which consists of all sequences from an alphabet of 5
symbols (i.e., with no restrictions on which symbols can follow which symbols).

120
b) Asymptotic fraction of sequences with a given starting or ending symbol. Let FN,i denote
the number of allowed sequences of length N that start with symbol i, and let GN,i denote
the number of allowed sequences of length N that end with symbol i. Thus, we have
FN,1 + · · · + FN,5 = GN,1 + · · · + GN,5 = KN .
Find the asymptotic fractions
fi = lim FN,i /KN , gi = lim GN,i /KN .
N →∞ N →∞

Please don’t find your answers by simple simulation or relatively mindless computation;
we want to see (and understand) your method.

11.1780. Companion matrices. A matrix A of the form


 
−a1 −a2 · · · −an−1 −an
 1
 0 ··· 0 0 
A=
 0 1 ··· 0 0 
 .. .. .. 

 . . . 
0 0 ··· 1 0
is said to be a (top) companion matrix. There can be four forms of companion matrices
depending on whether the ai ’s occur in the first or last row, or first or last column. These
are referred to as top-, bottom-, left-, or right-companion matrices. Let ẋ = Ax where A is
top-campanion.
a) Draw a block diagram for the system ẋ = Ax.
b) Find the characteristic polynomial of the system using the block diagram and show that
A is nonsingular if and only if an 6= 0.
c) Show that if A is nonsingular, then A−1 is a bottom-companion matrix with last row
−[1 a1 · · · an−1 ]/an .
d) Find the eigenvector of A associated with the eigenvalue λ.
e) Suppose that A has distinct eigenvalues λ1 , . . . , λn . Find T such that T −1 AT is diagonal.

11.1790. Squareroot and logarithm of a (diagonalizable) matrix. Suppose that A ∈ Rn×n is


diagonalizable. Therefore, an invertible matrix T ∈ Cn×n and diagonal matrix Λ ∈ Cn×n exist
such that A = T ΛT −1 . Let Λ = diag(λ1 , . . . , λn ).
a) We say B ∈ Rn×n is a squareroot of A if B 2 = A. Let µi satisfy µ2i = λi . Show that
B = T diag(µ1 , . . . , µn )T −1 is a squareroot of A. A squareroot is sometimes denoted A1/2
(but note that there are in general many squareroots√ of a matrix). When λi are real and
nonnegative, it is conventional to take µi = λi (i.e., the nonnegative squareroot), so
in this case A1/2 is unambiguous.
b) We say B is a logarithm of A if eB = A, and we write B = log A. Following the idea of
part a, find an expression for a logarithm of A (which you can assume is invertible). Is
the logarithm unique? What if we insist on B being real?

121
11.1800. Separating hyperplane for a linear dynamical system. A hyperplane (passing through
0) in Rn is described by the equation cT x = 0, where c ∈ Rn is nonzero. (Note that if β 6= 0,
the vector c̃ = βc defines the same hyperplane.) Now consider the autonomous linear dynamic
system ẋ = Ax, where A ∈ Rn×n and x(t) ∈ Rn . We say that the hyperplane defined by c is a
separating hyperplane for this system if no trajectory of the system ever crosses the hyperplane.
This means it is impossible to have cT x(t) > 0 for some t, and cT x(t̃) < 0 for some other t̃,
for any trajectory x of the system. Explain how to find all separating hyperplanes for the
system ẋ = Ax. In particular, give the conditions on A under which there is no separating
hyperplane. (If you think there is always a separating hyperplane for a linear system, say so.)
You can assume that A has distinct eigenvalues (and therefore is diagonalizable).

11.1810. Equi-angle sets. Let x1 , . . . , xn ∈ Rn . We say that they form a (normalized) equi-angle
set, with angle θ, if kxi k = 1, i = 1, . . . , n, and

∠(xi , xj ) = θ, i, j = 1, . . . , n, i 6= j.

In other words, each of the vectors has unit norm, and the angle between any pair of the
vectors is θ. We’ll take θ to be between 0 and π. An orthonormal set is a familiar example of
an equi-angle set, with θ = π/2. In R2 , there are equi-angle sets for every value of θ. It’s easy
to find such sets: just take    
1 cos θ
x1 = , x2 = .
0 sin θ
In Rn , with n > 2, however, you can’t have an equi-angle set with angle θ = π. To see this,
suppose that x1 , . . . , xn is an equi-angle set in Rn , with n > 2. Then we have x2 = −x1 (since
∠(x1 , x2 ) = π), but also x3 = −x1 (since ∠(x1 , x3 ) = π), so ∠(x2 , x3 ) = 0. The question then
arises, for what values of θ (between 0 and π) can you have an equi-angle set on Rn ? The angle
θ = 0 always has an equi-angle set (just choose any unit vector u and set x1 = · · · = xn = u),
and so does θ = π/2 (just choose any orthonormal basis, e.g., e1 , . . . , en . But what other
angles are possible? For n = 2, we know the answer: any value of θ between 0 and π is
possible, i.e., for every value of θ there is an equi-angle set with angle θ.

a) For general n, describe the values of θ for which there is an equi-angle set with angle θ.
In particular, what is the maximum possible value θ can have?

b) Construct a specific equi-angle set in R4 for angle θ = 100◦ = 5π/9. Attach matlab
output to verify that your four vectors are unit vectors, and that the angle between any
two of them is 100◦ . (Since ∠(u, v) = ∠(v, u), you only have to check 6 angles. Also,
you might find a clever way to find all the angles at once.)

11.1820. Optimal control for maximum asymptotic growth. We consider the controllable linear
system
x(t + 1) = Ax(t) + Bu(t), x(0) = 0,
where x(t) ∈ Rn , u(t) ∈ Rm . You can assume that A is diagonalizable, and that it has a single
dominant eigenvalue (which here, means that there is one eigenvalue with largest magnitude).

122
An input u(0), . . . , u(T − 1) is applied over time period 0, 1, . . . , T − 1; for t ≥ T , we have
u(t) = 0. The input is subject to a total energy constraint:
ku(0)k2 + · · · + ku(T − 1)k2 ≤ 1.
The goal is to choose the inputs u(0), . . . , u(T − 1) that maximize the norm of the state for
large t. To be more precise, we’re searching for u(0), . . . , u(T − 1), that satisfies the total
energy constraint, and, for any other input sequence ũ(0), . . . , ũ(T − 1) that satisfies the total
energy constraint, satisfies kx(t)k ≥ kx̃(t)k for t large enough. Explain how to do this. You
can use any of the ideas from the class, e.g., eigenvector decomposition, SVD, pseudo-inverse,
etc. Be sure to summarize your final description of how to solve the problem. Unless you have
to, you should not use limits in your solution. For example you cannot explain how to make
kx(t)k as large as possible (for a specific value of t), and then say, “Take the limit as t → ∞”
or “Now take t to be really large”.

11.1830. Estimating a matrix with known eigenvectors. This problem is about estimating a
matrix A ∈ Rn×n . The matrix A is not known, but we do have a noisy measurement of it,
Ameas = A + E. Here the matrix E is measurement error, which is assumed to be small. While
A is not known, we do know real, independent eigenvectors v1 , . . . , vn of A. (Its eigenvalues
λ1 , . . . , λn , however, are not known.) We will combine our measurement of A with our prior
knowledge to find an estimate  of A. To do this, we choose  as the matrix that minimizes
n
1 X meas
J= (Aij − Âij )2
n2
i,j=1

among all matrices which have eigenvectors v1 , . . . , vn . (Thus, Â is the matrix closest to our
measurement, in the mean-square sense, that is consistent with the known eigenvectors.)
a) Explain how you would find Â. If your method is iterative, say whether you can guarantee
convergence. Be sure to say whether your method finds the exact minimizer of J (except,
of course, for numerical error due to roundoff), or an approximate solution. You can use
any of the methods (least-squares, least-norm, Gauss-Newton, low rank approximation,
etc.) or decompositions (QR, SVD, eigenvalue decomposition, etc.) from the course.
b) Carry out your method with the data
       
2.0 1.2 −1.0 0.7 0.3 0.6
Ameas =  0.4 2.0 −0.5  , v1 =  0  , v2 =  0.6  , v3 =  0.6  .
−0.5 0.9 1.0 0.7 0.7 0.3

Be sure to check that  does indeed have v1 , v2 , v3 as eigenvectors, by (numerically)


finding its eigenvectors and eigenvalues. Also, give the value of J for Â. Hint. You
might find the following useful (but then again, you might not.) In Julia, if A is a matrix,
then A[:] is a (column) vector consisting of all the entries of A, written out column by
column. Therefore norm(A[:]) gives the squareroot of the sum of the squares of entries
of the matrix A, i.e., its Frobenius norm. The inverse operation, i.e., writing a vector
out as a matrix with some given dimensions, is done using the function reshape. For
example, if a is an mn vector, then reshape(a,m,n) is an m × n matrix, with elements
taken from a (column by column).

123
11.1840. Real modal form. Generate a matrix A in R10×10 using A=randn(10). (The entries of A
will be drawn from a unit normal distribution.) Find the eigenvalues of A. If by chance they
are all real, please generate a new instance of A. Find the real modal form of A, i.e., a matrix
S such that S −1 AS has the real modal form given in lecture 11. Your solution should include
a clear explanation of how you will find S, the source code that you use to find S, and some
code that checks the results (i.e., computes S −1 AS to verify it has the required form).

11.1850. Spectral mapping theorem. Suppose f : R → R is analytic, i.e., given by a power series
expansion
f (u) = a0 + a1 u + a2 u2 + · · ·
(where ai = f (i) (0)/(i!)). (You can assume that we only consider values of u for which this
series converges.) For A ∈ Rn×n , we define f (A) as

f (A) = a0 I + a1 A + a2 A2 + · · ·

(again, we’ll just assume that this converges).


Suppose that Av = λv, where v 6= 0, and λ ∈ C. Show that f (A)v = f (λ)v (ignoring the
issue of convergence of series). We conclude that if λ is an eigenvalue of A, then f (λ) is an
eigenvalue of f (A). This is called the spectral mapping theorem.
To illustrate this with an example, generate a random 3 × 3 matrix, for example using
A=randn(3). Find the eigenvalues of (I + A)(I − A)−1 by first computing this matrix, then
finding its eigenvalues, and also by using the spectral mapping theorem. (You should get very
close agreement; any difference is due to numerical round-off errors in the various compua-
tions.)

11.1860. Eigenvalues of matrix products. Suppose that A ∈ Rm×n and B ∈ Rn×m . Show that
if λ ∈ C is a nonzero eigenvalue of AB, then λ is also an eigenvalue of BA. Conclude that
the nonzero eigenvalues of AB and BA are the same. Hint: Suppose that ABv = λv, where
v 6= 0, λ 6= 0. Construct a w 6= 0 for which BAw = λw.

11.1870. Tax policies. In this problem we explore a dynamic model of an economy, including the
effects of government taxes and spending, which we assume (for simplicity) takes place at
the beginning of each year. Let x(t) ∈ Rn represent the pre-tax economic activity at the
beginning of year t, across n sectors, with x(t)i being the pre-tax activity level in sector i. We
let x̃(t) ∈ Rn denote the post-tax economic activity, across n sectors, at the beginning of year
t. We will assume that all entries of x(0) are positive, which will imply that all entries of x(t)
and x̃(t) are positive, for all t ≥ 0.
The pre- and post-tax activity levels are related as follows. The government taxes the
sector activities at rates given by r ∈ Rn , with ri the tax rate for sector i. These rates all
satisfy 0 ≤ ri < 1. The total government revenue is then R(t) = rT x(t). This total revenue is
then spent in the sectors proportionally, with s ∈ Rn giving
Pn the spending proportions in the
sectors. These spending proportions satisfy si ≥ 0 and i=1 si = 1; the spending in sector i
is si R(t). The post-tax economic activity in sector i, which accounts for the government taxes
and spending, is then given by

x̃(t)i = x(t)i − ri x(t)i + si R(t), i = 1, . . . , n, t = 0, 1, . . . .

124
Economic activity propagates from year to year as x(t + 1) = E x̃(t), where E ∈ Rn×n is
the input-output matrix
Pn of the economy. You can assume that all entries of E are positive.
We let S(t) = i=1 x(t)i denote the total economic activity in year t, and we let

S(t + 1)
G = lim
t→∞ S(t)

denote the (asymptotic) growth rate (assuming it exceeds one) of the economy.

a) Explain why the growth rate does not depend on x(0) (unless it exactly satisfies a single
linear equation, which we rule out as essentially impossible). Express the growth rate G
in terms of the problem data r, s, and E, using ideas from the course. You may assume
that a matrix that arises in your analysis is diagonalizable and has a single dominant
eigenvalue, i.e., an eigenvalue λ1 that satisfies |λ1 | > |λi | for i = 2, . . . , n. (These
assumptions aren’t actually needed—they’re just to simplify the problem for you.)

b) Consider the problem instance with data


     
0.3 0.4 0.1 0.6 0.45 0.15
 0.2 0.3 0.7 0.2   0.25   0.3 
E=  0.1 0.2 0.2 0.1  ,

 0.1  ,
r= 
 0.4  .
s= 

0.4 0.2 0.3 0.2 0.1 0.15

Find the growth rate. Now find the growth rate with the tax rate set to zero, i.e.,
r = 0 (in which case s doesn’t matter). You are welcome (even, encouraged) to simulate
the economic activity to double-check your answer, but we want the value using the
expression found in part (a).

11.1880. Closed walks in a directed graph. Consider a directed graph with nodes 1, 2, . . . , n, and
adjacency matrix A ∈ Rn×n , defined as Aij = 1 if there is a directed edge from node j to
node i, and Aij = 0 otherwise. A closed walk of length L is a sequence of (possibly repeated)
nodes n1 , n2 , . . . , nL , nL+1 for which there is a directed edge from ni to ni+1 for i = 1, . . . , L
and n1 = nL+1 . Let NL (i) denote the number of distinct closed walks of P length L, that start
and end at node i. The total number of closed walks of length L is then ni=1 NL (i).
You can assume that A has a real positive eigenvalue λ1 that is dominant, i.e., satisfies
λ1 > |λi | for i = 2, . . . , n, where λi are the eigenvalues of A. For simplicity you can assume
that A is diagonalizable.

a) Explain how to find a node i that maximizes NL (i), for a given value of L. If the node
is not unique, you may pick any maximizer.

b) Explain how to find a node i that maximizes

NL (i)
G(i) = lim Pn ,
L→∞ j=1 NL (j)

the fraction of closed walks of length L that start and end at node i. Your answer cannot
have the form ‘Pick a really big L and find i as in part (a).’

125
c) For the matrix A given in walks_data.m, find a node i(5) that maximizes N5 (i), and a
node i(∞) that maximizes G(i). (If there are multiple nodes that achieve the maximum,
you can take any one of them.)
Note: When matlab computes λ1 and the associated eigenvector, they might end up
with a very small complex component. Just take take the real part, so that subsequent
operations don’t get confused.

12.1890. Some true/false questions. Determine if the following statements are true or false. No
justification or discussion is needed for your answers. What we mean by “true" is that the
statement is true for all values of the matrices and vectors that appear in the statement. You
can’t assume anything about the dimensions of the matrices (unless it’s explicitly stated), but
you can assume that the dimensions are such that all expressions make sense. For example,
the statement “A+B = B +A” is true, because no matter what the dimensions of A and B are
(they must, however, be the same), and no matter what values A and B have, the statement
holds. As another example, the statement A2 = A is false, because there are (square) matrices
for which this doesn’t hold. (There are also matrices for which it does hold, e.g., an identity
matrix. But that doesn’t make the statement true.) “False” means the statement isn’t true,
in other words, it can fail to hold for some values of the matrices and vectors that appear in
it.

a) If A ∈ Rm×n and B ∈ Rn×p are both full rank, and AB = 0, then n ≥ m + p.

b) If A ∈ R3×3 satisfies A + AT = 0, then A is singular.

c) If Ak = 0 for some integer k ≥ 1, then I − A is nonsingular.

d) If A, B ∈ Rn×n are both diagonalizable, then AB is diagonalizable.

e) If A, B ∈ Rn×n , then every eigenvalue of AB is an eigenvalue of BA.

f) If A, B ∈ Rn×n , then every eigenvector of AB is an eigenvector of BA.

g) If A is nonsingular and A2 is diagonalizable, then A is diagonalizable.

12.1900. Discrete-time LDS. Consider the discrete-time system x(t + 1) = Ax(t), where x(t) ∈ Rn .

a) Find x(t) in terms of x(0).

b) Suppose that det(zI − A) = z n . What are the eigenvalues of A? What (if anything) can
you say about x(k) for k < n and k ≥ n, without knowing x(0)?

12.1910. Asymptotically periodic trajectories. We say that x : R+ → Rn is asymptotically T -


periodic if kx(t + T ) − x(t)k converges to 0 as t → ∞. (We assume T > 0 is fixed.) Now
consider the (time-invariant) linear dynamical system ẋ = Ax, where A ∈ Rn×n . Describe the
precise conditions on A under which all trajectories of ẋ = Ax are asymptotically T -periodic.
Give your answer in terms of the Jordan form of A. (The period T can appear in your answer.)
Make sure your answer works for ‘silly’ cases like A = 0 (for which all trajectories are constant,
hence asymptotically T -periodic), or stable systems (for which all trajectories converge to 0,

126
hence are asymptotically T -periodic). Mark your answer clearly, to isolate it from any (brief)
discussion or explanation. You do not need to formally prove your answer; a brief explanation
will suffice.

12.1920. Jordan form of a block matrix. We consider the block 2 × 2 matrix


 
A I
C= .
0 A

Here A ∈ Rn×n , and is diagonalizable, with real, distinct eigenvalues λ1 , . . . , λn . We’ll let
v1 , . . . , vn denote (independent) eigenvectors of A associated with λ1 , . . . , λn .

a) Find the Jordan form J of C. Be sure to explicitly describe its block sizes.

b) Find a matrix T such that J = T −1 CT .

12.1930. Properties of trajectories. For each of the following statements, give the exact (necessary
and sufficient) conditions on A ∈ Rn×n under which the statement holds.

a) Every trajectory of ẋ = Ax converges as t → ∞. This means that, for any x(0), x(t)
converges to some value, which need not be zero (and can depend on x(0) and A).

b) Every trajectory of ẋ = Ax is bounded. This means that, for any x(0), there is an M
(that can depend on x(0) and A) for which kx(t)k ≤ M for all t ≥ 0.

Your answers can refer to any concepts used in the course (eigenvalues, singular values, Jordan
form, least-squares, range, nullspace, . . . ). We will deduct points from answers that are
technically correct, but more complicated than they need to be. You may not make any
assumptions about A (e.g., that it is nonsingular, diagonalizable, etc.).
Please give only your final answer; we do not want any justification or discussion. Your
answers should have a form similar to “The property in part (a) occurs if and only if all singular
values of A are less than one, and A has no real eigenvalues”. (This is not the correct answer;
it is only as an example of what your answer should look like.)

13.1940. Interconnection of linear systems. Often a linear system is described in terms of a


block diagram showing the interconnections between components or subsystems, which are
themselves linear systems. In this problem you consider the specific interconnection shown
below:
w1

w2
S T
u v y

Here, there are two subsystems S and T . Subsystem S is characterized by

ẋ = Ax + B1 u + B2 w1 , w2 = Cx + D1 u + D2 w1 ,

127
and subsystem T is characterized by

ż = F z + G1 v + G2 w2 , w1 = H1 z, y = H2 z + Jw2 .

We don’t specify the dimensions of the signals (which can be vectors) or matrices here. You can
assume all the matrices are the correct (i.e., compatible) dimensions. Note that the subscripts
in the matrices above, as in B1 and B2 , refer to different matrices. Now the problem. Express
the overall system as a single linear dynamical system with input, state, and output given by
   
u x
, , y,
v z
respectively. Be sure to explicitly give the input, dynamics, output, and feedthrough matrices
of the overall system. If you need to make any assumptions about the rank or invertibility
of any matrix you encounter in your derivations, go ahead. But be sure to let us know what
assumptions you are making.

13.1950. Minimum energy control. Consider the discrete-time linear dynamical system

x(t + 1) = Ax(t) + Bu(t), t = 0, 1, 2, . . .

where x(t) ∈ Rn , and the input u(t) is a scalar (hence, A ∈ Rn×n and B ∈ Rn×1 ). The initial
state is x(0) = 0.
a) Find the matrix CT such that
 
u(T − 1)
..
.
 
x(T ) = CT  .
 
 u(1) 
u(0)

b) For the remainder of this problem, we consider a specific system with n = 4. The
dynamics and input matrices are
   
0.5 0.7 −0.9 −0.5 1
 0.4 −0.7 0.1 0.3   1 .
  
A=  0.7 0.0 −0.6 0.1  , B = 0
0.4 −0.1 0.8 −0.5 0
Suppose we want the state to be xdes at time T . Consider the desired state
 
0.8
 2.3 
xdes =  −0.7  .

−0.3

What is the smallest T for which we can find inputs u(0), . . . , u(T − 1), such that
x(T ) = xdes ? What are the corresponding inputs that achieve xdes at this minimum
time? What is the smallest T for which we can find inputs u(0), . . . , u(T − 1), such that
x(T ) = xdes for any xdes ∈ R4 ? We’ll denote this T by Tmin .

128
c) Suppose the energy expended in applying inputs u(0), . . . , u(T − 1) is
T
X −1
E(T ) = (u(t))2 .
t=0

For a given T (greater than Tmin ) and xdes , how can you compute the inputs which
achieve x(T ) = xdes with the minimum expense of energy? Consider now the desired
state  
−1
 1 
xdes = 
 0 .

1
For each T ranging from Tmin to 30, find the minimum energy inputs that achieve
x(T ) = xdes . For each T , evaluate the corresponding input energy, which we denote
by Emin (T ). Plot Emin (T ) as a function of T . (You should include in your solution
a description of how you computed the minimum-energy inputs, and the plot of the
minimum energy as a function of T . But you don’t need to list the actual inputs you
computed!)

d) You should observe that Emin (T ) is non-increasing in T . Show that this is the case in
general (i.e., for any A, B, and xdes ).

Note: There is a direct way of computing the assymptotic limit of the minimum energy as
T → ∞. We’ll cover these ideas in more detail in ee363.

13.1960. Output feedback for maximum damping. Consider the discrete-time linear dynamical
system

x(t + 1) = Ax(t) + Bu(t),


y(t) = Cx(t),

with A ∈ Rn×n , B ∈ Rn×m , C ∈ Rp×n . In output feedback control we use an input which is a
linear function of the output, that is,

u(t) = Ky(t),

where K ∈ Rm×p is the feedback gain matrix. The resulting state trajectory is identical to
that of an autonomous system,
x(t + 1) = Āx(t).

a) Write Ā explicitly in terms of A, B, C, and K.

b) Consider the single-input, single-output system with


   
0.5 1.0 0.1 1  
A = −0.1
 0.5 −0.1 , B = 0  ,
  C= 0 1 0 .
0.2 0.0 0.9 0

129
In this case, the feedback gain matrix K is a scalar (which we call simply the feedback
gain.) The question is: find the feedback gain Kopt such that the feedback system is
maximally damped. By maximally damped, we mean that the state goes to zero with the
fastest asymptotic decay rate (measured for an initial state x(0) with non-zero coefficient
in the slowest mode.) Hint: You are only required to give your answer Kopt up to a
precision of ±0.01, and you can assume that Kopt ∈ [−2, 2].

13.1970. Affine dynamical systems. A function f : Rn → Rm is called affine if it is a linear function


plus a constant, i.e., of the form f (x) = Ax + b. Affine functions are more general than linear
functions, which result when b = 0. We can generalize linear dynamical systems to affine
dynamical systems, which have the form

ẋ = Ax + Bu + f, y = Cx + Du + g.

Fortunately we don’t need a whole new theory for (or course on) affine systems; a simple
shift of coordinates converts it to a linear dynamical system. Assuming A is invertible, define
x̃ = x + A−1 f and ỹ = y − g + CA−1 f . Show that x̃, u, and ỹ are the state, input, and output
of a linear dynamical system.

13.1980. Determining a linear dynamical system. Two separate experiments are performed for
t ≥ 0 on the single-input single-output (SISO) linear system

ẋ = Ax + Bu, y = Cx + Du, x(0) = [1 2 − 1 ]T

(the initial condition is the same in each experiment). In the first experiment, u(t) = e−t and
the resulting output is y(t) = e−3t + e−2t . In the second, u(t) = e−3t and the resulting output
is y(t) = 3e−3t − e−2t .
a) Can you determine the transfer function C(sI − A)−1 B + D from this information? If
it is possible, do so. If not, find two linear systems consistent with all the data given
which have different transfer functions.

b) Can you determine A, B, C, or D?

13.1990. Cascade connection of systems.


a) Two linear systems (A1 , B1 , C1 , D1 ) and (A2 , B2 , C2 , D2 ) with states x1 and x2 (these are
two column vectors, not two scalar components of one vector), have transfer functions
H1 (s) and H2 (s), respectively. Find state equations for the cascade system:

u y
H1 (s) H2 (s)

Use the state x = [xT T T


1 x2 ] .

b) Use the state equations above to verify that the cascade system has transfer function
H2 (s)H1 (s). (To simplify, you can assume D1 = 0, D2 = 0.)

130
c) Find the dual of the LDS found in (a). Draw a block diagram of the dual system as
a cascade connection of two systems. (To simplify, you can assume D1 = 0, D2 = 0.)
Remark: quite generally, the block diagram corresponding to the dual system is the
original block diagram, “turned around,” with all arrows reversed.

13.2000. Inverse of a linear system. Suppose H(s) = C(sI − A)−1 B + D, where D is square and
invertible. You will find a linear system with transfer function H(s)−1 .

a) Start with ẋ = Ax + Bu, y = Cx + Du, and solve for ẋ and u in terms of x and y. Your
answer will have the form: ẋ = Ex + F y, u = Gx + Hy. Interpret the result as a linear
system with state x, input y, and output u.

b) Verify that
(G(sI − E)−1 F + H)(C(sI − A)−1 B + D) = I.
Hint: use the following “resolvent identity:”

(sI − X)−1 − (sI − Y )−1 = (sI − X)−1 (X − Y )(sI − Y )−1

which can be verified by multiplying by sI − X on the left and sI − Y on the right.

13.2010. Offset or skewed discretization. In the lecture notes we considered sampling a continuous-
time system in which the input update and output sampling occur at the same time, i.e., are
synchronized. In this problem we consider what happens when there is a constant time offset
or skew between them (which often happens in practice). Consider the continuous-time LDS
ẋ = Ax + Bu, y = Cx + Du. We define the sequences xd and yd as

xd (k) = x(kh), yd (k) = y(kh), k = 0, 1, . . .

where h > 0 (i.e., the state and output are sampled every h seconds). The input u is given by

u(t) = ud (k) for kh + δ ≤ t < (k + 1)h + δ, k = 0, 1, . . .

where δ is a delay or offset in the input update, with 0 ≤ δ < h. Find a discrete-time LDS
with ud as input and yd as output. Give the matrices that describe this LDS.

131
13.2020. Static decoupling. Consider the mechanical system shown below.
u1 u2
y1 y2

m1 m2

k1 b1 b2 k2

y3
m3

k3 b3

Two masses with values m1 = 1 and m2 = 2 are attached via spring/damper suspensions with
stiffnesses k1 = 1, k2 = 2 and damping b1 = 1, b2 = 2 to a platform, which is another mass
of value m3 = 3. The platform is attached to the ground by a spring/damper suspension
with stiffness k3 = 3 and damping b3 = 3. The displacements of the masses (with respect to
ground) are denoted y1 , y2 , and y3 . Forces u1 and u2 are applied to the first two masses.

a) Find matrices A ∈ R6×6 and B ∈ R6×2 such that the dynamics of the mechanical system
is given by ẋ = Ax + Bu where

x = [y1 y2 y3 ẏ1 ẏ2 ẏ3 ]T , u = [u1 u2 ]T .

Ignore the effect of gravity (or you can assume the effect of gravity has already been
taken into account in the definition of y1 , y2 and y3 ).

b) Plot the step responses matrix, i.e., the step responses from inputs u1 and u2 to outputs
y1 , y2 and y3 . Briefly interpret and explain your plots.

c) Find the DC gain matrix H(0) from inputs u1 and u2 to outputs y1 and y2 .

d) Design of an asymptotic decoupler. In order to make the steady-state deflections of


masses 1 and 2 independent of each other, we let u = H(0)−1 ycmd , where ycmd : R+ →
R2 . Plot the step responses from ycmd to y1 and y2 , and compare with the original ones
found in part b.

13.2030. A method for rapidly driving the state to zero. We consider the discrete-time linear
dynamical system
x(t + 1) = Ax(t) + Bu(t),

132
where A ∈ Rn×n and B ∈ Rn×k , k < n, is full rank. The goal is to choose an input u that
causes x(t) to converge to zero as t → ∞. An engineer proposes the following simple method:
at time t, choose u(t) that minimizes kx(t + 1)k. The engineer argues that this scheme will
work well, since the norm of the state is made as small as possible at every step. In this
problem you will analyze this scheme.

a) Find an explicit expression for the proposed input u(t) in terms of x(t), A, and B.

b) Now consider the linear dynamical system x(t + 1) = Ax(t) + Bu(t) with u(t) given by
the proposed scheme (i.e., as found in (a)). Show that x satisfies an autonomous linear
dynamical system equation x(t + 1) = F x(t). Express the matrix F explicitly in terms
of A and B.

c) Now consider a specific case:


   
0 3 1
A= , B= .
0 0 1

Compare the behavior of x(t + 1) = Ax(t) (i.e., the orginal system with u(t) = 0) and
x(t + 1) = F x(t) (i.e., the original system with u(t) chosen by the scheme described
above) for a few initial conditions. Determine whether each of these systems is stable.

13.2040. Analysis of investment allocation strategies. Each year or period (denoted t = 0, 1, . . .)


an investor buys certain amounts of one-, two-, and three-year certificates of deposit (CDs)
with interest rates 5%, 6%, and 7%, respectively. (We ignore minimum purchase requirements,
and assume they can be bought in any amount.)

• B1 (t) denotes the amount of one-year CDs bought at period t.

• B2 (t) denotes the amount of two-year CDs bought at period t.

• B3 (t) denotes the amount of three-year CDs bought at period t.

We assume that B1 (0) + B2 (0) + B3 (0) = 1, i.e., a total of 1 is to be invested at t = 0. (You


can take Bj (t) to be zero for t < 0.) The total payout to the investor, p(t), at period t is a
sum of six terms:

• 1.05B1 (t − 1), i.e., principle plus 5% interest on the amount of one-year CDs bought one
year ago.

• 1.06B2 (t − 2), i.e., principle plus 6% interest on the amount of two-year CDs bought two
years ago.

• 1.07B3 (t − 3), i.e., principle plus 7% interest on the amount of three-year CDs bought
three years ago.

• 0.06B2 (t − 1), i.e., 6% interest on the amount of two-year CDs bought one year ago.

• 0.07B3 (t − 1), i.e., 7% interest on the amount of three-year CDs bought one year ago.

• 0.07B3 (t − 2), i.e., 7% interest on the amount of three-year CDs bought two years ago.

133
The total wealth held by the investor at period t is given by
w(t) = B1 (t) + B2 (t) + B2 (t − 1) + B3 (t) + B3 (t − 1) + B3 (t − 2).
Two re-investment allocation strategies are suggested.
• The 35-35-30 strategy. The total payout is re-invested 35% in one-year CDs, 35% in two-
year CDs, and 30% in three-year CDs. The initial investment allocation is the same:
B1 (0) = 0.35, B2 (0) = 0.35, and B3 (0) = 0.30.
• The 60-20-20 strategy. The total payout is re-invested 60% in one-year CDs, 20% in two-
year CDs, and 20% in three-year CDs. The initial investment allocation is B1 (0) = 0.60,
B2 (0) = 0.20, and B3 (0) = 0.20.

a) Describe the investments over time as a linear dynamical system x(t + 1) = Ax(t),
y(t) = Cx(t) with y(t) equal to the total wealth at time t. Be very clear about what the
state x(t) is, and what the matrices A and C are. You will have two such linear systems:
one for the 35-35-30 strategy and one for the 60-20-20 strategy.
b) Asymptotic wealth growth rate. For each of the two strategies described above, determine
the asymptotic growth rate, defined as limt→∞ w(t + 1)/w(t). (If this limit doesn’t exist,
say so.) Note: simple numerical simulation of the strategies (e.g., plotting w(t + 1)/w(t)
versus t to guess its limit) is not acceptable. (You can, of course, simulate the strategies
to check your answer.)
c) Asymptotic liquidity. The total wealth at time t can be divided into three parts:
• B1 (t) + B2 (t − 1) + B3 (t − 2) is the amount that matures in one year (i.e., the
amount of principle we could get back next year)
• B2 (t) + B3 (t − 1) is the amount that matures in two years
• B3 (t) is the amount that matures in three years (i.e., is least liquid)
We define liquidity ratios as the ratio of these amounts to the total wealth:
L1 (t) = (B1 (t) + B2 (t − 1) + B3 (t − 2))/w(t),
L2 (t) = (B2 (t) + B3 (t − 1))/w(t),
L3 (t) = B3 (t)/w(t).
For the two strategies above, do the liquidity ratios converge as t → ∞? If so, to what
values? Note: as above, simple numerical simulation alone is not acceptable.
d) Suppose you could change the initial investment allocation for the 35-35-30 strategy,
i.e., choose some other nonnegative values for B1 (0), B2 (0), and B3 (0) that satisfy
B1 (0) + B2 (0) + B3 (0) = 1. What allocation would you pick, and how would it be
better than the (0.35, 0.35, 0.30) initial allocation? (For example, would the asymptotic
growth rate be larger?) How much better is your choice of initial investment allocations?
Hint for part d: think very carefully about this one. Hint for whole problem: watch
out for nondiagonalizable, or nearly nondiagonalizable, matrices. Don’t just blindly
type in matlab commands; check to make sure you’re computing what you think you’re
computing.

134
13.2050. Analysis of cross-coupling in interconnect wiring. In integrated circuits, wires which
connect the output of one gate to the inputs of one (or more) other gates are called nets.
As feature sizes shrink to well below a micron (i.e., ‘deep submicron’) the capacitance of a
wire to the substrate (which in a simple analysis can be approximated as ground), as well as
to neighboring wires, must be taken into account. A simple lumped model of three nets is
shown below. The inputs are the voltage sources u1 , u2 , u3 , and the outputs are the three
voltages labeled y1 , y2 , y3 . The resistances R1 , . . . , R6 represent the resistance of the wire
segments. The capacitances C1 , . . . , C6 are capacitances from the interconnect wires to the
substrate; the capacitances C7 and C8 are capacitances between wires 1 and 2, and wires 2
and 3, respectively. (The different locations of the these cross-coupling capacitances models
the wire 1 crossing over wire 2 near the driving gate, and wire 2 crossing over wire 3 near the
end of the wire, but you don’t need to know this to do the problem . . . ) In static conditions,
the circuit reduces to three wires (with resistance R1 + R2 , R3 + R4 , and R5 + R6 , respectively)
connecting the inputs to the outputs.
R1 R2
y1 (t)

u1 (t) C1 C2
C7

R3 R4
y2 (t)

u2 (t) C3 C4
C8

R5 R6
y3 (t)
u3 (t) C5 C6

To simplify the problem we’ll assume that all resistors have value 1 and all capacitors have
value 1. We recognize that some of you don’t know how to write the equations that govern
this circuit, so we’ve done it for you. (If you’re an EE student in this category, then shame on
you.) The equations are
C v̇ + Gv = F u, y = Kv,
where
0 −1 0 2 −1 0
   
2 0 0 0 0 0
 0 1 0 0 0 0   −1 1 0 0 0 0 
   
 −1 0 2 0 0 0   0 0 2 −1 0 0 
C= , G=
 ,
 0
 0 0 2 0 −1 
  0 0 −1 1 0 0 

 0 0 0 0 1 0   0 0 0 0 2 −1 
0 0 0 −1 0 2 0 0 0 0 −1 1

135
 
1 0 0
0 0 0  

0
 0 1 0 0 0 0
1 0
F =
0
, K =0 0 0 1 0 0
0 0

0
 0 0 0 0 0 1
0 1
0 0 0
and v ∈ R6 is the vector of voltages at capacitors C1 , . . . , C6 , respectively. To save you the
trouble of typing these in, we’ve put an mfile interconn.m on the course web page, which
defines these matrices.
The inputs (which represent the gates that drive the three nets) are Boolean valued, i.e.,
ui (t) ∈ {0, 1} for all t. In this problem we will only consider inputs that switch (change value
from 0 to 1 or 1 to 0) at most once.

a) 50%-threshold delay. For t < 0, the system is in static condition, and the inputs have
values u(t) = f for t < 0, where fi ∈ {0, 1}. At t = 0, the input switches to the Boolean
vector g, i.e., for t ≥ 0, u(t) = g, where gi ∈ {0, 1}. Since the DC gain matrix of this
system is I, and the system is stable, the output converges to the input value: y(t) → g
as t → ∞. We define the 50%-threshold delay of the transition as smallest T such that
|yi (t) − gi | ≤ 0.5 for t ≥ T , and for i = 1, 2, 3. (If the following gate thresholds were
set at 0.5, then this would be first time after which the outputs would be guaranteed
correct.) Among the 64 possible transitions, find the largest (i.e., worst) 50%-threshold
delay. Give the largest delay, and also describe which transition gives the largest delay
(e.g., the transition with f = (0, 0, 1) to g = (1, 0, 0)).

b) Maximum bounce due to cross-coupling. Now suppose that input 2 remains zero, but
inputs 1 and 3 undergo transitions at times t = T1 and t = T3 , respectively. (In part 1,
in contrast, all transitions occured at t = 0.) To be more precise (and also so nobody
can say we weren’t clear),
( (
f1 for t < T1 f3 for t < T3
u1 (t) = , u3 (t) = , u2 (t) = 0 for all t,
g1 for t ≥ T1 g3 for t ≥ T3

where f1 , f3 , g1 , g3 ∈ {0, 1}. The transitions in inputs 1 and 3 induce a nonzero response
in output 2. (But y2 does converge back to zero, since u2 = 0.) This phenomenon
of y2 deviating from zero (which is what it would be if there were no cross-coupling
capacitance) is called bounce (induced by the cross-coupling between the nets). If for
any t, y2 (t) is large enough to trigger the following gate, things can get very, very ugly.
What is the maximum possible bounce? In other words, what is the maximum possible
value of y2 (t), over all possible t, T1 , T3 , f1 , f3 , g1 , g3 ? Be sure to give not only the
maximum value, but also the times t, T1 , and T3 , and the transitions f1 , f3 , g1 , g3 , which
maximize y(t).

Note: in this problem we don’t consider multiple transitions, but it’s not hard to do so.

136
13.2060. Periodic solution with intermittent input. We consider the stable linear dynamical
system ẋ = Ax + Bu, where x(t) ∈ Rn , and u(t) ∈ R. The input has the specific form
(
1 kT ≤ t < (k + θ)T, k = 0, 1, 2, . . .
u(t) =
0 (k + θ)T ≤ t < (k + 1)T, k = 0, 1, 2, . . .

Here T > 0 is the period, and θ ∈ [0, 1] is called the duty cycle of the input. You can think of
u as a constant input value one, that is applied over a fraction θ of each cycle, which lasts T
seconds. Note that when θ = 0, the input is u(t) = 0 for all t, and when θ = 1, the input is
u(t) = 1 for all t.

a) Explain how to find an initial state x(0) for which the resulting state trajectory is T -
periodic, i.e., x(t + T ) = x(t) for all t ≥ 0. Give a formula for x(0) in terms of the
problem data, i.e., A, B, T , and θ. Try to give the simplest possible formula.

b) Explain why there is always exactly one value of x(0) that results in x(t) being T -
periodic. In addition, explain why the formula you found in part (a) always makes sense
and is valid. (For example, if your formula involves a matrix inverse, explain why the
matrix to be inverted is nonsingular.)

c) We now consider the specific system with


   
0 1 0 8
A= 0 0 1 , B =  2 , T = 5.
−1 −2 −1 −14

Plot J, the mean-square norm of the state,


Z T
1
J= kx(t)k2 dt,
T 0

versus θ, for 0 ≤ θ ≤ 1, where x(0) is the periodic initial condition that you found in
part (a). You may approximate J as
N −1
1 X
J≈ kx(iT /N )k2 ,
N
i=0

for N large enough (say 1000). Estimate the value of θ that maximizes J.

13.2070. System identification of a linear dynamical system. In system identification, we are


given some time series values for a discrete-time input vector signal,

u(1), u(2), . . . , u(N ) ∈ Rm ,

and also a discrete-time state vector signal,

x(1), x(2), . . . , x(N ) ∈ Rn ,

137
and we are asked to find matrices A ∈ Rn×n and B ∈ Rn×m such that we have

x(t + 1) ≈ Ax(t) + Bu(t), t = 1, . . . , N − 1. (2)

We use the symbol ≈ since there may be small measurement errors in the given signal data, so
we don’t expect to find matrices A and B for which the linear dynamical system equations hold
exactly. Let’s give a quantitative measure of how well the linear dynamical system model (2)
holds, for a particular choice of matrices A and B. We define the RMS (root-mean-square)
value of the residuals associated with our signal data and a candidate pair of matrices A, B
as !1/2
N −1
1 X
R= kx(t + 1) − Ax(t) − Bu(t)k2 .
N −1
t=1
We define the RMS value of x, over the same period, as

N −1
!1/2
1 X
S= kx(t + 1)k2 .
N −1
t=1

We define the normalized residual, denoted ρ, as ρ = R/S. If we have ρ = 0.05, for example,
it means that the state equation (2) holds, roughly speaking, to within 5%. Given the signal
data, we will choose the matrices A and B to minimize the RMS residual R (or, equivalently,
the normalized residual ρ).

a) Explain how to do this. Does the method always work? If some conditions have to hold,
specify them.

b) Carry out this procedure on the data in lds_sysid.m on the course web site. Give the
matrices A and B, and give the associated value of the normalized residual. Of course
you must show your matlab source code and the output it produces.

13.2080. System identification with selection of inputs & states. This problem continues, or
rather extends, the previous one on system identification, problem . Here too we need to fit a
linear dynamical system model to some given signal data. To complicate things, though, we
are not told which of the scalar signals are input components and which are state components.
That’s part of what we have to decide. We are given the time series data, i.e., a vector signal,

z(1), z(2), . . . , z(N ) ∈ Rp .

We will assign each component of z as either an input component, or a state component. For
example, if z has four components we might assign its first and third to be the state, and its
second and fourth to be the input, i.e.,
   
z1 (t) z2 (t)
x(t) = , u(t) = .
z3 (t) z4 (t)

You can assume that we always assign at least one component to the state, so the dimension
of the state is always at least one. Once we assign components of z to either x or u, we
then proceed as in problem (): we find matrices A and B that minimize the RMS residuals

138
as defined in problem (). One measure of the complexity of the model is the number of
components assigned to the input u; the larger the dimension of u, the more complex the
model. If the dimension of u is small, then we have a compact model, in the sense that the
data are explained by a linear dynamical system driven by only a few inputs. As an extreme
case, if all components of z are assigned to x, then we have an autonomous linear dynamical
system model for the data, i.e., one with no inputs at all. Finally, here is the problem. Get
the data given in lds_sysid2.m on the class web server, which contains a vector z(t) ∈ R8
for t = 1, . . . , 100. Assign the components of z to either state or input, and develop a linear
dynamical system model (i.e., find matrices A and B) for your choice of x and u. We seek the
simplest model, i.e., the one with the smallest dimension of u, for which the normalized RMS
residuals is smaller than around 5%. Your solution should consist of the following:

• Your approach. Explain how you solved the problem.

• Your assignments to state and input. Give a clear description of what x and u are.
Please order the components in x and u in the same order as in z.

• Your matrices A and B.

• The relative RMS residuals obtained by your matrices.

• The matlab code used to solve the problem, and its output.

13.2090. A greedy control scheme. Our goal is to choose an input u : R+ → Rm , that is not too
big, and drives the state x : R+ → Rn of the system ẋ = Ax + Bu to zero quickly. To do this,
we will choose u(t), for each t, to minimize the quantity

d
kx(t)k2 + ρku(t)k2 ,
dt
where ρ > 0 is a given parameter. The first term gives the rate of decrease (if it is negative)
of the norm-squared of the state vector; the second term is a penalty for using a large input.
This scheme is greedy because at each instant t, u(t) is chosen to minimize the compositive
objective above, without regard for the effects such an input might have in the future.

a) Show that u(t) can be expressed as u(t) = Kx(t), where K ∈ Rm×n . Give an explicit
formula for K. (In other words, the control scheme has the form of a constant linear
state feedback.)

b) What are the conditions on A, B, and ρ under which we have (d/dt)kx(t)k2 < 0 whenever
x(t) 6= 0, using the scheme described above? (In other words, when does this control
scheme result in the norm squared of the state always decreasing?)

c) Find an example of a system (i.e., A and B), for which the open-loop system ẋ = Ax
is stable, but the closed-loop system ẋ = Ax + Bu (with u as above) is unstable, when
ρ = 1. Try to find the simplest example you can, and be sure to show us verification
that the open-loop system is stable and that the closed-loop system is not. (We will not
check this for you. You must explain how to check this, and attach code and associated
output.)

139
13.2100. FIR filter with small feedback. Consider a cascade of 100 one-sample delays:

u z −1 z −1 y

a) Express this as a linear dynamical system

x(t + 1) = Ax(t) + Bu(t), y(t) = Cx(t) + Du(t)

b) What are the eigenvalues of A?

c) Now we add simple feedback, with gain α = 10−5 , to the system:

u z −1 z −1 y

Express this as a linear dynamical system

x(t + 1) = Af x(t) + Bf u(t), y(t) = Cf x(t) + Df u(t)

d) What are the eigenvalues of Af ?

e) How different is the impulse response of the system with feedback (α = 10−5 ) and
without feedback (α = 0)?

13.2110. Analysis of a switching power supply. Many electronic systems include DC-DC con-
verters or power supplies, which convert one voltage to another. Many of these are built from
electronic switches, inductors, and capacitors. In this problem we consider a standard boost
converter, shown in schematic diagram below. (It’s called a boost converter because the load
voltage can be larger than the supply voltage.) Don’t worry—you don’t need to know anything
about schematic diagrams or circuits to solve this problem!
iL
deliver
i

vL load
charge
Vs

The switch alternately connects to ground, during which time the inductor is charged, and to
the load, when the inductor current is delivered to the load.
When the switch is in the charge position, the inductor current satisfies di/dt = Vs /L,
where Vs > 0 is the (constant) source voltage and L > 0 is the inductance, and the load

140
current is iL = 0. When the switch is in the deliver position, we have di/dt = (Vs − vL )/L,
and iL = i. The load is described by the linear dynamical system

ẋ = Ax + BiL , vL = Cx,

where x(t) ∈ Rn is the internal state of the load. Here A ∈ Rn×n , B ∈ Rn , and C ∈ R1×n .
The switch is operated periodically as follows:

charge position: kT ≤ t < (k + 1/2)T,


deliver position: (k + 1/2)T ≤ t < (k + 1)T

for k = 0, 1, 2, . . .. Here T > 0 is the period of the switching power supply.


We will consider the specific switching power supply with problem data defined in the file
boost_data.m.
Show that, no matter what the initial inductor current i(0) and load initial state x(0) are,
vL (kT ) converges to a constant value V̄ as k → ∞. Give the value of V̄ . We will not accept
simulations for some values of iL (0) and x(0) as an answer.

13.2120. Dynamic decoupling. An industrial process is described by a 2-input 2-output discrete-


time LDS with finite impulse response of length 4, which means that its impulse response h
is nonzero only for
Ptt = 0, 1, 2, 3; h(t) = 0 for t ≥ 4. This means that its step response matrix,
defined as s(t) = τ =0 h(τ ), converges to its final value by t = 3. If you want to think of this
system in concrete terms, you can imagine it as a chemical process reactor, with u1 a heater
input, u2 as a reactant flow rate, y1 as the reactor temperature, and y2 as the reactor pressure.
The step response matrix of the system is shown below. The impulse response matrix of the
system (for t = 0, 1, 2, 3) can be obtained from the class web page in dynamic_dec_h.m, where
you will find the 2 × 2 impulse response matrices h0, h1, h2, h3.

2 2

1 1

0 0
s11

s12

−1 −1

−2 −2

0 2 4 6 0 2 4 6
t t

2 2

1 1

0 0
s21

s22

−1 −1

−2 −2

0 2 4 6 0 2 4 6
t t

The plots show that u1 has a substantial effect on y2 , and that u2 has a substantial effect on
y1 , neither of which we want. To eliminate them, you will explore the design of a dynamic

141
decoupler for this system, which is another 2-input, 2-output LDS with impulse matrix g. The
decoupler is also FIR of length 4: g(0), g(1), g(2), g(3) ∈ R2×2 can be nonzero, but g(t) = 0
for t ≥ 4. The decoupler is used as a prefilter for the process: the input r (which is called the
reference or command input) is applied as the input to the decoupler, and the output of the
decoupler is u, the input to the industrial process. This is shown below.

u process
r decoupler y

compensated system

We refer to this cascaded system as the compensated system. Let s̃ denote the step response
matrix of the compensated system, from input r to output y. The goal is to design the
decoupler (i.e., choose g(0), g(1), g(2), g(3) ∈ R2×2 ) so that the compensated system satisfies
the following specifications.

• limt→∞ s̃(t) = I. This means if the reference input is constant, the process output
converges to the reference input.

• The off-diagonal entries of s̃(t) are all zero (for all t). This means the compensated
system is decoupled : r1 has no effect on y2 , and r2 has no effect on y1 .

Find such a decoupler, and plot the compensated system step response matrix. If there is
no such decoupler (i.e., the problem specifications are not feasible), say so, and explain why.
If there are many decouplers that satisfy the given specifications, say so, and do something
sensible with any extra degrees of freedom you may have.

15.2130. Simplified temperature control. A circular room consists of 10 identical cubicles around
a circular shaft. There are 6 temperature-control systems in the room. Of those, 5 have
vents evenly distributed around the perimeter of the room, and one is located in the center.
Each vent j blows a stream of air at temperature xj , measured relative to the surrounding air
(ambient air temperature.) The temperatures may be hotter (xj > 0) or colder (xj < 0) than
the ambient air temperature.

142
x2

x3 rv
t3
t4 t2

t5 t1
rt x1
x6 t10
t6
t7 t9
t8
x4

x5

The temperature in each cubicle (measured at its center as shown in the figure) is ti , and
the effect of vent j on temperature ti is given by
1
Aij = 2
rij

where rij is the distance between vent j and measuring point i. So the system can be described
by t = Ax (where A is tall.) The temperature preferences differ among the inhabitants of the
10 cubicles. More precisely, the inhabitant of cubicle i wants the temperature to be yi hotter
than the surrounding air (which is colder if yi < 0!) The objective is then to choose the
xj to best match these preferences (i.e., obtain exactly the least possible sum of squares
error in temperature), with minimal cost. Here, “cost” means the total power spent on the
temperature-control systems, which is the sum of the power consumed by each heater/cooler,
which in turn is proportional to x2j .
a) How would you choose the xj to best match the given preferences yi , with minimal power
consumption?

b) Temperature measurement points are at distance rt from the center, and vents are at
distance rv . Vent 1 lies exactly on the horizontal. The file temp_control.m on the
course webpage defines r_t, r_v, and a preferences vector y. It also provides code for
computing the distances from each vent to each desired temperature location. Using
these data, find the optimal vent temperatures x, and the corresponding RMS error in
temperature, as well as the power usage.
Comment: In this problem we ignore the fact that, in general, cooling requires more power
(per unit of temperature difference) than heating . . . But this was not meant to be an entirely
realistic problem to start with!

15.2140. A counterexample for a positive definite matrix test. Find a symmetric matrix A ∈
Rn×n that satisfies Aii ≥ 0, i = 1, . . . , n, and |Aij | ≤ (Aii Ajj )1/2 , i, j = 1, . . . , n, but is not
positive semidefinite.

143
15.2150. Norm expressions for quadratic forms. Let f (x) = xT Ax (with A = AT ∈ Rn×n ) be a
quadratic form.

a) Show that f is positive semidefinite (i.e., A ≥ 0) if and only if it can be expressed as


f (x) = kF xk2 for some matrix F ∈ Rk×n . Explain how to find such an F (when A ≥ 0).
What is the size of the smallest such F (i.e., how small can k be)?

b) Show that f can be expressed as a difference of squared norms, in the form f (x) =
kF xk2 − kGxk2 , for some appropriate matrices F and G. How small can the sizes of F
and G be?

15.2160. Congruences and quadratic forms. Suppose A = AT ∈ Rn×n .

a) Let Z ∈ Rn×p be any matrix. Show that Z T AZ ≥ 0 if A ≥ 0.

b) Suppose that T ∈ Rn×n is invertible. Show that T T AT ≥ 0 if and only if A ≥ 0.


When T is invertible, T AT T is called a congruence of A and T AT T and A are said to
be congruent. This problem shows that congruences preserve positive semidefiniteness.

15.2170. Positive semidefinite (PSD) matrices.

a) Show that if A and B are PSD and α ∈ R, α ≥ 0, then so are αA and A + B.

b) Show that any (symmetric) submatrix of a PSD matrix is PSD. (To form a symmetric
submatrix, choose any subset of {1, . . . , n} and then throw away all other columns and
rows.)

c) Show that if A ≥ 0, Aii ≥ 0.

d) Show that if A is (symmetric) PSD, then |Aij | ≤ Aii Ajj . In particular, if Aii = 0,
p

then the entire ith row and column of A are zero.

15.2180. A Pythagorean inequality for the matrix norm. Suppose that A ∈ Rm×n and B ∈
Rp×n . Show that  
A p
≤ kAk2 + kBk2 .
B
Under what conditions do we have equality?

15.2190. Gram matrices. Given functions fi : [a, b] → R, i = 1, . . . , n, the Gram matrix G ∈ Rn×n
associated with them is defined by
Z b
Gij = fi (t)fj (t) dt.
a

a) Show that G = GT ≥ 0.

b) Show that G is singular if and only if the functions f1 , . . . , fn are linearly dependent.

144
15.2200. Properties of symmetric matrices. In this problem P and Q are symmetric matrices.
For each statement below, either give a proof or a specific counterexample.
a) If P ≥ 0 then P + Q ≥ Q.
b) If P ≥ Q then −P ≤ −Q.
c) If P > 0 then P −1 > 0.
d) If P ≥ Q > 0 then P −1 ≤ Q−1 .
e) If P ≥ Q then P 2 ≥ Q2 .
Hint: you might find it useful for part (d) to prove Z ≥ I implies Z −1 ≤ I.
Pn−1
15.2210. Matrix form of a polynomial. Express i=1 (xi+1 −xi )2 in the form xT P x with P = P T .
Is P ≥ 0? P > 0?

15.2220. Constructing a matrix from a quadratic form. Suppose A and B are symmetric ma-
trices that yield the same quadratic form, i.e., xT Ax = xT Bx for all x. Show that A = B.
Hint: first try x = ei (the ith unit vector) to conclude that the entries of A and B on the
diagonal are the same; then try x = ei + ej .

15.2230. A power method for computing the matrix norm. The following method can be used
to compute the largest singular value (σ1 ), and also the corresponding left and right singular
vectors (u1 and v1 ) of A ∈ Rm×n . You can assume (to simplify) that the largest singular value
of A is isolated, i.e., σ1 > σ2 . Let z(0) = a ∈ Rn be nonzero, and then repeat the iteration
w(t) = Az(t); z(t + 1) = AT w(t);
for t = 1, 2, . . .. For large t, w(t)/kw(t)k ≈ u1 and z(t)/kz(t)k ≈ v1 . Analyze this algorithm.
Show that it ‘usually’ works. Be very explicit about when it fails. (In practice it always
works.)

15.2240. An invertibility criterion. Suppose that A ∈ Rn×n . Show that kAk < 1 implies I − A
is invertible. Interpretation: every matrix whose distance to the identity is less than one is
invertible.

15.2250. A bound on maximum eigenvalue for a matrix with entries smaller than one.
Suppose A = AT ∈ Rn×n , with |Aij | ≤ 1, i, j = 1, . . . , n. How large can λmax (A) be?

15.2260. Some problems involving matrix inequalities. In the following problems you can as-
sume that A = AT ∈ Rn×n and B = B T ∈ Rn×n . We do not, however, assume that A or B
is positive semidefinite. For X = X T ∈ Rn×n , λi (X) will denote its ith eigenvalue, sorted so
λ1 (X) ≥ λ2 (X) ≥ · · · ≥ λn (X). As usual, the symbol ≤ between symmetric matrices denotes
matrix inequality (e.g., A ≤ B means B − A is positive semidefinite). Decide whether each of
the following statements is true or false. (‘True’ means the statement holds for all A and B;
‘false’ means there is at least one pair A, B for which the statement does not hold.)
a) A ≥ B if λi (A) ≥ λi (B) for i = 1, . . . , n.

145
b) If {x|xT Ax ≤ 1} ⊆ {x|xT Bx ≤ 1}, then A ≥ B.

c) If A ≤ B, then {x|xT Ax ≤ 1} ⊆ {x|xT Bx ≤ 1}.

d) If the eigenvalues of A and B are the same, i.e., λi (A) = λi (B) for i = 1, . . . , n, then
there is an orthogonal matrix Q such that A = QT BQ.

e) If there is an orthogonal matrix Q such that A = QT BQ, then the eigenvalues of A and
B are the same, i.e., λi (A) = λi (B) for i = 1, . . . , n.

f) If A ≥ B then for all t ≥ 0, eAt ≥ eBt .

g) If A ≥ B then Aij ≥ Bij for i, j = 1, . . . , n.

h) If Aij ≥ Bij for i, j = 1, . . . , n, then A ≥ B.

15.2270. Eigenvalues and singular values of a symmetric matrix. Let λ1 , . . . , λn be the eigen-
values, and let σ1 , . . . , σn be the singular values of a matrix A ∈ Rn×n , which satisfies A = AT .
(The singular values are based on the full SVD: If rank(A) < n, then some of the singular
values are zero.) You can assume the eigenvalues (and of course singular values) are sorted,
i.e., λ1 ≥ · · · ≥ λn and σ1 ≥ · · · ≥ σn . How are the eigenvalues and singular values related?

15.2280. More facts about singular values of matrices. For each of the following statements,
prove it if it is true; otherwise give a specific counterexample. Here X, Y, Z ∈ Rn×n .
qP
a) σmax (X) ≥ max1≤i≤n 1≤j≤n |Xij | .
2

qP
b) σmin (X) ≥ min1≤i≤n 1≤j≤n |Xij | .
2

c) σmax (XY ) ≤ σmax (X)σmax (Y ).

d) σmin (XY ) ≥ σmin (X)σmin (Y ).

e) σmin (X + Y ) ≥ σmin (X) − σmax (Y ).

15.2290. Matrix gain compared with entry size. A matrix can have all entries large and yet have
small gain in some directions, that is, it can have a small σmin . For example,
 6
10 106

A=
106 106

has “large” entries while kA[1 − 1]T k = 0. Can a matrix have all entries small and yet have
a large gain in some direction, that is, a large σmax ? Suppose, for example, that |Aij | ≤  for
1 ≤ i, j ≤ n. What can you say about σmax (A)?

146
√ norm of a matrix. The Frobenius norm of a matrix A ∈ R
15.2300. Frobenius n×n is defined as

kAkF = trace AT A. (Recall trace is the trace of a matrix, i.e., the sum of the diagonal
entries.)
a) Show that
 1/2
X
kAkF =  |Aij |2  .
i,j

Thus the Frobenius norm is simply the Euclidean norm of the matrix when it is consid-
2
ered as an element of Rn . Note also that it is much easier to compute the Frobenius
norm of a matrix than the (spectral) norm (i.e., maximum singular value).

b) Show that if U and V are orthogonal, then kU AkF = kAV kF = kAkF . Thus the
Frobenius norm is not changed by a pre- or post- orthogonal transformation.

c) Show that kAkF = σ12 + · · · + σr2 , where σ1 , . . . , σr are the singular values of A. Then
p

show that σmax (A) ≤ kAkF ≤ rσmax (A). In particular, kAxk ≤ kAkF kxk for all x.

15.2310. Drawing a graph. We consider the problem of drawing (in two dimensions) a graph with
n vertices (or nodes) and m undirected edges (or links). This just means assigning an x- and
a y- coordinate to each node. We let x ∈ Rn be the vector of x- coordinates of the nodes, and
y ∈ Rn be the vector of y- coordinates of the nodes. When we draw the graph, we draw node
i at the location (xi , yi ) ∈ R2 . The problem, of course, is to make the drawn graph look good.
One goal is that neighboring nodes on the graph (i.e., ones connected by an edge) should not
be too far apart as drawn. To take this into account, we will choose the x- and y-coordinates
so as to minimize the objective
X
(xi − xj )2 + (yi − yj )2 ,

J=
i<j, i∼j

where i ∼ j means that nodes i and j are connected by an edge. The objective J is precisely
the sum of the squares of the lengths (in R2 ) of the drawn edges of the graph. We have to
introduce some other constraints into our problem to get a sensible solution. First of all, the
objective J is not affected if we shift all the coordinates by some fixed amount (since J only
depends on differences of the x- and y-coordinates). So we can assume that
n
X n
X
xi = 0, yi = 0,
i=1 i=1

i.e., the sum (or mean value) of the x- and y-coordinates is zero. These two equations ‘center’
our drawn graph. Another problem is that we can minimize J by putting all the nodes at
xi = 0, yi = 0, which results in J = 0. To force the nodes to spread out, we impose the
constraints
Xn n
X Xn
2 2
xi = 1, yi = 1, xi yi = 0.
i=1 i=1 i=1
The first two say that the variance of the x- and y- coordinates is one; the last says that the x-
and y- coordinates are uncorrelated. (You don’t have to know what variance or uncorrelated

147
mean; these are just names for the equations given above.) The three equations above enforce
‘spreading’ of the drawn graph. Even with these constraints, the coordinates that minimize
J are not unique. For example, if x and y are any set of coordinates, and Q ∈ R2×2 is any
orthogonal matrix, then the coordinates given by
   
x̃i x
=Q i , i = 1, . . . , n
ỹi yi

satisfy the centering and spreading constraints, and have the same value of J. This means
that if you have a proposed set of coordinates for the nodes, then by rotating or reflecting
them, you get another set of coordinates that is just as good, according to our objective. We’ll
just live with this ambiguity. Here’s the question:

a) Explain how to solve this problem, i.e., how to find x and y that minimize J subject
to the centering and spreading constraints, given the graph topology. You can use any
method or ideas we’ve encountered in the course. Be clear as to whether your approach
solves the problem exactly (i.e., finds a set of coordinates with J as small as it can
possibly be), or whether it’s just a good heuristic (i.e., a choice of coordinates that
achieves a reasonably small value of J, but perhaps not the absolute best). In describing
your method, you may not refer to any programming commands or operators; your
description must be entirely in mathematical terms.

b) Implement your method, and carry it out for the graph given in dg_data.json. This
JSON file contains the node adjacency matrix of the graph, denoted A, and defined
as Aij = 1 if nodes i and j are connected by an edge, and Aij = 0 otherwise. (The
graph is undirected, so A is symmetric. Also, we do not have self-loops, so Aii = 0, for
i = 1, . . . , n.) Give the value of J achieved by your choice of x and y, and verify that
your x and y satisfy the centering and spreading conditions, at least approximately. If
your method is iterative, plot the value of J versus iteration. Draw the corresponding
graph by plotting nodes as small circles and edges as lines. For comparison, the JSON
file also contains the vectors x_circ and y_circ. These coordinates were obtained using
a standard technique for drawing a graph, by placing the nodes in order on a circle. The
radius of the circle has been chosen so that x_circ and y_circ satisfy the centering and
spread constraints. Draw this graph on a separate plot.

Hint. You are welcome to use the results described below, Pwithout proving them. Let A ∈
n
R n×n be symmetric, with eigenvalue decomposition A = i=1 λi qi qi , with λ1 ≥ · · · ≥ λn ,
T

and {q1 , . . . , qn } orthonormal. You know that a solution of the problem

minimize xT Ax
subject to xT x = 1,

where the variable is x ∈ Rn , is x = qn . The related maximization problem is

maximize xT Ax
subject to xT x = 1

148
with variable x ∈ Rn . A solution to this problem is x = q1 . Now consider the following
generalization of the first problem:

minimize trace(X T AX)


subject to X T X = Ik

where the variable is X ∈ Rn×k , and Ik denotes the k × k identity matrix, and we assume
k ≤ n. The constraint means that the columns of X, say, x1 , . . . , xk , are orthonormal; the
objective can be written in terms of the columns of X as trace(X T AX) = ki=1 xT i A
.
P
i Ax
solution of this problem is X = [qn−k+1 · · · qn ]. Note that when k = 1, this reduces to the first
problem above. The related maximization problem is

maximize trace(X T AX)


subject to X T X = Ik

with variable X ∈ Rn×k . A solution of this problem is X = [q1 · · · qk ].

15.2320. Approximate left inverse with norm constraints. Suppose A ∈ Rm×n is full rank with
m ≥ n. We seek a matrix F ∈ Rn×m that minimizes kI − F Ak subject to the constraint
kF k ≤ α, where α > 0 is given. Note that kI − F Ak gives a measure of how much F fails to be
a left inverse of A. Give an explicit description of an optimal F . Your description can involve
standard matrix operations and decompositions (eigenvector/eigenvalue, QR, SVD, . . . ).

15.2330. Finding worst-case inputs. The single-input, single output system x(t + 1) = Ax(t) +
Bu(t), y(t) = Cx(t), x(0) = 0, where
   
0.9 0.5 1  
A= , B= , C= 1 2 ,
−0.5 0.7 −1

is a very simple (discretized and lumped) dynamical model of a building. The input u is
ground displacement (during an earthquake), and y gives the displacement of the top of the
X49
building. The input u is known to satisfy u(t)2 ≤ 1 and u(t) = 0 for t ≥ 50, i.e., the
t=0
earthquake has energy less than one, and only lasts 50 samples.

a) How large can 99


P99
t=0 y(t) be? Plot an input u that maximizes t=0 y(t) , along with
2 2
P
the resulting output y.

b) How large can |y(100)| be? Plot an input u that maximizes |y(100)|, along with the
resulting output y.

As usual, you must explain how you solve the problem, as well as give explicit numerical
answers and plots.

149
15.2340. Worst and best direction of excitation for a suspension system. A suspension system
is connected at one end to a base (that can move or vibrate) and at the other to the load
(that it is supposed to isolate from vibration of the base). Suitably discretized, the system is
described by
x(t + 1) = Ax(t) + Bu(t), y(t) = Cx(t), x(0) = 0,
where u(t) ∈ R3 represents the (x-, y-, and z- coordinates of the) displacement of base, and
y(t) ∈ R3 represents the (x-, y-, and z- coordinates of the) displacement of the load. The input
u has the form u(t) = qv(t), where q ∈ R3 is a (constant) vector with kqk = 1, and v(t) ∈ R
gives the displacement amplitude versus time. In other words, the driving displacement u is
always in the direction q, with amplitude given by the (scalar) signal v. The response of the
system is judged by the RMS deviation of the load over a 100 sample interval, i.e.,
100
!1/2
1 X 2
D= ky(t)k .
100
t=1

The data A, B, C, v(0), . . . , v(99) are known (and available in the JSON file worst_susp_data.json
on the course web site). The problem is to find the direction qmax ∈ R3 that maximizes D,
and the direction qmin ∈ R3 that minimizes D. Give the directions and the associated values
of D (Dmax and Dmin , respectively).

15.2350. Two representations of an ellipsoid. In the lectures, we saw two different ways of repre-
senting an ellipsoid, centered at 0, with non-zero volume. The first uses a quadratic form:
n o
E1 = x xT Sx ≤ 1 ,

with S T = S > 0. The second is as the image of a unit ball under a linear mapping:
E2 = { y | y = Ax, kxk ≤ 1 } ,
with det(A) 6= 0.
a) Given S, explain how to find an A so that E1 = E2 .
b) Given A, explain how to find an S so that E1 = E2 .
c) What about uniqueness? Given S, explain how to find all A that yield E1 = E2 . Given
A, explain how to find all S that yield E1 = E2 .

15.2360. Determining initial bacteria populations. We consider a population that consists of


three strains of a bacterium, called strain 1, strain 2, and strain 3. The vector x(t) ∈ R3 will
denote the amount, or biomass (in grams) of the strains present in the population at time t,
measured in hours. For example, x2 (3.4) denotes the amount of strain 2 (in grams) in the
sample at time t = 3.4 hours. Over time, the biomass of each strain changes through several
mechanisms including cell division, cell death, and mutation. (But you don’t need to know
any biology to answer this question!) The population dynamics is given by ẋ = Ax, where
 
−0.1 0.3 0
A= 0 −0.2 0.1  .
0.1 0 −0.1

150
You can assume that we always have xi (t) > 0, i.e., the biomass of each strain is always
positive. The total biomass at time t is given by 1T x(t) = x1 (t) + x2 (t) + x3 (t), where 1 ∈ R3
denotes the vector with all components one.

a) Give a very brief interpretation of the entries of the matrix A. For example, what is the
significance of a13 = 0? What is the significance of the sign of a11 ? Limit yourself to
100 words. You may use phrases such as ‘the presence of strain i enhances (or inhibits)
growth of strain j’.

b) As t → ∞, does the total biomass converge to ∞ (i.e., grow without bound), converge
to zero, or not converge at all (for example, oscillate)? Explain how you arrive at your
conclusion and show any calculations (by hand or matlab) that you need to do. You can
assume that xi (0) > 0 for i = 1, 2, 3. Posterior intuitive explanation. In 100 words or
less, give a plausible story that explains, intuitively, the result you found.

c) Selection of optimal assay time. A biologist wishes to estimate the original biomass of
each of the three strains, i.e., the vector x(0) ∈ R3 , based on measurements of the total
biomass taken at t = 0, t = 10, and t = T , where T satisfies 0 < T < 10. The three
measurements of total biomass (which are called assays) will include a small additive
error, denoted v1 (for the assay at t = 0), v2 (for the assay at t = T and v3 (for the
assay at t = 10). You can assume that v12 + v22 + v32 ≤ 0.012 , i.e., the sum of the
squares of the measurement errors is not more than 0.012 . You can also assume that a
good method for computing the estimate of x(0), given the measurements, will be used.
(The estimation method won’t make any use of the information that xi (0) > 0.) The
problem here is to choose the time T of the intermediate assay in such a way that the
estimate of x(0), denoted x̂(0), is as accurate as possible. We’ll judge accuracy by the
maximum value that kx̂(0) − x(0)k can have, over all measurement errors that satisfy
v12 + v22 + v32 ≤ 0.012 . Find the optimal value for T (of course, between 0 and 10), i.e., the
value of T that minimizes the maximum value kx̂(0) − x(0)k can have. We are looking
for an answer that is accurate to within ±0.1. Of course you must explain exactly what
you are doing, and submit your matlab code as well the output it produces. Be sure to
say what the optimal T is, and what the optimal accuracy is (i.e., what the maximum
value kx̂(0) − x(0)k is, for the T you choose).

15.2370. A measure of connectedness in a graph. We consider an undirected graph with n nodes,


described by its adjacency matrix A ∈ Rn×n , defined by
(
1 if there is a link connecting nodes i and j
Aij =
0 otherwise.

We assume the graph has no self-loops, i.e., Aii = 0. Note that A = AT . We assume that the
graph has at least one link, so A 6= 0. A path from node i to node j, of length m > 0, is an
m + 1-long sequence of nodes, connected by links, that start at i and end at j. More precisely
it is a sequence i = k1 , k2 , . . . , km+1 = j, with the property that Ak1 ,k2 = · · · = Akm ,km+1 = 1.
Note that a path can include loops; there is no requirement that each node be visited only
once. For example, if node 3 and node 5 are connected by a link (i.e., A35 = 1), then the
sequence 3, 5, 3, 5 is a path between node 3 and node 5 of length 3. We say that each node is

151
connected to itself by a path of length zero. Let Pm (i, j) denote the total number of paths of
length m from node i to node j. We define

Pm (i, j)
Cij = lim Pn ,
i,j=1 Pm (i, j)
m→∞

when the limits exist. When the limits don’t, we say that Cij isn’t defined. In the fraction in
this equation, the numerator is the number of paths of length m between nodes i and j, and the
denominator is the total number of paths of length m, so the ratio gives the fraction of all paths
of length m that go between nodes i and j. When Cij exists, it gives the asymptotic fraction
of all (long) paths that go from node i to node j. The number Cij gives a good measure of how
“connected” nodes i and j are in the graph. You can make one of the following assumptions:

a) A is full rank.

b) A has distinct eigenvalues.

c) A has distinct singular values.

d) A is diagonalizable.

e) A has a dominant eigenvalue, i.e., |λ1 | > |λi | for i = 2, . . . , n, where λ1 , . . . , λn are the
eigenvalues of A.

(Be very clear about which one you choose.) Using your assumption, explain why Cij exists,
and derive an expression for Cij . You can use any of the concepts from the class, such as
singular values and singular vectors, eigenvalues and eigenvectors, pseudo-inverse, etc., but
you cannot leave a limit in your expression. You must explain why your expression is, in fact,
equal to Cij .

15.2380. Recovering an ellipsoid from boundary points. You are given a set of vectors x(1) , . . . , x(N ) ∈
Rn that are thought to lie on or near the surface of an ellipsoid centered at the origin, which
we represent as
E = {x ∈ Rn | xT Ax = 1},
where A = AT ∈ Rn×n ≥ 0. Your job is to recover, at least approximately, the matrix A, given
the observed data x(1) , . . . , x(N ) . Explain your approach to this problem, and then carry it
out on the data given in the mfile ellip_bdry_data.m. Be sure to explain how you check that
the ellipsoid you find is reasonably consistent with the given data, and also that the matrix A
you find does, in fact, correspond to an ellipsoid. To simplify the explanation, you can give
it for the case n = 4 (which is the dimension of the given data). But it should be clear from
your discussion how it works in general.

15.2390. Predicting zero crossings. We consider a linear system of the form

ẋ = Ax, y = Cx,

where x(t) ∈ Rn and y(t) ∈ R. We know A and C, but we do not know x(0). We cannot
directly observe the output, but we do know the times at which the output is zero, i.e., we

152
are given the zero-crossing times t1 , . . . , tp at which y(ti ) = 0. You can assume these times
are given in increasing order, i.e., 0 ≤ t1 < · · · < tp , and that y(t) 6= 0 for 0 ≤ t < tp and
t 6= t1 , . . . , t 6= tp . (Note that this definition of zero-crossing times doesn’t require the output
signal to cross the value zero; it is enough to just have the value zero.) We are interested in
the following question: given A, C, and the zero-crossing times t1 , . . . , tp , can we predict the
next zero-crossing time tp+1 ? (This means, of course, that y(t) 6= 0 for tp < t < tp+1 , and
y(tp+1 ) = 0.) You will answer this question for the specific system
 
0 1 0 0
 0 0 1 0   
A=  0
, C = 1 1 1 1 ,
0 0 1 
−18 −11 −12 −2
and zero-crossing times
t1 = 0.000, t2 = 1.000, t3 = 2.000, t4 = 3.143.
(So here we have p = 4.) Note that the zero-crossing times are given to three significant digits.
Specifically, you must do one of the following:
• If you think that you can determine the next zero-crossing time t5 , explain in detail how
to do it, and find the next time t5 (to at least two significant figures).
• If you think that you cannot determine the next zero-crossing time t5 , explain in de-
tail why, and find two trajectories of the system which have t1 , . . . , t4 as the first 4
zero-crossings, but have different 5th zero-crossings. (The zero-crossings should differ
substantially, and not just in the last significant digit.)
Be sure to make it clear which one of these options you choose. Hint: Be careful estimating
rank or determining singularity, if that’s part of your procedure; remember that the zero-
crossing times are only given to three significant figures.

15.2400. Optimal time compression equalizer. We are given the (finite) impulse response of a
communications channel, i.e., the real numbers
c1 , c2 , . . . , cn .
Our goal is to design the (finite) impulse response of an equalizer, i.e., the real numbers
w1 , w2 , . . . , wn .
(To make things simple, the equalizer has the same length as the channel.) The equalized
channel response h is given by the convolution of w and c, i.e.,
i−1
X
hi = wj ci−j , i = 2, . . . , 2n,
j=1

where we take wi and ci to be zero for i ≤ 0 or i > n. This is shown below.

∗c ∗w

153
The goal is to choose w so that most of the energy of the equalized impulse response h is
concentrated within k samples of t = n + 1, where k < n − 1 is given. To define this formally,
we first define the total energy of the equalized response as
2n
X
Etot = h2i ,
i=2

and the energy in the desired time interval as


n+1+k
X
Edes = h2i .
i=n+1−k

For any w for which Etot > 0, we define the desired to total energy ratio, or DTE, as DTE =
Edes /Etot . Thus number is clearly between 0 and 1; it tells us what fraction of the energy in
h is contained in the time interval t = n + 1 − k, . . . , t = n + 1 + k. You can assume that h is
such that for any w 6= 0, we have Etot > 0.

a) How do you find a w 6= 0 that maximizes DTE? You must give a very clear description of
your method, and explain why it works. Your description and justification must be very
clear. You can appeal to any concepts used in the class, e.g., least-squares, least-norm,
eigenvalues and eigenvectors, singular values and singular vectors, matrix exponential,
and so on.

b) Carry out your method for time compression length k = 1 on the data found in
time_comp_data.m. Plot your solution w, the equalized response h, and give the DTE
for your w.

Please note: You do not need to know anything about equalizers, communications channels,
or even convolution; everything you need to solve this problem is clearly defined in the problem
statement.

15.2410. Minimum energy required to leave safe operating region. We consider the stable
controllable system ẋ = Ax + Bu, x(0) = 0, where x(t) ∈ Rn and u(t) ∈ Rm . The input u is
beyond our control, but we have some idea of how large its total energy
Z ∞
ku(τ )k2 dτ
0

is likely to be. The safe operating region for the state is the unit ball

B = { x | kxk ≤ 1 }.

The hope is that input u will not drive the state outside the safe operating region. One
measure of system security that is used is the minimum energy Emin that is required to drive
the state outside the safe operating region:
 Z t 
Emin = min ku(τ )k2 dτ x(t) 6∈ B .
0

154
(Note that we do not specify t, the time at which the state is outside the safe operating region.)
If Emin is much larger than the energy of the u’s we can expect, we can be fairly confident
that the state will not leave the safe operating region. (Emin can also be justified as a system
security measure on statistical grounds, but we won’t go into that here.)

a) Find Emin explicitly. Your solution should be in terms of the matrices A, B, or other ma-
trices derived from them such as the controllability matrix C, the controllability Gramian
Wc , and its inverse P = Wc−1 . Make sure you give the simplest possible expression for
Emin .

b) Suppose the safe operating region is the unit cube C = { x | |xi | ≤ 1, i = 1, . . . , n }


instead of the unit ball B. Let Emin
cube denote the minimum energy required to drive the

state outside the unit cube C. Repeat part (a) for Emin
cube .

15.2420. Energy storage efficiency in a linear dynamical system. We consider the discrete-time
linear dynamic system

x(t + 1) = Ax(t) + Bu(t), y(t) = Cx(t),

where x(t) ∈ Rn , and u(t), y(t) ∈ R. The initial state is zero, i.e., x(0) = 0. We apply an
input sequence u(0), . . . , u(N − 1), and are interested in the output over the next N samples,
i.e., y(N ), . . . , y(2N − 1). (We take u(t) = 0 for t ≥ N .) We define the input energy as
N
X −1
Ein = u(t)2 ,
t=0

and similarly, the output energy is defined as


2N
X −1
Eout = y(t)2 .
t=N

How would you choose the (nonzero) input sequence u(0), . . . , u(N − 1) to maximize the ratio
of output energy to input energy, i.e., to maximize Eout /Ein ? What is the maximum value the
ratio Eout /Ein can have?

15.2430. Energy-optimal evasion. A vehicle is governed by the following discrete-time linear dy-
namical system equations:

x(t + 1) = Ax(t) + Bu(t), y(t) = Cx(t), x(0) = 0.

Here x(t) ∈ Rn is the vehicle state, y(t) ∈ R3 is the vehicle position, and u(t) ∈ Rm is the
input signal. (The vehicle dynamics are really continuous; the equation above is the result of
a suitable sampling.) The system is controllable.

a) Minimum energy to reach a position. Find the input u(0), . . . , u(T − 1) that reaches
position f ∈ R3 at time T (where T ≥ n), i.e., y(T ) = f , and minimizes the input
‘energy’
ku(0)k2 + · · · + ku(T − 1)k2 .

155
The input u is the (energy) optimal input for the vehicle to arrive at the position f at
time T . Give an expression for E, the energy of the minimum energy input. (Of course
E will depend on the data A, B, C, and f .)

b) Energy-optimal evasion. Now consider a second vehicle governed by

z(t + 1) = F z(t) + Gv(t), w(t) = Hz(t), z(0) = 0

where z(t) ∈ Rn is the state of the vehicle, w(t) ∈ R3 is the vehicle position, and
v(t) ∈ Rm is the input signal. This vehicle is to be overtaken (intercepted) by the first
vehicle at time T , where T ≥ n. This means that w(T ) = y(T ). How would you find
v(0), . . . , v(T − 1) that maximizes the minimum energy the first vehicle must expend to
intercept the second vehicle at time T , subject to a limit on input energy,

kv(0)k2 + · · · + kv(T − 1)k2 ≤ 1?

The input v is maximally evasive, in the sense that is requires the first vehicle to expend
the largest amount of input energy to overtake it, given the limit on input energy the
second vehicle is allowed to use. Express your answer in terms of the data A, B, C,
F , G, H, and standard matrix functions (inverse, transpose, SVD, . . . ). Remark: This
problem is obviously not a very realistic model of a real pursuit-evasion situation, for
several reasons: both vehicles start from the zero initial state, the time of intercept (T )
is known to the second vehicle, and the place of intercept (w(T )) is known ahead of time
to the first vehicle. Still, it’s possible to extend the results of this problem to handle a
realistic model of a pursuit/evasion.

15.2440. Worst-case analysis of impact. We consider a (time-invariant) linear dynamical system

ẋ = Ax + Bu, x(0) = xinit ,

with state x(t) ∈ Rn , and input u(t) ∈ Rm . We are interested in the state trajectory over the
time interval [0, T ]. In this problem the input u represents an impact on the system, so it has
the form
u(t) = gδ(t − Timp ),
where g ∈ Rm is a vector that gives the direction and magnitude of the impact, and Timp is
the time of the impact. We assume that 0 ≤ Timp ≤ T− . (Timp = T− means that the impact
occurs right at the end of the period of interest, and does affect x(T ).) We let xnom (T ) denote
the state, at time t = T , of the linear system ẋnom = Axnom , xnom (0) = xinit . The vector
xnom (T ) is what the final state x(T ) of the system above would have been at time t = T , had
the impact not occurred (i.e., with u = 0). We are interested in the deviation D between x(T )
and xnom (T ), as measured by the norm:

D = kx(T ) − xnom (T )k.

D measures how far the impact has shifted the state at time T . We would like to know how
large D can be, over all possible impact directions and magnitudes no more than one (i.e.,
kgk ≤ 1), and over all possible impact times between 0 and T− . In other words, we would like

156
to know the maximum possible state deviation, at time T , due to an impact of magnitude no
more than one. We’ll call the choices of Timp and g that maximize D the worst-case impact
time and worst-case impact vector, respectively.
a) Explain how to find the worst-case impact time, and the worst-case impact vector, given
the problem data A, B, xinit , and T . Your explanation should be as short and clear
as possible. You can use any of the concepts we have encountered in the class. Your
approach can include a simple numerical search (such as plotting a function of one
variable to find its maximum), if needed. If either the worst-case impact time or the
worst-case impact vector do not depend on some of the problem data (i.e., A, B, xinit ,
and T ) say so.

b) Get the data from worst_case_impact_data.json, which defines A, B, xinit , and T ,


and carry out the procedure described in part (a). Be sure to give us the worst-case
impact time (with absolute precision of 0.01), the worst-case impact vector, and the
corresponding value of D.

15.2450. Worst time for control system failure. In this problem we consider a system that under
normal circumstances is governed by the equations

ẋ(t) = Ax(t) + Bu(t), u(t) = Kx(t). (3)

(This is called state feedback, and is very commonly used in automatic control systems.) Here
the application is a regulator, which means that input u is meant to drive the state to zero
as t → ∞, no matter what x(0) is. At time t = Tf , however, a fault occurs, and the input
signal becomes zero. The fault is cleared (i.e., corrected) Tc seconds after it occurs. Thus,
for Tf ≤ t ≤ Tf + Tc , we have ẋ(t) = Ax(t); for t < Tf and t > Tf + Tc , the system is
governed by the equations (3). You’ll find the specific matrices A, B, and K, in the mfile
fault_ctrl_sys.m on the class web site. Here’s the problem: suppose the system fails for
one second, some time in the time interval [0, 9]. In other words, we have 0 ≤ Tf ≤ 9, and
Tc = 1. We don’t know what x(0) is, but you can assume that kx(0)k ≤ 1. We also don’t
know the time of failure Tf . The problem is to find the time of failure Tf (in [0, 9]) and the
initial condition x(0) (with kx(0)k ≤ 1) that maximizes kx(10)k. In essence, you are carrying
out a worst-case analysis of the effects of a one second control system failure. As usual, you
must explain your approach clearly and completely. You must also give your source code, and
the results, i.e., the worse possible x(0), the worst failure time Tf , and the resulting value of
kx(10)k. An accuracy of 0.01 for Tf is fine.

15.2460. Some proof or counterexample questions. Determine if the following statements are
true or false. If the statement is true, prove it; if you think it is false, provide a specific
(numerical) counterexample. You get five points for the correct solution (i.e., the right answer
and a valid proof or counterexample), two points for the right answer (i.e., true or false), and
zero points otherwise. What we mean by “true” is that the statement is true for all values
of the matrices and vectors given. (You can assume the entries of the matrices and vectors
are all real.) You can’t assume anything about the dimensions of the matrices (unless it’s
explicitly stated), but you can assume that the dimensions are such that all expressions make
sense. For example, the statement “A + B = B + A” is true, because no matter what the

157
dimensions of A and B (which must, however, be the same), and no matter what values A
and B have, the statement holds. As another example, the statement A2 = A is false, because
there are (square) matrices for which this doesn’t hold. In such a case, provide a specific
counterexample, for example, A = 2 (which is a matrix in R1×1 ).

a) Suppose A ∈ Rn×n is symmetric, and v1 , . . . , vn is a basis for Rn . If viT Avi ≥ 0 for


i = 1, . . . , n, then A ≥ 0.

b) Suppose A = AT ∈ Rn×n satisfies A ≥ 0, and Akk = 0 for some k (between 1 and n).
Then A is singular.

c) Suppose A, B ∈ Rn×n , with kAk > kBk. Then, for all k ≥ 1, kAk k ≥ kB k k.

d) Suppose à is a submatrix of a matrix A ∈ Rm×n . (This means à is obtained from A


by removing some rows and columns from A; as an extreme case, any element of A is a
(1 × 1) submatrix of A.) Then kÃk ≤ kAk.

e) For any A, B, C, D with compatible dimensions (see below),


   
A B kAk kBk
≤ .
C D kCk kDk

Compatible dimensions means: A and B have the same number of rows, C and D have
the same number of rows, A and C have the same number of columns, and B and D
have the same number of columns.

f) For any A and B with the same number of columns, we have


 
A p
max{kAk, kBk} ≤ ≤ kAk2 + kBk2 .
B

g) Suppose the fat (including, possibly, square) and full rank matrices A and B have the
same number of rows. Then we have κ(A) ≤ κ( A B ), where κ(Z) denotes, as usual,


the condition number of the matrix Z, i.e., the ratio of the largest to the smallest singular
value.

15.2470. Uncovering a hidden linear explanation. Consider a set of vectors y1 , . . . , yN ∈ Rn ,


which might represent a collection of measurements or other data. Suppose we have

yi ≈ Axi + b, i = 1, . . . , N,

where A ∈ Rn×m , xi ∈ Rm , and b ∈ Rn , with m < n. (Our main interest is in the case when
N is much larger than n, and m is smaller than n.) Then we say that y = Ax + b is a linear
explanation of the data y. We refer to x as the vector of factors or underlying causes of the
data y. For example, suppose N = 500, n = 30, and m = 5. In this case we have 500 vectors;
each vector yi consists of 30 scalar measurements or data points. But these 30-dimensional
data points can be ‘explained’ by a much smaller set of 5 ‘factors’ (the components of xi ).
This problem is about uncovering, or discovering, a linear explanation of a set of data, given
only the data. In other words, we are given y1 , . . . , yN , and the goal is to find m, A, b, and

158
x1 , . . . , xN so that yi ≈ Axi + b. To judge the accuracy of a proposed explanation, we’ll use
the RMS explanation error, i.e.,

N
!1/2
1 X
J= kyi − Axi − bk2 .
N
i=1

One rather simple linear explanation of the data is obtained with xi = yi , A = I, and b = 0. In
other words, the data explains itself! In this case, of course, we have yi = Axi + b, so the RMS
explanation error is zero. But this is not what we’re after. To be a useful explanation, we want
to have m substantially smaller than n, i.e., substantially fewer factors than the dimension of
the original data (and for this smaller dimension, we’ll accept a nonzero, but hopefully small,
value of J.) Generally, we want m, the number of factors in the explanation, to be as small
as possible, subject to the constraint that J is not too large. Even if we fix the number of
factors as m, a linear explanation of a set of data is not unique. Suppose A, b, and x1 , . . . , xN
is a linear explanation of our data, with xi ∈ Rm . Then we can multiply the matrix A by two
(say), and divide each vector xi by two, and we have another linear explanation of the original
data. More generally, let F ∈ Rm×m be invertible, and g ∈ Rm . Then we have

yi ≈ Axi + b = (AF −1 )(F xi + g) + (b − AF −1 g).

Thus,

à = AF −1 , b̃ = b − AF −1 g, x̃1 = F x1 + g, ..., x̃N = F xN + g

is another equally good linear explanation of the data. In other words, we can apply any affine
(i.e., linear plus constant) mapping to the underlying factors xi , and generate another equally
good explanation of the original data by appropriately adjusting A and b. To standardize or
normalize the linear explanation, it is usually assumed that
N N
1 X 1 X
xi = 0, xi xT
i = I.
N N
i=1 i=1

In other words, the underlying factors have an average value zero, and unit sample covariance.
(You don’t need to know what covariance is — it’s just a definition here.) Finally, the problem.

a) Explain clearly how you would find a hidden linear explanation for a set of data y1 , . . . , yN .
Be sure to say how you find m, the dimension of the underlying causes, the matrix A,
the vector b, and the vectors x1 , . . . , xN . Explain clearly why the vectors x1 , . . . , xN
have the required properties.

b) Carry out your method on the data in the file linexp_data.m available on the course
web site. The file gives the matrix Y = [y1 · · · yN ]. Give your final A, b, and x1 , . . . , xN ,
and verify that yi ≈ Axi + b by calculating the norm of the error vector, kyi − Axi − bk,
for i = 1, . . . , N . Sort these norms in descending order and plot them. (This gives a
good picture of the distribution of explanation errors.) By explicit computation verify
that the vectors x1 , . . . , xN obtained, have the required properties.

159
15.2480. Some bounds on singular values. Suppose A ∈ R6×3 , with singular values 7, 5, 3, and
B ∈ R6×3 , with singular values 2, 2, 1. Let C = [A B] ∈ R6×6 , with full SVD C = U ΣV T ,
with Σ = diag(σ1 , . . . , σ6 ). (We allow the possibility that some of these singular values are
zero.)

a) How large can σ1 be?

b) How small can σ1 be?

c) How large can σ6 be?

d) How small can σ6 be?

What we mean is, how large (or small) can the specified quantity be, for any A and B with
the given sizes and given singular values.
Give your answers with 3 digits after the decimal place, as in

(a) 12.420, (b) 10.000, (c) 0.552, (d) 0.000.

(This is just an example.) Briefly justify your answers. find A and B that achieve the values
you give.

15.2490. Some simple matrix inequality counter-examples.

a) Find a (square) matrix A, which has all eigenvalues real and positive, but there is a
vector x for which xT Ax < 0. (Give A and x, and the eigenvalues of A.)
Moral: You cannot use positivity of the eigenvalues of A as a test for whether xT Ax ≥ 0
holds for all x.
What is the correct way to check whether xT Ax ≥ 0 holds for all x? (You are allowed
to find eigenvalues in this process.)

b) Find symmetric matrices A and B for which neither A ≥ B nor B ≥ A holds.

Of course, we’d like the simplest examples in each case.

15.2500. Some true-false questions. In the following statements, A ∈ Rn×n , σmin refers to σn
(the nth largest singular value), and κ refers to the condition number. Tell us whether each
statement is true or false. ‘True’ means that the statement holds for any matrix A ∈ Rn×n ,
for any n. ‘False’ means that the statement is not true. The only answers we will read are
‘True’, ‘False’, and ‘My attorney has advised me to not answer this question at this time’.
(This last choice will receive partial credit.) If you write anything else, you will receive no
credit for that statement. In particular, do not write justification for any answer, or provide
any counter-examples.

a) keA k ≤ ekAk .

b) σmin (eA ) ≥ eσmin (A) .

c) κ(eA ) ≤ eκ(A) .

160
d) κ(eA ) ≤ e2kAk .

e) rank(eA ) ≥ rank(A).

f) rank(eA − I) ≤ rank(A).

15.2510. Possible values for correlation coefficients. A correlation matrix C ∈ Rn×n is one
that has unit diagonal entries, i.e., Cii = 1, for i = 1, . . . , n, and is symmetric and positive
semidefinite. Correlation matrices come up in probability and statistics, but you don’t need
to know anything from these fields to solve this problem.
Suppose that a correlation matrix has the form below:
 
1 0.4 −0.2 0.3
 0.4 1 C23 −0.1 
C=  −0.2 C23

1 0.8 
0.3 −0.1 0.8 1

What are all possible values of C23 ?


Justify your answer.
If you can give an analytical solution in terms of any concepts from the class (eigenvalues,
pseudo-inverse, singular values, matrix exponential, etc.) do so. You may use the fact that
C > 0 when C23 = 0. (In particular, C23 = 0 is a possible value.)
Whether or not you give an analytical description, give a numerical description (and explain
your method, if it differs from the analytical method you gave). Of course, you must explain
how you find the possible values that C23 can take on.

15.2520. Maximizing a bilinear function. Suppose that A ∈ Rm×n . How would you find vectors
y and x, that maximize y T Ax, subject to kyk = 1, kxk = 1? What is the resulting value of
y T Ax?

15.2530. Least-squares stereo-vision rig calibration. A stereo-vision rig consists of two cameras
that view a 3D scene from slightly different positions. A (small) object located at a position
in R3 is projected onto each camera’s (2D) image plane. The position of the object image on
the first camera image plane is given by a vector p ∈ R2 , and the position of the same object
on the second camera image plane is given by q ∈ R2 . An analysis of the geometry of (ideal)
camera imaging reveals that p, q are related by
 T  
p q
F = 0,
1 1

where F ∈ R3×3 (F 6= 0) is called the fundamental matrix associated with the stereo-vision
rig. We can multiply F by any nonzero constant,
P3 and the equation above still holds. We can
therefore normalize F , and assume that i,j=1 Fij2 = 1. The fundamental matrix F can be
found by careful analysis of the camera positions, orientations, and their optical properties,
or, as we will do here, by calibration.

161
During rig calibration both cameras view K labeled objects. For each object i we record its
position in both image planes p(i) , q (i) , i = 1, . . . , K. We then estimate F from the calibration
data by choosing F to minimize the mean-square residual
K  (i) T  (i) !2
1 X p q
J= F ,
K 1 1
i=1

subject to the normalization constraint 3i,j=1 Fij2 = 1. (If the image plane locations were
P
exact, and the camera optics had no distortion or imperfections, we would get J = 0 for the
true fundamental matrix.)

a) Explain how to find the matrix F ls that minimizes J given the calibration data p(i) , q (i)
for i = 1, . . . , K. If you need to make an assumption about the rank of any matrix
arising in your analysis, do so (but state it clearly).

b) Carry out the method from part (a) on the data given in stereo_calibration_data.json.
The image plane points for the first and second cameras are given in 2 × K matrices P
and Q, respectively. Report F ls and the associated value of J.

c) Correspondence. Now suppose we have a set of image plane positions p(i) , q (i) , i =
1, . . . , N for N objects, but we do not know which ones correspond; that is, p(i) is the
first camera image plane position of the object labeled q (ki ) on the second camera image
plane. The correspondence problem is to guess the permutation k1 , . . . , kN . Give a simple
method for (approximately) solving the correspondence problem, given the fundamental
matrix. (The method you give will not be infallible, but tends to work well if N is not
too big and you are not unlucky.) Carry out your method on the data given in the data
file in the 2 × N matrices Pcor and Qcor, using the fundamental matrix F ls found in
part (b). Report the correspondences you find in the form (k1 , . . . , kN ). (This means
that p(1) corresponds to q (k1 ) , p(2) corresponds to q (k2 ) , and so on.)

15.2540. 2D projection with minimum distance distortion. We wish to visualize a set of data
points a1 , . . . , aN ∈ Rn , where n is more than two (and typically, much larger). To do this
we form the coordinates ci = QT ai ∈ R2 , i = 1, . . . , N , where Q ∈ Rn×2 has orthonormal
columns, and view the coordinates on a screen. This might allow us to see or recognize some
structure in the points that would be hard to recognize directly from the original data. This
problem concerns the choice of the matrix Q.
Let Dij = kai −aj k be the distances between the original points (in Rn ) and D̃ij = kci −cj k
be the distances between the coordinates (in R2 ), for i, j = 1, . . . , N . Ideally, we would like to
have D̃ij = Dij for all i, j, which would mean the mapping from data points to coordinates is
isometric, i.e., preserves distances. This isn’t possible in general, so we will choose Q so that
this holds approximately, in the sense described below.
Since the columns of Q are orthonormal, we have D̃ij ≤ Dij for all i, j. Thus, it seems
reasonable to choose Q to maximize J = N i,j=1 D̃ij . Intuitively, this will drive D̃ij towards
2
P
Dij , which is what we want.
Note that the solution is never unique; if Q is one solution, so is QZ, for any orthogonal
matrix Z ∈ R2×2 . (Using QZ applies a rotation or reflection to the coordinates that would be

162
obtained using Q, and so does not affect D̃ij .)

a) Explain how to find Q, using concepts and methods from the course (QR factorization,
Jordan form, pseudo-inverse, etc.). You can assume that the data points span Rn . Give
your method first, and then the justification that it is correct.

b) Carry out your method on the data given in twoD_proj_data.m, and plot the coordinates
with an optimal choice of Q. This data file gives the data points as a n × N matrix A,
and plots the coordinates for a non-optimal choice of Q (You can use the plotting code
as a template for your plot with an optimal Q; specifically, be sure to use the command
axis equal so the plotting axes use the same scale.)

Hint: You can add any constant vector to all the data vectors ai without changing the solution,
since only differences between pairs of data points matter. So you might look for a vector to
add to the data points that simplifies the expression for J (but of course, does not change its
value).

15.2550. Strictly growing trajectories. Give the exact (necessary and sufficient) conditions on
A ∈ Rn×n under which every nonzero trajectory of ẋ = Ax is always growing in norm, i.e.,
kx(t)k is increasing for all t.
Your answer can refer to any concepts used in the course (eigenvalues, singular values,
Jordan form, least-squares, range, nullspace, . . . ). Try to give the simplest answer possible.
You may not make any assumptions about A (e.g., that it is nonsingular, diagonalizable, etc.).
Please give only your final answer; we do not want any justification or discussion. Your
answer should have a form similar to “The property occurs if and only if all singular values of
A are larger than one, and A has no real eigenvalues”. (This is not the correct answer; it is
only as an example of what your answer should look like.)

16.2560. Blind signal detection. A binary signal s1 , . . . , sT , with st ∈ {−1, 1} is transmitted to a


receiver, which receives the (vector) signal yt = ast + vt ∈ Rn , t = 1, . . . , T , where a ∈ Rn
and vt ∈ Rn is a noise signal. We’ll assume that a 6= 0, and that the noise signal is centered
around zero, but is otherwise unknown. (This last statement is vague, but it will not matter.)
The receiver will form an approximation of the transmitted signal as

ŝt = wT yt , t = 1, . . . , T,

where w ∈ Rn is a weight vector. Your job is to choose the weight vector w so that ŝt ≈ st . If
you knew the vector a, then a reasonable choice for w would be w = a† = a/kak2 . This choice
is the smallest (in norm) vector w for which wT a = 1.
Here’s the catch: You don’t know the vector a. Estimating the transmitted signal, given
the received signal, when you don’t know the mapping from transmitted to received signal (in
this case, the vector a) is called blind signal estimation or blind signal detection.
Here is one approach. Ignoring the noise signal, and assuming that we have chosen w so
that wT yt ≈ st , we would have
T
X
(1/T ) (wT yt )2 ≈ 1.
t=1

163
Since wT vt gives the noise contribution to ŝt , we want
P w to be as small as possible. This leads
us to choose w to minimize kwk subject to (1/T ) T t=1 (w T y )2 = 1. This doesn’t determine w
t
uniquely; we can multiply it by −1 and it still minimizes kwk subject to (1/T ) T T 2
P
t=1 (w yt ) =
1. So we can only hope to recover either an approximation of st or of −st ; if we don’t know a
we really can’t do any better. (In practice we’d use other methods to determine whether we
have recovered st or −st .)
a) Explain how to find w, given the received vector signal y1 , . . . , yT , using concepts from
the class.
b) Apply the method to the signal in the file bs_det_data.json, which contains a matrix
Y, whose columns are yt . Give the weight vector w that you find. Plot a histogram
of the values of wT yt using using Plots; histogram(w’*Y, bins=60). You’ll know
you’re doing well if the result has two peaks, one negative and one positive. Once you’ve
chosen w, a reasonable guess of st (or, possibly, its negative −st ) is given by
s̃t = sign(wT yt ), t = 1, . . . , T,
where sign(u) is +1 for u ≥ 0 and −1 for u < 0. The file bs_det_data.json contains
the original signal, as a row vector s. Give your error rate, i.e., the fraction of times for
which s̃t 6= st . (If this is more than 50%, you are welcome to flip the sign on w.)

16.2570. Alternating projections for low rank matrix completion. In the low rank matrix
completion problem, you are given some of the entries of a matrix, along with an upper
bound on its rank; you are to guess or estimate the remaining entries. This arises in several
applications, one of which is described at the end of this problem. This question investigates
a heuristic method for the low rank matrix completion problem.
You are told that A ∈ Rm×n has rank ≤ r, and that Aij = Aknown ij for (i, j) ∈ K, where
K ⊆ {1, . . . , m} × {1, . . . , n} is the set of indices of the known entries. (You are given Aknown
ij
for (i, j) ∈ K.) We let p = |K| denote the number of known entries. You are to estimate or
guess the entries Aij , for (i, j) 6∈ K.
You will use an alternating projection method to find an estimate  of A. After choosing
(0)
an initial point Â(0) , that has the known correct entries (i.e., Âij = Aknown ij for ((i, j) ∈ K),
you will alternate between two projections. For k = 0, 1, . . . you carry out the following steps:
• Project to the closest matrix satisfying the rank constraint. Set Ã(k) to be the matrix of
rank ≤ r that is closest to Â(k) in Frobenius norm, i.e., that minimizes
 1/2
m X n
(k) (k)
X
kÃ(k) − Â(k) kF =  (Ãij − Âij )2 
i=1 j=1

subject to rank(Ã(k) ) ≤ r.
• Project to the closest matrix with the known entries. Set Â(k+1) to be the matrix with
the given known entries that is closest to Ã(k) in Frobenius norm, i.e., that minimizes
 1/2
m X n
(k+1) (k)
X
kÂ(k+1) − Ã(k) kF =  (Â ij − Ã )2  ij
i=1 j=1

164
(k+1)
subject to Âij = Aknown
ij for (i, j) ∈ K.

This is a heuristic method: It can fail to converge at all, or it can converge to different limit
points, depending on the starting point. But it often works well.

a) Clearly explain how to perform each of these projections. We will subtract points for
technically correct, but overly complicated methods. Do not use any matlab notation in
your answer.

b) Use 300 steps of the alternating projections algorithm to find a low rank matrix comple-
tion estimate for the problem defined in lrmc.m. This file defines the rank upper bound
r, the dimensions m and n, and the known matrix entries. The known matrix indices are
given as a p × 2 matrix K, with each row giving (i, j) for one known entry. The p-vector
Aknown gives the corresponding known values.
Initialize your method as follows. Let µ denote the mean of all the known entries. Set
(0) (0)
Âij = Aknown
ij for (i, j) ∈ K, and Âij = µ for (i, j) 6∈ K.
To judge the performance of the algorithm, the mfile also gives the actual matrix A. (Of
course in applications, you would not have access to the matrix A!) Plot kÂ(k) − AkF ,
for k = 1, . . . , 300.
Make a very brief comment about how well the algorithm worked on this data set. You
can allude to the fact that you are given only around one sixth of the entries of A.

Remark. None of this is needed to solve the problem; it is only for your amusement and
interest. Algorithms like this can be used for problems like the Netflix challenge. Here Aij
represents the rating user i gives (or would give) to movie j. We have access to some of the
ratings, and want to predict other ratings before they are given. (This would allow us to
make recommendations, for example.) It is reasonable to assume (and is confirmed with real
data) that ratings matrices like A have (approximately) low rank. This can be interpreted as
meaning that a user’s rating is (mostly) determined by a relatively small number of factors.
The entries in the kth left singular vector tell us how much the user ratings are influenced
(positively or negatively) by factor k; the entries in the kth right singular vector tell us how
much of factor k (positive or negative) is in each movie.

16.2580. Least-squares matching of supply and demand on a network. A network consists of


a directed graph with n nodes connected by m directed links. The graph is specified by its
node incidence matrix A ∈ Rn×m , where

+1 edge j enters node i




Aij = −1 edge j leaves node i .

0 otherwise

We assume the graph is connected: For any pair of distinct nodes i and ĩ, with i 6= ĩ, there is
a sequence of nodes i = i1 , . . . , ik = ĩ, with an edge between ip and ip+1 , for p = 1, . . . , k − 1.
(This means that between any nodes there is a path, ignoring edge orientation.)

165
Each node i has a quantity qi of some commodity, as well as a demand di for the commodity.
Pn
(These
Pn are typically nonnegative, but this won’t matter here.) We assume that i=1 qi =
i=1 di , i.e., the total quantity available equals the total demand.
We will ship an amount sj along each edge j. This can be positive or negative: sj > 0
means that we ship the amount |sj | in the direction of the edge orientation; sj < 0 just means
that we ship the amount |sj | in the direction opposite to the edge orientation. After shipment,
the quantity of commodity at node i is equal to the original amount there (i.e., qi ) plus any
amount shipped in from neighboring nodes, minus any amount shipped out from node i. We
denote the post-shipment quantity at node i as q̃i .

a) Ability to match supply and demand. Explain why there always exists a shipment vector
s ∈ Rm which results in q̃ = d, i.e., perfect matching of supply and demand at each
node. You can refer to any concepts and results from the class, and you must limit your
argument to one page.
Hint: First characterize null(AT ).

b) Least-squares matching of supply andPdemand. Explain how to find a shipment vector s


that achieves q̃ = d, and minimizes m j=1 sj . You can use any concepts from the class.
2

If your method involves matrix inversion (and we’re not saying it must), you’ll need to
justify that the inverses exist.

16.2590. Smallest matrix with given row and column sums. Explain how to find the matrix
A ∈ Rm×n that minimizes
Xm Xn
J= A2ij ,
i=1 j=1

subject to the constraints


n
X m
X
Aij = ri , i = 1, . . . , m, Aij = cj , j = 1, . . . , n.
j=1 i=1

Here, ri (which give


P the rowsPsums) are given, as are cj (which give the column sums). You
can assume that m r
i=1 i = n
j=1 j if this doesn’t hold, there is no A that can satisfy the
c ;
constraints. Using matrix notation, the objective can be written as J = trace(AT A), and the
constraints are
A1 = r, AT 1 = c,
where 1 denotes a vector (of appropriate size in each case) with all components one. The data
r ∈ Rm and c ∈ Rn must satisfy 1T r = 1T c. Explain your method in the general case. If you
can give a nice formula for the optimal A, do so. In addition, carry out your method for the

166
specific data  
24
 
30  20 
 
 18   16 
   
 26   8 
r=
 22  ,
 c=
 28  ,

   
 14   32 
 
34  4 
12
with m = 6 and n = 8. (Entries in A do not have to be integers.)

16.2600. Condition number. Show that κ(A) = 1 if and only if A is a multiple of an orthogonal
matrix. Thus the best conditioned matrices are precisely (scaled) orthogonal matrices.

16.2610. Tightness of the condition number sensitivity bound. Suppose A is invertible, Ax = y,


and A(x+δx) = y +δy. In the lecture notes we showed that kδxk/kxk ≤ κ(A)kδyk/kyk. Show
that this bound is not conservative, i.e., there are x, y, δx, and δy such that equality holds.
Conclusion: the bound on relative error can be taken on, if the data x is in a particularly
unlucky direction and the data error δx is in (another) unlucky direction.

16.2620. Sensitivity to errors in a matrix. This problem concerns the relative error incurred in
solving a set of linear equations when there are errors in the matrix A (as opposed to error
in the data vector b). Suppose A is invertible, Ax = b, and (A + δA)(x + δx) = b. Show that
kδxk/kx + δxk ≤ κ(A)kδAk/kAk.

16.2630. Minimum and maximum RMS gain of an FIR filter. Consider an FIR filter with
impulse response

h1 = 1, h2 = 0.6, h3 = 0.2, h4 = −0.2, h5 = −0.1.

We’ll consider inputs of length 50 (i.e., input signal that are zero for t > 50), so the output
will have length (up to) 54, since the FIR filter has length 5. Let u ∈ R50 denote the input
signal, and y ∈ R54 denote the resulting output signal. The RMS gain of the filter for a signal
u is defined as
√1 kyk
g = 154 ,
√ kuk
50

which is the ratio of the RMS value of the output to the RMS value of the input. Obviously,
the gain g depends on the input signal.

a) Find the maximum RMS gain gmax of the FIR filter, i.e., the largest value g can have.
Plot the corresponding input signal whose RMS gain is gmax .

b) Find the minimum RMS gain gmin of the FIR filter, i.e., the smallest value g can have.
Plot the corresponding input signal whose RMS gain is gmin .

167
c) Plot the magnitude of the transfer function of the FIR filter, i.e., |H(ejΩ )|, where
5
X
jΩ
H(e ) = hk e−jkΩ .
k=1

Find the maximum and minimum absolute values of the transfer function, and the
frequencies at which they are attained. Compare to the results from parts a and b.
Hint: To plot the magnitude of the transfer function, you may want to use the freqz
matlab command. Make sure you understand what freqz does (using help freqz, for
example).

d) (This part is for fun.) Make a conjecture about the maximum and minimum singular
values of a Toeplitz matrix, and the associated left and right singular vectors.

16.2640. Detecting linear relations. Suppose we have N measurements y1 , . . . , yN of a vector signal


x1 , . . . , x N ∈ Rn :
yi = xi + di , i = 1, . . . , N.
Here di is some small measurement or sensor noise. We hypothesize that there is a linear
relation among the components of the vector signal x, i.e., there is a nonzero vector q such
that q T xi = 0, i = 1, . . . , N . The geometric interpretation is that all of the vectors xi lie
in the hyperplane q T x = 0. We will assume that kqk = 1, which does not affect the linear
relation. Even if the xi ’s do lie in a hyperplane q T x = 0, our measurements yi will not; we will
have q T yi = q T di . These numbers are small, assuming the measurement noise is small. So the
problem of determing whether or not there is a linear relation among the components of the
vectors xi comes down to finding out whether or not there is a unit-norm vector q such that
q T yi , i = 1, . . . , N , are all small. We can view this problem geometrically as well. Assuming
that the xi ’s all lie in the hyperplane q T x = 0, and the di ’s are small, the yi ’s will all lie close
to the hyperplane. Thus a scatter plot of the yi ’s will reveal a sort of flat cloud, concentrated
near the hyperplane q T x = 0. Indeed, for any z and kqk = 1, |q T z| is the distance from
the vector z to the hyperplane q T x = 0. So we seek a vector q, kqk = 1, such that all the
measurements y1 , . . . , yN lie close to the hyperplane q T x = 0 (that is, q T yi are all small). How
can we determine if there is such a vector, and what is its value? We define the following
normalized measure: v
u N
,v u N
u1 X u1 X
ρ= t T
(q yi )2 t kyi k2 .
N N
i=1 i=1

This measure is simply the ratio between the root mean square distance of the vectors to the
hyperplane q T x = 0 and the root mean square length of the vectors. If ρ is small, it means
that the measurements lie close to the hyperplane q T x = 0. Obviously, ρ depends on q. Here
is the problem: explain how to find the minimum value of ρ over all unit-norm vectors q, and
the unit-norm vector q that achieves this minimum, given the data set y1 , . . . , yN .

16.2650. Stability conditions for the distributed congestion control scheme. We consider the
congestion control scheme in problem , and will use the notation from that problem. In this
problem, we study the dynamics and convergence properties of the rate adjustment scheme.

168
To simplify things, we’ll assume that the route matrix R is skinny and full rank. You can
also assume that α > 0. Let x̄ls = (RT R)−1 RT T target denote the least-squares approximate
solution of the (over-determined) equations Rx ≈ T target . (The source rates given by x̄ls
minimize the sum of the squares of the congestion measures on all paths.)

a) Find the conditions on the update parameter α under which the rate adjustment scheme
converges to x̄ls , no matter what the initial source rate is.

b) Find the value of α that results in the fastest possible asymptotic convergence of the
rate adjustment algorithm. Find the associated asymptotic convergence rate. We define
the convergence rate as the smallest number c for which kx(t) − x̄ls k ≤ act holds for all
trajectories and all t (the constant a can depend on the trajectory).

You can give your solutions in terms of any of the concepts we have studied, e.g., matrix
exponential, eigenvalues, singular values, condition number, and so on. Your answers can, of
course, depend on R, T target , and x̄ls . If your answer doesn’t depend on some of these (or
even all of them) be sure to point this out. We’ll take points off if you give a solution that is
correct, but not as simple as it can be.

16.2660. Maximizing the state later. Consider the system ẋ = Ax with


 
0.3132 0.3566 0.2545 0.2579 0.2063
 −0.0897 0.2913 0.1888 0.4392 0.1470 
 
A =  0.0845
 0.2433 −0.5888 −0.0407 0.1744  .
 0.2478 −0.1875 0.2233 0.3126 −0.6711 
0.1744 0.2315 −0.1004 −0.2111 0.0428

a) Find the initial state x(0) ∈ R5 satisfying kx(0)k = 1 such that kx(3)k is maximum.
In other words, find an initial condition of unit norm that produces the largest state at
t = 3.

b) Find the initial state x(0) ∈ R5 satisfying kx(0)k = 1 such that kx(3)k is minimum.

To save you the trouble of typing in the matrix A, you can find it on the web page in the file
max_min_init_state.m.

16.2670. Regularization and SVD. Let A ∈ Rn×n be full rank, with SVD
n
X
A= σi ui viT .
i=1

(We consider the square, full rank case just for simplicity; it’s not too hard to consider the
general nonsquare, non-full rank case.) Recall that the regularized approximate solution of
Ax = y is defined as the vector xreg ∈ Rn that minimizes the function

kAx − yk2 + µkxk2 ,

169
where µ > 0 is the regularization parameter. The regularized solution is a linear function of
y, so it can be expressed as xreg = By where B ∈ Rn×n .
a) Express the SVD of B in terms of the SVD of A. To be more specific, let
n
X
B= σ̃i ũi ṽiT
i=1

denote the SVD of B. Express σ̃i , ũi , ṽi , for i = 1, . . . , n, in terms of σi , ui , vi , i = 1, . . . , n


(and, possibly, µ). Recall the convention that σ̃1 ≥ · · · ≥ σ̃n .
b) Find the norm of B. Give your answer in terms of the SVD of A (and µ).
c) Find the worst-case relative inversion error, defined as
kABy − yk
max .
y6=0 kyk
Give your answer in terms of the SVD of A (and µ).

16.2680. Optimal binary signalling. We consider a communication system given by


y(t) = Au(t) + v(t), t = 0, 1, . . . .
Here
• u(t) ∈ Rn is the transmitted (vector) signal at time t
• y(t) ∈ Rm is the received (vector) signal at time t
• v(t) ∈ Rm is noise at time t
• t = 0, 1, . . . is the (discrete) time
Note that the system has no memory: y(t) depends only on u(t). For the noise, we assume that
kv(t)k < Vmax . Other than this maximum value for the norm, we know nothing about the noise
(for example, we do not assume it is random). We consider binary signalling, which means
that at each time t, the transmitter sends one of two signals, i.e., we have either u(t) = s1 ∈ Rn
or u(t) = s2 ∈ Rn . The receiver then guesses which of the two signals was sent, based on
y(t). The process of guessing which signal was sent, based on the received signal y(t), is
called decoding. In this problem we are only interested in the case when the communication
is completely reliable, which means that the receiver’s estimate of which signal was sent is
always correct, no matter what v(t) is (provided kv(t)k < Vmax , of course). Intuition suggests
that this is possible when Vmax is small enough.
a) Your job is to design the signal constellation, i.e., the vectors s1 ∈ Rn and s2 ∈ Rn , and
the associated (reliable) decoding algorithm used by the receiver. Your signal constella-
tion should minimize the maximum transmitter power, i.e.,
Pmax = max{ks1 k, ks2 k}.
You must describe:
• your analysis of this problem,

170
• how you come up with s1 and s2 ,
• the exact decoding algorithm used,
• how you know that the decoding algorithm is reliable, i.e., the receiver’s guess of
which signal was sent is always correct.

b) The file opt_bin_data.m contains the matrix A and the scalar Vmax . Using your findings
from part 1, determine the optimal signal constellation.

16.2690. Some input optimization problems. In this problem we consider the system x(t + 1) =
Ax(t) + Bu(t), with
     
1 0 0 0 0 1 1
1 1 0 0 0 1  0 
A= 0 1
, B= , x(0) = 
 −1  .

1 0 1 0
1 0 0 0 0 0 1

a) Least-norm input to steer state to zero in minimum time. Find the minimum T , Tmin ,
such that x(T ) = 0 is possible. Among all (u(0), u(1), . . . u(Tmin − 1)) that steer x(0) to
x(Tmin ) = 0, find the one of minimum norm, i.e., the one that minimizes

JTmin = ku(0)k2 + · · · + ku(Tmin − 1)k2 .

Give the minimum value of JTmin achieved.

b) Least-norm input to achieve kx(10)k ≤ 0.1. In lecture we worked out the least-norm
input that drives the state exactly to zero at t = 10. Suppose instead we only require
the state to be small at t = 10, for example, kx(10)k ≤ 0.1. Find u(0), u(1), . . . , u(9)
that minimize
J9 = ku(0)k2 + · · · + ku(9)k2
subject to the condition kx(10)k ≤ 0.1. Give the value of J9 achieved by your input.

16.2700. Determining the number of signal sources. The signal transmitted by n sources is
measured at m receivers. The signal transmitted by each of the sources at sampling period k,
for k = 1, . . . , p, is denoted by an n-vector x(k) ∈ Rn . The gain from the j-th source to the
i-th receiver is denoted by aij ∈ R. The signal measured at the receivers is then

y(k) = A x(k) + v(k), k = 1, . . . , p,

where v(k) ∈ Rm is a vector of sensor noises, and A ∈ Rm×n is the matrix of source to receiver
gains. However, we do not know the gains aij , nor the transmitted signal x(k), nor even the
number of sources present n. We only have the following additional a priori information:

• We expect the number of sources to be less than the number of receivers (i.e., n < m,
so that A is skinny);

• A is full-rank and well-conditioned;

171
• All sources have roughly the same average power, the signal x(k) is unpredictable, and
the source signals are unrelated to each other; Hence, given enough samples (i.e., p large)
the vectors x(k) will ‘point in all directions’;
• The sensor noise v(k) is small relative to the received signal A x(k).
Here’s the question:
a) You are given a large number of vectors of sensor measurements y(k) ∈ Rm , k = 1, . . . , p.
How would you estimate the number of sources, n? Be sure to clearly describe your
proposed method for determining n, and to explain when and why it works.
b) Try your method on the signals given in the file num_sources.json. Running this script
will define the variables:
• m, the number of receivers;
• p, the number of signal samples;
• Y, the receiver sensor measurements, an array of size m by p (the k-th column of Y
is y(k).)
What can you say about the number of signal sources present? Repeat your analysis
for the signals given in the files nsource2.m, and nsource3.m. Each of the three sets
of signal samples was obtained under different conditions, i.e., a different number of
sources, and different source to sensor gains (but the conditions are the same for all the
samples in each set). For each of the three sets of sensor signals, what can you say about
the number of signal sources present?
Note: Our problem description and assumptions are not precise. An important part of this
problem is to explain your method, and clarify the assumptions.

16.2710. The EE263 search engine. In this problem we examine how linear algebra and low-rank
approximations can be used to find matches to a search query in a set of documents. Let’s
assume we have four documents: A, B, C, and D. We want to search these documents for
three terms: piano, violin, and drum. We know that:
in A, the word piano appears 4 times, violin 3 times, and drum 1 time;
in B, the word piano appears 6 times, violin 1 time, and drum 0 times;
in C, the word piano appears 7 time, violin 4 times, and drum 39 times; and
in D, the word piano appears 0 times, violin 0 times, and drum 5 times.
We can tabulate this as follows:
A B C D
piano 4 6 7 0
violin 3 1 4 0
drum 1 0 39 5
This information is used to form a term-by-document matrix A, where Aij specifies the fre-
quency of the ith term in the jth document, i.e.,
 
4 6 7 0
A =  3 1 4 0 .
1 0 39 5

172
Now let q be a query vector, with a non-zero entry for each term. The query vector expresses
a criterion by which to select a document. Typically, q will have 1 in the entries corresponding
to the words we want to search for, and 0 in all other entries (but other weighting schemes are
possible.) A simple measure of how relevant document j is to the query is given by the inner
product of the jth column of A with q:
aTj q.
However, this criterion is biased towards large documents. For instance, a query for piano
(q = [ 1 0 0 ]T ) by this criterion would return document C as most relevant, even though
document B (and even A) is probably much more relevant. For this reason, we use the inner
product normalized by the norm of the vectors,
aTjq
.
kaj k kqk
Note that our criterion for measuring how well a document matches the query is now the cosine
of the angle between the document and query vectors. Since all entries are non-negative, the
cosine is in [0, 1] (and the angle is in [−π/2, π/2].) Define à and q̃ as normalized versions of
A and q (A is normalized column-wise, i.e., each column is divided by its norm.) Then,
c = ÃT q̃
is a column vector that gives a measure of the relevance of each document to the query. And
now, the question. In the file term_by_doc.json you are given m search terms, n documents,
and the corresponding term-by-document matrix A ∈ Rm×n . (They were obtained randomly
from Stanford’s Portfolio collection of internal documents from the 1990s.) The variables term
and document are lists of strings. The string term[i] contains the ith word. Each document
is specified by its former URL, i.e., the jth document used to be at the URL document[j]; the
documents are no longer available online, but you might be able to find some of them on some
internet archive (like the Wayback Machine) if you’re curious. (You don’t need to in order
to solve the problem.) The matrix entry A[i,j] specifies how many times term i appears in
document j.
When you specify documents in your results, please just specify the indices, that is, give
us j rather than document[j].

a) Compute Ã, the normalized term-by-document matrix. Compute and plot the singular
values of Ã.
b) Perform a query for the word students (i = 53) on Ã. What are the 5 top results?
c) We will now consider low-rank approximations of Ã, that is
Âr = min kà − Âk.
Â, rank(Â)≤r

Compute Â32 , Â16 , Â8 , and Â4 . Perform a query for the word students on these matrices.
Comment on the results.
d) Are there advantages of using low-rank approximations over using the full-rank matrix?
(You can assume that a very large number of searches will be performed before the
term-by-document matrix is updated.)

173
Note: Variations and extensions of this idea are actually used in commercial search engines
(although the details are closely guarded secrets . . . ) Issues in real search engines include the
fact that m and n are enormous and change with time. These methods are very interesting
because they can recover documents that don’t include the term searched for. For example,
a search for automobile could retrieve a document with no mention of automobile, but many
references to cars (can you give a justification for this?) For this reason, this approach is
sometimes called latent semantic indexing.
Julia hints: You may find the command sortperm useful. It returns the index permutation
that would sort its argument into an ascending order, or if the rev=true argument is supplied,
into a descending order. Here’s some sample code that prints the indices of the two largest
elements of a vector c:
p = sortperm(c, rev=true)
@show p[1:2] # indices of two largest elements
c_sorted = c[p] # equivalent of sort(c, rev=true)
@show c[p[1:2]] # two largest elements of c

16.2720. Condition number and angles between columns. Suppose A ∈ Rn×n has columns
a1 , . . . , an ∈ Rn , each of which has unit norm:

A = [a1 a2 · · · an ], kai k = 1, i = 1, . . . , n.

Suppose that two of the columns have an angle less than 10◦ between them, i.e., aT k al ≥ cos 10 .

Show that κ(A) ≥ 10, where κ denotes the condition number. (If A is singular, we take
κ(A) = ∞, and so κ(A) ≥ 10 holds.) Interpretation: If the columns were orthogonal, i.e.,
∠(ai , aj ) = 90◦ for i 6= j, i, j = 1, . . . , n, then A would be an orthogonal matrix, and therefore
its condition number would be one (which is the smallest a condition number can be). At the
other extreme, if two columns are the same (i.e., have zero angle between them), the matrix is
singular, and the condition number is infinite. Intuition suggests that if some pair of columns
has a small angle, such as 10◦ , then the condition number must be large. (Although in many
applications, a condition number of 10 is not considered large.)

16.2730. Analysis and optimization of a communication network. A communication network


is modeled as a set of m directed links connecting nodes. There are n routes in the network.
A route is a path, along one or more links in the network, from a source node to a destination
node. In this problem, the routes are fixed, and are described by an m × n route-link matrix
A, defined as (
1 route j passes through link i
Aij =
0 otherwise.
Over each route we have a nonnegative flow, measured in (say) bits per second. We denote
the flow along route j as fj , and we call f ∈ Rn the flow vector. The traffic on a link i,
denoted ti , is the sum of the flows on all routes passing through link i. The vector t ∈ Rm is
called the traffic vector. handle. We’re
Each link has an associated nonnegative delay, measured in (say) seconds. We denote the
delay for link i as di , and refer to d ∈ Rm as the link delay vector. The latency on a route
j, denoted lj , is the sum of the delays along each link constituting the route, i.e., the time it

174
takes for bits entering the source to emerge at the destination. The vector l ∈ Rn is the route
latency vector.
The total number of bits in the network at an instant in time is given by B = f T l = tT d.

a) Worst-case flows and delays. Suppose the flows and link delays satisfy
n
X m
X
(1/n) fj2 ≤ F 2 , (1/m) d2i ≤ D2 ,
j=1 i=1

where F and D are given. What is the maximum possible number of bits in the network?
What values of f and d achieve this maximum value? (For this problem you can ignore
the constraint that the flows and delays must be nonnegative. It turns out, however,
that the worst-case flows and delays can always be chosen to be nonnegative.)

b) Utility maximization. For a flow fj , the network operator derives income at a rate pj fj ,
where pj is thePprice per unit flow on route j. The network operator’s total rate of
income is thus nj=1 pj fj . (The route prices are known and positive.)
The network operator is charged at a rate ci ti for having traffic ti on link i, where
P ci is
the cost per unit of traffic on link i. The total charge rate for link traffic is mi=1 ti ci .
(The link costs are known and positive.) The net income rate (or utility) to the network
operator is therefore
Xn m
X
U net = pj fj − ci ti .
j=1 i=1

Find the flow vector f that maximizes the operator’s net income rate, subject to the
constraint that each fj is between 0 and F max , where F max is a given positive maximum
flow value.

16.2740. A heuristic for MAXCUT. Consider a graph with n nodes and m edges, with the nodes
labeled 1, . . . , n and the edges labeled 1, . . . , m. We partition the nodes into two groups, B
and C, i.e., B ∩ C = ∅, B ∪ C = {1, . . . , n}. We define the number of cuts associated with this
partition as the number of edges between pairs of nodes when one of the nodes is in B and the
other is in C. A famous problem, called the MAXCUT problem, involves choosing a partition
(i.e., B and C) that maximizes the number of cuts for a given graph. For any partition, the
number of cuts can be no more than m. If the number of cuts is m, nodes in group B connect
only to nodes in group C and the graph is bipartite.
The MAXCUT problem has many applications. We describe one here, although you do
not need it to solve this problem. Suppose we have a communication system that operates
with a two-phase clock. During periods t = 0, 2, 4, . . ., each node in group B transmits data
to nodes in group C that it is connected to; during periods t = 1, 3, 5, . . ., each node in group
C transmits to the nodes in group B that it is connected to. The number of cuts, then,
is exactly the number of successful transmissions that can occur in a two-period cycle. The
MAXCUT problem is to assign nodes to the two groups so as to maximize the overall efficiency
of communication.
It turns out that the MAXCUT problem is hard to solve exactly, at least if we don’t
want to resort to an exhaustive search over all, or most of, the 2n−1 possible partitions. In

175
this problem we explore a sophisticated heuristic method for finding a good (if not the best)
partition in a way that scales to large graphs.
We will encode the partition as a vector x ∈ Rn , with xi ∈ {−1, 1}. The associated
partition has xi = 1 for i ∈ B and xi = −1 for i ∈ C. We describe the graph by its node
adjacency matrix A ∈ Rn×n C), with
(
1 there is an edge between node i and node j
Aij =
0 otherwise

Note that A is symmetric and Aii = 0 (since we do not have self-loops in our graph).

a) Find a symmetric matrix P , with Pii = 0 for i = 1, . . . , n, and a constant d, for which
xT P x + d is the number of cuts encoded by any partitioning vector x. Explain how to
calculate P and d from A. Of course, P and d cannot depend on x.
The MAXCUT problem can now be stated as the optimization problem

maximize xT P x + d
subject to x2i = 1, i = 1, . . . , n,

with variable x ∈ Rn .

b) A famous heuristic for approximately solvingP MAXCUT is to replace the n constraints


x2i = 1, i = 1, . . . , n, with a single constraint ni=1 x2i = n, creating the so-called relaxed
problem

maximize xT P x + d
Xn
subject to x2i = n.
i=1

Explain how to solve this relaxed problem (even if you could not solve part (a)).
Let x? be a solution to the relaxed problem. We generate our candidate partition with
xi = sign(x?i ). (This means that xi = 1 if x?i ≥ 0, and xi = −1 if x?i < 0.) really
Remark: We can give a geometric interpretation of the relaxed problem, which will
also explain why it’s called relaxed. The constraints in the problem in part (a), that
x2i = 1, require x to lie on the vertices of the unit hypercube. In the relaxed problem,
the constraint set is the unit ball of unit radius. Because this constraint set is larger
than the original constraint set (i.e., it includes it), we say the constraints have been
relaxed.

c) Run the MAXCUT heuristic described in part (b) on the data given in max_cut_data.json.
How many cuts does your partition yield?
A simple alternative to MAXCUT is to generate a large number of random parti-
tions, using the random partition that maximizes the number of cuts as an approxi-
mate solution. Carry out this method with 1000 random partitions generated by x =
sign(rand(n,1)-0.5). What is the largest number of cuts obtained by these random
partitions?

176
Note: There are many other heuristics for approximately solving the MAXCUT problem.
However, we are not interested in them. In particular, please do not submit any other method
for approximately solving MAXCUT.

16.2750. Simultaneously estimating student ability and exercise difficulty. Each of n students
takes an exam that contains m questions. Student j receives (nonnegative) grade Gij on
question i. One simple model for predicting the grades is to estimate Gij ≈ Ĝij = aj /di ,
where aj is a (nonnegative) number that gives the ability of student j, and di is a (positive)
number that gives the difficulty of exam question i. Given a particular model, we could
simultaneously scale the student abilities and the exam difficulties by any positive number,
without affecting Ĝij . Thus, to ensure a unique model, we will normalize the exam question
difficulties di , so that the mean exam question difficulty across the m questions is 1.
In this problem, you are given a complete set of grades (i.e., the matrix G ∈ Rm×n ). Your
task is to find a set of nonnegative student abilities, and a set of positive, normalized question
difficulties, so that Gij ≈ Ĝij . In particular, choose your model to minimize the RMS error,
J,
 1/2
m X n 
1 X 2
J = Gij − Ĝij  .
mn
i=1 j=1

This can be compared to the RMS value of the grades,


 1/2
m X n
 1
X
G2ij  .
mn
i=1 j=1

a) Explain how to solve this problem, using any concepts from EE263. If your method
is approximate, or not guaranteed to find the global minimum value of J, say so. If
carrying out your method requires some rank or other conditions to hold, say so.
Note: You do not have to concern yourself with the requirement that aj are nonnegative
and di are positive. You can just assume this works out, or is easily corrected.

b) Carry out your method on the data found in grade_data.json. Give the optimal value
of J, and also express it as a fraction of the RMS value of the grades. Give the difficulties
of the 7 problems on the exam.

16.2760. Angle between two subspaces. The angle between two nonzero vectors v and w in Rn is
defined as  T 
−1 v w
∠(v, w) = cos ,
kvkkwk
where we take cos−1 (a) as being between 0 and π. We define the angle between a nonzero
vector v ∈ Rn and a (nonzero) subspace W ⊆ Rn as

∠(v, W) = min ∠(v, w).


w∈W, w6=0

Thus, ∠(v, W) = 10◦ means that the smallest angle between v and any vector in W is 10◦ . If
v ∈ W, we have ∠(v, W) = 0.

177
Finally, we define the angle between two nonzero subspaces V and W as
 
∠(V, W) = max max ∠(v, W), max ∠(w, V) .
v∈V, v6=0 w∈W, w6=0

This angle is zero if and only if the two subspaces are equal. If ∠(V, W) = 10◦ , say, it means
that either there is a vector in V whose minimum angle to any vector of W is 10◦ , or there is
a vector in W whose minimum angle to any vector of V is 10◦ .

a) Suppose you are given two matrices A ∈ Rn×r , B ∈ Rn×r , each of rank r. Let V =
range(A) and W = range(B). Explain how you could find or compute ∠(V, W). You
can use any of the concepts in the class, e.g., least-squares, QR factorization, pseudo-
inverse, norm, SVD, Jordan form, etc.

b) Carry out your method for the matrices found in angsubdata.m. Give the numerical
value for ∠(range(A), range(B)).

16.2770. Extracting the faintest signal. An n-vector valued signal, x(t) ∈ Rn , is defined for t =
1, . . . , T . We’ll refer to its ith component, xi (t), for t = 1, . . . , T , as the ith scalar signal. The
scalar signals x1 , . . . , xn−1 have an RMS value substantially larger than xn . In other words,
xn is the faintest scalar signal. It is also the signal of interest for this problem. We will assume
that the scalar signals x1 , . . . , xn are unrelated to each other, and so are nearly uncorrelated
(i.e., nearly orthogonal).
We aren’t given the vector signal x(t), but we are given a linear transformation of it,

y(t) = Ax(t), t = 1, . . . , T,

where A ∈ Rn×n is invertible. If we knew A, we could easily recover the original signal (and
therefore also the faintest scalar signal xn (t)), using x(t) = A−1 y(t), t = 1, . . . , T . But, sadly,
we don’t know A.
Here is a heuristic method for guessing xn (t). We will form our estimate as

x̂n (t) = wT y(t), t = 1, . . . , T,

where w ∈ Rn is a vector of weights. Note that if w were chosen so that wT A = αeT n , with
α 6= 0 a constant, then we would have x̂n (t) = αxn (t), i.e., a perfect reconstruction except for
the scale factor α.
Now, the important part of our heuristic: we choose w to minimize the RMS value of x̂n ,
subject to kwk = 1. Very roughly, one idea behind the heuristic is that, in general, wT y is a
linear combination of the scalar signals x1 , . . . , xn . If the linear combination has a small norm,
that’s because the linear combination is ‘rich in xn ’, and has only a small amount of energy
contributed by x1 , . . . , xn−1 . That, in fact, is exactly what we want. In any case, you don’t
need to worry about why the heuristic works (or doesn’t work)—it’s the method you are going
to use in this problem.

a) Explain how to find a w that minimizes the RMS value of x̂n , using concepts from the
class (e.g., range, rank, least-squares, QR factorization, eigenvalues, singular values, and
so on).

178
b) Carry out your method on the problem instance with n = 4, T = 26000, described in
the matlab file faintestdata.m. This file will define an n × T matrix Y , where the tth
column of Y is the vector y(t). The file will also define n and T . Submit your code, and
give us the optimal weight vector w ∈ R4 you find, along with the associated RMS value
of x̂n .
The following is not needed to solve the problem. The signals are actually audio tracks,
each 3.25 seconds long and sampled at 8 kHz. The matlab file faintestaudio.m contains
commands to generate wave files of the linear combinations y1 , . . . , y4 , and a wave file of
your estimate x̂n . You are welcome to generate and listen to these files.

16.2780. One of these vectors doesn’t fit. The file one_of_these_data.m contains an n×m matrix
X, whose columns we denote as x(1) , . . . , x(m) ∈ Rn . The columns are (vector) data collected
in some application. The ordering of the vectors isn’t relevant; in other words, permuting the
columns would make no difference.
One of the vectors doesn’t fit with the others.
Find the index of the vector that doesn’t fit. Carefully explain your method, and especially,
in what way the vector you’ve chosen doesn’t fit with the others. Your explanation can be
algebraic, or geometric (or both), but it should be simple to state, and involve ideas and
methods from this course.
Since the question is vague, clarity in your explanation of your method and approach is
very important. In particular, we want a nice, short explanation. We will not read a long,
complicated, or rambling explanation.

16.2790. Extracting RC values from delay data. We consider a CMOS digital gate that drives
a load consisting of interconnect wires that connect to the inputs of other gates. To find the
delay of the gate plus its load, we have to solve a complex, nonlinear ordinary differential
equation that takes into account circuit nonlinearities, parasitic capacitances, and so on. This
can be done using a circuit simulator such as SPICE. A very simple approximation of the
delay can be obtained by modeling the gate as a simple resistor with resistance R, and the
load as a simple capacitor with capacitance C. In this simple model, the delay of the gate
has the form ηRC, where η is a constant that depends on the precise definition of delay used.
(One common choice is η = 0.69, which is based on the time it takes the voltage of a simple
RC circuit to decay to 1/2 its original value.) This simple RC delay model can be used for
design, or approximate (but very fast) analysis. We address the question of determining a
value of R for each of a set of gates, and a value of C for each of a set of loads, given accurate
delay data (obtained by simulation) for each combination of a gate driving a load. We have
n digital gates labeled 1, . . . , n, and m loads labeled 1, . . . , m. By simulation, we obtain the
(accurate) delay Dij for gate j driving load i. (D is given as an m × n matrix.) The goal is
to find positive numbers R1 , . . . , Rn and C1 , . . . , Cm so that Dij ≈ Rj Ci . (For simplicity we’ll
take η = 1 in our delay model.) Finding good values of parameters for a simple model, given
accurate data, is sometimes called parameter extraction. In this problem, we are extracting
the gate resistances Rj and the load capacitances Ci , given accurate delay data Dij (obtained
by simulation). If we scale all resistances by a constant α > 0, and scale all capacitances by
1/α, the approximate delays Rj Ci don’t change. To remove this ambiguity, we will fix C1 = 1,

179
i.e., we will take the first load as our ‘unit load’. Finally we get to the problem.
a) Minimum mean-square absolute error. Explain how to find R1msa , . . . , Rnmsa and C1msa , . . . , Cm
msa

(positive, with C1msa = 1) that minimize the mean-square absolute error,


m n
1 XX
Emsa = (Dij − Rj Ci )2 .
mn
i=1 j=1

b) Minimum mean-square logarithmic error. Explain how to find R1msl , . . . , Rnmsl and C1msl , . . . , Cm
msl

(positive, with C1 = 1) that minimize the mean-square logarithmic error,


msl

m n
1 XX
Emsl = (log Dij − log(Rj Ci ))2 .
mn
i=1 j=1

(The logarithm here is base e, but it doesn’t really matter.)

c) Find R1msa , . . . , Rnmsa and C1msa , . . . , Cm


msa , as well as Rmsl , . . . , Rmsl and C msl , . . . , C msl ,
1 n 1 m
for the particular delay data given in rc_values_data.json from the course web site.
Also write down your minimum Emsa and Emsl values.
Please note the following:
• You do not need to know anything about digital circuits to solve this problem.

• The two criteria (absolute and logarithmic) are clearly close, so we expect the extracted
Rs and Cs to be similar in the two cases. But they are not the same.

• In this problem we are more interested in your approach and method than the final
numerical results. We will take points off if your method is not the best possible one,
even if your answer is numerically close to the correct one.

16.2800. Some attributes of a stable system. This problem concerns the autonomous linear dy-
namical system ẋ = Ax, with x(t) ∈ Rn , which we assume is stable (i.e., all trajectories x(t)
converge to zero as t → ∞).

• Peaking factor. We define the peaking factor of the system as the largest possible value
of kx(t + τ )k/kx(t)k, for any nonzero trajectory x, any t, and any τ ≥ 0.

• Halving time. We define the halving time of the system as the smallest τ ≥ 0 for which
kx(t + τ )k ≤ kx(t)k/2 always holds, for all trajectories.

• Minimum decorrelation time. We define the minimum decorrelation time as the smallest
possible τ ≥ 0 for which x(t + τ ) ⊥ x(t) can hold for some (nonzero) trajectory x. This
is the smallest possible time the state can rotate 90◦ . (If x(t + τ ) ⊥ x(t) never occurs
for τ ≥ 0, then the minimum decorrelation time is +∞.)

a) Explain how to find each of these quantities. Your method can involve some numerical
simulation, such as a search over a (fine) grid of values of τ . You can assume that you
do not need to search over τ greater than τ max , where τ max is known.

180
b) Carry out your method for the specific case with
 
−1 −5 0 0
 5 0 0 0 
A=  0.4 −1 −0.6 −6  ,

1 0 6 0
with τ max = 10. We’d like all quantities to an accuracy of around 0.01.

16.2810. System with level alarms. A linear dynamical system evolves according to
ẋ(t) = Ax(t), y(t) = Cx(t),
where x(t) ∈ Rn is the state and y(t) ∈ Rp is the output at time t. You know A and C, but
not x(t) or y(t), except as described below.
The output is monitored using level alarms with thresholds. These tell us when yi (t) ≥ li ,
where li is the threshold level for output component i. (The threshold levels li are known.)
You have alarm data over the time interval [0, T ], of the following format. For each output
component i = 1, . . . , p, you are given the (possibly empty) set of the intervals in [0, T ] over
which yi (t) ≥ li .
We now consider the specific problem with
 
−0.9 −4.2 −2  
1 0 −1
A=  1 0 0 ,
 C= ,
0 1 1
0 1 0
T = 10, l1 = l2 = 1, and alarm intervals given below:
y1 : [0, 1.0195], [3.0288, 4.0863], [6.4176, 6.9723]
y2 : [0.9210, 1.9402].
The problem is to find an upper bound on how large kx(T )k can be, while being consistent with
the given alarm data. We allow +∞ as an answer here; this means that there are trajectories
with arbitrarily large values of kx(T )k that are consistent with the given alarm data. (We will
deduct points for solutions that give bounds that are correct, but higher than they need to
be.)
Give your bound on kx(T )k. If it is +∞, explain. Of course, you must explain your
method.

18.2820. Actuator placement and optimal control. This problem has two parts that are mostly
independent.
a) Actuator placement (10 masses).
u(t)
d d d
m m m m

k k k
y1 (t) y2 (t) y3 (t) y10 (t)

181
Ten masses are connected in series by springs and light dampers, as shown in the figure
above. The mass positions (deviation from rest) are denoted by y1 , . . . , y10 . The masses,
spring constants, and damping constants are all identical and given by

m = 1, k = 1, d = 0.01.

An actuator is used to apply a force u(t) to one of the masses. In the figure, the actuator
is shown located on the second mass from the left, but it could also have been placed in
any of the other nine masses. Use state x = [y T ẏ T ]T .

i. For which of the ten possible actuator placements is the system controllable?
ii. You are given the following design specification: any state should be reachable with-
out the need for very large actuation forces. Where would you place the actuator?
(Since the design specification is somewhat vague, you should clearly explain and
justify your decision.)

Note: To avoid error propagation in solutions, use the matlab script spring_series.m,
available at the course web site, which constructs the dynamics and input matrices A
and B.

b) Optimal control (4 masses). Consider now a system with the same characteristics, but
with only four masses. Four unit masses are connected in series by springs and light
dampers (with k = 1, and d = 0.01.) A force actuator is placed on the third mass from
the left. As before, use state x = [y T ẏ T ]T .

i. Is the system controllable?


ii. You are given the initial state of the system, x(0) = e8 = [0 · · · 0 1]T , and
asked to drive the state to as close to zero as possible at time tf = 20 (i.e., a
velocity disturbance in the fourth mass is to be attenuated as much as possible
in 20 seconds.) In other words, you are to choose an input u(t), t ∈ [0, tf ], that
minimizes kx(tf )k2 . Furthermore, from among all inputs that achieve the minimum
kx(tf )k2 , we want the smallest one, i.e., the one for which the energy
Z tf
Eu = u(t)2 dt
0

is minimized. Your answer should include (i) a plot of the minimizing input uopt (t);
(ii) the corresponding energy Eu,min ; and (iii) the resulting kx(tf )k2 . You must
explain and justify how you obtained your solution. Notes:
• We will be happy with an approximate solution (by using, say, an input that is
piece-wise constant in small intervals.) You may want to discretize the system,
in which case we suggest you use 100 discretization intervals (or more.)
• You may (or may not) want to use the result
Z h  
A eAt B dt = eAh − I B.
0

182
18.2830. Horizon selection. Consider the (scalar input) system
   
0 0 0.8 1
x(t + 1) =  1 0 0  x(t) +  0  u(t), x(0) = 0.
0 1 0 0

For N ≥ 3 let EN (z) denote the minimum input energy, i.e., the minimum value of

u(0)2 + · · · + u(N − 1)2 ,

required to reach x(N ) = z. Let E∞ (z) denote the minimum energy required to reach the
state x(N ) = z, without fixing the final time N , i.e., E∞ (z) = limN →∞ EN (z). Find the
minimum value of N such that EN (z) ≤ 1.1E∞ (z) for all z. (This is the shortest horizon that
requires no more than 10% more control energy than infinite horizon control, for any final
state). Hint: the matlab command P=dlyap(A,W) computes the solution of the Lyapunov
equation AP AT + W = P .

18.2840. Minimum energy required to steer the state to zero. Consider a controllable discrete-
time system x(t + 1) = Ax(t) + Bu(t), x(0) = x0 . Let E(x0 ) denote the minimum energy
required to drive the state to zero, i.e.
( t−1 )
X
2
E(x0 ) = min ku(τ )k | x(t) = 0 .
τ =0

An engineer argues as follows:

This problem is like the minimum energy reachability problem, but ‘turned back-
wards in time’ since here we steer the state from a given state to zero, and in the
reachability problem we steer the state from zero to a given state. The system
z(t + 1) = A−1 z(t) − A−1 Bv(t) is the same as the given one, except time is running
backwards. Therefore E(x0 ) is the same as the minimum energy required for z to
reach x0 (a formula for which can be found in the lecture notes).

Either justify or refute the engineer’s statement. You can assume that A is invertible.

18.2850. Minimum energy inputs with coasting. We consider the controllable system ẋ = Ax +
Bu, x(0) = 0, where A ∈ Rn×n and B ∈ Rn×m . You are to determine an input u that results
in x(tf ) = xdes , where tf and xdes are given. You are also given ta , where 0 < ta ≤ tf , and
have the constraint that u(t) = 0 for t > ta . Roughly speaking, you are allowed to apply a
(nonzero) input u during the ‘controlled portion’ of the trajectory, i.e., from t = 0 until t = ta ;
from t = ta until the final time tf , the system ‘coasts’ or ‘drifts’ with u(t) = 0. Among all u
that satisfy these specifications, uln will denote the one that minimizes the ‘energy’
Z ta
ku(t)k2 dt.
0

a) Give an explicit formula for uln (t).

183
b) Now suppose that ta is increased (but still less than tf ). An engineer asserts that the
minimum energy required will decrease. Another engineer disagrees, pointing out that
the final time has not changed. Who is right? Justify your answer. (It is possible that
neither is right.)

c) Matlab exercise. Consider the mechanical system on page 11-9 of the notes. Let xdes =
[1 0 − 1 0 0 0]T and tf = 6. Plot the minimum energy required as a function of ta , for
0 < ta < tf . You can use a simple method to numerically approximate any integrals you
encounter. You must explain what you are doing; just submitting some code and a plot
is not enough.

18.2860. Some True/False questions. By ‘True’, of course, we mean that the statement holds for
all values of the matrices, vectors, dimensions, etc., mentioned in the statement. ‘False’ means
that the statement fails to hold in at least one case.
a) Suppose A ∈ Rn×n and p(s) = sn + a1 sn−1 + · · · + an is polynomial of degree n, with
leading coefficient one, that satisfies p(A) = 0. Then p is the characteristic polynomial
of A.

b) Suppose x : R+ → Rn is a trajectory of the linear dynamical system ẋ = Ax, which is


stable. Then for any t ≥ 0, we have kx(t)k ≤ kx(0)k.

c) Let A ∈ Rp×q and let ai ∈ Rp denote the ith column of A. Then we have

kAk ≥ max kai k.


i=1,...,q

d) Suppose the two linear dynamical systems ẋ = F x and ż = Gz, where F, G ∈ Rn×n ,
are both stable. Then the linear dynamical system ẇ = (F + G)w is stable.

e) Suppose P and Q are symmetric n × n matrices, and let {v1 , v2 , . . . , vn } be a basis for
Rn . Then if we have viT P vi ≥ viT Qvi for i = 1, . . . , n, we must have P ≥ Q.

f) Let A ∈ Rn×n , and suppose v ∈ Rn , v 6= 0, satisfies v T A = λv T , where λ ∈ R. Let


x : R+ → Rn be any trajectory of the linear dynamical system ẋ = Ax. Then at least
one of the following statements hold:

• v T x(t) ≥ v T x(0) for all t ≥ 0


• v T x(t) ≤ v T x(0) for all t ≥ 0

g) Suppose A ∈ Rp×q is fat (i.e., p ≤ q) and full rank, and B ∈ Rq×r is skinny (i.e., q ≥ r)
and full rank. Then AB is full rank.

h) Suppose A ∈ Rn×n has all eigenvalues equal to zero, and the nullspace of A is the same
as the nullspace of A2 . Then A = 0.

i) Consider the discrete-time linear dynamical system x(t + 1) = Ax(t) + Bu(t), where
A ∈ Rn×n . Suppose there is an input that steers the state from a particular initial state
xinit at time t = 0 to a particular final state xfinal at time t = T , where T > n. Then
there is an input that steers the state from xinit at time t = 0 to xfinal at time t = n.

184
18.2870. Alternating input reachability. We consider a linear dynamical system with n states and
2 inputs,
x(t + 1) = Ax(t) + Bu(t), t = 0, 1, . . . ,
where A ∈ Rn×n , B = [b1 b2 ] ∈ Rn×2 , x(t) ∈ Rn is the state, and u(t) = (u1 (t), u2 (t)) ∈ R2 is
the input, at time t. We assume that x(0) = 0.
We say that an input sequence u(0), u(1), . . . is an alternating input sequence if u1 (t) = 0
for t = 1, 3, 5, . . . and u2 (t) = 0 for t = 0, 2, 4, . . ., i.e.,
       
u1 (0) 0 u1 (2) 0
u(0) = , u(1) = , u(2) = , u(3) = , ....
0 u2 (1) 0 u2 (3)
In contrast, we’ll refer to an input sequence as a standard input sequence if both inputs can
be nonzero at each time t.
We are given a target state xdes ∈ Rn , and a time horizon N ≥ n.

a) Suppose we can find an alternating input sequence so that x(2N ) = xdes . Can we always
find a standard input sequence so that x(N ) = xdes ? In other words, if we can drive
the state to xdes in 2N steps with an alternating input sequence, can we always find an
input sequence that uses both inputs at each time step, and drives the state to xdes in
N steps?
b) Is the converse true? Suppose we can find a standard input sequence so that x(N ) = xdes .
Can we always find an alternating input sequence so that x(2N ) = xdes ?

By always, we mean for any A, b1 , b2 , xdes , and N ≥ n. So, for example, if your answer is ‘Yes’
for part (a), you are saying that for any A, b1 , b2 , xdes and N ≥ n, if we can find an alternating
input sequence so that x(2N ) = xdes , then we can also find a standard input sequence so that
x(N ) = xdes .
In your solution for parts (a) and (b) you should first state your answer, which must be
either ‘Yes’ or ‘No’. If your answer is ‘Yes’, you must provide a justification, and if your
answer is ‘No’, you must provide a counterexample (and you must explain clearly why it is
a counterexample). Your solution must be short; we won’t read more than one page. You
may use any of the concepts from the class (e.g., eigenvalues, pseudo-inverse, singular values,
controllability, etc.).

19.2880. Sensor selection and observer design. Consider the system ẋ = Ax, y = Cx, with
 
1 0 0 0  
1 1 0 0 1 1 0 0
A=  0 1 1 0 ,
 C =  0 1 1 0 .
0 0 0 1
1 0 0 0
(This problem concerns observer design so we’ve simplified things by not even including an
input.) (The matrix A is the same as in problem , just to save you typing; there is no other
connection between the problems.) We consider observers that (exactly and instantaneously)
reconstruct the state from the output and its derivatives. Such observers have the form
dy dk y
x(t) = F0 y(t) + F1 (t) + · · · + Fk k (t),
dt dt

185
where F0 , . . . , Fk are matrices that specify the observer. (Of course we require this formula to
hold for any trajectory of the system and any t, i.e., the observer has to work!) Consider an
observer defined by F0 , . . . , Fk . We say the degree of the observer is the largest j such that
Fj 6= 0. The degree gives the highest derivative of y used to reconstruct the state. If the ith
columns of F0 , . . . , Fk are all zero, then the observer doesn’t use the ith sensor signal yi (t) to
reconstruct the state. We say the observer uses or requires the sensor i if at least one of the
ith columns of F0 , . . . , Fk is nonzero.

a) What is the minimum number of sensors required for such an observer? List all combi-
nations (i.e., sets) of sensors, of this minimum number, for which there is an observer
using only these sensors.

b) What is the minimum degree observer? List all combinations of sensors for which an
observer of this minimum degree can be found.

186

You might also like