Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1692to1696
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Iterative Verfahren für Rückrechnung auf Annhamen

Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 12:03:57
Jens
Hallo,
ich muss Annahmen für Temperaturen machen um daraus Wärmeströme berechnen zu Können.
Aus den Wärmeströmen kann ich dann wieder auf die Temperaturen schließen.
Nun weichen die Annahmen und berechneten Werte von einander ab.
Nun müsste man die Annahmen immer so weit anpassen bis sie mit den berechneten Werten übereinstimmen.
Hat hierzu jemand eine Idee? Die Lösung wäre am besten über VBA zu realisieren.
https://www.herber.de/bbs/user/129982.xlsm

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 12:53:17
UweD
Hallo
da ist nur eine Formel triviale drin, die sich nur aus eine Zelle bezieht
B3=(A4-5)
Verstehe nicht was du meinst.
AW: Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 13:08:30
Jens
Ich bräuchte eine Code der nachfolgendes macht: (jetzt nicht auf die Inhalte in der BSp_Dateui bezogen)
Nachfolgend eine neue Datei in der es vllt. einfacher dargestellt ist.
Es geht darum itertaiv zwei Werte schritweise zu erhöhen bis die berechneten Werte 0 sind.
https://www.herber.de/bbs/user/129983.xlsm
Möchte dabei bewusst das über VBA machen und nicht über solver oder Formel.
Gruß
Anzeige
AW: Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 13:50:57
Rainer
Hallo Jens,
Das sind einfache Schleifen:

For i = Anfang_A To Ende_A Step Schrittweite_A
For j = Anfang_B To Ende_B Step Schrittweite_B
Next j
Next i
Bei größeren Bereichen würde man aber erst mal mit größerer Schrittweite drübergehen und dann im Interval weitersuchen, wenn man nicht zuviel Zeit verschwenden will.
Gruß, Rainer
AW: Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 13:57:13
jens
ok danke.
wie bekomme ich dann die Laufzeit runter? Weil des dauert schon sehr lange.
Was wäre hier sinnvoll vom Code?
oder gibt es noch eine andere /bessere Methode als mit der Schleife?
Weil ich habe da nicht nur eine Berechnung zu machen sondern es sind 100. Weil ich 100 zeilen habe.
Anzeige
Binärsuche ...
23.05.2019 14:10:07
lupo1
... ist das schnellstmögliche Annäherungsverfahren:
Angenommen, die Zahl 76.891.234 wird im Intervall 0 ... 100.000.000 gesucht. Dann benötigst Du mit:
50.000.000
75.000.000
87.500.000
81.250.000
78.125.000
76.562.500
:::
nur 28 Schritte.
AW: Binärsuche ...
23.05.2019 14:10:59
jens
und wie setze ich das um?
Zwenn hat meine Antwort 8 Sekunden später ...
23.05.2019 14:14:11
lupo1
... ebenfalls gegeben. Er hat heute ein Foto für Dich.
Zwenn hat meine Antwort 8 Sekunden später ...
23.05.2019 14:14:14
lupo1
... ebenfalls gegeben. Er hat heute ein Foto für Dich.
AW: Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 14:10:15
Zwenn
Hallo Jens,
wenn es liniare Verläufe sind, könntest Du zwei Werte berechnen und dann die Nullstelle der Graden bestimmen. Das würde für Deine 100 Zeilen dann sehr schnell gehen. Wenn es nicht linear, aber monoton steigend ist, würde ich den Vorschlag mit den Intervallen von Rainer aufgreifen und das mit einer rekursiven Funktion lösen. Intervallsprünge immer auf die Mitte des Bereiches, in dem der Wert liegen muss. Dann bekommst Du Dein Ergebnis in Log(n), was auch noch immer sehr schnell ist.
Vielleicht stellst Du einfach mal ein paar Beispielrechnungen ein. Welchem Wert willst Du Dich nähern und wie funktioniert das über A und B?
Viele Grüße,
Zwenn
Anzeige
AW: Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 14:14:29
Jens
hallo danke.
Kannst du mir vllt. die Grundlage über das Intervallen aufzeigen. Also da Grundgerüst. Das andere bekomme ich so auch nicht.
Beispielrechnung ist viel zu kompliziert als das ich das hier einstellen kann.
die Gleichung sind sehr verschachtelt
AW: Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 14:27:05
Rainer
Hallo Jens,
ich habe es doch schon geschrieben?
Als erstes Nimmst du ein Interval (Step), welches deinen Bereich in 10% Schritten durchläuft. Schreibe die Ergebnisse in eine neue Tabelle. Dann suchst du die 2 kleinsten Ergebnisse und nimmst diese als Grenze für den nächsten Schritt, wieder mit 10% Intervallen. Das machst du dann solange, bis deine gewünschte Genauigkeit erreicht ist.
Gruß, Rainer
Anzeige
Das ist dann aber nicht binär.
23.05.2019 14:31:38
lupo1
Bei meinem Beispiel im anderen Thread würde dann umständlich wie folgt ermittelt:
0
10.000.000
20.000.000
30.000.000
40.000.000
50.000.000
60.000.000
70.000.000
71.000.000
72.000.000
::
also eher 40mal als 28mal.
AW: Das ist dann aber nicht binär.
23.05.2019 14:35:42
Rainer
Hallo Lupo1,
da hast du Recht, ich habe es aber auch nicht behauptet. Bezog sich auf meinen ersten Beitrag.
Leider kennen wir die geheime Formel nicht.
Gruß, Rainer
So geheim ist das nicht
24.05.2019 08:26:18
lupo1
Du musst einfach nur die richtigen Werte mit If in einer Schleife solange einengen, bis Du genau drauf liegst.
Habe ich schon mal gemacht (finde es aber gerade nicht, sonst würde ich es zur Verfügung stellen).
Findet man aber ganz bestimmt im Netz bei Code-Beispielen.
Anzeige
AW: So geheim ist das nicht
24.05.2019 09:56:38
Rainer
Hallo Lupo1,
Ich meinte die Formel aus der Tabelle zur Ermittelung von C & D, welche gelöscht wurde. Es geht mir darum, ob denn ein monotones oder sogar lineares Verhalten zu erwarten ist oder ob es polynomisch ist. Dann ist man unter Umständen mit einer binären Eingrenzung schlecht beraten, wenn es mehrere Minima im Suchverlauf gibt. Etwas ähnliches habe ich vor Jahren bei meiner Diplomarbeit machen müssen, da ging es um Berechnungen von Materialeigenschaften anhand von Polynomen 4. Ordnung. Die Umsetzung habe ich damals in Matlab programmiert.
Gruß, Rainer
Da hast Du recht ...
24.05.2019 11:56:12
lupo1
... bei mehreren Minima kann man das Über-alles-Minimum binär nicht finden.
Anzeige
AW: Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 15:05:40
Zwenn
Hallo Jens,
für die Intervall-Lösung berechnest Du immer den Wert, der sich aus den Parametern in der Mitte Deines Intervalls ergibt. Ist das Ergebnis kleiner als der gesuchte Wert, setzt Du die Intervallgrenzen auf die obere Hälfte des aktuellen Intervalls und rufst die Funktion mit diesen Parametern aus sich selbst heraus auf (rekursiv). Ist der berechnete Wert beim nächsten Durchlauf größer, als der gesuchte Wert, muss der gesuchte Wert in der unteren Hälfte des aktuell bearbeiteten Intervalls liegen, usw. Auf diese Weise bist Du bei jedem Aufruf direkt die Hälfte eines Intervalls los und in maximal log2(n) Funktionsaufrufen beim gesuchten Werten.
Die Abbruchbedingung für die Funktionsaufrufe ist Dein Vergleichswert. Ist das berechnete Ergebnis also kleiner-gleich diesem Wert, wird die Funktion nicht erneut aufgerufen, sondern Du gibst die Lösung an die aufrufende Funktion zurück. Da sich jede aufgerufene Instanz der Funktion in ihrem Code hinter dem Selbtsaufruf befindet, wird die Lösung bis zur ersten aufrufenden Routine durchgereicht. Also an die Sub, die die rekursive Funktion als erste aufgerufen hat.
In Pseudocode sieht das prinzipiell so aus:

