Ermitteln einer Funktionsgleichung

Status
Nicht offen für weitere Antworten.
C

Cona

Gast
moin...

Ich benötige ein Möglichkeit um aus einer Messung eine mathematische Funktion zu erhalten. Gemessen wird ein Verhältnis (Intensität von x/Summen aller Intensitäten) in Abhängigkeit des Anteils von x in einer Mischung. Da es sich beim gesuchten Zusammenhang in der Regel nicht um einen linearen Zusammenhang handelt habe ich leider keine Ahnung wie eine derartige Regression programmiert werden kann.

Die Funktion wird später benötigt um nicht bekannte Verhältnisse zu berechnen.
Von der Funktion ist bekannt:
1. Sie geht durch 0;0
2. Sie geht durch 1;1
3. Sie ist stetig und es sind keine Wende / Extrempunkte vorhanden

Der Zusammenhang ist wahrscheinlich logarithmisch oder exponentiell (ist die Regel), in seltenen Fällen auch linear möglich.

Hat einer einen Tip wo ich Info's zur Problemlösung finden kann, oder evtl. schonmal ähnliches programmiert?
Sehr hilfreich wäre auch der Name eines Algorithmus zur nicht-linearen Regression (sowas wie Newton Approximation zur Berechnung von Nullstellen), da ich kein Mathematiker bin habe ich keinen Plan wie man sowas "manuell" löst.

Ich wäre für jeden Ansatz sehr, sehr dankbar.
mfg Cona

Beispiel für Messwerte:

x --------> f(x)
0,0 ------> 0,0000000000
0,1 ------> 0,0277777778
0,2 ------> 0,0362794288
0,3 ------> 0,0593220339
0,4 ------> 0,0831435080
0,5 ------> 0,1093560146
0,6 ------> 0,1501901141
0,7 ------> 0,1974333662
0,8 ------> 0,3037790698
0,9 ------> 0,4382352941
1,0 ------> 1,0000000000
 

Wildcard

Top Contributor
Man kann anhand der Messwerte weitere Werte interpolieren, aber die dazugehörige Funktion errechnen???
Wüsste jetzt nicht wie so etwas gehen könnte.
 

Kerberus

Bekanntes Mitglied
Falls du einen Taschenrechner, wie zum Beipsiel TR-89 hast, kann es sein, dass dieser Regressionen zu Verfügung stellt. Könntest versuchen anstelle von Werten Variablen einzusetzen, so, dass er dir eine Gleichung angibt....
 
G

Guest

Gast
Wildcard hat gesagt.:
Man kann anhand der Messwerte weitere Werte interpolieren, aber die dazugehörige Funktion errechnen???
Wüsste jetzt nicht wie so etwas gehen könnte.
Whow schnell Antworten, hat man nicht oft in Foren!

Na dann erstmal danke.

So eine Arte Interpolation bräucht ich ja um von einem gemessen Intensitätsverhältniss auf die unbekannte Zusammensetzung zurück zu rechnen (Die gesuchte Funktion ist die Kalibrierung). Das Problem ist, dass die Kalibrierung möglichst gespeichert / geladen werden kann, hier würde sich die Funktionsgleichung anbieten.

mfg Cona

Nochmal genauere Beschreibung des Problems:

Es handelt sich um quantitative Analysen von Pulvermischungen.

Die Mischungen werden mit einem Pulverdiffraktometer analysiert, die Ergebnisse stehen in Dateien zur Verfügung.
Für ein System aus bekannten Komponenten kann aus Intensitäten der Stoffmengenanteil der Komponenten berechnet werden.

Aus Mischungen mit bekannten Stoffmangenanteilen der Komponenten wird eine Kalibrationkurve (die ist gesucht) erstellt.

Die Ergebnissdateien des Pulverdiffraktometers (bei großen Versuchsreihen sehr viele) werden eingelesen, der Stoffmengenanteil der Komponenten soll dann aus den eingelesen Daten berechnet und in Form einer *.csv oder *.txt aufgegeben werden (alle Messungen einer Versuchsreihe in einer Datei).
 

Wildcard

