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 Toolbox - Fit von numerisch integrierten Daten

 

keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 04.10.2007, 10:08     Titel: Optimization Toolbox - Fit von numerisch integrierten Daten
  Antworten mit Zitat      
Hallo,

ich versuche derzeit, Messdaten zu fitten. Die Funktion, mit der die Messdaten angenähert werden sollen, ist dabei ein Doppelintegral.

Code:
f = c1 .* sqrt(t) .* x + c2 .* t^2 .* y

ist die Funktion, an deren Doppelintegral über x und y meine Messdaten angenähert werden soll.
Zu Testzwecken habe ich Probedaten generiert, die durch diese Kurve mit c1 = 0.1 und c2 = 0.34 exakt dargestellt werden können.

Der Aufruf für den Fit-Algorithmus sieht dabei wie folgt aus:
Code:
options = optimset('LargeScale','off','LevenbergMarquardt','on','TolX',1e-10,'TolFun',1e-10);
start = [0.11 0.33];
[param] = lsqnonlin('lininttest',start,[],[],options,t,xmin,xmax,ymin,ymax,f);

mit "lininttest":
Code:
function F = lininttest(lambda,t,xmin,xmax,ymin,ymax,f)
F = zeros(length(t),1);
str = strcat(num2str(lambda(1)),'.*',num2str(sqrt(t)),'*x+',num2str(lambda(2)),'*y*',num2str(t.^2));
for k = 1 : length(t)
    g = inline(str(k,:));
    F(k,1) = f(k,1)-dblquad(g,xmin,xmax,ymin,ymax);
end


Das Problem ist nun, dass lininttest nach zwei Durchläufen abbricht, und mir als Lösung die Werte von "start" gibt.

Dazu nun mehrere Fragen:
Zum einen die wichtigste Frage: Wie kann ich ganz allgemein erreichen, dass numerisch integrierte Daten an eine Reihe von Messdaten angenähert wird? Es muss allerdings ein Levenberg-Marquardt-Algorithmus sein.
Zum anderen ist die Herangehensweise, die Funktion über Strings berechnen zu lassen, sicherlich verbesserungswürdig, allerdings habe ich da bisher noch keinen Anhaltspunkt gefunden, wie sich das umsetzen liesse.

Ich hatte, probeweise, die Funktion ohne Doppelintegral durch lsqnonlin nähern lassen, das funktionierte problemlos.

Viele Grüße,
k.
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 05.10.2007, 15:54     Titel:
  Antworten mit Zitat      
Hallo keloid,

ich wollt nur mal Bescheid sagen, dass ich drüber nachdenke. Du bist nicht vergessen worden. Very Happy Die Antwort auf die zweite Frage liegt jedenfalls in einer zusätzlichen Funktion, die von lininttest aufgerufen wird. Und Deine prinzipielle Herangehensweise ist auch nicht "falsch", ich hätte auch erst mal so losgelegt. Vielleicht kann man aber die internen Strukturen noch besser nutzen. Darüber muss ich aber wie gesagt noch etwas nachdenken.

herzliche Grüße und bis bald
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
keloid
Themenstarter

Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 08.10.2007, 08:42     Titel:
  Antworten mit Zitat      
Danke schon mal für die Mühe, die Du Dir machst, so fühle ich mich nicht ganz so alleine mit meinem Problem.
Private Nachricht senden Benutzer-Profile anzeigen
 
keloid
Themenstarter

Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 20.11.2007, 10:30     Titel:
  Antworten mit Zitat      
Ich habe inzwischen ein Programm mit einem komplett anderen Ansatz erhalten.
In diesem Ansatz wird die Integration irgendwie (ich habe noch nicht genau herausgefunden, wie) durch mehrere affine Abbildungen umgangen.
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.