Function Annaehern(aUnten as Double, _
bUnten as Double, _
aOben as Double, _
bOben as Double, _
vergleichsWert as Double) as Double
Bestimme die Mitte des Intervalls zwischen den Oben- und Unten-Werten
Merke Dir die Werte der Mitte, sie bilden ggf. eine neue Intervallgrenze
Berechne für die gefundene Mitte den gesuchten Wert
Wenn berechneterWert > vergleichsWert Dann
lösung = Annaehern(aUnten, bUnten, aMitte, bMitte)
Ende Wenn
Wenn berechneterWert 
Habe das jetzt aus dem Kopf aufgeschrieben. Müsste aber in etwa so funktionieren. Der Vergleichswert müsste dann aus Deinen Spalten C oder D stammen. Was Du berechnest weiß ich natürlich nicht. Das klappt aber wie gesagt nur, wenn Du anhand des errechneten Wertes eindeutig bestimmen kannst, ob der gesuchte Wert in der unteren oder oberen Intervallhälfte liegen muss.
Viele Grüße,
Zwenn
Anzeige
AW: Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 15:10:18
Zwenn
Statt Annaehern = gesuchterWert muss da natürlich Annaehern = lösung stehen.
AW: Iterative Verfahren für Rückrechnung auf Annhamen
23.05.2019 14:00:06
UweD
Ginge es denn mit dem solver?
dan kann man ja per VBA aufrufen (hast du ja in dem ersten Teilproblem bereits gemacht)
LG UweD

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige