2017-11-01 7 views
0

Ich versuche einfach, die Quadratwurzel einer dynamischen (sich ändernden) Variable zu finden, aber egal wie viele verschiedene Wege ich in die Gleichung einspeise, bekomme ich einen Syntaxfehler oder "die Methode SQRT (double) ist nicht definiert für den Typ main ". Ich habe dieses Problem mit einem Flow.AnyLogic (Systemdynamik) Quadratwurzelfunktion

+0

Ihre Gleichung ist richtig, aber das Argument Ihres sqrt Funktion ist keine Zahl ... Sie in die suchen müssen Variable, nicht die Gleichung – Felipe

+0

Ich kann immer noch nicht herausfinden, wo ich falsch liege. Ich habe einen Zufluss (von 3) zu einem Bestand (= Zufluss-Abfluss, mit IV = 0), der zu einer dynamischen Variable (= .3 * Aktie) geht, die dann zu einem Abfluss geht (= 4.91 * sqrt (dynamische Variable)) . wenn ich Build-Modell erhalte ich keine Fehler, aber wenn ich versuche, die Simulation zu starten, sagt Syntax-Fehler in Abfluss – sphebus

Antwort

0

Ich denke, das Problem ist grundlegender als Ihre Verwendung von sqrt, die gut in einem einfachen Modell funktioniert imitieren, was Sie sagen, Sie getan haben (dynamische Variable Wert aus einer Aktie und dann einen Fluss nehmen die sqrt dieser Dynamik Variable); siehe Screenshot unten. Ich denke, Sie müssen mehr Details bereitstellen (z. B. Screenshots Ihres Modells) und/oder versuchen, das Problem in einem möglichst einfachen Modell zu reproduzieren.

Simple model mimicking OP's model structure

mit IV = 0

Was bedeutet das?

+1

IV bedeutet wahrscheinlich Anfangswert ... so sind die Aktien zunächst gleich 0, aber das ist irrelevant für das Problem, das er hat – Felipe

0

** EDIT: siehe meine andere Antwort zuerst, ist es wahrscheinlicher, Ihr Problem

"die Methode SQRT (double) nicht definiert ist für den Typ Haupt-"

Für einige Grund ist es in "Main" für eine Quadratwurzel-Methode suchen. Die einzige Art, wie ich dies geschieht vorstellen kann, wenn man auf seine eigene self.sqrt() statt sqrt()

Wenn sqrt() verwendet, ist es nicht reparieren Sie den aktuellen Standort des Verfahrens geben könnte

Math.sqrt() 

Oder sei noch expliziter;

java.lang.Math.sqrt() 
0

Method Namen sind Groß- und Kleinschreibung "Verfahren SQRT (Doppel) für den Typ Haupt undefiniert". Sie sollten sqrt() nicht SQRT()


PS verwenden: Wenn das funktioniert, meine andere Antwort ignorieren