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 - optimization

 

Edouard

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2009, 16:14     Titel: fminsearch - optimization
  Antworten mit Zitat      
Hallo,

ich minimiere gerade ein Fehler zwischen berechnete Temperatur und gemessene Temperatur. Ich habe die berechnete TEmperatur mit ode23s berechnet und jetzt minimiere ich mit fminsearch.

In meiner Gleichung sind jede Variable Vektoren mit ungefähr 100 Werte.

Nach dem Integration mit ode23s krieg ich nur 12 Werte für Zeit unt Temp.

Warum ist es so? Warum 12??

Danke

Edouard


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 28.04.2009, 18:10     Titel:
  Antworten mit Zitat      
Weil 7 Zwerge plus 5 Plätze im neuen Renault Clio 12 ist. Smile

Du siehst ohne ein code-Beispiel werden wir dir nicht helfen können.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Edouard

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2009, 09:19     Titel:
  Antworten mit Zitat      
Hier ist der funktion:

Code:

function dydt = example2(t,y,ft,f,gt,g,r_tht,r_th)

 %lets say that t is the time we want to interpolate to
 %lets also define y as our temperature we are looking for
 
 %ft is the time vector given with f. f is a vector representing
 %verlustleistung
 
 %gt is the time vector given with g. g is a vector representing air
 %temperature
 
f = interp1(ft,f,t,'pchip','extrap')'; % Interpolate the data set (ft,f) at time t (linear Method), extrapolate if t is outside of ft

g = interp1(gt,g,t,'pchip','extrap')'; % Interpolate the data set (gt,g) at time t (linear Method), extrapolate if t is outside of gt
r_th = interp1(r_tht,r_th,t,'pchip','extrap')';

dydt = f/(800*480) - ((y-g)/(r_th * 800 *480));% Evalute right-hand side of ODE at time t
 


und hier ist der Skript

Code:

IC = 283; % The initial temperature (use a scalar value, no vectors unless you want to solve a system of ODES)
Tspan = [0 2500000]; % The time intervall you want to use

options = odeset('Refine','1','Vectorized','on');
[T Y] = ode23s(@(t,y) example2(t,y,ft,f,gt,g,r_tht,r_th),Tspan,IC,options) % Solve ODE

plot(T,Y)
grid on

 


Ich habe die funktion 'Refine' gefunden and damit kann ich mehr Werte kriegen. Aber ich verstehe nicht wie es funktioniert. Ich bekomme viele Werte wenn ich 1 eingebe aber wenn ich z.B 16 eingebe, bekomme ich ein Fahler Matrix Dimension.

Ich frage mich immer noch warum der output vektor nicht der gleiche Länge als der input Vektor ist.

Edouard
 
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.