Okej! Vi börjar med SVD - Singular Value Decomposition. Singular har inget med SVD att göra, utan det var historiskt hur man löste SVD med singulära integraler för ca 60 år sedan. Men Singular har hängt kvar.
SVD är ett sätt för att "kurvanpassa" data mot absolut inget. Om du ska t.ex. skapa en linjär funktion, men du vet inte vilken funktion du ska använda. Då är det SVD du ska ha. Machine learning använder sig alltid av SVD.
För att lösa SVD av matrisen A så måste vi först göra:
1. Skapa matris A.
2. Ta transponatet av A, dvs A'
3. Ta egenvärderna av (A'*A - c*I) = 0, där I är en enhetsmatris dvs samma dimension som A, men I har bara ettor på diagonalen, resten nollor. Konstanten c är en konstant vi ska hitta Denna konstant kommer ha 3 lösningar om A är 3x3, och 4 lösningar om A är 4x4.
4. För att hitta c så måste vi använda oss av numeriska metoder för att pröva olika typer av c värden. Här behövs det Newtons-Raphsons sökningsfunktion.
5. Newton-Raphsons sökningsfunktion söker c tills (A'*A - c*I) = 0 igenom att derivera.
6. Efter vi har hittat c så ska vi hitta egenvektorerna. Då tar vi fram denna (A'*A - c*I)V = 0 där V är en vektor för nullrymden. Alltså V kan vara noll, men den får inte vara noll.
Vi kan börja med denna. Men jag lovar dig. Tills sommaren är du kanske klar.
Det är därför jag tycker att vi borde försöka få GSL att fungera i STM32.
https://fenix.tecnico.ulisboa.pt/downlo ... torial.pdf