In this video, I showed the proof that the determinnat of the product of a matrix and its transpose is the determinant of the product of the transpose and the matrix.
One assumption A must be the square matrix your proof to be valid but it is not implied from A^{T}A nor AA^{T} A can be nonsquare and both A^{T}A and AA^{T} can be square You should add assumption or split you proof to cases
Speaking of determinants, one time I was asking if you had any advice on efficient determinant algorithms that don't lend themselves to rounding errors. You'll be pleased to know that today I learned of the Bareiss Algorithm, and it's incredibly easy to program, it's fast, and it even guarantees integer results if all terms are integers. On top of all that, it's a little faster than Gaussian elimination. Let's say I have a matrix like so: a b c d e f g h i First thing I have to do is make sure "a" doesn't equal 0. If it does, I swap that first row with one of its successors, and then I make a note somewhere that I will have to multiply the final result by -1. Now I can get to work. This is the first pass, and so I am not going to do any arithmetic on the first row or the first column. But the values in the second/third rows and second/third columns, I will do math on. In particular, I will replace e with e*a - b*d, f with f*a - c*d, h with h*a - b*g, and i with i*a - c*g. Then, on the next pass ... well, first let me re-label all the elements of the matrix now that they have new values: A B C D E F G H I Okay, so on the next pass, first thing I do is make sure E isn't 0, and if it is I swap the row with a successor, and I make a note to multiply the final result by -1. Now that that's done, I ignore the first and second rows, and also the first and second columns. That leaves only I, and I will replace it with (I*E - F*H) / A. Note how there's a division there, and the value to divide by will move along the diagonal with each pass. But in this example, there are no more passes; we can just look at what's in the lower right cell, and that is our determinant. It will be (I*E - F*H) / A, times any -1 factors we noted along the way.
Wow! I am actually looking into rounding errors now and your comment is timely. I will take some time to go through this algorithm probably show this to some friends. Thank you.
@@PrimeNewtonsNeat! I don't know that anyone teaches this algorithm to students, but I bet you could turn the algorithm into an easy process to do on paper, like Sarrus and those arrows. I took a stab at it myself - drawing boxes around cells that interest us in a given iteration, that kind of thing - but I bet you can come up with a much smoother approach.
@@PrimeNewtons For what it's worth, I wrote a few different algorithms for calculating determinants in PHP: one that uses Laplace expansion, one that figures out all the permutations of rows and columns, and one that uses Bareiss. I used each to calculate the determinant of a 10x10 matrix that consisted of integers from 0 to 9. Here is the timing on the three: Laplace expansion: 1.9 seconds Permutations: 10.8 seconds Bareiss: 0.004 seconds Great Caesar's ghost!
One assumption A must be the square matrix your proof to be valid
but it is not implied from A^{T}A nor AA^{T}
A can be nonsquare and both A^{T}A and AA^{T} can be square
You should add assumption or split you proof to cases
Prime Newtons is the channel to watch! 🎉😊
Speaking of determinants, one time I was asking if you had any advice on efficient determinant algorithms that don't lend themselves to rounding errors. You'll be pleased to know that today I learned of the Bareiss Algorithm, and it's incredibly easy to program, it's fast, and it even guarantees integer results if all terms are integers. On top of all that, it's a little faster than Gaussian elimination.
Let's say I have a matrix like so:
a b c
d e f
g h i
First thing I have to do is make sure "a" doesn't equal 0. If it does, I swap that first row with one of its successors, and then I make a note somewhere that I will have to multiply the final result by -1.
Now I can get to work. This is the first pass, and so I am not going to do any arithmetic on the first row or the first column. But the values in the second/third rows and second/third columns, I will do math on. In particular, I will replace e with e*a - b*d, f with f*a - c*d, h with h*a - b*g, and i with i*a - c*g.
Then, on the next pass ... well, first let me re-label all the elements of the matrix now that they have new values:
A B C
D E F
G H I
Okay, so on the next pass, first thing I do is make sure E isn't 0, and if it is I swap the row with a successor, and I make a note to multiply the final result by -1. Now that that's done, I ignore the first and second rows, and also the first and second columns. That leaves only I, and I will replace it with (I*E - F*H) / A. Note how there's a division there, and the value to divide by will move along the diagonal with each pass.
But in this example, there are no more passes; we can just look at what's in the lower right cell, and that is our determinant. It will be (I*E - F*H) / A, times any -1 factors we noted along the way.
Wow! I am actually looking into rounding errors now and your comment is timely. I will take some time to go through this algorithm probably show this to some friends. Thank you.
@@PrimeNewtonsNeat! I don't know that anyone teaches this algorithm to students, but I bet you could turn the algorithm into an easy process to do on paper, like Sarrus and those arrows. I took a stab at it myself - drawing boxes around cells that interest us in a given iteration, that kind of thing - but I bet you can come up with a much smoother approach.
@@PrimeNewtons For what it's worth, I wrote a few different algorithms for calculating determinants in PHP: one that uses Laplace expansion, one that figures out all the permutations of rows and columns, and one that uses Bareiss. I used each to calculate the determinant of a 10x10 matrix that consisted of integers from 0 to 9. Here is the timing on the three:
Laplace expansion: 1.9 seconds
Permutations: 10.8 seconds
Bareiss: 0.004 seconds
Great Caesar's ghost!
Could you possible to show (AB)T=BTAT
❤🎉