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


von Frank (Gast)


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?

von Frank (Gast)


Lesenswert?

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

von Jörg S. (joestef)


Lesenswert?

Hallo,

meines Wissens geht das mit Matlab nicht.

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

Gruß
Jörg

von Frank (Gast)


Lesenswert?

OK, hab ich auch. Dann werde ich das erstmal öffnen...

von Frank (Gast)


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!

von Jörg S. (joestef)


Lesenswert?

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

von Frank (Gast)


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:
1
test:= {6 + 2*q = -4*n, -2*q-3*n-13 = 0}
und dann löse ich es so auf:
1
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:
1
test:= {6 + A*q = -B*n, -C*q-D*n-13 = 0}
und löse wieder nach q und n auf - das Ergebnis:
1
q = -(13*D-6*B)/(A*D-C*B)
2
n = -(-13*C+6*A)/(A*D-C*B)
3
4
mit A = 2
5
    B = 3
6
    C = -2
7
    D = -3
Das Ergebnis ist dann aber falsch:
1
q = -(34/14)
2
n = (18/7)

Wo ist den hier mein Denkfehler?

von Frank (Gast)


Lesenswert?

VERGESST ES!!!

Vorzeichenfehler...geht alles!

von Maik F. (sabuty) Benutzerseite


Lesenswert?

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

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.