WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Lösung von Matrizengleichung

 

loommidom
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 04.08.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2020, 16:30     Titel: Lösung von Matrizengleichung
  Antworten mit Zitat      
Hallo,

ich bin relativ unerfahren mit MatLab und möchte nun folgendes Gleichungssystem mit MatLab lösen: A=T^(-1)*B*T, wobei A und B gegeben ist und T unbekannt. Ich habe hier im Forum schon folgenden Lösungsansatz gefunde, woraufhin mir Matlab ja schon weitesgehend die Lösung präsentiert.
Code:

syms t1 t2 t3 t4
T = [[t1 t2]; [t3 t4]]
 
T =
 
[ t1, t2]
[ t3, t4]
 
>> a= [[1.25 -0.75];[-0.75 1.25]]

a =

    1.2500   -0.7500
   -0.7500    1.2500

>> b= [[0 1]; [-1 2.5]]

b =

         0    1.0000
   -1.0000    2.5000

>> eqn = T^(-1)*a*T==b
 
eqn =
 
[  t1*((3*t2)/(4*(t1*t4 - t2*t3)) + (5*t4)/(4*(t1*t4 - t2*t3))) - t3*((5*t2)/(4*(t1*t4 - t2*t3)) + (3*t4)/(4*(t1*t4 - t2*t3))) == 0,   t2*((3*t2)/(4*(t1*t4 - t2*t3)) + (5*t4)/(4*(t1*t4 - t2*t3))) - t4*((5*t2)/(4*(t1*t4 - t2*t3)) + (3*t4)/(4*(t1*t4 - t2*t3))) == 1]
[ t3*((5*t1)/(4*(t1*t4 - t2*t3)) + (3*t3)/(4*(t1*t4 - t2*t3))) - t1*((3*t1)/(4*(t1*t4 - t2*t3)) + (5*t3)/(4*(t1*t4 - t2*t3))) == -1, t4*((5*t1)/(4*(t1*t4 - t2*t3)) + (3*t3)/(4*(t1*t4 - t2*t3))) - t2*((3*t1)/(4*(t1*t4 - t2*t3)) + (5*t3)/(4*(t1*t4 - t2*t3))) == 5/2]


Ich frage mich nun, wie ich eqn nun vollständig auflöse, um so für t1, t2, t3 und t4 eine Lösung zu erhalten.
Wenn ich
Code:
solve(eqn,t1,t2,t3,t4)
verwende erhalte ich:
Code:

ans =

  struct with fields:

    t1: [2×1 sym]
    t2: [2×1 sym]
    t3: [2×1 sym]
    t4: [2×1 sym]
 
was mich irgendwie nicht wirklich weiterbringt und ja auch nicht sein kann, da t1-t4 aus 1x1 "Matrizen" bestehen müsste.

Vielen Dank schonmal im vorraus.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.460
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.08.2020, 16:57     Titel:
  Antworten mit Zitat      
Hallo,

das Gleichungssystem hat halt zwei Lösungen:

Code:
T1 = [sol.t1(1), sol.t2(1); sol.t3(1), sol.t4(1)];
norm(T1^(-1)*a*T1-b)

T2 = [sol.t1(2), sol.t2(2); sol.t3(2), sol.t4(2)];
norm(T2^(-1)*a*T2-b)


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
loommidom
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 04.08.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2020, 18:15     Titel:
  Antworten mit Zitat      
Ah okay, dann verstehe ich jetzt die Lösung, die MatLab mir ausgibt, allerdings ist das nicht die Lösung, die ich gerne hätte und auch wenn ich eine der Lösungen verwende, wird das Gleichungssystem nicht richtig gelöst. Heißt MatLab hat sich "verrechnet", das hat es natürlich nicht, sondern ich habe irgendwo etwas falsch eingetippt, ich weiß allerdings nicht wo oder was.

Die Lösung von
Code:

eqn=T^(-1)*a*T== b
 

für
Code:

a= [[1.25 -0.75];[-0.75 1.25]]

a =

    1.2500   -0.7500
   -0.7500    1.2500

>> b=[[0 1]; [-1 2.5]]

b =

         0    1.0000
   -1.0000    2.5000
 

müsste nämlich
Code:

T= [[-2.5 2];[-1.5 0]]

T =

   -2.5000    2.0000
   -1.5000         0

 

sein.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.460
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.08.2020, 21:25     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
auch wenn ich eine der Lösungen verwende, wird das Gleichungssystem nicht richtig gelöst.

Ich habe mit norm(T1^(-1)*a*T1-b) (Ergebnis: 0) gezeigt, dass T1 eine Lösung ist, entsprechend für T2. Mich würde sehr interessieren, wie du darauf kommst, dass es keine Lösung wäre.

Mein Eindruck ist, dass es sehr viele Lösungen gibt. Beispielsweise ist für T1 und T2 auch T3 = p*T1 + (1-p)*T2 eine Lösung.
Code:
syms p
T1 = [sol.t1(1), sol.t2(1); sol.t3(1), sol.t4(1)]
T2 = [sol.t1(2), sol.t2(2); sol.t3(2), sol.t4(2)]
T3 = p*T1 + (1-p)*T2
norm(T3^(-1)*a*T3-b)


Wenn du also eine bestimmte Lösung finden willst, dann musst du das durch zusätzliche Bedingungen entsprechend einschränken.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.