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

fminsearch???

 

MaxMa
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 01.12.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.12.2016, 19:15     Titel: fminsearch???
  Antworten mit Zitat      
Hallo zusammen,

ich bin am verzweifeln was den fminsearch Befehl angeht... Ich verstehe das nicht genau mit dem Startwert. Der ist doch ein Vektor mit festen Zahlen. Also wenn er von diesen Zahlen startet wo will er den dann hin? Es sind ja keine Variablen die Zahlen bleiben immer die gleichen oder etwa nicht?

Meine zweite Frage ist, warum ich manche Werte als global definiere ich aber in der folgenden Aufgabe x() nicht als globale Variable definiert habe, aber trotzdem die Werte in der Funktion und im Skript zur Verfügung habe...

Wäre super wenn jemand etwas licht ins Dunkle bringen würde...
Vielen dank schon mal für eure Hilfe (die Matlab hilfe suche hat mir leider nicht geholfen...)


Hier noch das Skript :

Code:
close all
clear all


load sim;

global ti;
global m;
ti=sim.ti;
m=sim.m;

%   a0 a1 a2 b  t1
x0=[0 20 80 30 0.5]

x=fminsearch('f41',x0)
a0=x(1)
a1=x(2)
a2=x(3)
b=x(4)
t1=x(5)

m1=a0+a1*t1+a2*t1^2;

disp('m1')
disp(m1)
for i=1:length(ti)
   
    if (ti(i)<t1)
            mn(i)=a0+a1*ti(i)+a2*ti(i)^2;
    else
        mn(i)=m1+b*(ti(i)-t1);
    end
end

plot(ti,m,'x',ti,mn,'k-','linewidth',2);
grid on
legend('Messung','Optimierung');
 








HIER DIE FUNKTION DAZU


Code:
function e=f41(x)

global ti m

a0=x(1);
a1=x(2);
a2=x(3);
b=x(4);
t1=x(5);
e=0;
m1=a0+a1*t1+a2*t1^2;


for i=1:length(ti)
    if ti(i)<t1
        mn=a0+a1*ti(i)+a2*ti(i)^2;

    else
       
        mn=m1+b*(ti(i)-t1);
    end
   
    e=e+(mn-m(i))^2;
end


[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]

sim.mat
 Beschreibung:

Download
 Dateiname:  sim.mat
 Dateigröße:  557 Bytes
 Heruntergeladen:  366 mal
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: 21.12.2016, 00:18     Titel: Re: fminsearch???
  Antworten mit Zitat      
Hallo MaxMa,

Eine Optimierung ist wie eine Pfad-Suche: Man startet bei einem Punkt und arbeitet sich immer näüher an das Ziel heran. Wie wenn Du bei einer Wanderung im Tal startest und nach einem bestimmten Muster (z.B. immer der steilsten Steigung nach) zum Berggipfel findest. Der Startwert ist dann der Ausganspunkt.
Wenn man in den Alpen startet, wird man je nach Ausgangspunkt einen anderen Berggipfel finden.
Jetzt klarer?

Zur zweiten Frage:
Das x ist der Funktion f41 ja als Input-Argument übergeben worden.

Das sind absolute Matlab-Grundlagen. Die Getting-Started-Kapitel der Dokumentation klären das und Matlab's Onramp ist auch wärmstens zu empfehlen.
Und wenn Du das durchgearbeitet hast, lasse im nächsten Schritt das behindernde clear all weg und benutze anonyme Funktionen statt globaler Variablen, denn mit beidem bohrst Du Dir unnötig ins Knie.

Gruß, Jan
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.