Matrisberäkningar med för STM32?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Jag tror det har med avrundningar att göra samt att GNU Octave kanske har specialfunktioner som verkligen kan hantera små små tal. Vi får inte glömma att Armadillo är rent C++ och Octave använder Fortran för SVD har jag för mig.
bearing
Inlägg: 11652
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Matrisberäkningar med för STM32?

Inlägg av bearing »

Jag har för mig att du rekurserade 50 gånger. Kan det vara så att Octave rekurserar längre?
Shimonu
Inlägg: 311
Blev medlem: 21 oktober 2015, 22:44:33

Re: Matrisberäkningar med för STM32?

Inlägg av Shimonu »

Hittade det här:
https://www.nsc.liu.se/~pla/blog/2013/1 ... precision/

Fortran verkar ha stöd för 128-bitars float men det går att lösa för C också. Läste inte igenom det men det borde gå att testa. Påstår du efter det att precisionen inte räcker så kommer jag skratta.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

bearing skrev:Jag har för mig att du rekurserade 50 gånger. Kan det vara så att Octave rekurserar längre?
Nu var det Armadillos bibliotek jag körde. Det gav samma resultat som mitt simpla bibliotek också.
bearing
Inlägg: 11652
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Matrisberäkningar med för STM32?

Inlägg av bearing »

Det behövs någon matematiker med lite programmeringskunskaper här tror jag.

Studerar du på något universitet eller högskola? Kan du inte höra med någon professor eller doktorand där ifall du kan få visa problemet och se om du får någon förklaring? Vore intressant att få höra vad det kan vara.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Professorerna har inte tid att titta på sådant. Sedan tror jag också att dem kan inte heller lösa dessa problem. Bara för att man är doktor eller professor betyder inte att man är kunnig inom matematik.

För att bli doktor så krävs det 9 år på universitet om man tog en master, eller 8 år om man tog en magister. Där efter är det 5 år full tid, där av 4 år är det studerande. Så i praktiken blir det 10 år om det är 9 år man studerar och 9 år om det är 8 år när man studerar. Det har med att man jobbar som lärarslav också.

Sedan för att bli professor så räcker det att man skickar in sitt CV till en faktulitet och söker om en sådan anställning. Men jag antar att du menar docent. Det är 2 års full tids forskning och dokumenterande utan lärande av dumma studenter. Vilket är svårt att undvika. De flesta professorer har docentexamen.
bearing
Inlägg: 11652
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Matrisberäkningar med för STM32?

Inlägg av bearing »

Jo jag menade inte att alla med doktorshatt eller professorer är lämpade för detta. Utan jag menade att du kanske kan kolla runt, och hitta någon som skulle kunna hjälpa dig. Docent, doktorand, klasskamrat kanske inte spelar så stor roll, utan mer bakgrund och intresse. Jag har bara läst den första kursen i linjär algebra som jag tror att alla studenter på KTH läser (och kanske alla tekniska universitet?). Andra, som läst t.ex. mycket reglerteknik där den här matten används dagligen, borde ju iaf ha bättre förutsättningar än mig.

Så C-algoritmen med vanliga 32-bit float ger alltså samma resultat som Octave för små matriser? Men inte med stora?
Vad beror det på då?

Går det inte att stega sig genom QR/SVD i Octave, och se var resultaten börjar skilja?
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Jag skulle nog säga att för små små små små små tal så klarar C inte riktigt av detta. GNU Octave klarar av det.

Jag har testat att stega igenom resultatet i Octave och det är helt omöjligt att avgöra. Så jag fort nog acceptera att GNU Octave kanske löser detta på andra sätt.

Men så länge de två första värderna i S-matrisen är korrekta så kan jag lösa min uppgift. Varför just dessa två? Jo, det är ett 2:a grads system jag estimerar :wink:

Men nu är det så att jag håller på med machine learning och jag ska inte veta vilket system jag estimerar. Jag ska bara trycka på en knapp och då ska allt se bra ut.
Användarvisningsbild
AndLi
Inlägg: 18095
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av AndLi »

Men GNU Octave är väl skrivet i C(C++)
bearing
Inlägg: 11652
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Matrisberäkningar med för STM32?

Inlägg av bearing »

Hur mycket skiljer de två första värdena då?

Det har ju inte med C att göra. Möjligtvis har det med standarden för flyttal, IEEE 754 att göra. Men med tanke på att Octave också använder samma standard för flyttal är väl det mindre sannolikt.

Och hade du testat att köra ditt bibliotek med double, för att jämföra?

Det måste väl ändå vara implementationen av algoritmen som skiljer på något vis?
Shimonu
Inlägg: 311
Blev medlem: 21 oktober 2015, 22:44:33

Re: Matrisberäkningar med för STM32?

Inlägg av Shimonu »

bearing, vi har försökt förklara det men det fastnar inte riktigt.
Rick81
Inlägg: 755
Blev medlem: 30 december 2005, 13:07:09

Re: Matrisberäkningar med för STM32?

Inlägg av Rick81 »

Du sa väl själv att du implementerat "den lättast algoritmen" för svd? Då är det ju också troligt att det finns mer avancerade med bättre noggrannhet.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

AndLi skrev:Men GNU Octave är väl skrivet i C(C++)
Och Fortran.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Shimonu skrev:bearing, vi har försökt förklara det men det fastnar inte riktigt.
Det är nog jag som ska säga detta till er övriga.

Jag har kört med double och float. Bättre resultat med double, men inte nära som Octave.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Matrisberäkningar med för STM32?

Inlägg av Al_Bundy »

Rick81 skrev:Du sa väl själv att du implementerat "den lättast algoritmen" för svd? Då är det ju också troligt att det finns mer avancerade med bättre noggrannhet.
Jag använde Armadillos C++ SVD och den gav samma resultat som mitt C-bibliotek. Alltså en skillnad från GNU Octave. Tror jag har sagt detta 4 gånger nu.
Skriv svar