Top Contributor
Vor ein paar Jahren hab ich mal ein kleines Prog geschrieben das in diese Richtung geht.
Man erstellt eine Messwerttabelle und gibt Werte ein die Interpoliert werden sollen.
Das Prog liefert dann einen Graph, und die gesuchten interpolierten Werte. Meinst du das nützt dir was?
 
C

Cona

Gast
Kerberus hat gesagt.:
Falls du einen Taschenrechner, wie zum Beipsiel TR-89 hast, kann es sein, dass dieser Regressionen zu Verfügung stellt. Könntest versuchen anstelle von Werten Variablen einzusetzen, so, dass er dir eine Gleichung angibt....
Das Programm soll als eigenständiges Programm laufen und möglichst alle nötigen Funktionen zur Verfügung stellen. Die Benutzeroberfläche, das Einlesen der Ergebnissdateien, die Berechnung und Ausgabe der Ergebnisse ist schon fertig (bisher habe ich die Regression mit Maple gemacht). Es fehlt halt "nur" noch die Kalibration :x .

Cona
 

Wildcard

Top Contributor
Ist wie gesagt ein paar Jahre her.
Schau mal hier
Ich glaube ich habe damals mit der Fourier-Entwicklung und dem gausschen Eliminationsverfahren
gearbeitet, bin mir aber nicht mehr sicher. Das ganze ist allerdings nicht ganz leicht.
Hab das Prog gerade wieder gefunden. Wenn du meinst du kannst damit was anfangen, registrier dich,
schick mir ne PN mit deiner E-mail adresse, dann kannst du dir ansehen ob's was nützt.
 
C

Cona

Gast
Ich habe mir auch schon ein paar Gedanken gemacht:

Es gibt drei mögliche Funktionsgleichungen:
  1. f(x) = a*x + b
  2. f(x) = a*e^(b*x) + c
  3. f(x) = a*ln(x+b) + c
Der Test welche Funktion die gewählt werden kann sollte recht einfach sein:

Es werden einfach die Differenzen aller y Werte und die Differenz der entsprechnenden x Werte geteilt und verglichen (Steigung der Funktion).
  1. Steigung ~ konstant => Gleichung 1
  2. Steigung wächst => Gleichung 2
  3. Steigung fällt => Gleichung 3
Nun sollen die Parameter der Gleichung angenähert werden.
Nach jedem Iterationsschritt wird die Fehlerquadratsumme mit den erhaltenen Parametern berechnet und falls die Abweichung zu groß ist werden die Parameter erneut verfeinert.
Die so ermittelten Parameter sollen zurückgegeben werden.

Für die Anpassung der Parameter ist ein Algorithmus nötig für den Ich leider keinen Ansatz habe (ausser für den linearen Fall, dass ist recht einfach und steht in jeder Formelsammlung, selbst ein bestimmtes Microsoft-Produkt kann das sehr gut :))
 

Wildcard

Top Contributor
Du willst am Ende wissen welche Funktion die richtige ist?
Warum dann nicht einfach die x-werte für die gemessen wurde in die Funktionen einsetzten,
die Ergebnisse mit den Messwerten vergleichen, und die Funktion mit der kleinsten Abweichung wählen?
 
C

Cona

Gast
und die Funktion mit der kleinsten Abweichung wählen?
Dazu sind ja die Parameter a, b und c nötig. Die sollen ja ermittelt werden.

Ich habe mir gerade mal den Wikipedia Link angeschaut und festgestellt, dass Interpolation nicht das ist nach dem ich suche sondern "Regression" (naja bin ja kein Mathematiker)
 

Bleiglanz

Gesperrter Benutzer
genau

kennst du die methode der kleinsten Quadrate von Gauss

sagen wir, a*x + b soll bestmöglich interpoliert werden

=> berechne SUMMME_alle_i ((a*x_i+b - Y_Messwert)^2)

dann a,b so wählen, dass diese Summe minimal; wenn man das ausrechnet kommen einfache Formeln raus.


für die komplexeren Funktionen geht das nicht (weil da keine schönen Formeln rauskommen)

=> ist ein sog. nichtlineares Minimum-Problem für die (a,b,c) (minimale Quadratsumme)

aber für den zweiten Fall (ohne konstanten Term) gehts doch:

y=a*e(b*x) => ln nehmen

