Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige
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
Anzeige
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
;
Anzeige
Anzeige

Infobox / Tutorial

Solver-Probleme in Excel 2007 lösen


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei mit dem Solver, die Du analysieren möchtest. Stelle sicher, dass Du Excel 2007 verwendest, da einige Funktionen in älteren Versionen nicht verfügbar sind.
  2. Setze die Zielzelle: Klicke auf die Zelle, die Du optimieren möchtest.
  3. Starte den Solver: Gehe zu Daten > Solver.
  4. Definiere Deine Parameter:
    • Setze die Zielzelle, die Du maximieren, minimieren oder auf einen bestimmten Wert setzen möchtest.
    • Gib die veränderbaren Zellen an, die der Solver anpassen soll.
  5. Starte die Berechnung: Klicke auf Lösen. Beobachte die Ergebnisse und notiere, ob der Solver ein akzeptables Ergebnis liefert.
  6. Überprüfe die Ergebnisse: Falls der Solver eine ungültige Lösung (z. B. negative Werte) ausgibt, könnte es an den Startwerten oder den Constraints liegen.
  7. Passe die Startwerte an: Wenn nötig, ändere die Werte in den veränderbaren Zellen und starte den Solver erneut.

Häufige Fehler und Lösungen

  • Laufzeitfehler 13 - Typen unverträglich: Dieser Fehler tritt häufig auf, wenn der Solver auf ungültige Werte stößt. Überprüfe die Eingabewerte und stelle sicher, dass alle Zellen die richtigen Datentypen enthalten.
  • Solver funktioniert nicht: Wenn der Solver keine Lösung findet, könnte es an zu strengen Einschränkungen oder an der Verwendung von Funktionen liegen, die nicht korrekt konfiguriert sind. Überprüfe die Constraints und versuche, sie zu lockern.
  • Negative Werte: Falls der Solver negative Werte ausgibt, überprüfe, ob die Ausgangswerte für die Optimierung sinnvoll sind. Manchmal kann es helfen, die Zielwerte schrittweise zu ändern.

Alternative Methoden

Wenn der Excel Solver nicht die gewünschten Ergebnisse liefert, kannst Du folgende alternative Methoden ausprobieren:

  • Zielwertsuche: Diese Funktion eignet sich gut, um eine bestimmte Zielzelle auf einen gewünschten Wert zu bringen, ohne den Solver zu verwenden.
  • Manuelle Anpassungen: Du kannst die Werte in den veränderbaren Zellen manuell anpassen und die Ergebnisse beobachten, um die besten Werte zu finden.
  • VBA-Makros: Erstelle ein Makro, das die Optimierungsschritte automatisiert und Dir ermöglicht, die Schritte und Ergebnisse genau nachzuvollziehen.

Praktische Beispiele

Hier sind einige Beispiele, wie Du den Solver nutzen kannst:

  • Optimierung von Produktionskosten: Angenommen, Du möchtest die Produktionskosten minimieren, indem Du die Anzahl der produzierten Einheiten variierst. Setze die Zielzelle auf die Gesamtkosten und lasse den Solver die Produktionsanzahl optimieren.
  • Finanzielle Planung: Verwende den Solver, um die beste Investitionsstrategie zu finden, indem Du Renditen maximierst und Risiken minimierst.

Tipps für Profis

  • Verwende sinnvolle Startwerte: Ein guter Startwert kann die Leistung des Solvers erheblich verbessern und dazu beitragen, dass er schneller konvergiert.
  • Erforsche das Gradientenverfahren: Verstehe, wie der Solver arbeitet, insbesondere die Algorithmen, um besser einschätzen zu können, warum er bestimmte Lösungen findet.
  • Halte Deine Formeln einfach: Komplexe Formeln können den Solver verwirren. Versuche, die Berechnungen so einfach wie möglich zu halten, um die Wahrscheinlichkeit von Fehlern zu verringern.

FAQ: Häufige Fragen

1. Warum funktioniert der Excel Solver nicht?
Der Solver kann aufgrund ungenauer Eingaben, zu strenger Constraints oder inkorrekter Daten nicht funktionieren. Überprüfe Deine Eingaben und versuche, die Bedingungen zu lockern.

2. Kann ich den Solver in Excel 2003 verwenden?
Der Solver ist in Excel 2003 verfügbar, aber einige Funktionen, die in Excel 2007 eingeführt wurden, sind möglicherweise nicht verfügbar.

3. Wie kann ich den Solver optimieren?
Du kannst den Solver optimieren, indem Du die Startwerte sinnvoll wählst, die Constraints anpasst und sicherstellst, dass die Formeln einfach und klar strukturiert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige