LabVIEWForum.de
Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung (/Thread-Levenberg-Marquardt-Algorithmus-Parameter-0-Bedingung)



Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung - Lea - 20.01.2005 10:03

Hallo Leutz,
mal wieder ein Problem, mit dem ich mich rumschlag: In den Levenberg-Marquardt-Algorithmus gibt man (x,y)-Werte ein, und Parameter mit einem ungefähren Anfangswert, die er anpassen soll. Bei mir ist das eine Diodenkennlinie mit y= ln(abs(t*exp(x) + s*exp(x/2) + x/r).
t,s und r sind Parameter, die er so wählen soll, daß die (x,y)Paare beschrieben werden. t,s und r sollen aber auf alle Fälle immer positiv sein.
Wo kann ich das festlegen?
Vielen lieben Dank im Voraus,
Lea.


Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung - Björn - 20.01.2005 13:18

Hi Lea!

Gibst du die Parameter über Numeric-control-Felder an? Dann ist das ganz einfach: Wenn 0 auch erlaubt ist, dann änder das Format doch einfach von signed (z.B. I32) auf unsigned (U32).
Wenn 0 auch nicht sein soll, kannst du linke Maustaste auf das Feld, dann "Data-Range" und dort den minmal zulässigen Wert wählen.
Dann sind nur noch Werte > 0 erlaubt.

Geklappt?

Björn


Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung - Lea - 20.01.2005 14:52

Das Problem ist, daß die Parameter in ein Array eingegeben werden. Kann da dann jedes Element eines Arrays unterschiedliche Einschränkungen (zB 1. Element < 0 und das zweite Element > 0) haben?
Wie definiere ich diese Einschränkungen in einem Array?
Viele Grüße, Lea.


Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung - Björn - 20.01.2005 15:20

Spezifikationen für einzelne Felder/Spalten/Zeilen eines Arrays gehen glaube ich nicht. Aber nehm doch für jeden Parameter ein 1D-Array (da kannst du dann ja alle Elemente gleich spezifizieren) und führe die 1D-Arrays zu einem 2D zusammen.


Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung - Björn - 21.01.2005 08:51

Hallo Lea!

In deiner Gleichung ist übrigens ein Fehler, irgendwo fehlt eine Klammer.
Magst du mal konkrete Wert geben?


Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung - Dennis.Moser - 21.01.2005 08:53

denk beim eintippen vergssenSmile

y= ln(abs(t*exp(x)) + s*exp(x/2) + x/r).


und wech...

:derdemo:


Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung - Björn - 21.01.2005 12:29

Hat das mal einer versucht?
Ich bekomme da immer nur komisch aussende Diagramm bei raus.


Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung - Lea - 21.01.2005 12:57

upsala, nochmals:
y= ln(abs(t*exp(x) + s*exp(x/2) + x/r))
Die Formel beschreibt eine Diode mit Parallelwiderstand (Bild kann ich leider nicht hochladen, funktioniert irgendwie nicht, jedenfalls eigentlich eine ganz normale Dunkelkennlinie: kommt bei -0.7V und -40 mA senkrecht hoch, biegt vor der x-Achse ab und nähert sich dieser asymtotisch). Die Funktionswerte, die ich in den Algorithmus steck, sind ln(Strom)-Werte, x sind Spannungswerte. Ln deshalb, damit das besonders gut im Exponentialteil angefittet wird. Das Parameterarray wird dem SubVi übergeben, dh. ich müßt auch dort ein Array aus Einzelarrays erstellen?
Viele Grüße, Lea.


Levenberg-Marquardt-Algorithmus: Parameter >0-Bedingung - Björn - 21.01.2005 13:17

Ja. Bzw. je nachdem... poste doch einfach mal das VI, dann wirds vielleicht klarer!