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 mit sinus und cosinus lösen???

 

masch.stud

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2012, 16:59     Titel: Gleichungssystem mit sinus und cosinus lösen???
  Antworten mit Zitat      
Hallo,

ich habe folgendes Problem das ich in Matlab ein Gleichungssystem nicht gelöst bekomme?

(1) r*sin(x)+l*sin(y)=1/2*r
(2) r*cos(x)+l*cos(y)=a

dabei sind l und a bekannt und ich würde gern das Matlab mir die beiden winkel x und y in abhängigkeit von r darstellt aber ich kommme irgendwie nicht zu einer Lösung:(
Ich selbst bin neuling was Matlab angeht und schlag mich schon seit 2 tagen mit diesem Problem rum...
hier mal das was ich bis jetzt so habe:

syms r l a;
A=r*sin(x)+l*sin(y)-1/2*r;
B=r*cos(x)+l*cos(y)-a;
solve('A,B','x,y')

dann kommt aber nur "empty sym" nun weis ich nicht genau was ich dabei falsch mache???(ich hatte die gleichung auch schon direkt reingeschrieben, brachte nichts. wollte das nur mit A,B machen für die übersichtlichkeit)
auf das plotten und die abhängigkeit von r habe ich mal verzichtet weil ich es erst so lösen wollte?

hoffe es kann mir jemand dabei helfen, wäre auch net wenn mir einer genau sagen könnte wie ich dabei vorgehen sollte das ich es in abhängigkeit von r plotten kann oder mir zumindest denn link zu einem bsp geben kann.
also schonmal vielen dank für eure tipps und hilfe:)


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 25.10.2012, 17:56     Titel:
  Antworten mit Zitat      
Hallo,

das Problem hatten wir hier schon mal. Bemühe bitte mal die Suche...

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
masch.stud

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2012, 21:12     Titel:
  Antworten mit Zitat      
Hallo Marc,

bevor ich gepostet habe hatte ich schon einige zeit im Forum gestöbert und etliches ausprobiert aber ich bekomme nur error oder eben emty sym

folgendes habe ich schon alles versucht:
solve('A-B','x,y') ....
[x,y]=solve(A-B) ....
solve('r*sin(x)+l*sin(y)=1/2*r,r*cos(x)+l*cos(y)=a','x,y') ....
wie es teilweise auch geraten wird

aber ich komme eben zu keiner lösung
ich glaube auch langsam ich benutze den falschen befehl aber leider weis ich nicht was sonst noch funktionieren könnte???

wäre nett wenn mir jemand helfen könnte, bzw den verweis zu deisem ähnlichen problem gibt denn ich finde leider nichts passendes sonst hätte ich ja erst garnnicht gepostet
danke nochmals
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 25.10.2012, 21:21     Titel:
  Antworten mit Zitat      
Schau' mal hier http://www.gomatlab.de/nichtlineare.....t24678,highlight,cos.html

Und dann insbesondere die letzten beiden Beiträge.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

um kurz auf das ursprüngliche Problem zurückzukommen:
Code:
sol = solve(A, B, x, y)
gibt mir eine Lösung aus.
Dass die Syntax so zu verwenden ist, geht im übrigen auch klar aus der Dokumentation hervor.

Ich persönlich empfinde solche Lösungen aufgrund deren Komplexität aber als wenig hilfreich und bevorzuge daher meist numerische Lösungen, z.B. mit fsolve.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 26.10.2012, 08:28     Titel:
  Antworten mit Zitat      
Ja, die Numerik ist immer das letzte Mittel, wenn die algebraischen Methoden versagen. Numerik ist mein Spezialgebiet. Viele Mathematiker reagieren fast schon allergisch auf die Numerik. Das hat seine Gründe. Im Falle eines unendlich großen Lösungsraumes, was hier der Fall ist, kommt man um analytische Methoden nicht herum. Man kann nicht einfach blind im Lösungsraum rumstochern, ohne zuvor die Struktur dessen verstanden zu haben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ich bin selbst Mathematiker und würde Numerik nun wirklich nicht als das "letzte Mittel" bezeichnen. Ich würde es eher als eine gleichwertige Alternative ansehen, und je nach Art des Problems das eine oder andere wählen.
Natürlich sollte man sich darüber im klaren sein, dass hier z.B. mit jeder Lösung (x, y) auch (x + 2*pi*m, y + 2*pi*n) eine Lösung ist. Ob das aber für praktische Anwendungen eine Rolle spielt, ist eine andere Frage.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 26.10.2012, 09:02     Titel:
  Antworten mit Zitat      
