Ungleichheitsrestriktion

Pascal, Basic und andere nicht aufgelistete
Antworten
Georg
Beiträge: 12
Registriert: Mi Aug 01, 2018 2:31 pm

Ungleichheitsrestriktion

Beitrag von Georg » Do Aug 09, 2018 2:10 pm

Hallo zusammen,
ich bekomme mal wieder eine Fehlermeldung ausgegeben bei der Formulierung einer größer gleich Restriktion (>=1,5).
Wenn ich die Ungleichung mit Fließkommazahl angebe erscheint eine Fehlermeldung, jedoch aber nicht wenn ich die Fließkommazahl als Bruch umforme. Eine Klammer um den Bruch wird nicht akzeptiert, hier erscheint ebenfalls wieder eine Fehlermeldung. Ich frage mich nun, ob mit dem Bruch auch wirklich die 1,5 dargestellt werden?

Restriktion mit Fehlermeldung:
G(6)=-(275/(((8*X(2))/(4*X(3)))**2
& +((8*X(2))/(2*X(3)))**2
& -((8*X(2))/(4*X(3)))*((8*X(2))/(2*X(3))))**0.5)+1.5.0d0

Folgende Fehlermeldung wird ausgegeben:
error unclassifiable statement at (1)

Restriktion ohne Fehlermeldung:
G(6)=-(275/(((8*X(2))/(4*X(3)))**2
& +((8*X(2))/(2*X(3)))**2
& -((8*X(2))/(4*X(3)))*((8*X(2))/(2*X(3))))**0.5)+3/2.0d0

Quellcode:

Code: Alles auswählen

      SUBROUTINE GFUN(G,X)
      IMPLICIT NONE

      REAL*8 G(10) , X(3)
      
      
      
      G(1)= X(1)-1400.0d0
      G(2)= -X(2)+100.0d0
      G(3)= X(2)-400.0d0
      G(4)=-X(3)+2.0d0
      G(5)=-(4/3)*(0.5*X(2)-X(3))**3*3.141592654-3.141592654*(0.5*X(2)
     &     -X(3))**2*X(1)+50.0d0
      G(6)=-(275/(((8*X(2))/(4*X(3)))**2
     &     +((8*X(2))/(2*X(3)))**2
     &     -((8*X(2))/(4*X(3)))*((8*X(2))/(2*X(3))))**0.5)+1.5.0d0
      G(7)=-(275/(((12*X(2))/(4*X(3)))**2
     &     +((12*X(2))/(2*X(3)))**2
     &     -((12*X(2))/(4*X(3)))*((12*X(2))/(2*X(3))))**0.5)+1.1.0d0
      G(8)=-X(1)+0.0d0
      G(9)=-X(2)+0.0d0
      G(10)=-X(3)+0.0d0

      END

 
      REAL*8 FUNCTION FFUN(X)
      IMPLICIT NONE
	REAL*8 X(3)
      ffun =0.25942*3.141592654*X(1)*X(2)*X(3)
     &      +1+0.25942*3.141592654*X(2)**2*X(3)
     &      +(2*0.0001*X(3)*(2*3.141592654*X(2)+X(1))
     &      +0.0008*X(3)**2*(2*3.141592654*X(2)+X(1)))
     &      +0.1592*10**5*(3.141592654*X(2)**2+3.141592654*X(2)*X(1))

      END

 
Um jeglichen Rat bin ich mit Dank verbunden!

Beste Grüße
Georg

koshamo
Beiträge: 13
Registriert: Sa Aug 11, 2018 5:38 pm
Wohnort: Heidelberg

Re: Ungleichheitsrestriktion

Beitrag von koshamo » So Aug 12, 2018 7:05 pm

Ich bin kein Fortraner....

du hast als letzten Ausdruck im Term +1.5.0d0 stehen. Als Programmierer anderer Sprachen würde ich sagen, dass du eine Fließkommazahl mit zwei Punkten definierst und nutzt, was ein Problem darstellt (zumindest in Pascal, C/C++, Java, Scala, Lisp, usw.). Kann das das Problem sein? Müsste da nicht einfach +1.5d0 stehen? Bei G7 das gleiche dann bei +1.1.0d0

Antworten