mikrocontroller.net

Forum: PC Hard- und Software MATLAB: LGS mit Platzhaltern anstatt Zahlen lösen


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Im anderen Forum schlage ich mich gerade mit einer Linearisierung herum 
und müsste dazu ein LGS lösen. Ich habe das jetzt auf dem Papier schon 
etliche Male versucht, aber es scheint stets nicht richtig zu sein.

Man kann ein LGS doch auch mit MATLAB lösen. Gibt es in MATLAB die 
Möglichkeit, anstelle von Zahlen vor den Koeffizienten auch Plathhalter 
einzusetzen?

Also quasi:

I   x³*a0 + x²*b0 + x*c0 + d = 0
II  ....
III ....

Jetzt habe ich keine Zahlen, was das ganze etwas erschwert. Dabei 
verrechne ich mich immer!

Kann MATLAB auch mit Platzhaltern rechnen und eine allgemeine Lösung 
erstellen?

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Buchstaben gibt es nämlich immer eine Fehlermeldung, mit Zahlen 
klappt es natürlich

Autor: Jörg S. (joestef)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

meines Wissens geht das mit Matlab nicht.

Maple wäre hier das richtige für dich.

Gruß
Jörg

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, hab ich auch. Dann werde ich das erstmal öffnen...

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, dann füge ich jetzt eine 8x8 Matrix für die Elemente ein und muss 
dann noch einen weiteren Vektor mit den Ergebnissen (also die rechte 
Seite) einfügen, oder?

Kann für für m1,1 dann direkt Buchstaben reinschreiben oder muss ich 
noch extra was beachten?

Danke!

Autor: Jörg S. (joestef)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
8x8 Matrix? Ich glaube nicht, dass Maple dann ne allgemeine Lösung 
finden kann.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, also ich habe mich jetzt ein wenig mit MAPLE beschäftigt.

Ich löse jetzt lineare Gleichungssysteme in MAPLE.

Als Test habe ich mal:

-2q - 3n - 13 = 0
6 + 2q = -4n

Maple rechnet mit n=7 und q=-17 aus - das ist auch richtig.

Ich löse es folgendermaßen:
test:= {6 + 2*q = -4*n, -2*q-3*n-13 = 0}
und dann löse ich es so auf:
solve(test, {n,q});

Jetzt wollte ich eine allgemeine Lösung haben und habe die die Zahlen 
durch Platzhalter ersetzt:
Ich löse es folgendermaßen:
test:= {6 + A*q = -B*n, -C*q-D*n-13 = 0}
und löse wieder nach q und n auf - das Ergebnis:
q = -(13*D-6*B)/(A*D-C*B)
n = -(-13*C+6*A)/(A*D-C*B)

mit A = 2
    B = 3
    C = -2
    D = -3
Das Ergebnis ist dann aber falsch:
q = -(34/14)
n = (18/7)

Wo ist den hier mein Denkfehler?

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VERGESST ES!!!

Vorzeichenfehler...geht alles!

Autor: Maik Fox (sabuty) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sofern du die "Symbolic Math Toolbox" hast, geht das problemlos auch mit 
Matlab. Beispiel aus der Hilfe:
syms x y z;
[x, y, z] = solve('z = 4*x', 'x = y', 'z = x^2 + y^2')

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.