Hab ein Problem:
Ich habe eine sehr komplizierte Formel, die nach der Eingabe der Variablen x einen Wert berechnet.
Nun gibt es aber für diesen Wert auch einen Solltwert. Mein nächster Schritt sollte es jetzt sein, mein x so zu ermitteln, dass der Sollwert relativ genau herauskommt. Die Formel ist leider nicht umkehrbar, also muss ich wohl durch probieren meinen x Wert an den gesuchten x Wert annähern.
Wie mach ich so was? Wie würde ein (vernünftiger) Logarithmus für so etwas aussehen? Ich müsste das dann auch programmieren, daher bitte an die Rechenleistung denken. Daher ist
While y sollwert
x = x + 0,1
f(x) = y
Wend
nicht so optimal. Vielleicht kennt jemand einen besseren.
Du suchst einen Algorithmus, der für eine Formel y(x) = c das dazugehörige x ausrechnet. Das ist eine Nullstellensuche, weil Du suchst die Nullstelle für die Gleichung y(x)-c = 0.
Wenn Deine Formel y(x) „stetig“ ist, vereinfach gesagt: Bei Erhöhung von x erhöht sich auch y, dann kannst Du Intervallschachtelung bzw das Bisektionsverfahren anwenden. Nimm drei verschiedene x, und finde raus, ob c zwischen y(x1) und y(x2) oder y(x2) und y(x3) liegt. Das Intervall, in dem das gesuchte x liegen muß, teilst Du in zwei Hälften, hast wieder drei x, fängst von vorne an, bis es genau genug ist.
Wenn Du von Deiner Formel sogar eine Ableitung hast, kannst Du auch das Newton Verfahren anwenden. Suche im Netz nach „Bisektionsverfahren“ oder „Newtonverfahren“ bzw. „Nullstellensuche“
Wenn Deine Formel y(x) „stetig“ ist, vereinfach gesagt: Bei
Erhöhung von x erhöht sich auch y, …
Das ist nicht die Definition von Stetigkeit, sondern das ist „monoton wachsend“. Dann ist es echt ganz einfach, weil es dann nur eine Nullstelle gibt. Wenn die Funktion „nur“ stetig ist, kann es beliebig kompliziert werden, weil es eben auch mehrere x geben kann, für die c rauskommt. Und wenn die Funktion unstetig ist (also wilde Sprünge macht) kannst Du es ganz vergessen.
Also was weisst Du über die Funktion? Wie lange ist die Rechenzeit für eine Funktionswert-Berechnung?