Hallo Harald,

schön, einen Fachkollegen hier im Forum zu wissen. Natürlich ist Numerik das letzte Mittel, wenn die analytischen Methoden versagen, alleine deswegen, weil man für manche Probleme keine analytische Lösung angeben kann.

Algebraische Kenntnis über das Problem und insbesondere dessen Lösungsraum ist manchmal von immanenter Bedeutung für die Praxis. Das führt dann zu den "richtigen" Startwerten. Ein Beispiel dazu findest du in dem Link, den ich weiter oben angegeben habe.

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
masch.stud

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2012, 17:40     Titel:
  Antworten mit Zitat      
Danke für den Link nur leider hat der mir nichts gebracht:(

Ich versteh anscheinend noch weniger von Matlab als ich gedacht habe, aufjedenfall komme ich nicht zu einer Lösung. Auch der Vorschlag von Harald hat nichts gebracht:

Code:
%
>> clear all
>> syms A B x y r l a;
>> A=r*sin(x)+l*sin(y)-1/2*r;
>> B=r*(1-sin(x)^2)^(1/2)+l*(1-sin(y)^2)^(1/2)-a;
>> sol = solve(A,B,x,y)
Warning: Explicit solution could not be found.
> In solve at 81
 
sol =
 
[ empty sym ]
 


Das Problem ist das ich die ganze Programmierung bzw die vereinfachung die du mir da gezeigt hast nicht weiterhelfen da ich es nicht richtig verstehe.

Es wäre nett wenn mir jemand das Programm (mit beschreibung wenn möglich) mal schreiben könnte damit ich es endlich mal verstehe, ich weis ich verlang da viel aber ich blick da einfach nicht durch und ich habe auch leider nicht die zeit das ich mir das bis montag selbst beibringen könnte, denn eine Vorlesung dazu hatte ich nicht dadurch kann ich leider nur auf ein buch zurückgreifen das mir bis dato aber leider nicht wirklich viel gebracht hat:(

Naja trotzdem danke an euch beiden für die ganzen tipps und tricks bisher
Ich versuchs dann mal weiter und hoffe das sich einer erbarmt und mir 0815 user da vllt weiterhelfen kann
 
Harald
Forum-Meister

Forum-Meister


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

Dies liefert bei mir Lösungen.
Code:
syms r l a x y
A=r*sin(x)+l*sin(y)-1/2*r;
B=r*cos(x)+l*cos(y)-a;
sol = solve(A,B,x,y)


Hier z.B. eine Lösungsformel für x:
2*atan((4*l*r + 4*r^2 - (4*a^2*(4*l*r + ((- 4*a^2 + 4*l^2 + 8*l*r + 3*r^2)*(4*a^2 - 4*l^2 + 8*l*r - 3*r^2))^(1/2)))/(4*a^2 + 8*a*l + 4*l^2 - 3*r^2) - (4*l^2*(4*l*r + ((- 4*a^2 + 4*l^2 + 8*l*r + 3*r^2)*(4*a^2 - 4*l^2 + 8*l*r - 3*r^2))^(1/2)))/(4*a^2 + 8*a*l + 4*l^2 - 3*r^2) + (3*r^2*(4*l*r + ((- 4*a^2 + 4*l^2 + 8*l*r + 3*r^2)*(4*a^2 - 4*l^2 + 8*l*r - 3*r^2))^(1/2)))/(4*a^2 + 8*a*l + 4*l^2 - 3*r^2) - (8*a*l*(4*l*r + ((- 4*a^2 + 4*l^2 + 8*l*r + 3*r^2)*(4*a^2 - 4*l^2 + 8*l*r - 3*r^2))^(1/2)))/(4*a^2 + 8*a*l + 4*l^2 - 3*r^2))/(4*a^2 + 8*a*r - 4*l^2 + 5*r^2))

Falls derselbe Code bei dir keine Ergebnisse liefert, kann es sein, dass du mit einem älteren Release arbeitest. So oder so: ich würde numerische Lösungen (z.B. fsolve) verwenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
masch.stud

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2012, 09:35     Titel:
  Antworten mit Zitat      
Hey danke für die schnelle Antwort und das Ergebnis aber bei mir kommt immer noch das selbe
[code]%>>
syms r l a x y
A=r*sin(x)+l*sin(y)-1/2*r;
B=r*cos(x)+l*cos(y)-a;
sol = solve(A,B,x,y)
Warning: Explicit solution could not be found.
> In solve at 81

sol =

[ empty sym ]
[code]
ich habe Matlab 7.10.0 (R2010a) meinst du das es vllt da ran liegen könnte??
Irgendwie muss das doch gehen?
Aber danke nochmals für deine Hilfe
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.10.2012, 17:44     Titel:
  Antworten mit Zitat      
Hallo,

wenn du genau dasselbe laufen lässt und andere Ergebnisse bekommst, dann wird es wohl daran liegen. Ich vermute, die Algorithmen wurden inzwischen verbessert.
Aber schau dir doch mal die Lösung an, die ich da erhalten habe. Kann man da ernsthaft irgendwas damit anfangen? Was hält dich davon ab, den numerischen Weg mit fsolve zu gehen? Geht natürlich immer nur für jeweils feste a, l und r.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
masch.stud

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2012, 18:19     Titel:
  Antworten mit Zitat      
Hmm also es war ja eig. so gedacht das mir das Gleichungssystem die Winkel in Abhängigkeit von r anzeigt
und zu beginn wollte ich schauen ob es überhaupt funktioniert, wenn r bekannt ist was ja anscheinend auch der fall ist außer bei mir:(

Die Gleichungen die umgestellt habe das sie mir r in Abhängigkeit von phi0 anzeigt funktioniert aber auch nicht:(
Damit wollte ich grob ein r wählen und dieses dann in einer neuen datei numerisch lösen lassen wie von dir vorgeschlagen aber sslbst das geht nicht bei mir:(

So bin ich dabei vorgegangen
Code:

cos(beta) = 1 - (r/l)^2*(1/2-sin(phi0)^2
 

wenn ich das dann in die 1te Gleichung einsetze komme ich ja nach einigen umstellen auf r(phi0) = ...

hier mal das was ich geschrieben habe in MATLAB
Code:

syms l a phi0 beta;
phi0=0: pi/180: pi/6;
x=180/pi*phi0;

r1=l*cos(phi0)/( 2*(1/2-sin(phi0))^2 ) + ( ( l*cos(phi0)/( 2*(1/2-sin(phi0))^2 ) )^2 - (a-l)*l/(1/2-sin(phi0))^2 )^(1/2);

r2=l*cos(phi0)/( 2*(1/2-sin(phi0))^2 ) - ( ( l*cos(phi0)/( 2*(1/2-sin(phi0))^2 ) )^2 - (a-l)*l/(1/2-sin(phi0))^2 )^(1/2);

subplot(2,1,1),plot(x,r1),grid
xlabel('\phi0,[°]')
ylabel('r, [mm]')
subplot(2,1,2),plot(x,r2),grid
xlabel('\phi0,[°]')
ylabel('r, [mm]')
 


dann bringt mir MATLAB immer den Fehler

Code:

Error in ==> ........ at 17
r1=l*cos(phi0)/( 2*(1/2-sin(phi0))^2 ) + ( (l*cos(phi0)/(
2*(1/2-sin(phi0))^2 ))^2 - (a-l)*l/(1/2-sin(phi0))^2 )^(1/2);
 


wäre nett, wenn mir da einer helfen könnte sollte eig einfacher sein aber ich find meinen Fehler nicht und ich hoffe mal es liegt nicht schon wieder an meiner Version

vllt wäre auch nützlich zu sagen das die Bedingungen noch gelten???

Code:

a-l < r < a
0 < tan(beta) < D/(2*UL)
0 <= sin(phi0) < 1/2
 


wie kann ich sowas noch einbauen???
brauche echt dringend hilfe ich verzweifle langsam daran ich sitze schon seit gut über 3 Tagen daran und komme zu keinem Ergebnis....
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.10.2012, 21:55     Titel:
  Antworten mit Zitat      
Hallo,

bitte versuche deine Gedanken zu strukturieren und verwende vor allem konsistent die selben Variablennamen. Ansonsten wird es sehr schwierig, dir zu folgen.

Zitat:
dann bringt mir MATLAB immer den Fehler
Error in ==> ........ at 17

Bezogen auf das "immer": ja, wenn man immer den selben Code laufen lässt, bekommt man auch immer denselben Fehler. Das entscheidende hast du jedoch weggelassen: welchen Fehler bekommst du denn?

Achte vor allem auch darauf, numerische und symbolische Berechnungen nicht zu mischen. Wenn du numerisch arbeiten willst, sollten da keine syms-Befehle mehr auftauchen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 29.10.2012, 09:17     Titel:
  Antworten mit Zitat      
Hallo,

was ist dir denn nicht klar an meinem Link?

@Harald: Wenn er die Winkel in Abhängigkeit von r (als Gleichung) darstellen möchte, was soll er denn mit Numerik??

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.