目次ページ  前ページ   次ページ

20. ズレを扱う幾何学

20.3 円弧スベリの解析


20.3.4 円弧スベリのプログラム(G-BASIC)

Geometry_Basic Interpretor on Window
    Last Compiled in 2007-08-25
 load
file=D:\GEOMETRY\GBasicSamples\slope.txt
 list
10 REM ===  Stability of Circular Movement of Earth Slope ===
20 REM ===      revised version confirmed in 2009         ===
30 REM ===              by Prof. S.SHIMADA                ===  
40 CLG			: REM  clear graphics screen
50 DEF2PT P : DEF2ED E	: DEF2CR C
60 NT=5 		: REM  No of Points for the shape of polygonal slope 
70 DIM PT[NT],ET[NT] 
80 READ PT 		: REM Coordinates of Points
90 DATA 0 0 30 0 70 25 100 35 120 35
100 LET XMIN,YMIN,XMAX,YMAX=PT[1],PT[NT] 
110 XC=(XMAX+XMIN)/2 : XLEN=XMAX-XMIN 
120 DPWIND XC,YMAX,XLEN	: REM reserve graphics window
130 XL=30 : XR=80 	: REM Fracture Range
140 ND=20 		: REM No. of Subdivision
150 GC=1 		: REM Coherence Parameter C(t/m^2)
160 T=25 		: REM Angle of friction   T(deg)
170 GX=1.6		: REM Specific gravity    G(t/m^3)
180 DIM EC[ND+1],ES[ND+1],W[ND],BW[ND],ACX[ND],ASX[ND]
190 TANT=TAN(T) : DX=(XR-XL)/ND
200 FOR I=1 TO NT-1 : ET[I]=PT[I]@PT[I+1] : NEXT I
210 LET E0=0,200,0,-200 : X=XL : J=1 
220 FOR I=1 TO ND+1 : E1=E0+X
230 PX=E1&ET[J] : IF FLAG<>0 THEN J=J+1 : GOTO 230
240 E1=PX : EC[I]=E1 : X=X+DX 
250 NEXT I
260 P1=EC[1] : P2=EC[ND+1] : PM=(P1+P2)/2 : PD=P2-P1 
270 PD=MROT(90.,P0)*PD : RD=ABS(PD) : PD=PD/RD
280 LET ES[1],ES[ND+1]=P1,P1,P2,P2
290 DR=0.2*RD : FMIN=1000 : DL=0
300 REM ----- Search minimus safety factor changing the circle
310 FOR K=1 TO 20 
320 DL=DL+DR : SUM1=0
330 PR=PM+DL*PD : R=DIS(PR,P1) : LET C=PR,R : C=C:  F1=1
340 FOR I=2 TO ND : ES[I]=EC[I]&C : NEXT I
350 FOR I=1 TO NT-1 : E1=ET[I] : NEXT I
360 FOR I=1 TO ND+1 : E1=ES[I] : NEXT I 
370 FOR I=1 TO ND   
380 W[I]=(ABS(ES[I])+ABS(ES[I+1]))*DX*GX/2  
390 PP1=REV(ES[I]) : PP2=REV(ES[I+1]) : AT=ATN(PP2-PP1)
400 BW[I]=GC*DX+W[I]*TANT : ACX[I]=COS(AT) : ASX[I]=SIN(AT)
410 SUM1=SUM1+W[I]*ASX[I] 
420 NEXT I
430 REM ----- Iteration by Newton-Raphson Method ----
440 SUM2=0 : SUM3=0 
450 FOR I=1 TO ND
460 FF=F1*ACX[I]+TANT*ASX[I] 
470 SUM2=SUM2+BW[I]/FF : SUM3=SUM3+BW[I]*ASX[I]*TANT/FF/FF
480 NEXT I 
490 F2=F1*(1-(SUM1-SUM2)/(SUM1-SUM3)) : PRINT F2
500 IF ABS(F1-F2)>0.01 THEN F1=F2 : GOTO 440
510 IF F2>FMIN THEN GOTO 540
520 FMIN=F2 : RMIN=R : PRMIN=PR 
530 NEXT K
540 PRMIN=PRMIN : LET C=PRMIN,RMIN 
550 PRINT "Minimum Safety Factor=";FMIN
560 END
 run
 1.89958642126956
 1.84096939294065
 1.84083250265193
 1.40257352027668
 1.38029591953118
 1.38025267353241
 1.22719397927432
 1.21854682580116
 1.16278253094341
 1.1579393337889
 1.14338115025029
 1.13945784781445
 1.14452462699942
 1.14044782029094
Minimum Safety Factor= 1.13945784781445

2009.8 橋梁&都市PROJECT

前ページ  次ページ