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

Symbolic Toolbox Matrix Zerlegung

 

lapricorn
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 19.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2014, 13:18     Titel: Symbolic Toolbox Matrix Zerlegung
  Antworten mit Zitat      
Hallo,

gibt es eine Möglichkeit, um aus dem Produkt A*B die Matrizen A und B zu bestimmen?

z.B. gegeben ist:

Code:
A1_1*B1 + A1_2*B2
A2_1*B1 + A2_2*B2
 


und als Ergebnis möchte ich
Code:

A=
[ A1_1, A1_2]
[ A2_1, A2_2]
B=
 B1
 B2
 


Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.12.2014, 10:35     Titel:
  Antworten mit Zitat      
Hallo,

Wenn ich das richtig verstehe, willst du 6 Unbekannte aus 2 Gleichungen bestimmen. Da kann es keine eindeutige Lösung geben.

Grundsätzlich hilft solve.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
baustamm
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 20.07.12
Wohnort: ---
Version: Matlab 2011b
     Beitrag Verfasst am: 23.12.2014, 22:53     Titel:
  Antworten mit Zitat      
Hallo,

das stimmt, aber ich weiß ja, dass B_i für i=1...m und A_i für i=1...n zu jeweils einer Matrix gehört (A besteht nur auf Einträgen mit A_i etc.).
Ich könnte es natürlich auch von Hand versuchen aber das ist für zB A*B*C schon schwieriger, vor allem wenn die Dimensionen unbekannt sind.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.12.2014, 12:06     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
ich weiß ja, dass B_i für i=1...m und A_i für i=1...n zu jeweils einer Matrix gehört (A besteht nur auf Einträgen mit A_i etc.).

Ich sehe nicht, wie einen das weiterbringt. Das Problem der nicht eindeutigen Lösung bleibt.

Zitat:
Ich könnte es natürlich auch von Hand versuchen

Fast alles, was man von Hand kann, kann ein Rechner effizienter. Man müsste aber erstmal verstehen, was gemacht werden soll.

Im Beispiel könnte man die Gleichungen nach A1_1 und A2_1 auflösen und hätte damit für nahezu beliebige (B1 darf nicht 0 sein) andere Parameter eine Lösung. Ist das wirklich so beabsichtigt?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
baustamm
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 20.07.12
Wohnort: ---
Version: Matlab 2011b
     Beitrag Verfasst am: 25.12.2014, 22:51     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich bin mir nicht sicher, ob wir das gleiche meinen. Mein Idee:

Code:

clear all
clc

A = sym('A', [2 2]);
B = sym('B', [2 2]);
M = A*B;
 


Jetzt möchte ich diese Rechnung wieder "rückgängig" machen. D.h. ich habe nur M gegeben und möchte als Ergebnis M=A*B.

Anhand der Einträge sehe ich, dass M aus der Multiplikation der Matrizen A und B entstanden sein muss, da die Einträge von M aus A_i_j und B_i_j bestehen.

Es stimmt, dass das nicht eindeutig ist, (zB A*B oder B*A). Ich weiß aber, dass A und B die Dimension 2x2 haben müssen da i=1,2 und j=1,2 sind. Außerdem gibt es keine Nulleinträge. Das meine ich, dass man die Aufgabe mit scharfen hinsehen lösen kann.

Das ist natürlich ein sehr triviales Beispiel, in meiner Anwendung habe ich muss ich neben mehreren Mulitplikationen auch Addition/Subtraktion.

Weihnachtliche Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.12.2014, 11:19     Titel:
  Antworten mit Zitat      
Hallo,

wie gesagt: grundsätzlich kann man symbolische Gleichungen mit solve lösen.

Im jetzigen Fall hast du 4 Gleichungen mit 8 Unbekannten. Auch da wird es keine eindeutige Lösung geben, und die Frage ist, nach was du auflösen willst.
Eine spezielle Zerlegung ist z.B. die LU-Zerlegung mit Hilfe des gleichnamigen MATLAB-Befehls.

Grüße,
Harald
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 - 2025 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.