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

Iteration

 

Susi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2010, 13:51     Titel: Iteration
  Antworten mit Zitat      
hallo bin gerade dabei mich in Matlab einzuarbeiten fürs ende meines studiums...

nun sitze ich gerade an einer iteration und weiss nicht wie das funktioniert.

also ich habe als ergebnis den wert x = y/(1-y)^4....wie kommt man nun auf y in matlab? kann mir jemand helfen?
danke schonmal


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.07.2010, 13:57     Titel:
  Antworten mit Zitat      
Hallo Susi,

Du schreibst nicht genau, was Du suchst. Möchtest Du ein Y zu einem bestimmten X ausrechnen? Bist Du sicher, dass zu jedem Y nur ein X gibt? Wenn nicht, welches X suchst Du dann?
Oder möchtest Du die Gleichung symbolisch lösen?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Susi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2010, 14:15     Titel:
  Antworten mit Zitat      
okay schreibs nochmal anders Smile

also das y ist gesucht in der Gleichung. Das möchte ich haben..den x-wert habe ich schon bestimmt..der ist fest....nun soll einfach nur die Gleichung gelöst werde...d.h. mit dem x soll das y ausgerechnet werden.aber das problem ist ja das hoch 4 im nenner. und soweit ich weiss geht sowas ja nur iterativ...
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.07.2010, 16:18     Titel:
  Antworten mit Zitat      
Hallo Susi,

gut. Wenn es nur iterativ geht, löse es iterativ. Kennst Du den Befehl FZERO?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Susi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2010, 18:55     Titel:
  Antworten mit Zitat      
ist fzero nicht nur für nullstellen? also ich hatte es jetzt mal mit fsolve versucht..aber klappt nicht
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 31.07.2010, 18:08     Titel:
  Antworten mit Zitat      
Hi,

fzero funktioniert.Da musst du allerdings ein initial guess vorgeben.matlab findet also nicht alle Lösungen automatisch, sondern jeweils ein Wert für jeden initial guess.
Du musst erstmal die Gleichung so umstellen dass du auf der einen Seite Null hast damit du fzero anwenden kannst x(1-y)^4-y=0:


Code:


fzero(@(y) x*(1-y)^4-y,3)

 


es gibt auch die möglichkeit symbolisch mit matlab zu lösen (command: syms)

Lilov
[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 31.07.2010, 18:20     Titel:
  Antworten mit Zitat      
ach, was du noch machen kannst ist einfach viele Werte mit einem kleinen Inkrement für y schon vorgeben und dann die aussuchen die mit x die kleinste Differenz bilden:
Code:

x=2;
y=(-20:0.01:20)';
p = y./(1-y).^4;
index = find(abs(p-x)<0.1);
y(index)
 


wobei 0.1 einfach dein Konvergenzkriterium ist je nachdem wie genau du die Lösung brauchst

Gruß,
Lilov
Private Nachricht senden Benutzer-Profile anzeigen
 
Susi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.08.2010, 17:23     Titel:
  Antworten mit Zitat      
okay also habe die drei varianten mal ausprobier...mit fzero kommt 2.3 für x= 0.75....was ja prinzipiell nicht falsch ist...aber es muss leider kleiner 1 als lösung sein
die variante mit konvergenz ist besser..also lösung kommt so 0.245 raus..muss man aber selber raussuchen ....
also net das otpimale--aber es funzt schonmal

die sum variante habe ich mal eingefügt..da passt etwas nicht
es komtm kein ergebnis raus

x = y/(1-y)^4;

solve(x,'y');
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 01.08.2010, 23:17     Titel:
  Antworten mit Zitat      
Hi:)

wenn die Lösung kleiner als 1 sein soll, musst du einen Anfangsschätzwert eingeben der kleiner als 1 ist. Dann klappt's
Code:

 x=0.75;
 fzero(@(y) x*(1-y)^4-y,0.1)

ans =

    0.2444

 
Private Nachricht senden Benutzer-Profile anzeigen
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 02.08.2010, 00:01     Titel:
  Antworten mit Zitat      
ach, ich hab das mit solve ausprobiert und es funktioniert wenn man die Gleichung zu einem Polynom umstellt:


Code:


syms y
solve(y^4*x - 4*y^3*x + 6*y^2*x - 4*y*x - y + x, y)

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Susi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2010, 13:16     Titel:
  Antworten mit Zitat      
funzt einwandfrei..vielen dank für die hilfe Smile
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 05.08.2010, 13:29     Titel:
  Antworten mit Zitat      
Hehe...no prob Smile
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.