Funktionswert durch Umkehrfunktion.....

Neue Frage »

CacaoDrink Auf diesen Beitrag antworten »
Funktionswert durch Umkehrfunktion.....
Meine Frage:
Hallo ich soll den FUnktionswert für f(x) bestimmen, wobei die Umkehrfunktion g(x) bekannt ist.
Dazu soll ich die größte Zweierpotenz finden,
1) a=2^k so dass x>g(a)
2)Wenn ich die größte Zweierpotenz gefunden habe, soll ich y=a setzen.
3) Dann soll ich a durch 2 dividieren und falls g(y+a) ? x soll ich y += a setzten.
Das soll ich solange machen bis a=0 ist, oder die gewünsche genauigkeit erreicht ist. Das Ergebnis von f(x) soll dann auf y vorliegen.
Ich sitz da jetzt schon 2 Tage dran und bin einfach nur verzweifelt... ich weiß nicht wie das funktionieren soll....


Meine Ideen:
Also ich hab Beispielsweise die Funktion f(x)=-4x+2 genommen.
Die Umkehrfunktion davon ist g(x)= 0.5-x/4
Für x nehme ich Beispielsweise 5
1) Also jetzt nehme ich such erstmal die erste Potenz, die müsste ja schon o sein, weil 2^0=1 also setze ich die 1 in g(x) ein. Dann habe ich g(x) = 0.5 -1/4 = 0.25
X ist 5 also ist g(1)<5 <=> 0.25 <= 5
2) Jetzt setze ich y=a also y=1 (2^0)
3) Also ich weiß ja, dass das Ergebnis also y am Ende 18 sein muss. Also jetzt zum Schritt 3
0.125<5.0y :1.0
0.0625<5.0y :1.5
0.03125<5.0y :1.75
0.015625<5.0y :1.875
0.0078125<5.0y :1.9375
0.00390625<5.0y :1.96875
0.001953125<5.0y :1.984375
9.765625E-4<5.0y :1.9921875
4.8828125E-4<5.0y :1.99609375
2.44140625E-4<5.0y :1.998046875
1.220703125E-4<5.0y :1.9990234375
Wie man sieht nährt sich y=2 an also liegt das richtige Ergebnis (18) hier nicht vor.
und g(y+a) ist doch immer kleiner wie x, da x=5 und g(y+a) immer kleiner wird.

Kann mir jemand sagen, wo mein Fehler liegt? Vielen vielen Dank.
Steffen Bühler Auf diesen Beitrag antworten »
RE: Funktionswert durch Umkehrfunktion.....
Zitat:
Original von CacaoDrink
Also ich hab Beispielsweise die Funktion f(x)=-4x+2 genommen.
...
Für x nehme ich Beispielsweise 5
...
Also ich weiß ja, dass das Ergebnis also y am Ende 18 sein muss.


Nein, es muß -18 sein.

Ansonsten sieht der Algorithmus in der Tat so aus, als ob er so nicht funktioniert. Kannst Du ihn mal so hinschreiben, wie Du ihn bekommen hast? Vielleicht hat sich in Deiner Beschreibung ein Verständnisfehler eingeschlichen.

Viele Grüße
Steffen
CacaoDrink Auf diesen Beitrag antworten »

Ja.. hier:
Um eine Zahl f(x) zu berechnen, wobei von f die Umkehrfunktion g bekannt sei, kann
u.U. folgendes Entwurfsprinzip verwendet werden:
i. finde größte Zweierpotenz a = 2k, so dass x &#8805; g(2k) und setze y = a
ii. dividiere a durch 2 und falls g(y+a) &#8804; x setze y += a
iii. fahre bei (ii.) fort, bis a = 0 (oder gewünschte Genauigkeit erreicht ist)
Das Ergebnis liegt dann auf y vor, d.h. f(x) = y.
Steffen Bühler Auf diesen Beitrag antworten »

Zitat:
Original von CacaoDrink
kann
u.U. folgendes Entwurfsprinzip verwendet werden:

i. finde größte Zweierpotenz a = 2k, so dass x &#8805; g(2k) und setze y = a
ii. dividiere a durch 2 und falls g(y+a) &#8804; x setze y += a


Ich nehme jetzt mal an, daß Dein seltsames "&#8805;" ein Größer-Zeichen ist und das "&#8804;" ein Kleiner-Zeichen. Und 2k wahrscheinlich 2^k.

Dann kann der Algorithmus aber m.E. nur funktionieren, wenn man nicht



fordert, sondern es sollte



gelten. Du näherst ja den Punkt der Umkehrfunktion an. Ist das dann vielleicht ein Schreibfehler in der Originalaufgabe?

Und daß negative f(x) eventuell nicht genähert werden können (wie Du es in Deinem Test versuchst), ergibt sich aus dem Algorithmus, es wird ja nur Positives aufaddiert. Daher vielleicht das rätselhaft "u.U." Aber sonst sollte es funktionieren.

Viele Grüße
Steffen
CacaoDrink Auf diesen Beitrag antworten »

Ok Dankeschön ich werde es gleich mal probieren. Hätte ihr vielleicht n Tipp, für welche Klasse von Funktionen das nicht funktionieren könnte? Ich mele mich nachher wieder, wenns (hoffentlich) geklappt hat.
Steffen Bühler Auf diesen Beitrag antworten »

Ich habe Zeit gefunden, diesen Algorithmus kurz zu programmieren, und muß Abbitte leisten: er funktioniert.

Anscheinend aber muß g(x) ein Polynom vom Grad 2 oder höher sein. Ist beispielsweise g(x)=x³, berechnet der Algorithmus die dritte Wurzel aus 5 wunderschön.

Somit lag es offenbar nur an Deinem Testbeispiel.

Viele Grüße
Steffen
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »