Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
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

Solver errechnet falschen Wert

Solver errechnet falschen Wert
Frank
Hallo liebes Forum,
ich komme gerade nicht weiter und hoffe dringend auf eure Hilfe. Im Anhang befindet sich eine Datei, in der der Solver verwendet wird. Der Solver funktioniert bis zur Zeile 30 - dort errechnet er plötzlich eine negative Zahl und beendet das Makro mit dem Befehl "Laufzeitfehler 13 - Typen unverträglich". Aber ich kann keinen Fehler finden.
Seltsamerweise, wenn ich im Nachgang diese Zeile versuche manuell mit dem Solver, sprich ohne Makro zu lösen, dann errechnet er erneut -15.
Nun verwende ich die Zielwertsuche und siehe da eine brauchbare Lösung. Im Nachgang verwende ich nochmals den Solver, erhält er ebenfalls die Lösung.
Nun starte ich noch einmal das Makro...alles fein bis Zeile 30 und dann wieder "Laufzeitfehler 13 - Typen unverträglich". Ich vermute irgendwas mache ich falsch.
Ich bitte um euer versiertes Auge bzw. Hilfe. Auch würde es mich interessieren, ob jemand einen Verbesserungsvorschlag zum Quellcode hat, da mir mal gesagt wurde, dass man GoTo nicht verwendet, da es den Code unübersichtlich macht. Wie umgehe ich das am Besten?
https://www.herber.de/bbs/user/73759.zip
Vielen Dank und viele Grüße
Frank
Bitte DRINGEND um Hilfe
28.02.2011 16:09:10
Frank
Anbei noch ein Bild. Man sieht wie der Solver von oben nach unten die Werte richtig löst, doch plötzlich in Zeile 30 errechnet er -15 und beendet den Code.
Ich wäre wirklich dankbar, wenn sich jemand diesem Problem widmen könnte.
https://www.herber.de/bbs/user/73771.jpg
Vielen Dank und viele Grüße
Frank
AW: Solver errechnet falschen Wert
28.02.2011 23:15:15
Uwe
Hallo, Frank,
Deine Beispiedatei "für das Forum" kann ich mit 2003 nicht öffnen. Wurden Funktionen oder/oder Eigenschaften verwendet, die erst ab 2007 verfügbar sind?
Soweit ich es Deinem Bild entnehmen kann, geht es um die Berechnung von Dehnungswerten für hochfeste Betone. Augenscheinlich gibt es wohl bei einem bezogenem Bemessungswert mueEds bei 0,221 (ksi-Wert = 0,35) in den allgemeinen Bemessungsdiagramm für C60/75 eine Verbindungspunkt zweier Kurvenabschnitte, doch es deutet der Dehnungsverlauf für espis1 auf keine Ungwöhnlichkeit hin und sollte sich zu ca 5,1 (Ablesegenauigkeit) ergeben.
Sofern die veränderten Materialgrenzwerte für hochfeste Betone (Verkleinerung der Stauchung bei Höchstlast mit steigender Betonfestigkeit; Anpassung der Parabelform der Druckspannung) in Deinen Ansätzen berücksichtigt werden, kann ich nicht entdecken, wo ein Fehler eingebaut sein könnte.
Vielleicht hilft es, in diesem kritischen Bereich die Schrittweite zu verringern, denn offentsichtlich findet er keine Lösung für mueEds =0,22, und das liegt sehr nahe bei 0,221.
Vieleicht findet sich ein Weg, wie ich die Datei doch noch einsehen kann.
Gruss,
Uwe
Anzeige
AW: Solver errechnet falschen Wert
01.03.2011 08:18:52
Frank
Guten Morgen Uwe,
da bin ich aber froh, dass sich doch jemand bereit ist mit meinem Problem zu befassen und wie es scheint zudem noch vom Fach ist :-). Ich habe gestern Abend die ganze Zeit rum probiert und der Solver gibt immer -15 aus und ich weiß nicht wieso.
Es ist ja so. Ich benötige für das bezogene Moment gerade Werte. Da man die aber nicht direkt berechnen kann, gebe ich mir die Dehnungen vor und nutze den Solver, der so lange iteriert, bis die richtige Dehung gefunden wurde. Zunächst wird die Betondehnung so lange erhöht bis ec2u überschritten wurde. Danach springt er dann in die "Stahlschleife" und verringert die Dehnung.
Es ist wirklich kurios, die Zielwertsuche liefert den Wert 5,35507162238452 für ksi=0.35, der Solver bricht nach kurzer Zeit ab und errechnet eine Stahldehnung von -15,00 und das ist das Problem.
Ich habe nochmal nachgesehen und ja ich verwende Eigenschaften die nur in Excel 2007 laufen, nämlich Wenn-Verschachtelungen größer 8. Ist es dir denn möglich mit Excel 2007 zu arbeiten? Ansonsten würde ich versuchen es auf 2003 anzupassen. Ich könnte auch ein Video machen und bspw. bei Youtube reinstellen oder ist das keine Lösung? Ich hoffe wirklich sehr, dass wir dem Problem auf die Schliche kommen.
Vielen Dank und viele Grüße,
Frank
Anzeige
AW: Solver errechnet falschen Wert
01.03.2011 10:18:01
Uwe
Hallo, Frank,
zwischen den Algorhitmen der Zielwertsuche und dem des Solvers wird es Unterschiede geben, die nicht nur die Anzahl der veränderbaren Zellen betreffen.
Der Algorithmus des EXCEL-Solver, der nach den nichtlinearen Verfahren "Generalized Reduced Gradient" arbeitet (das Suchwort liefert weitere Hinweise zum Gradienten Verfahren bei Optimierungsproblem, die ich allerdings noch nicht ausgewertet habe), scheint bei der Annäherng auf einen Punkt zu treffen, wo die nächste Veränderung der Variablien nicht nur weg von ziel führt, sonder auch gleich in einen vollkommen unbrauchbaren Wertebereich führt (Problem der mehreren Lösungen, je nach Ausgangswert).
Es kann sein, dass ich heute noch in der Lage bin, Deine Datei mit EXCEL2007 zu öffnen.
Interessehalber möchte ich Fragen, ob Du hier eine wissenschatliche Ausarbeitung die Arbeit erstellst, denn ansonsten würden doch bereits einige der berechneten Stützstellen und weitere, über den kritischen Wert hinaus gehende mueEds-Werte ausreichen, um eine Approximation der epsi-Werte zu gewinnen.
Melde mich später noch einmal und lasse die Frage weiter als "noch offen" stehen,
Gruß,
Uwe
Anzeige
AW: Solver errechnet falschen Wert
01.03.2011 11:27:16
Frank
Hallo Uwe,

ich habe die Datei nochmal verändert und minimiert, jedoch möchte ich es gern im Excel 2007 belassen. Des weiteren habe ich den Code (der noch nicht ganz fertig ist) als Bild angehangen und ein Video bei Youtube reingestellt. Eventuell können auch andere versierte Nutzer eventuell sagen, wieso der Solver dieses Ergebnis liefert. Ich weiß nicht mehr weiter.
https://www.herber.de/bbs/user/73782.jpg

Die Datei https://www.herber.de/bbs/user/73785.xlsm wurde aus Datenschutzgründen gelöscht


http://www.youtube.com/watch?v=Pz_99CYAFM4
Ja, es ist eine wissenschaftliche Ausarbeitung, genauer gesagt
Ich hoffe wir finden das Problem.
Vielen Dank und viele Grüße,
Frank
Anzeige
AW: Solver errechnet falschen Wert
01.03.2011 11:28:19
Frank
dient diese Berechnung als Vorlage für dieses Tafeln bzw. Diagramme....
AW: Solver errechnet falschen Wert
01.03.2011 14:24:41
Uwe
Hallo, Frank,
konnte mich nur kurz mit Deinen Arbeiten beschäftigen. Die theoretischen Grundlagen zur Integration des Druckspannungsdiagramm muß ich mir noch anschauen.
Deine EXCEL2007-Datei konnte ich jedoch bereits öffnen (Zusatzpaket "FileFormatConverters" von Microsoft), allerdins nur die Datei 73785, nicht die aus Deinem ersten Beitrag.
Es scheint sich zu bestätigen, dass das Gradientenverfahren an dieser Stelle mit den Ausgagnswerten zu einer fehlerhaften Lösung führt. Während ein delta-Wert 0,218 (Zielwert für mueEdS) noch zu einem Ergebnis für espis1 von +5,0313 führt, liefert bereits delta = 0,219 die -15 als Ziel.
Es wäre zu untersuchen, ob ab es zum Ziel führt, wenn man von einem anderen Startwert als 25 zum Ziel gelangt, denn auch die nachfolgenden Werte liefern keine vernünftigen Zielwerte.
Ich habe einmal die Bedingung vor der ersten SolverOK-Aniesung angesetzt, dass wenn i größer 29 wird, der Zellenwert von cells(i,4) auf 3 gesetzt wird. Dann läuft die Berechnung bis zur Zeile 47 durch. Allerdings wird vermutlich ab der Zeile 41 ein erneuter Wechsel der Ausgangsgröße erforderlich, da bei mueEds=0,32 der Dehnungswert des Stahls mit 2,174 stehen bleibt. Dieser Punkt (ksi=0,554) ist ebenfalls als markanter Punkt im Diagramm gekennzeichnet.
Soviel nur vorab als Zwischenstand.
Gruß,
Uwe
Anzeige
AW: Solver errechnet falschen Wert
01.03.2011 15:09:17
Frank
Hallo Uwe,
vielen Dank für deine Hilfe und deinen Bemühungen. Ja, das ist richtig, der Code liefert dann ab einer bestimmten Zeile nur noch 2,174 was eyd entspricht (wo es von dem elastischen in den platischen Bereich übergeht). Deshalb habe ich im letzten Beitrag geschrieben, dass der Code noch nicht ganz fertig ist. Die theoretischen Grundlagen brauchst du dir nicht unbedingt ansehen und das würde wohl auch den Zeitrahmen sprengen. Ich kann dir aber versichern, dass diese richtig sind. Es reicht wenn du die jetztige Datei öffnen konntest, die ist nicht anders als die Erste- nur auf das wesentliche beschränkt. Was machst du, dass du dich damit auskennst?
Zu den Werten: Für normalfeste Betone gilt für ksi 0,25 und 0,45 und als dritter Wert für eyd=2,174Promill
für die übrigen 0,15 und 0,35 sowie 2,174.
Ich habe zu Testzwecken ebenfalls die "Betonschleife" ausgesetzt und starte bereits mit dem Zielwert 0,22 - selbes Problem. Wenn ich aber in der Spalte D mit 25 beginne und dann die nächsten Zeilen auf die vorige beziehe, sprich D10= D9 und D11=D10 usw. dann ändert sich nach jedem Solverschritt der Startwert für die nächste Zeile und dann geht es irgendwie, aber eben nicht, wenn ich 25 als Startwert nehme. Ich könnte mich auch einfach zufrieden geben und anstatt dem Solver die Zielwertsuche verwenden, was meinst du? Oder bietet Microsoft auch einen Excelsupport an, wo ich dieses Problem hinsenden kann?
Gruß,
Frank
Anzeige
AW: Solver errechnet falschen Wert
01.03.2011 17:37:04
Uwe
Hallo, Frank,
Dein Gedanke, den vorherigen Wert als Startwert für die Suche zu benutzen, ist gut und sollte geeignet sein, das Problem auszuschalten. Eine Garantie dafür gibt es allerdings nicht.
Um es nochmals zu verdeutlichen - ich sprach es wohl am Rande an -, hier handelt es sich nicht unbedingt um ein Fehler bei den Ansätzen des Werkzeuges "Solver", sondern es besteht bei der Optimierungsmethode nach dem Gradientenverfahren durchaus die Möglichkeit, dass "unerwünsche" Ergebnisse geliefert werden.
Möglich, dass ich(*) jetzt "Eulen nach Athen" trage, doch bildlich kann man sich vereinfacht das Gradientenverfahren so vorstellen, dass man den Weg zum Gipfelpunkt (Optimum der Lösung) dadurch sucht, dass man vom aktuellen Standpunkt aus schaut, ob es in einem Umkreis R um einen herum noch ein Punkt gibt, der mit einer positive Steigung zu erreichen ist (Das Bild aus dem Quellenhinweis in Wikipedia). Der Weg wird fortgeführt augf dem Pfad des stärkten Anstieges (Gradient).
Gibt es nur einen Gipfel, führt dieses Verfahren zwangsläufig auf ein und denselben Punkt, nämlich zum Gipfelkreuz.
In einem Gebirge oder schon in einer hügligen Landschaft, kann der vermeintlich höhere Punkt allerdings bereits auf dem benachbarten Hügel/Berg, ohne das dieser Berg wirklich höher sein braucht. Das Tal zwischen beiden Punkten wird bei diesem Verfahren nicht erkannt und das Verfahren kann bewirgen, dass nun zum Gipfel eines kleinerer Berges gestürmt wird.
Daher kann es unterschiedliche Ergebnisse geben oder man erreicht Punkte, die Fehler im gewählten Algorhitmus liefern.
Bei der Lösung mit einem eigenständigen Algorithmus wird das gleich Problen zu lösen sein, den mathematisch das oben Geschribene ausgedrückt, geht es darum , mit dem Verfahren des stärksten Anstiegs (Gradient) ein Null-Minimum zu finden. Wenn in der Umgebung auch Nichtnull-Minima existieren, dann kann die Lösung gegen eines dieser Nichtnull-Minima konvergieren.
Wenn ein weitere Diskussionsbedarf besteht zu diesen Punkten besteht, würde ich vorschlagen, dass man, wenn es sich nicht um EXCEL-Themen handelt, diese abseits des Forums erörtert.
Gruß,
Uwe
Ich markiere auch weiterhin die Frage als "noch offen", da Diene Frage zum Programm zu einem Gradientenverfahren noch nicht beantwortet ist.
(*) als Bauingenieur - da Du danach gefragt hattest - daher auch mein Interesse an Deiner (fertigen) Ausarbeitung ;)
Anzeige
AW: Solver errechnet falschen Wert
01.03.2011 18:21:12
Frank
Hallo Uwe,
vielen Dank für die bildliche Erläuterung, die ich so auch deinen Verweisen entnommen habe. Wir können auch gern weiter, wenn Fragen zu Betonintegration bestehen via E-Mail klären (TOYY1@gmx.de), denn ich bin auch Bauingenieur...bzw. auch allgemein über sowas reden, ich bin da sehr interessiert daran.
Ich wäre wirklich daran interessiert, mal zu wissen was da intern bei dem Gradientenverfahren für Probleme mit diesen Start und Zielwerten entstehen, leider liegt mir zu diesen Verfahren nichts vor, was ich so in VBA umsetzen könnte. Oder ob eventuell in den Solver sehen kann, um die Zwischenschritte/ergebnisse zu erfahren?
Ich werde nun die Zielwertsuche verwenden, die ja anscheinend die richtigen Lösungen bekommt. Leider bekomme ich die Schleife mit der Zielwertsuche nicht ganz hin. Es kommt eine Fehlermeldung...Das steht bereits im Forum von heute weiter oben. Wenn du noch Tipps für mich hättest bzgl. einer Lösung dieser Thematik oder eventuell mehr zum Gradientenverfahren, wäre ich dir sehr dankbar. Du kannst mir auch schreiben.
Vielen Dank und viele Grüße
Frank
Anzeige
AW: Solver errechnet falschen Wert
01.03.2011 15:16:08
Frank
Nachtrag:
Vielleicht gibt es jemanden der das Gradientenverfahren in VBA und somit den Solver von Excel nachprogrammiert hat? So könnte man genau in der Berechnung sehen, was das Problem ist. Vielleicht sollte ich zum Gradientenverfahren einen neues Thema eröffnen?
Grüße
Frank

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige