Levenberg-Marquardt-mit-Matlab: Unterschied zwischen den Versionen

Aus Physik
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
  +
== Was ist der Levenberg-Marquardt-Algorithmus, und wofür wird er gebraucht==
  +
Am besten ich erkläre an einem Beispiel:<br>
  +
Gegeben ist folgendes Problem: Bei einem Versuch werden Daten gemessen. z.B. Spannung an einem kondensator, der gerade über einen Widerstand entladen wird.
  +
Es wird einmal pro sekude die aktuelle spannung gemessen. Dann werden in einem Plot in x-Richtung die Zeit, in y-Richtung die spannung aufgetragen. Das sind die x und y Daten. Die y-Daten sind fehlerbehaftet, da das Messgerät nicht ganz genau messen kann. Die Standartabweichung des üblicherweise Normalverteilten Fehlers sei d_y. Bei kleineren Spannungen kann man das Messgerät auf eine kleinere Skala umschalten, der absolute Messfehler wird dort also kleiner, d_y ist nicht überall gleich gross. Man trägt nun auch die Fehlerbalken in das Diagramm ein. Der Wert des Widerstands sein bekannt. Der Fehler in x-Richtung sei zu vernachlässigen. Man möchte nun die Kapazität des Kondensators berechnen.
  +
  +
 
=== Projektdaten ===
 
=== Projektdaten ===
 
* [http://itp.tugraz.at/~golubk_a/download/lma/lma.m lma.m] ... Die Implementierung der Levenberg-Marquardt Algorithmus
 
* [http://itp.tugraz.at/~golubk_a/download/lma/lma.m lma.m] ... Die Implementierung der Levenberg-Marquardt Algorithmus

Version vom 30. Juni 2005, 13:58 Uhr

Was ist der Levenberg-Marquardt-Algorithmus, und wofür wird er gebraucht

Am besten ich erkläre an einem Beispiel:
Gegeben ist folgendes Problem: Bei einem Versuch werden Daten gemessen. z.B. Spannung an einem kondensator, der gerade über einen Widerstand entladen wird. Es wird einmal pro sekude die aktuelle spannung gemessen. Dann werden in einem Plot in x-Richtung die Zeit, in y-Richtung die spannung aufgetragen. Das sind die x und y Daten. Die y-Daten sind fehlerbehaftet, da das Messgerät nicht ganz genau messen kann. Die Standartabweichung des üblicherweise Normalverteilten Fehlers sei d_y. Bei kleineren Spannungen kann man das Messgerät auf eine kleinere Skala umschalten, der absolute Messfehler wird dort also kleiner, d_y ist nicht überall gleich gross. Man trägt nun auch die Fehlerbalken in das Diagramm ein. Der Wert des Widerstands sein bekannt. Der Fehler in x-Richtung sei zu vernachlässigen. Man möchte nun die Kapazität des Kondensators berechnen.


Projektdaten

  • lma.m ... Die Implementierung der Levenberg-Marquardt Algorithmus
  • fit_beispiel.m ...Ein Beispielscript, in dem gezeigt wird, wie man lma.m benutzt

Am besten, man speichert lma.m im Ordner ~/matlab da Matlab dort standartmässig als erstes nach aufgerufenen Funktionen sucht. (Mit dem Befehl path den man einfach in das command window von Matlab eintippen kann, sieht man ob ~/matlab auch tatsächlich verwendet wird. Wobei ~ die übliche von Linux benutzte Abkürzung für das Homeverzeichniss des Benutzers ist.)
Die Funktion muss dann nicht immer in das aktuelle Arbeitsverzeichniss von Matlab kopiert werden, wenn sie gerade gebraucht wird.

Fehlermeldung?

Sollte diese Fehlermeldung beim Benutzen von lma.m kommen: ??? Invalid MEX-file '/afs/itp.tugraz.at/opt/matlab/R14.sp2a/toolbox/symbolic/maplemex.mexglx': /afs/itp.tugraz.at/opt/matlab/R14.sp2a/bin/glnx86/libmaple.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference. dann gibt es die folgende Lösung:

  • eine Konsole aufmachen
  • dort folgendes eintippen:
$ export LD_ASSUME_KERNEL=2.4.1
  • dann aus der gleichen Konsole matlab starten:
$ matlab