  A distributed algorithm is described for solving a linear algebraic equation
of the form $Ax=b$ assuming the equation has at least one solution. The
equation is simultaneously solved by $m$ agents assuming each agent knows only
a subset of the rows of the partitioned matrix $(A,b)$, the current estimates
of the equation's solution generated by its neighbors, and nothing more. Each
agent recursively updates its estimate by utilizing the current estimates
generated by each of its neighbors. Neighbor relations are characterized by a
time-dependent directed graph $\mathbb{N}(t)$ whose vertices correspond to
agents and whose arcs depict neighbor relations. It is shown that for any
matrix $A$ for which the equation has a solution and any sequence of
"repeatedly jointly strongly connected graphs" $\mathbb{N}(t)$, $t=1,2,\ldots$,
the algorithm causes all agents' estimates to converge exponentially fast to
the same solution to $Ax=b$. It is also shown that the neighbor graph sequence
must actually be repeatedly jointly strongly connected if exponential
convergence is to be assured. A worst case convergence rate bound is derived
for the case when $Ax=b$ has a unique solution. It is demonstrated that with
minor modification, the algorithm can track the solution to $Ax = b$, even if
$A$ and $b$ are changing with time, provided the rates of change of $A$ and $b$
are sufficiently small. It is also shown that in the absence of communication
delays, exponential convergence to a solution occurs even if the times at which
each agent updates its estimates are not synchronized with the update times of
its neighbors. A modification of the algorithm is outlined which enables it to
obtain a least squares solution to $Ax=b$ in a distributed manner, even if
$Ax=b$ does not have a solution.
