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

Symbolische Gleichungssystem loesen

 

cryosat
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 03.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2013, 14:51     Titel: Symbolische Gleichungssystem loesen
  Antworten mit Zitat      
Hallo allesamt.

Ich hab mich dank des Forums (und Matlab-Unterlagen) schlau gemacht, wie ich am besten ein Gleichungssystem symbolisch loesen kann.
Da das System ziemlich kompliziert ist, ist fuer mich Mupad eine gute Wahl.

Trotz dessen habe ich leider grosse Schwierigkeiten.

Das System sieht aus wie folgt.
Es gilt folgendes:

x1 = R*cos(a)
y1 = R*sin(a)

N<R/2
P>R/2

und ich moechte symbolisch x2 und y2 errechnen mit folgenden Gleichungen:

x1 + sqrt((x2-x1)^2+(y2-y1)^2) + sqrt((x2-P)^2+y2^2) - 2*R - P + 2*N = 0
tan(2*a) = (y2-y1)/(x2-x1)

Wenn ich das ganze laufen lasse mit dem command solve, kriege ich nur ein ganz wirres Set Ergebnisse - riesengross - und werde daraus nicht schluessig. Irgendwas mache ich wohl falsch.
Das Ergebnis fuer R = 1 wurde in einem Paper errechnet und die symbolischen Werte von x2 und y2 sind ziemlich kompakt in ihrer Schreibweise.

Wahrscheinlich ist der Command den ich nutze falsch.
Auf Mupad mache ich


Code:
x1:=R*cos(a):
y1:=R*sin(a):
EQ1:=x1+sqrt((x2-x1)^2+(y2-y1)^2)+sqrt((x2-P)^2+y2^2)-2*R-P+2*N:
EQ2:=(y2-y1)/(x2-x1)-tan(2*a):
assume(N>R/2 and P<R/2)
solve([EQ1=0,EQ2=0],[x2,y2],IgnoreAnalyticConstraints)


Wer gerne sich das ganze selber anschauen moechte: im Anhang ist das Mupad-File (ohne den solve command).

Herzlichen Dank!!!

gleichung.zip
 Beschreibung:
Mupad file

Download
 Dateiname:  gleichung.zip
 Dateigröße:  1.29 KB
 Heruntergeladen:  443 mal
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 30.07.2013, 14:59     Titel:
  Antworten mit Zitat      
Zitat:
Wahrscheinlich ist der Command den ich nutze falsch.
das kann man schlecht sagen wenn du den command hier nicht postest ^^ anstadt dein mupad file hochzuladen solltest du lieber den script posten den du in matlab versuchst zum laufen zu bekommen Smile mit fehlermeldungen etc Smile
grüße winkow
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
cryosat
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 03.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2013, 15:53     Titel:
  Antworten mit Zitat      
OK!
Ersteinmal poste ich das Ergebnis fuer R=1. Aus diesem Ergebnis kann ich leider nicht erlesen, wo/wie die beiden variablen x2 und y2 von R abhaengen, jedoch weiss ich dass das Ergebnis stimmt.
(Dies, da die Formel in einem Ray-Tracing Algorythmus zu richtigen Ergebnissen fuehrt).

Also, falls R = 1 ist, dann gilt:

x2 = cos(a) - (cos(a)^2 - 4*(1-N)*cos(a) - (1+P^2) + (2+P-2*N)^2)*(2*cos(a)^2-1)/(4*(P*cos(a)^2-cos(a)-N+1))
y2 = (2*cos(a)*x2-1)*sin(a)/(2*cos(a)^2-1)

Den ganzen Script (das File habe ich nur hochgeladen, falls jemand selber die Formeln ausfuehren moechte ohne sie neu zu schreiben/kopieren) mit ausgefuehrtem solve ergab er mir bis jetzt nach langem Rechnen eine Loesung mit 100 von sigmas (Funktionen von Funktionen).
Das kann aber nicht stimmen.

Jetzt hab ichs grad nochmal laufen lassen, aber auf meinem jetzigen Rechner haengt der Script. Ich gebe ihn hier an und, falls er mir eine Loesung ausspuckt, werde ich sie zufuegen.

Vielleicht kann jemand selber testen, ich habe momentan (und fuer die naechste Zeit) sehr wenig "Rechenpower".
Ich geh aber eh davon aus, dass da etwas nicht stimmen kann, insofern muesste das bereits am Code erkennbar sein.
Das Endergebnis muesste dem obigen aehneln, abgesehen davon dass auch der Parameter R mitmischt.

P.S. Ergebnis folgt... hoffentlich....

Herzlichen Dank!

Code:

x1:=R*cos(a):
y1:=R*sin(a):
EQ1:=x1+sqrt((x2-x1)^2+(y2-y1)^2)+sqrt((x2-P)^2+y2^2)-2*R-P+2*N:
EQ2:=(y2-y1)/(x2-x1)-tan(2*a):
assume(N<R/2 and P>R/2)
solve([EQ1=0,EQ2=0],[x2,y2],IgnoreAnalyticConstraints)
Private Nachricht senden Benutzer-Profile anzeigen
 
cryosat
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 03.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2013, 14:34     Titel:
  Antworten mit Zitat      
Ich habs geschafft!!!!!
Von den Gleichungs sets die ich erhalte sind genau diese die, die ich brauche.

x2 ist eine funktion von (x1, y1, R, N, P)

Leider ist aber auch y2 eine funktion von (x1, y1, R, N, P) und so komme ich nicht weiter.

Ich brauche dass, zum beispiel, y2 von x2 (oder andersrum) abhaengt.

Kann mir da jemand helfen?

Code:

x2 = (4*N^2*x1^2 - 4*N^2*y1^2 - 8*N*R*x1^2 + 8*N*R*y1^2 + 8*N*x1^3 - 4*P*N*x1^2 + 4*P*N*y1^2 + 4*R^2*x1^2 - 4*R^2*y1^2 - 8*R*x1^3 + 4*P*R*x1^2 - 4*P*R*y1^2 + 4*x1^4 - 4*P*x1^3 + 3*x1^2*y1^2 + y1^4)/(4*(N*x1^2 + N*y1^2 - P*x1^2 - R*x1^2 - R*y1^2 + x1*y1^2 + x1^3))

y2 = (y1*(2*N - 2*R + x1)*(2*N*x1 - 2*P*x1 - 2*R*x1 + 2*x1^2 + y1^2))/(2*(N*x1^2 + N*y1^2 - P*x1^2 - R*x1^2 - R*y1^2 + x1*y1^2 + x1^3))
 
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.