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

Gleichungssystem lösen

 

Berti10
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 01.02.15
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 01.02.2015, 19:08     Titel: Gleichungssystem lösen
  Antworten mit Zitat      
Moin!

Ich bin neu im Forum und auch bei MATLAB, was mir einige Schwierigkeiten bereitet. Ich hoffe auf Tipps und Hilfestellungen! Aktuell möchte ich ein Gleichungssystem aus der Strukturanalyse (Mechanik) lösen; 12 Gleichungen, 12 Unbekannte, wobei nicht alle gesuchten Variablen in 'b' sind, wenn die Gleichung c=A*b lautet. A ist die entsprechende 12X12 Matrix; b mein Verschiebungsvektor mit 9 Unbekannten und c mein Kräftevektor mit 3 unbekannten Lagerkräften. wie gehe ich hier vor? Die übliche c=A\b Geschichte funktioniert leider nicht!
Beste Grüße
Berti
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

das Gleichungssystem sollte sich dann (im Zweifelsfall händisch) in die Form A*x = b umformen lassen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Berti10
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 01.02.15
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 02.02.2015, 18:18     Titel:
  Antworten mit Zitat      
Moin!

Danke, aber ein Umformen würde aus meiner 12x12 Matrix eine 12x13 Matrix machen, die dann unbestimmte Elemente besitzt ist. Ich bin nun soweit, dass über solve(eqn,x1,x2,x3,...) mir die Größe der Matrix (je Variable 1x1, sym) ausgegeben wird, aber nicht deren Wert. Weiß da jemand was?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

wo kommt denn die zusätzliche Spalte her? Es sind doch weiterhin nur 12 Unbekannte?
Wenn du ein Beispiel dessen zeigen kannst, was du mit solve gemacht hast, kann man evtl. besser weiterhelfen. Es wird aber schwierig bis unmöglich werden, 12 Gleichungen in 12 Unbekannten symbolisch zu lösen. Numerisch wäre der bessere Weg.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Berti10
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 01.02.15
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 02.02.2015, 19:36     Titel:
  Antworten mit Zitat      
Moin Harald! Danke für deine Mühe! Ich hab hier nachfolgend den Code.

A=[34.254, 90.053 , -5.954, -34.254 , -90.053 , -5.954 ,0,0,0,0,0,0;
90.053 , 248.826 , 2.166 , -90.053 , -25.127 , 2.166 ,0,0,0,0,0,0;
-5.954 , 2.166 , 4.223 , 5.954 , -2.166 , 2.112 ,0,0,0,0,0,0;
-34.254 , -90.053 , 5.954 , 58.912 , 139.077 , 6.322 , -24.658 , -49.024 , 0.368,0,0,0;
-90.053 , -25.127 , -2.166 , 139.077 , 347.091 , -4.009 , -49.024 , -98.265 , -0.184,0,0,0;
-5.954 , 2.166 , 2.112 , 6.322 , -4.009 , 6.066 , -0.368 , 0.184 , 0.922 ,0,0,0;
0,0,0, -24.658 , -49.024 , -0.368 , 24.829 , 49.024 , 0.147 , -0.171 , 0 , 0.515 ;
0,0,0, -49.024 , -98.265 , 0.184 , 49.024 , 235.565 , 0.184 , 0 , -137.3 , 0 ;
0,0,0,0.368 , -0.184 , 0.922 , 0.147 , 0.184 , 3.904 , -0.515 , 0 , 1.030 ;
0,0,0,0,0,0, -0.171 , 0 , -0.515 , 0.171 , 0 , -0.515 ;
0,0,0,0,0,0,0, -137.3 , 0 , 0 , 137.3 , 0 ;
0,0,0,0,0,0, 0.515 , 0 , 1.030 , -0.515 , 0 , 2.061];
syms ux1 uy1 phiz1 ux2 uy2 phiz2 ux3 uy3 phiz3 Rx4 Ry4 Mz4
b=[ux1;uy1;phiz1;ux2;uy2;phiz2;ux3;uy3;phiz3;0;0;0];
p=[0;0;-1000;-804.6;-402.3;0;-89.4;-44.7;0;Rx4;Ry4;Mz4];
eqn=p==A*b;
solve(eqn,ux1,uy1,phiz1,ux2,uy2,phiz2,ux3,uy3,phiz3,Rx4,Ry4,Mz4)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das Ergebnis ist eine Struktur, und du kannst auf die einzelnen Komponenten zugreifen.
Code:
erg = solve(eqn,ux1,uy1,phiz1,ux2,uy2,phiz2,ux3,uy3,phiz3,Rx4,Ry4,Mz4);
eval(erg.Mz4)
% oder
erg2 = structfun(@eval, erg)
% oder
erg3 = structfun(@eval, erg, 'UniformOutput', false)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Berti10
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 01.02.15
Wohnort: ---
Version: R2016a
     Beitrag Verfasst am: 02.02.2015, 20:03     Titel:
  Antworten mit Zitat      
Das schaut sehr gut aus! Very Happy Very Happy Allerbesten Dank und schönen Abend noch!
Beste Grüße,
Robert
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.