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

10 Unbekannte Gleichungssystem Symbole

 

Herbert_89
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2014, 08:09     Titel: 10 Unbekannte Gleichungssystem Symbole
  Antworten mit Zitat      
Hallo,

Ich habe ein Problem mit meinen Gleichungen ich habe auch schon versucht das Programm 'DERIVE 6' falls das jemanden ein Begriff ist zu nutzen dort dauert die Berechnung mehrere Stunden und am Ende wird mir gesagt zuwenig Speicher für die Berechnung.

Meine Frage ist nun ob Matlab das lösen kann wenn ja wie oder ob es andere Möglichkeiten gibt das System zu lösen.

Hier meine Gleichungen:

⎡ ax = - s1·(c4·s2 + c2·c3·s4) - c1·s3·s4

⎢ px = x0 - s1·(s2·(x3 + c4·x5) + c2·c3·s4·x5) - c1·s3·s4·x5

⎢ ny = c1·(c2·(c5·s3 + c3·c4·s5) - s2·s4·s5) + s1·(c3·c5 - c4·s3·s5)

⎢ oy = - c1·(c2·(s3·s5 - c3·c4·c5) + c5·s2·s4) - s1·(c3·s5 + c4·c5·s3)

⎢ ay = c1·(c4·s2 + c2·c3·s4) - s1·s3·s4

⎢ py = y0 + c1·(s2·(x3 + c4·x5) + c2·c3·s4·x5) - s1·s3·s4·x5

⎢ nz = - s2·(c5·s3 + c3·c4·s5) - c2·s4·s5

⎢ oz = s2·(s3·s5 - c3·c4·c5) - c2·c5·s4

⎢ az = c2·c4 - c3·s2·s4

⎣ pz = x1 + z0 + c2·(x3 + c4·x5) - c3·s2·s4·x5

Gesucht sind die Variablen s1 bis s5 und c1 bis c5. Alle anderen sind später vorgegebene werte welche sich auch ändern können aber immer bekannt sind.

Ich hoffe jemand kann mir bei meinem Problem helfen.

Danke jetzt schonmal
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: 14.05.2014, 08:41     Titel:
  Antworten mit Zitat      
Hallo,

Variablen mit syms definieren und dann mit solve das Gleichungssystem lösen.
Code:

Man muss allerdings im Hinterkopf behalten, dass salopp gesagt der Computer auch nicht mehr kann als man selbst mit Papier und Bleistift, nur sehr viel schneller :)

Selbst wenn du eine Lösung bekommst, kann es sein, dass sie mehrere Seiten lang ist. Dann ist das einzig sinnvolle, was man damit machen kann: Werte einsetzen.

In dem Fall kann man aber auch gleich numerisch arbeiten:
Code:


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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2014, 15:16     Titel:
  Antworten mit Zitat      
Hallo,

Und vielen dank für die schnelle Antwort,
Habe das auch umgesetzt mit Matlab der ist jetzt gut 5 Stunden am rechnen und es ist immer noch kein Ergebnis da, Ich hoffe das dort dann doch noch eine Lösung rauskommt wie lang die Terme werden ist egal.

Falls das nicht klappen sollte gibt es eine alternative als selber rechnen ich habe eigentlich keine Lust die 10 Gleichungen zu lösen ich denke da wird mann viele viele Stunden brauchen und viel Platz auf dem Papier und falls dann ein flüchtigkeits Fehler entsteht war die ganze arbeit umsonst.
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: 14.05.2014, 15:32     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Falls das nicht klappen sollte gibt es eine alternative als selber rechnen ich habe eigentlich keine Lust die 10 Gleichungen zu lösen ich denke da wird mann viele viele Stunden brauchen und viel Platz auf dem Papier und falls dann ein flüchtigkeits Fehler entsteht war die ganze arbeit umsonst.

Ich glaube nicht, dass du mit "vielen Stunden" händischer Rechnung hinkommst, sofern die Gleichungen nicht eine spezielle Struktur haben, die ich übersehe. Computer sind nämlich typischerweise wesentlich schneller als Menschen im Rechnen - und wenn der Computer schon mehrere Stunden braucht, kann es gut sein, dass du Monate oder Jahre damit verbringen würdest.

Ich habe dir ja bereits eine Alternative gesagt:
Numerische Lösung mit fsolve

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2014, 15:52     Titel:
  Antworten mit Zitat      
Hallo,

Dies habe ich eingegeben in Matlab:

Code:

