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 eines überbestimmten Gleichungssystems

 

Scooba
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 09.09.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2019, 18:10     Titel: Lösung eines überbestimmten Gleichungssystems
  Antworten mit Zitat      
Hallo,

folgendes Problem: Ich habe für eine Konstruktion sämtliche Gleichungen, die sich aus den statischen Gleichgewichtsbedingungen ergeben, aufgestellt. Diese Gleichungen möchte ich gelöst haben, um bestimmte Kräfte zu ermitteln. Das ganze Funktioniert mit dem "solve" Befehl hervorragend, solange ich genau so viele Unbekannte wie Gleichungen habe. Nun ist es aber ja in der Statik manchmal so, dass ich nicht alle Gleichungen brauche um die Kräfte zu berechnen. Oder aber mir sind einige Kräfte bekannt, sodass sich die Anzahl der Unbekannten reduziert. Wenn ich dann weniger Unbekannte ermitteln möchte, aber weiterhin das selbe Gleichungssystem (mit allen Gleichungen) verwende, findet Matlab teilweise kein Ergebnis (abhängig davon, was die Unbekannten sind).

Ich habe mal etwas experimentiert und herausgefunden, dass Matlab eigentlich kein Problem mit überbestimmten Gleichungssystemen hat, solange die Gleichungen konsistent sind. Auch lassen sich die Unbekannten finden, wenn ich nicht das gesamte Gleichungssystem verwende, sondern mir (händisch) die relevanten Gleichungen rauspicke. Dabei habe ich gemerkt, dass für Kräfte teilweise Ergebnisse resultieren, die eine Größenordnung von 10^-18 haben, also quasi 0 sind (was korrekt wäre), hier also numerische Fehler gemacht werden. Nun kann ich mir vorstellen, dass Matlab bei meinem überbestimmten Gleichungssystem die Gleichungen nicht als konsistent ansieht, da (vermutlich aufgrund von cos/sin) numerische Fehler gemacht werden und somit unter der Verwendung von unterschiedlichen Gleichungen minininininimal unterschiedliche Ergebnisse herauskommen.

Hat jemand eine Idee, wie man das Problem lösen kann? Selbstverständlich ohne händisch die relevanten Gleichungen rauszusuchen Wink

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


Harald
Forum-Meister

Forum-Meister


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

ist das Gleichungssystem linear oder nicht? In jedem Fall würde ich einen numerischen Ansatz versuchen, d.h. im linearen Fall den \-Operator und im nichtlinearen Fall fsolve.

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
 
Scooba
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 09.09.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2019, 21:15     Titel:
  Antworten mit Zitat      
Das Gleichungssystem ist nicht linear. Habe mir grade mal fsolve angeschaut, komme damit aber nicht weiter. Scheinbar muss ich damit ja im Vorhinein eine Funktion schreiben, in der die Gleichungen im Klartext stehen und die gesuchten Variablen mit x(1) ... x(n) festgelegt sind. Nun habe ich aber das Problem, dass ich nicht immer nach den gleichen Variablen suche, da mal die einen, mal die anderen vorgegeben sind.

Mal als Beispiel die Kräfte am Balken, wie im angehängten Bild. Damit ergeben sich die drei Gleichungen zu:

0=B+\sin(\alpha_1)*F
0=A+\cos(\alpha_1)*F
0=M+a*F

Nun suche ich aber nach immer verschiedenen Variablen. Mal sind alpha, a und F gegeben und ich suche M, B und A. Mal sind B und A gegeben und ich suche nach F und alpha. (Alles nur grobe Beispiele zur Verdeutlichung). Also es ist vorher nicht klar, nach was ich suche. Mit dem solve Befehl habe ich die Variablen bisher einfach als symbolische Variablen definiert und dann die bekannten Größen mittels subs substituiert. Mit fsolve scheint das jetzt aber nichtmehr so einfach zu gehen, oder kann ich die dafür benötigte Funktion dynamisch generieren?

Viele Grüße

Balken.jpg
 Beschreibung:

Download
 Dateiname:  Balken.jpg
 Dateigröße:  4.81 KB
 Heruntergeladen:  215 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

bei solve musst du ja auch Variablen definieren und vor allem wissen, welche Ergebnisse du erwartest und vor allem wie man sie sinnvoll weiterverarbeitet?
Für fsolve benötigt man ein Function Handle. Wenn man nach anderen Variablen auflösen will, dann halt in der Tat ein anderes Function Handle.

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.