Académique Documents
Professionnel Documents
Culture Documents
PRONY
C
C
C
******
Prony
Curve
Fit
* Written
By:
Scott
A.
*****************************
PARAMETER
PARAMETER
PARAMETER
Source
Code
Listing
READ
READY
******
Hill
*
PRECISION
PERFORM
InData
TO
x(41),xl(41),xu(41)
a(2000),y(2000)
wk(2200)
DIMENSION
DIMENSION
DIMENSION
DIMENSION
rprm(20)
g(1)
iwk(120)
iprm(20)
FUNCTIONS
info-0
DO
WHILE
(.TRUE.}
CALL
DOT
CALL
EVAL
AND
(obJ, x, y, a, sumt,
IF (info.EQ.0}
END
C
REAL
STATISTICAL
OPTIMIZE
In,Out
DIMENSION
DIMENSION
DIMENSION
INITIALIZE
&
r2, sumt,obJ
CHARACTER*f2
DATA
CALL
(converge=0.00001}
(itermax
= 999)
(itercon
- 3)
DOUBLE
IN
INTEGER
WORKSPACE
fen,
r2, ndv)
EXIT
DO
OPTIMIZATION
COMPLETE
--
OUTPUT
RESULTS
FORDOT
10
10 i=1,20
rprm (i) =0.0
iprm (i) -0
CONTINUE
CALL
EVAL
CALL
OutPut
(obJ,
x, y, a, sumt,
fen,
r2, ndv)
DO
rprm(3)
rprm(4)
iprm(3)
iprm(4)
C
C
C
#
IS
OF CONSTRAINTS,
MINIMIZATION
AMT
OF
SUBROUTINE
EVAL
REAL*8
REAL*8
DIMENSION
x (*)
DIMENSION
y (*), a (*)
obJ
VALUES
AND
UPPER/LOWER
BOUNDS
FOR
DESIGN
WRITE
(*,15)
READ
(*,' (A)')
FORMAT
(' Input
In
File:
FORMAT
17
WRITE
(*,17)
READ
(*,*)
ndv
FORMAT('
# of Prony
r2
Output
File:
25
(i),ndv)
(y(i)
fx)*(y(i)
fx)
obJ)/sumt
'\)
**********************************************
C FUNCTION
TO CALCULATE
VALUE
OF PRONY
************************************************
DO
Value
FUNCTION
Value
(array,
x, n)
dv
DIMENSION
20 i-2,ndv,
2
x(i)
= 500.0
x(i+l)
= -3000.0
CONTINUE
2,ndv
0.0
1.0E+25
SERIES
Terms:'\)
REAL*8
obJ
(sumt
REAL*8
'\)
ndv
- 2*ndv
+ 1
x(1)
- 150.0
xl(1)
- 0.0
xu(1)
- 1.0E+25
25 i
xl(i)
xu(i)
CONTINUE
0.0
Out
16
DO
RETURN
END
(*,16)
(*,'(A)')
('
100 I = 1,1en
fx = Value (x,a
obJ
CONTINUE
100
20
(obJ, x, y, a, sumt,
CONSTRAINTS
sumt, r2,Value
obJ, fx
iprlnt=0
mlnmax=-i
method=l
WRITE
READ
Type)
OR
nrwk=2200
nrlwk=120
ncon=0
DEFINE
INITIAL
VARIABLES
(19),
****************************************************
C
SUBROUTINE
TO EVALUATE
FUNCTION
AND
****************************************************
DO
15
END
converge
converge
Itermax
itercon
DEFINE
# OF DESIGN
VARIABLES,
DOT
OUTPUT
& WHETHER
PROBLEM
MAXIMIZATION.
C.
C
(obJ,x,
array
(*)
"
array(1)
DO
200
200
i - 2,n-I,2
dv - array (i+l)*x
Value
= Value
+ array
CONTINUE
(i)*DEXP
(dv)
END
DO
3O
30 i-3, ndv, 2
xl(i)
- -I.0E+25
xu(i)
- 0.0
CONTINUE
FILIWED
13
C****************************************
613
C SUBROUTINE
TO GET
DATA
FROM
INPUT
*****************************************
SUBROUTINE
InData(a,y,
REAL*8
CHARACTER*f2
mean,
In
len,
FILE
FORMAT(/5X,'Prony
Equation
'Bxe^(',Al,'t)
')
sumt)
630
640
sumt
a (*5 ,Y (*5
RETURN
END
Io = 0
fen - 0
sum = 0.0
sumt
- 0.0
OPEN(I,FILE-In,
STATUS-'OLD'5
500
500 i - I, 1000
READ(1,*,END=5105
CONTINUE
510
CLOSE(1,STATUS='KEEP')
DO
520
fen
DO
520
sum
mean
sum/fen
=
530
sumt
CONTINUE
a(1),y(1)
sum
CONTINUE
DO
530
1,1en
+
y(i)
1,1en
sumt
(y(i)
mean)
* (y (i)
mean5
RETURN
END
*****************************************
C SUBROUTINE
TO SEND
DATA
TO OUTPUT
*****************************************
SUBROUTINE
OutPut(obJ,x,
REAL*8
CHARACTER*f2
(2,FILE-Out,STATUS='UNKNOWN'5
0
(2,610}
(2,611)
WRITE
(2,612)
WRITE(2,6205
600
600 i
k=k+l
WRITE
CONTINUE
WRITE(2,640)
610
611
612
14
r2,iter)
x(*)
WRITE
WRITE
DO
FILE
obJ,r2
In,Out
DIMENSION
OPEN
ndv,
CHAR(228),CHAR(231)
In
150.0,500.0,CHAR(231),-1000.0,
CHAR(231),0.0,0.000001
obJ,x(1)
2, ndv-l,2
(2,630)
',AI,
FORMAT(//5X,'Sum
of the Residuals
Squared:
',
FI4.4//',F14.4//12X,'A:
',F14.6)
FORMAT(10X,'B',I2,':
',FI4.6,15X,AI,I2,':
',F14.65
FORMAT(/5X,'Correlatlon
Coefficient:
',F9.7//
5X,'#
of Iterations:',I3)
CLOSE
DIMENSION
Form:
620
k,x(i),CHAR(231),k,x(i+15
DSQRT(r2),Iter
FORMAT(/5X,'Prony
Equation
Form:
y - A + ',
AI,'Be^(',AI,'t5
,}
FORMAT(/5X,'Input
File:
',AS
FORMAT(//5X,'Initial
Value
for A: ',FI2.4/5X,
'Initial
Value
for B:',Fl2.4/SX,'Initial
Value',
' for
',A,':
',Fl2.4/5X,'Upper
Limit
for ',A,
': ',F12.4
//5X,'Convergence
Criteria:
'
,F12.10)
(2,STATUS='KEEP')