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

Spezielles überbestimmtes LGS lösen

 

Fargulli
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 30.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.04.2015, 08:47     Titel: Spezielles überbestimmtes LGS lösen
  Antworten mit Zitat      
Hallo zusammen,

die Beiträge welche ich über die Suchfunktion dazu gelesen habe, haben mich leider nicht weiter gebracht.

Ich habe folgendes Problem.
Ich will eine LGS der Form F = K*u nach u auflösen.
Ich habe eine 6x6 Matrix (Steifigkeitsmatrix), der Form:
K =
\begin{vmatrix} 150110 & 0 & -110 & -150000 & 0 & 0 \\ 0 & 880000 & -880000 & 0 & 0 & 0\\ -110 & -880000 & 1570110 & -690000 & 0 & 0 \\ -150000 & 0 & -690000 & 1530000 & -690000 & 0 \\ 0 & 0 & 0 & -690000 & 1480000 & -790000 \\0 & 0 & 0 & 0 & -790000 & 790000\end{vmatrix}

Dazu den F-Vektor
F =
\begin{vmatrix} -97000 & 100000 & 99000 & 97000 & 97000 & 97000 \end{vmatrix}

Nun will ich die fehlenden Verschiebungen berechnen in
U =
\begin{vmatrix} 0 & u2 & u3 & u4 & u5 & 0 \end{vmatrix}

Rank K = 5,
Rank K_erw = 6,
demnach überbestimmst.
Matlab soll mir jedoch eine Näherungslösung angeben mit kleinsten Fehlerquadraten.
Durch den Backslash-Operator bekomm ich allerdings den Fehler
Warning: Matrix is singular to working precision.
ausgegeben.
Kann mir jmd. weiterhelfen wie ich das LGS in guter Näherung lösen kann?

Danke,
F.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.04.2015, 08:54     Titel:
  Antworten mit Zitat      
Hallo,

welchen Code verwendest du denn?
Wenn das erste und letzte u Null sein sollen, bedeutet das ja im Grunde, dass die erste und letzte Spalte von K weggelassen werden können.
Dann hast du eine 6x4-Matrix.

Es ist übrigens hilfreich, wenn Daten bequem nach MATLAB kopiert werden können ;)

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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 30.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.04.2015, 09:09     Titel:
  Antworten mit Zitat      
Hallo,

Sorry, ich habe die Funktion, Matlab-Code einzufügen irgendwie nicht gefunden.
Ja, du hast Recht. Aber Matlab streicht die Spalten auch automatisch raus.
Da ich symbolische Variablen verwende habe ich mir im folgenden auch die LGS-Zeilen berechnen lassen durch:
Code:
eq1 = F1 == K(1,:)*U;


Aber die Berechnung mit dem \-Operator liefert leider immer nur leere symbolische Variablen. Bspw.
Code:

>> UUU = K\F
Warning: Matrix is singular to working precision.

UUU =

   NaN
   NaN
   NaN
   NaN
   Inf
   Inf


Weiß jmd dazu weiteren Rat?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.04.2015, 09:18     Titel:
  Antworten mit Zitat      
Hallo,

poste doch bitte den vollständigen verwendeten Code und vor allem die Daten. Warum denn symbolisch, wenn du mit Zahlen arbeitest?

Ich habe jetzt länger gebraucht, die Zahlen abzuschreiben als das Problem zu lösen:

Code:
K = [150110 0 -110 -150000 0 0;
    0 880000 -880000 0 0 0;
    -110 -880000 1570110 -690000 0 0;
    -150000 0 -690000 1530000 -690000 0;
    0 0 0 -690000 1480000 -790000;
    0 0 0 0 -790000 790000];
F = [-97000 ; 100000 ; 99000 ; 97000 ; 97000 ; 97000];

u = K(:, 2:5) \ F


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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2015, 16:45     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für deine Hilfe!
Vllt. weißt du bei diesem Fall auch noch Rat:
(Hier kommen wieder symbolische Variablen ins Spiel weil ich nicht weiß wie ich es sonst machen könnte)
Ich möchte wieder Verschiebungen in Abhängigkeit eines Kraft-Vektors und einer Steifigkeitsmatrix ermitteln.
Folgende Verschiebungen sind bekannt bzw. sollen ermittelt werden:
U = [u1;u2;0.4;0,u1;u6;u7;0,4;0]

( u5 = u1 )

Kräfte:
F = [180000;178760;178760;178760;-180000;-178900;-178660,-178660,-178660]

K = [880000,-880000,0,0,0,0,0,0,0; -880000,1280110,-400000,0,0,-110,0,0,0; 0,-400000,400000,0.01,-0.01,0,0,0,0;0 0,-0.01,0.01,0,0,0,0,0; 0,0,0,0,880000,-880000,0,0,0; 0,-110,0,0,-880000,1030110,-150000,0,0; 0,0,0,0,0,-150000,550000,-400000,0; 0,0,0,0,0,0,-400000,400000,-0.01; 0,0,0,0,0,0,0,-0.01,0.01]

Meine Idee war mit dem solve-Befehl das LGS nach den unbekannten Verschiebungen aufzulösen und diese als symbolische Variablen für das LGS zu hinterlegen.

Leider berechnet mir Matlab immer nur "leere" symbolische Variablen.
Kann mir jmd. sagen was ich falsch mache bzw. was der richtige Weg ist?
Danke,
F.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.05.2015, 22:53     Titel:
  Antworten mit Zitat      
Hallo,

in Erweiterung des vorherigen Ansatzes sollte folgendes funktionieren:

Code:
K2 = K(:, [1 2 6 7]);
K2(:,1) = K(:,1) + K(:,5);
F2 = F - K(:, [3, 8]) * [0.4; 0.4];
u = K2 \ F % Lösung für u1, u2, u6, u7


Um sagen zu können, was bei dem symbolischen Ansatz schief läuft, bräuchte man schon den Code statt einer Beschreibung.

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.