A few years ago, I came up with this proof of Perron's theorem for a class presentation: http://www.math.cornell.edu/~web6720/Perron-Frobenius_Hannah%20Cairns.pdf

I've written an outline of it below so that you don't have to read a link.

It's close in spirit to Wielandt's proof using $$\rho := \sup_{\substack{x \ge 0\\|x| = 1}} \min_j {|{\sum x_i A_{ij}}| \over x_j},$$ but I think it's simpler. (In particular, you don't have to divide by anything or take the sup min of anything.) The exception is the part where you prove that the spectral radius has only one eigenvector, which is exactly the same as Wieland's proof.

I believe it's correct, but it hasn't passed through any kind of verification process aside from being presented in class. And I've had a couple people write me about it, and, for God knows what reason, it comes up on Google in the first couple pages if you search for "Perron-Frobenius."

So I'd appreciate it if you would look at this and see if you see anything wrong with it. And if you don't, I'd like to know if it's original, because if so then I get to feel proud of myself.

Here is the proof:

Let $A > 0$ be a positive $n \times n$ matrix with eigenvalues $\lambda_1, \ldots, \lambda_n$, counted with multiplicity. Let $\rho = \max |\lambda_i|$ be the spectral radius. We want to prove that $\rho$ is a simple eigenvalue of $A$ with a positive eigenvector, and that every other eigenvalue is strictly smaller in absolute value.

Let $\lambda$ be an eigenvalue with $|\lambda| = \rho$, and finally let $\psi$ an eigenvector for $\lambda$. Consider $$\Psi := |\psi| = (|\psi_1|, \ldots, |\psi_n|).$$ Then $A \Psi = A |\psi| \ge |A \psi| = |\lambda \psi| = \rho |\psi| = \rho \Psi$, where "$x \ge y$" means that each coordinate of $x$ is greater than or equal to each coordinate of $y$.

Suppose $A \Psi \ne \rho \Psi$. Then by positivity we have $A^2 \Psi > \rho A \Psi$, which means that by continuity there is some $\varepsilon > 0$ with $A^2 \Psi \ge (\rho + \varepsilon) A \Psi$. Therefore \begin{align*}A^{n+1} \Psi &\ge (\rho + \varepsilon) A^n \Psi \\&\cdots\\&\ge (\rho + \varepsilon)^n A \Psi \ge 0\end{align*} and taking norms we get $\Vert A^{n+1} \Psi \Vert_1 \ge (\rho + \varepsilon)^n \Vert A \Psi \Vert_1$, so the operator 1-norm of $A^n$ is at least $(\rho + \varepsilon)^n$, which is a contradiction with Gelfand's formula $\lim \Vert A^n \Vert^{1/n} = \rho$.

Therefore $A \Psi = \rho \Psi$ and $\rho$ is an eigenvalue with positive eigenvector $\rho \Psi = A \Psi > 0$.

Suppose there is an eigenvalue $\lambda$ with $|\lambda| = \rho$. Let $\psi$ be an eigenvector for $\lambda$. We have seen above that $A \Psi = \rho \Psi = |A \psi|$ or $\sum_j A_{ij} |\psi_j| = |\sum_{ij} A_{ij} \psi_j|$. Fix an index $i$. Then $A_{ij} > 0$ for each row $j$, so $\sum_{ij} A_{ij} \psi_j$ is a weighted sum of $\psi_j$ where all the weights are positive, and its absolute value is the weighted sum of $|\psi_j|$ with the same weights. Those two things can only be equal if all the summands $\psi_j$ all have the same complex argument, so $\psi = e^{i\theta} \psi'$ where $\psi' \ge 0$, and $\lambda \psi' = A \psi' > 0$, so $\lambda > 0$. Therefore $\lambda = \rho$.

Now we know that every eigenvalue with $|\lambda| = \rho$ is $\rho$, and it has one positive eigenvector (and possibly more), but we don't know how many times $\rho$ appears in the list of eigenvalues. That is, we don't know whether it's simple or not.

We can prove that $\rho$ has only one eigenvector by the same argument in Wielandt's proof. We know $\Psi$ is a positive eigenvector. Suppose that there is another linearly independent eigenvector $\psi$. We can pick $\psi$ to be real (because $\mathop{\rm Re} \psi$ and $\mathop{\rm Im} \psi$ are eigenvectors or zero and at least one is linearly independent of $\Psi$). Choose $c$ so $\Psi + c \psi$ is nonnegative and has one zero entry. Then $\rho (\Psi + c \psi) = A(\Psi + c \psi) > 0$ by positivity, but it has one zero entry, which is a contradiction. So there's no other linearly independent eigenvector.

Now that we know there's only one eigenvector, we can prove that $\rho$ is a simple eigenvalue. By the previous reasoning, there is a positive left eigenvector $\Pi$ of $\rho$, so $\Pi A = \rho A$. Then $\Pi > 0$ and $\Psi > 0$, so $\Pi \Psi \ne 0$. Then $\Pi^0 := \{x: \Pi x = 0\}$ is an $(n-1)$-dimensional subspace of $\mathbb R^n$ and $\Psi \notin \Pi^0$, so we can decompose $\mathbb R^n$ into the direct sum $$\mathbb R^n = \mathop{\text{span}}\{\Psi\} \oplus \Pi^0.$$

Both of these spaces are invariant under $A$, because $A \Psi = \rho \Psi$ and $\Pi A x = \rho \Pi x = 0$. Let $x_2, \ldots, x_n$ be a basis of $\Pi^0$. Let $$X = \begin{bmatrix}\Psi&x_2&x_3&\cdots&x_n\end{bmatrix}.$$ Then the invariance means that $$X^{-1}AX = \begin{bmatrix}\rho&0\\0&Y\end{bmatrix}$$ where the top right $0$ says $\Pi^0$ is invariant under $A$ and the lower left $0$ says $\mathop{\text{span}}\{\Psi\}$ is invariant under $A$. Here $Y$ is some unknown $(n-1) \times (n-1)$ matrix.

$A$ is similar to the above block matrix, so the eigenvalues of $A$ are $\rho$ followed by the eigenvalues of $Y$. If $\rho$ is not a simple eigenvalue, then it must be an eigenvalue of $Y$.

Suppose $\rho$ is an eigenvalue of $Y$. Let $\psi'$ be an eigenvector with $Y \psi' = \rho \psi'$. Then $A X {0 \choose \psi'} = \rho X {0 \choose \psi'}$ and $X{0 \choose \psi'}$ is linearly independent of $\Psi = X {1 \choose \mathbf{0}}$. We've already proved that $A$ has only one eigenvector for $\rho$, so that is impossible. Therefore, $\rho$ is not an eigenvalue of $Y$, so $\rho$ is a simple eigenvalue of $A$. That's the last thing we had to prove.

Extending to $A \ge 0$ with $A^n > 0$ works as usual.

Thanks!