Forum: Mikrocontroller und Digitale Elektronik Mathe Matrixberchnung mit uC


von Hans (Gast)


Lesenswert?

Hallo,
wie rechne ich am besten mit einem AVR uC Matrizen aus? Gibt es dazu ne 
Library oder muss ich jeden Schritt manuell ausrechnen bzw. mir selber 
Funktionen schreiben.
Es geht vor allem um Skalarprodukte, Matrizenmultiplikation, 
transponierte und inverse Matrizen.
Gruß Hans
von Εrnst B. (ernst)


Lesenswert?

du könntest dir die Funktionen "schreiben lassen" (wenn die Formel und 
die Dimensionen schon vorher feststehen).
Früher™ gabs dazu mal in Maple (oder wars Mathematica? schon länger 
her...) einen C-Code-Generator, der da halbwegs voroptimierten (aber 
total unlesbaren) Code ausgespuckt hat.
von Hans (Gast)


Lesenswert?

Ich habe es befürchtet.
Nun ja dann wird es eben noch aufwendiger.
Gruß Hans
von Purzel H. (hacky)


Lesenswert?

Mit etwas Linearer Algebra sind diese Berechnungen eher trivial. Und 
fuer gehobene Anforderungen sind die C-Libraries eh nicht brauchbar.
von Floh (Gast)


Lesenswert?

Hans schrieb:
> Es geht vor allem um Skalarprodukte, Matrizenmultiplikation,
> transponierte und inverse Matrizen.

Sowas ist ne gute zu-Fuß-Übung für Arrays.
Also selber schreiben :-)

z.B. Skalarprodukt (hoffe es stimmt so):
1
int a[3] = {1,2,3};
2
int b[3] = {2,4,6};
3
4
int skalarprodukt(int a[], int b[], int dimension)
5
{
6
  int ergebnis = 0;
7
  for(int i = 0; i < dimension;i++)
8
    ergebnis += a[i] * b[i];
9
10
  return ergebnis;
11
}
Einfach so realisieren, wie dus per Handrechnen slber machen würdest.
:-)
von Hans (Gast)


Lesenswert?

Genau so (oder so ähnlich) werde ich es wohl machen. Ich dachte nur dass 
Matrizen nichts so ungewöhliches sind und es daher schon was fertiges 
gibt. Man muss das Rad ja nicht jedes Mal neu erfinden.
Trotzdem Danke
von BT (Gast)


Lesenswert?

Hallo,

ich würde mal in "numerical recipes in C" nachschauen.
Da kann man sich zumindest für die Implementierung ein paar Anregungen 
holen...

Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.