Mergen von zwei Kennlinien

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

Hallo,

ich stehe gerade vor dem Problem, dass ich zwei Kennlinien (Geradenfunktion) zu einer gemeinsamen zusammenführen muss. Die beiden Kennlinien haben einen geringen x-y-Bereich(Mergebereich), wo diese mathematisch verknüpft werden soll. Ergebnis ist dann eine gesamte Kennlinie, wo der Übergang möglichst nicht zu erkennen ist.

nachfolgend meine Vorgehensweise:

- unterhalb des Mergebereichs wird die Geradengleichung von Kennlinie 1 genommen

- innerhalb des Mergebereichs muss über eine mathematische Formel der Übergang erfolgen

- oberhalb des Mergebereichs wird die Geradengleichung von Kennlinie 2 genommen.

Ich hoffe, dass mein Problem verständlich ist.
Meine Frage ist jetzt, welchen mathematischen Ansatz nehme ich zum mergen? Habt ihr hier eine Idee(möglichst abstrakt, nicht sprachspezifisch)?

Danke für eure Hilfe.

Gruss george
arghargh
User
Beiträge: 81
Registriert: Donnerstag 4. September 2008, 22:26

Wenn du zwei lineare Funktionen hast, hast du auch die Steigung.
Du musst im Übergangsbereich eine Funktion finden, die tangential zu beiden Geraden ist (Kreis!?).
Weiter kann ich dir leider nicht helfen.

PS: je nach Steigung passt der Kreis allerdings nicht unbedingt in den Übergangsbereich.
Panke
User
Beiträge: 185
Registriert: Sonntag 18. März 2007, 19:26

Nimm ein Polynom vom Grade X und such dir entsprechend Kriterien um die Funktion zu finden. Zum Beispiel Werte und 1. / 3. Ableitung an den Grenzen des Mergebereiches etc.
bords0
User
Beiträge: 234
Registriert: Mittwoch 4. Juli 2007, 20:40

george hat geschrieben:- unterhalb des Mergebereichs wird die Geradengleichung von Kennlinie 1 genommen

- innerhalb des Mergebereichs muss über eine mathematische Formel der Übergang erfolgen

- oberhalb des Mergebereichs wird die Geradengleichung von Kennlinie 2 genommen.
Man kann im Mergebereich einfach interpolieren, z.B. mit cos^2. Um die Funktionen f und g im Berech a und b zu mischen, kann man folgendes tun:

Code: Alles auswählen

>>> def merge(f, g, a, b):
	from math import cos, pi
	def merged(x):
		if x < a: return f(x)
		if x > b: return g(x)
		w = cos((x-a)/(b-a)*pi/2)**2
		return w * f(x) + (1 - w) * g(x)
	return merged
Beispiel zur Verwendung:

Code: Alles auswählen

>>> def f(x): return 0

>>> def g(x): return 1

>>> h = merge(f, g, 0, 1)
>>> h(0.0)
0.0
>>> h(1.0)
1.0
>>> h(0.5)
0.49999999999999989
>>> h(0.25)
0.14644660940672627
>>> h(0.75)
0.85355339059327373
>>> 
Antworten