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

Optimization: fminbnd

 

sirrbouk
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 08.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.12.2015, 14:29     Titel: Optimization: fminbnd
  Antworten mit Zitat      
Hallo Zusammen Very Happy

ich habe folgendes Problem Crying or Very sad

ich suche die Gleichung y(t), (die unbekannt ist und diese Gleichung kann auch y(t ) hoch 2 oder hoch 3 ..). Ich muss das Minimum berechnen und ploten, die Kurve soll laufen bei X-Achse [0 bis t_end] und bei Y-Achse [0 bis 5].

Ich habe folgendes probiert aber leider kommt immer "ERROR" raus. Kann mir jemand helfen Crying or Very sad

Code:
xdel();
t= linspace(0,0.05,50);
k=10;             // t- Achse in 10 Teile zerlegen
//y(k)*(t(k)-t(k-1): meine Gleichung: Unbekannt
//y(k=0)*(t(k)-t(k-1)=0;  //  Zweite Randbedingung y(t=0)=0
S=y(k=10)*(t(k)-t(k-1)=5; // Erste Randbedingung y(t=t_end)=5

for k=10:-1:1;    // Rückwärt zählen
 sum=S+y(k)*(t(k)-t(k-1);
end

//Optimierung: minimum suchen
y=@(k)sum;
[k,fval]= fminbnd(y,5,0);
 


Vielen Dank im voraus
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.12.2015, 15:59     Titel: Re: Optimization: fminbnd
  Antworten mit Zitat      
Hallo sirrbouk,

Wo komme "ERROR" raus? Bekommst Du eine Fehlermeldung, wenn ja, welche?

Dies sieht nicht nach valuider Matlab-Syntax aus:
Code:
S=y(k=10)*(t(k)-t(k-1)=5; // Erste Randbedingung y(t=t_end)=5


Hier wird der Wert von "sum" in jeder Iteration überschrieben:
Code:
for k=10:-1:1;    // Rückwärt zählen
 sum=S+y(k)*(t(k)-t(k-1);
end

Vielleicht meinst Du:
Code:
for k=10:-1:1;    // Rückwärt zählen
 S = S + y(k) * (t(k)-t(k-1));
end

"sum" ist übrigens ein wichtiger Matlab-Befehl, darum sollte man den Namen nicht als lokale Variable verwenden.
Zudem fehlte hier eine abschließende Klammer. Das sollte Dir im Editor angezeigt werden.
Wieso zählst Du rückwärts? Bei eine Summe sollte das nicht von Belang sein, oder?

"y=@(k)sum;"?! Verwendest Du eventuell symbolische Variablen und hast vergessen das zu erwähnen? Dein "sum" hängt gar nicht von "k" ab.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
sirrbouk
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 08.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.12.2015, 16:34     Titel:
  Antworten mit Zitat      
Hallo Jan,



vielen herzlichen Dank für die Antworte Smile

Also ich programmiere mit Scilab (aber es sollte kein unterschied zu Matlab sein Oder ??) Cool

***Error !--error 4
Undefinierte Variable: y
wie kann ich y definieren ???

***Ich zähle rückwärts nach dem Ruckwartsrekursion ("Bellman’sches Optimalitatsprinzip") das ist die Aufgabe Crying or Very sad Embarassed

***was meinst Du bitte mit [ "y=@(k)sum;"?! Verwendest Du eventuell symbolische Variablen und hast vergessen das zu erwähnen?]

***K ist doch von Summ abhängig !!!!: ich habe die Strecke zu k=10 Intervall zerteilt und muss für jede Intervall das minimum suche dann zu Vorfolge Intervall addieren und dann ploten !!!!!!!!!!!!!!
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.