[s1 c1 s2 c2 s3 c3 s4 c4 s5 c5]=solve( ...
ax==- s1*(c4*s2 + c2*c3*s4) - c1*s3*s4, ...
px==x0 - s1*(s2*(x3 + c4*x5) + c2*c3*s4*x5) - c1*s3*s4*x5, ...
ny==c1*(c2*(c5*s3 + c3*c4*s5) - s2*s4*s5) + s1*(c3*c5 - c4*s3*s5), ...
oy==- c1*(c2*(s3*s5 - c3*c4*c5) + c5*s2*s4) - s1*(c3*s5 + c4*c5*s3), ...
ay==c1*(c4*s2 + c2*c3*s4) - s1*s3*s4, ...
py==y0 + c1*(s2*(x3 + c4*x5) + c2*c3*s4*x5) - s1*s3*s4*x5, ...
nz==- s2*(c5*s3 + c3*c4*s5) - c2*s4*s5, ...
oz==s2*(s3*s5 - c3*c4*c5) - c2*c5*s4, ...
az==c2*c4 - c3*s2*s4, ...
pz==x1 + z0 + c2*(x3 + c4*x5) -c3*s2*s4*x5, ...
s1,c1,s2,c2,s3,c3,s4,c4,s5,c5)

 


Mit der rechnung ist mein rechner ca. seit 10:00 Uhr beschäftigt, kann das sein das es solange dauert oder hat sich mein Matlab aufgehangen?

Wenn nicht kann man abschätzen wielange sowas dauern könnte?

Gruß,
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: 14.05.2014, 16:05     Titel:
  Antworten mit Zitat      
Hallo,

es wundert mich nicht, dass es so lange dauert - und nein, man kann es nicht abschätzen.

Eine Alternative siehe meine beiden vorherigen Beiträge.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2014, 16:25     Titel:
  Antworten mit Zitat      
Brauche ich für die numerische Variante nicht Werte die ich direkt einsetze?
Ich brauche leider die Aufgelöste Formel da es noch nicht alles ist was ich damit berechnen muss, das s1 steht für sin(w1) das c1 für cos(w1) usw. ich benötige den genauen Winkel daher benötige ich den Tangens also s1/c1.

das würde auch Numerisch funktionieren aber immer das Gleichungssystem neu zu berechnen bei anderen Werten im laufendem Programm dauert denke mal zulange.

Oder habe ich bei der fsolve und Numerisch was falsch verstanden?
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: 14.05.2014, 18:58     Titel:
  Antworten mit Zitat      
Hallo,

probiers doch mal aus. Wenn fsolve eine oder wenige Sekunden für eine numerische Lösung braucht, dann kannst du die Gleichung innerhalb einer Stunde Hunderte Male lösen und dürftest du damit besser dran sein als mit einer symbolischen Lösung, die du nach etlichen Stunden immer noch nicht hast.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
kay94
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 18.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.05.2014, 13:40     Titel:
  Antworten mit Zitat      
Hallo miteinander,


ich hoffe, es ist okay, wenn ich mich in den Thread einklinke. Ich versuche gerade, ein LGS aus der Dynamik zu lösen. Von Hand habe ich das schon getan und möchte es jetzt auch mit Matlab hinbekommen. Leider klappt es nicht so ganz, obwohl ich mich an obige Vorlage gehalten habe. Das Gleichungssystem besteht aus den 5 Unbekannten x_pp, S1, S2, R, ph_pp. Der Rest sind bekannte Konstanten.
Das sind die Gleichungen:

Zitat:

m * x_pp = S2 - S1 - R + sin(a)*m*g
ts * phi_pp = S1*r - R*r
m * x_pp = sin(a)*m*g - R - S2
R = u*cos(a)*m*g
x_pp = phi_pp * r


Händisch aufgelöst nach x_pp ergibt sich:

Zitat:

x_pp = m*g*r^2* (2*sin(a) - 3*u*cos(a)) / (2*m*r^2 + ts)


Was muss ich eingeben, um dahin zu kommen?
Das hat nicht funktioniert:

Code:

[x_pp S1 S2 R phi_pp] = solve(m*x_pp == S2 - S1 - R + sin(a)*m*g, ts*phi_pp == S1*r - R*r, m*x_pp == sin(a)*m*g - R - S2, R == u*cos(a)*m*g, x_pp == phi_pp*r, x_pp, S1, S2, R, phi_pp)
 


Danke für jede Mühe.


Grüße, Kay
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: 18.05.2014, 14:03     Titel:
  Antworten mit Zitat      
Hallo,

bitte nicht an einen Thread dranhängen, wenn die Frage nicht unmittelbar etwas mit der ursprünglichen zu tun hat.
Wenn etwas "nicht funktioniert", bitte immer sagen, was nicht wie gewünscht funktioniert, damit man da nicht erst raten muss.

Ich würde die Syntax sol = solve(...) verwenden.

Aus der Doku:
Zitat:
[y1,...,yN] = solve(eqns) solves the system of equations eqns for the variables determined by symvar and assigns the solutions to the variables y1,...,yN.

... und diese Reihenfolge stimmt nicht unbedingt mit der überein, in der du die Rückgabeargumente erwartest.

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 - 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.