ln y = lna + (b*x) ist eine Geradengleichung (Y := lny)

mach jetzt die kleinsten Quadrate mit den Messwerten lny_1,...ln_y2 usw.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Größe einer CD ermitteln Allgemeine Java-Themen 10
E Ermitteln einer eindeutigen ID eines Objekts möglich? Allgemeine Java-Themen 17
multiholle Aufrufer einer Funktion ermitteln Allgemeine Java-Themen 13
G genauen Typ einer generischen Klasse zur Laufzeit ermitteln Allgemeine Java-Themen 2
A Reflection - Variablen innerhalb einer Methode ermitteln Allgemeine Java-Themen 9
H Speicheverbrauch einer Datenstruktur ermitteln Allgemeine Java-Themen 29
M Erstes Element einer Enumeration ermitteln Allgemeine Java-Themen 6
I Druckerauflösung per JNA ermitteln Allgemeine Java-Themen 3
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6
B Dateistart ermitteln Allgemeine Java-Themen 14
MiMa Geldbetrag mit regex ermitteln. Allgemeine Java-Themen 14
S Alle Dateinamen ermitteln Allgemeine Java-Themen 22
S Marker aus String ermitteln Allgemeine Java-Themen 5
B Mail: Nicht vorhandener Empfänger ermitteln Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
C Ermitteln ob Zeitumstellung war Allgemeine Java-Themen 37
KeexZDeveoper Nächstgelegenden Wert ermitteln Allgemeine Java-Themen 5
D Best Practice Die niedrigste Differenz zwischen zwei Listen ermitteln. Allgemeine Java-Themen 10
L Wachstumsordnung der Ausführungszeit ermitteln Allgemeine Java-Themen 7
MiMa MP3 Bitrate ermitteln Allgemeine Java-Themen 7
Aruetiise Interface Position durch JButton ermitteln Allgemeine Java-Themen 5
L Ermitteln der Anzahl an Lösungen von quatratischen Gleichungen (Sieb von Atkin) Allgemeine Java-Themen 1
L Java Version aus Tomcat ermitteln Allgemeine Java-Themen 3
F Content-Disposition ermitteln über URL Allgemeine Java-Themen 2
O MVC - wo Liste der ComboBox-Items ermitteln Allgemeine Java-Themen 3
F Zeit ermitteln Allgemeine Java-Themen 2
J ermitteln der Anzahl der Monate Allgemeine Java-Themen 7
F Swing selektierte Komponente ermitteln Allgemeine Java-Themen 4
S Einfache Methode die Groesse eines Objekts zu ermitteln? Allgemeine Java-Themen 12
L Jsp: Vorherige Webseite ermitteln Allgemeine Java-Themen 4
K Annotations der aufrufenden Methode ermitteln Allgemeine Java-Themen 11
S per Mausklick Position ermitteln Allgemeine Java-Themen 8
T HTML Tag Position mittels Pattern ermitteln Allgemeine Java-Themen 7
K Datum ermitteln Allgemeine Java-Themen 4
R Array Schnittmenge performant ermitteln Allgemeine Java-Themen 8
M Klassen in vielen Jars ermitteln Allgemeine Java-Themen 2
c_sidi90 Routine zum ermitteln des Standardablageverzeichnisses Allgemeine Java-Themen 2
R Windows ermitteln ob Administratorrechte vorhanden Allgemeine Java-Themen 17
E Java Browser ermitteln? Allgemeine Java-Themen 6
F Pfad der laufenden JAR ermitteln (mit Archivnamen) Allgemeine Java-Themen 2
E Java Version Details ermitteln Allgemeine Java-Themen 5
E Performace/Ausführungszeit von Methoden ermitteln Allgemeine Java-Themen 4
J Anwendungen ermitteln ? Allgemeine Java-Themen 5
Iron Monkey Lautstärkeregelung ermitteln Allgemeine Java-Themen 2
A Reisezeiten ermitteln Allgemeine Java-Themen 9
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
S Konstruktor ermitteln Allgemeine Java-Themen 3
Iron Monkey Anzahl der Monate ermitteln Allgemeine Java-Themen 17
FoolMoon Elegante Möglichkeit die kleinste Zahl zu ermitteln. Allgemeine Java-Themen 7
T Pfad Anwendungsdaten unter Windows ermitteln Allgemeine Java-Themen 3
D Häufigkeit eines Zeichens ermitteln Allgemeine Java-Themen 5
H2SO3- Pixel länge von String ermitteln Allgemeine Java-Themen 4
D Parametername ermitteln Allgemeine Java-Themen 10
T Nicht verwendete Klassen in Projekten ermitteln? Allgemeine Java-Themen 2
data89 [Kurze Frage] Ähnlichkeit zweier Strings ermitteln Allgemeine Java-Themen 19
T zu Beginn der main: Heap space ermitteln und hochsetzen Allgemeine Java-Themen 11
M Grösse von BorderLayout.CENTER ermitteln Allgemeine Java-Themen 8
G Ermitteln des aufrufenden Objekts Allgemeine Java-Themen 5
G Zeigeranzahl ermitteln Allgemeine Java-Themen 10
S E-Mail-Links: geklickten Link ermitteln Allgemeine Java-Themen 4
D Ahängige Bibliotheken (JARs) ermitteln Allgemeine Java-Themen 6
G restlichen freien Speicher ermitteln? Allgemeine Java-Themen 3
S Hintergrundname eines Buttons ermitteln Allgemeine Java-Themen 3
T Eigene PID ermitteln! Allgemeine Java-Themen 3
M Aus Anzahl Tagen Datum ermitteln Allgemeine Java-Themen 8
S Nicht aufgerufene Methoden in Eclipse ermitteln Allgemeine Java-Themen 18
G größten gemeinsamen Teiler ermitteln Allgemeine Java-Themen 11
V Image laden - URL über ClassLoader ermitteln Allgemeine Java-Themen 2
J zeit überscheidungen ermitteln Allgemeine Java-Themen 6
G PPI von Monitor ermitteln Allgemeine Java-Themen 9
Y Mit Java Betriebssystem ermitteln Allgemeine Java-Themen 6
J Kann eigene Klasse nicht ermitteln Allgemeine Java-Themen 4
O Inhalt vom JTextfield im DebugMode ermitteln? Allgemeine Java-Themen 2
A Jahr ermitteln Allgemeine Java-Themen 2
A Installierte Runtime ermitteln Allgemeine Java-Themen 3
M Nummer eine Componente in JScrollPane ermitteln Allgemeine Java-Themen 4
C Pixelanzahl eines Strings ermitteln Allgemeine Java-Themen 12
J Speicherverbrauch des Systems ermitteln Allgemeine Java-Themen 4
M Zeit eines rechners im netzwerk ermitteln Allgemeine Java-Themen 6
F Implementierte Interfaces ermitteln Allgemeine Java-Themen 6
M Bibliotheksname zur Laufzeit ermitteln (Classloader) Allgemeine Java-Themen 7
foobar Angemeldeten Systembenutzer ermitteln Allgemeine Java-Themen 8
P Java installationsverzeichnis ermitteln, wie? Allgemeine Java-Themen 4
C RTF - Dateipfad ermitteln Allgemeine Java-Themen 4
U Arbeitsspeicher ermitteln? Allgemeine Java-Themen 18
W java.io.file Originalziel bei .lnk ermitteln? Allgemeine Java-Themen 5
T OutputStream - Prozente ermitteln Allgemeine Java-Themen 3
M Den Pfad ermitteln aus dem die .jar Datei gestartet wurde Allgemeine Java-Themen 2
I Anwendungspfad ermitteln Allgemeine Java-Themen 4
S Programmname ermitteln Allgemeine Java-Themen 6
W Beziehungen zwischen Usern ermitteln Allgemeine Java-Themen 2
vogella Version von Java ermitteln Allgemeine Java-Themen 2
F JRE Version ermitteln Allgemeine Java-Themen 2
G Dateigröße ermitteln Allgemeine Java-Themen 4
C Generic Type ermitteln Allgemeine Java-Themen 3
R Menge an Bytes eines OutputStreams ermitteln. Allgemeine Java-Themen 6
R Fileendung ermitteln Allgemeine Java-Themen 2
G datentyp ermitteln Allgemeine Java-Themen 8
K Java Version ermitteln (über System.getProperty hinaus) Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben