• Tidak ada hasil yang ditemukan

4/15/2015 ﺑﺎﺳﻤﻪ ﺗﻌﺎﻟﯽ اﻫﺪاف 1

N/A
N/A
Protected

Academic year: 2024

Membagikan "4/15/2015 ﺑﺎﺳﻤﻪ ﺗﻌﺎﻟﯽ اﻫﺪاف 1"

Copied!
17
0
0

Teks penuh

(1)

Advanced Numerical Methods 1

ﯽﻟﺎﻌﺗ ﻪﻤﺳﺎﺑ

فاﺪﻫا نﺮﺗﺮﻓ ﻪﭽﺨﯾرﺎﺗ  نﺮﺗﺮﻓ نﺎﺑز ﯽﻧﺎﺒﻣ 

ﻪﻣﺎﻧﺮﺑ رﺎﺘﺧﺎﺳ تارﻮﺘﺳد ﯽﻓﺮﻌﻣ و ﺎﻫﺮﯿﻔﺘﻣ و هداد ﺲﻨﺟ ﻪﻣﺎﻧﺮﺑ لﺮﺘﻨﮐ سﺎﺳا ﯽﺟوﺮﺧ و يدورو ﺎﻫ لاورﺮﯾز و ﻊﺑاﻮﺗ

لواﺪﺘﻣ تﻼﮑﺸﻣ و ﻞﺋﺎﺴﻣ ﯽﺳرﺮﺑ

ﻪﻧﻮﻤﻧ ﻞﺋﺎﺴﻣ

(2)

Advanced Numerical Methods 3

ﻪﻫد رد ﻻﺎﺑ ﺢﻄﺳ ﯽﺴﯾﻮﻧ ﻪﻣﺎﻧﺮﺑ نﺎﺑز ﮏﯾ ناﻮﻨﻋ ﻪﺑ نﺮﺗﺮﻓ ﺶﯾاﺪﯿﭘ ياﺪﺘﺑا زا

1950

نﺎﺑز ﻦﯾا

ﺖﺳا ﻪﺘﺷاد يدﺎﯾز ﻪﻌﺳﻮﺗ و تاﺮﯿﯿﻐﺗ .

نﺮﺗﺮﻓ نﺎﺑز يﺎﻫ ﻪﺨﺴﻧ

 FORTRAN 1957

 FORTRAN II

 FORTRAN IV

 FORTRAN 66 (released as ANSI standard in 1966)

 FORTRAN 77 (ANSI standard in 1977)

 FORTRAN 90 (ANSI standard in 1990)

 FORTRAN 95 (ANSI standard in 1995)

 FORTRAN 2003 (latest ANSI standard version)

ﺪﻧا هﺪﺷ ﻪﺘﺷﻮﻧ نﺮﺗﺮﻓ ﺎﺑ دﻮﺟﻮﻣ ﯽﺳﺪﻨﻬﻣ يﺎﻫ ﻪﻣﺎﻧﺮﺑ زا يا هﺪﻤﻋ ﺖﻤﺴﻗ

.

ﯽﺴﯾﻮﻧ ﻪﻣﺎﻧﺮﺑ و ﻪﻠﺌﺴﻣ ﻞﺣ نآ ﻞﯿﻠﺤﺗ و ﻪﻠﺌﺴﻣ ﻖﯿﻗد ﻦﯿﯿﻌﺗ 

ﻢﺘﯾرﻮﮕﻟا ﯽﺣاﺮﻃ و ﺎﻫ هداد ﯽﻫﺪﻧﺎﻣزﺎﺳ

 ﺎﻫ هداد ﯽﻫﺪﻧﺎﻣزﺎﺳ

ﻢﺘﯾرﻮﮕﻟا ﯽﺣاﺮﻃ ترﺎﭼﻮﻠﻓ ﻪﯿﻬﺗ و ﻢﺘﯾرﻮﮕﻟا ﻪﺑ مزﻻ تﺎﯿﺋﺰﺟ ندوﺰﻓا

ﻪﻣﺎﻧﺮﺑ ﺪﮐ ﻦﺘﺷﻮﻧ

ﻪﻣﺎﻧﺮﺑ ﺖﺴﺗ و اﺮﺟا

ﻪﻌﺳﻮﺗ و يراﺪﻬﮕﻧ

(3)

Advanced Numerical Methods 5 FORTRAN

Program

FORTRAN Compiler

Libraries Link with

Libraries Executable File

Source Code Object Code Executable Code

نﺮﺗﺮﻓ نﺎﺑز ﯽﻧﺎﺒﻣ ﺎﻫﺮﯿﻐﺘﻣ و ﺎﻫ ﺖﺑﺎﺛ ،هداد ﺲﻨﺟ

نﺮﺗﺮﻓ

5 دراد ﻪﯾﺎﭘ هداد ﺲﻨﺟ عﻮﻧ :

ﺢﯿﺤﺻ راﺪﻘﻣ INTEGER

يرﺎﺸﻋا راﺪﻘﻣ

REAL

ﻂﻠﺘﺨﻣ راﺪﻘﻣ COMPLEX

ﯽﻓﺮﺣ راﺪﻘﻣ CHARACTER

ﯽﻘﻄﻨﻣ راﺪﻘﻣ LOGICAL

يﺎﻫ ﺲﻨﺟ

 INTEGER

و ﺪﻨﻫد ﯽﻣ صﺎﺼﺘﺧا هدﺎﻔﺘﺳا ياﺮﺑ ار ﺎﻫ ﺖﯾﺎﺑ زا ﯽﺼﺨﺸﻣ داﺪﻌﺗ

REAL

.

Default is: INTEGER*4and REAL*4

DOUBLE PRECISIONis same as REAL*8

(4)

Advanced Numerical Methods 7

ﺖﺑاﻮﺛ و ﺎﻫﺮﯿﻐﺘﻣ نﻼﻋا

ﯽﺘﻗو

يﺮﯿﻐﺘﻣ رد نﺮﺗﺮﻓ هدﺎﻔﺘﺳا

،دﻮﺷ ﯽﻣ ﺮﻠﯾﺎﭙﻣﺎﮐ ﻪﺑ نآ ﮏﯾ ﻞﺤﻣ ﻪﻈﻓﺎﺣ صﺎﺼﺘﺧا ﺪﻫد ﯽﻣ

. . دﻮﺷ ﯽﻣ هﺮﯿﺧذ ﻪﻈﻓﺎﺣ ﻞﺤﻣ نآ رد ﺖﺳا هﺪﺷ هداد صﺎﺼﺘﺧا ﺮﯿﻐﺘﻣ نآ ﻪﺑ ﻪﮐ يراﺪﻘﻣ ﺲﻨﺟ

ﮏﯾ ﺮﯿﻐﺘﻣ نﺎﯿﺑ هﺪﻨﻨﮐ عﻮﻧ يا هداد ﺖﺳا ﻪﮐ رد ﻞﺤﻣ ﻪﻈﻓﺎﺣ ﯽﺻﺎﺼﺘﺧا نآ

ﺮﯿﻐﺘﻣ

راﺮﻗ . دﺮﮐ نﻼﻋا ﺮﻠﯾﺎﭙﻣﺎﮐ ﻪﺑ ار ﺮﯿﻐﺘﻣ ﺮﻫ ﺲﻨﺟ ﻪﮐ ﺖﺳا مزﻻ ﻦﯾاﺮﺑﺎﻨﺑ . دﻮﺷ ﯽﻣ هداد

INTEGER :: NumValue, Sum REAL :: Velocity, Mass REAL(8) :: Time

CHARACTER(15) :: FirstName REAL DIMENSION(50) :: Vector

ﻞﺒﻗ  زا نﻼﻋا ﮏﯾ

،ﺮﯿﻐﺘﻣ مزﻻ ﺖﺳا ﻪﺑ ﻪﮐ ﻦﯾا نآ ﺮﯿﻐﺘﻣ رد ﻪﻣﺎﻧﺮﺑ ﻪﭼ يراﺪﻘﻣ ار ﺪﻫاﻮﺧ ﺖﺷاد بﻮﺧ

.ﺪﺷﺪﻫاﻮﺧﺎﻄﺧدﺎﺠﯾاﺚﻋﺎﺑﺮﯿﻐﺘﻣﮏﯾﻪﺑنﻮﮕﻤﻫﺎﻧﺮﯾدﺎﻘﻣنداد. دﻮﺷهﺪﯿﺸﯾﺪﻧا

نﺮﺗﺮﻓ نﺎﺑز ﯽﻧﺎﺒﻣ ﺢﯾﺮﺻ و ﯽﻨﻤﺿ يﺎﻫ ن ﻼﻋا 

رد

نﺮﺗﺮﻓ ﻦﯾا نﺎﮑﻣا دﻮﺟو دراد ﻪﮐ يﺮﯿﻐﺘﻣ ار نوﺪﺑ نﻼﻋا ﺲﻨﺟ نآ رد ﻪﻣﺎﻧﺮﺑ هدﺎﻔﺘﺳا دﺮﮐ

. : دﻮﺷ ﯽﻣ ﻦﯿﯿﻌﺗ نآ مﺎﻧ لوا فﺮﺣ ﻪﺑ ﻪﺟﻮﺗ ﺎﺑ ﺮﯿﻐﺘﻣ ﺲﻨﺟ ﺖﻟﺎﺣ ﻦﯾا رد

 I-N defineINTEGERvariable

 A-H, O-Z defineREALvariables

ﺎﺑ

هدﺎﻔﺘﺳا زا رﻮﺘﺳد Implicit ناﻮﺗ ﯽﻣ

ﺎﻫﺮﯿﻐﺘﻣ ار ترﻮﺻ ﻪﺑ ﯽﻨﻤﺿ نﻼﻋا دﺮﮐ :

IMPLICIT REAL (A-Z) IMPLICIT CHARACTER*2 (W) IMPLICIT DOUBLE PRECISION (D)

نﻼﻋا

ﺢﯾﺮﺻ ﯽﻣﺎﻤﺗ ﺎﻫﺮﯿﻐﺘﻣ : IMPLICIT NONE

ﺪﻫد ﯽﻣ ﺮﮐﺬﺗ ار نآ ﯽﯾﺎﻄﺧ مﺎﻐﯿﭘ ﺎﺑ ﺪﺷﺎﺑ هﺪﺸﻧ نﻼﻋا يﺮﯿﻐﺘﻣ ﺮﮔا ترﻮﺻ ﻦﯾا رد

.

(5)

Advanced Numerical Methods 9

ﺎﻫﺮﯿﻐﺘﻣ ﻪﺑ ﻪﯿﻟوا ﯽﻫد راﺪﻘﻣ

REAL :: Velocity=20.5, Mass=2.0, Weight=19.62

يﺎﻫ ﺖﺑﺎﺛ

ﺎﺑ

مﺎﻧ : ﺖﯿﻠﺑﺎﻗ

PARAMETER

REAL, PARAMETER :: Pi=3.1415927, TwoPi=2.0*Pi, Pio2=Pi/2 ﻦﯾا ﺖﺑاﻮﺛ ﻞﺑﺎﻗ ﺮﯿﯿﻐﺗ ﺪﻨﺘﺴﯿﻧ .

ﯽﺿﺎﯾر تﺎﯿﻠﻤﻋ

ﺖﻣﻼﻋ ﻊﺑﺎﺗ

**

ناﻮﺗ

*

بﺮﺿ

/

ﻢﯿﺴﻘﺗ

+

ﻊﻤﺟ

-

ﻖﯾﺮﻔﺗ

نﺮﺗﺮﻓ نﺎﺑز ﯽﻧﺎﺒﻣ ﯽﺿﺎﯾر تﺎﯿﻠﻤﻋ 

B**2-4.0*A*C 9.0/4.0  2.25 9/4  2

تﺎﯿﻠﻤﻋ مﺪﻘﺗ ﺪﻋاﻮﻗ

ﺖﺴﺨﻧ ﻞﻤﻋ ﻪﺑ ناﻮﺗ مﺎﺠﻧا ﯽﻣ دﻮﺷ . ﻪﭽﻧﺎﻨﭼ ﺶﯿﺑ زا ﮏﯾ ناﻮﺗ ﺖﺸﭘ ﻢﻫﺮﺳ راﺮﻗ ﺪﻧﺮﯿﮔ ﻞﻤﻋ

ﻪﺑ .دﻮﺷﯽﻣمﺎﺠﻧاﭗﭼﻪﺑﺖﺳارزانﺪﻧﺎﺳرناﻮﺗ

ﺲﭘ زا

،ناﻮﺗ مﺪﻘﺗ تﺎﯿﻠﻤﻋ ﺎﺑ بﺮﺿ و ﻢﯿﺴﻘﺗ ﺖﺳا . رد ﻞﻤﻋ يﺎﻫ بﺮﺿ و ﻢﯿﺴﻘﺗ ﯽﻟاﻮﺘﻣ

ﻞﻤﻋ .دﻮﺷ ﯽﻣمﺎﭽﻧاﺖﺳارﻪﺑﭗﭼزاﻢﯿﺴﻘﺗﺎﯾ وبﺮﺿ

ﻞﻤﻋ ﻊﻤﺟ و ﻢﯿﺴﻘﺗ رد ﺮﺧآ ﺮﺳ مﺎﺠﻧا دﻮﺷ ﯽﻣ . ﺐﯿﺗﺮﺗ يﺎﻫ ﻞﻤﻋ ﻊﻤﺟ و ﺎﯾ ﻖﯾﺮﻔﺗ ﺰﯿﻧ زا ﭗﭼ

ﻪﺑ .ﺖﺳاﺖﺳار

ﺎﺑ هدﺎﻔﺘﺳا زا ﺰﺘﻧاﺮﭘ ناﻮﺗ ﯽﻣ مﺪﻘﺗ يدﺎﻋ تﺎﯿﻠﻤﻋ ار ﺮﯿﯿﻐﺗ داد .

(6)

Advanced Numerical Methods 11

ﯽﺿﺎﯾر ﻊﺑاﻮﺗ

ﻊﺑﺎﺗ مﺎﻧ ﻊﺑﺎﺗ رﺎﮐ حﺮﺷ

ABS(x)

ﻖﻠﻄﻣ رﺪﻗ

COS(x), SIN(x),Tan(x)

(نﺎﯾدار ﺐﺴﺣ ﺮﺑx) ﯽﺗﺎﺜﻠﺜﻣ ﻊﺑاﻮﺗ

INT(x)

x ﯽﻘﯿﻘﺣ ﺖﻤﺴﻗ

FLOOR(x)

X يوﺎﺴﻣ ﺎﯾ ﺮﺘﮑﭼﻮﮐ ﺢﯿﺤﺻ دﺪﻋ ﻦﯾﺮﺘﮔرﺰﺑ

MOD(x,y)

y ﺮﺑx ﺢﯿﺤﺻ

EXP(x)

ناﻮﺗ ﻊﺑﺎﺗ

LOG(x)

ﯽﻌﯿﺒﻃ ﻢﺘﯾرﺎﮕﻟ

SQRT(x)

رﺬﺟ

MAX or MIN(x1,…,x2)

ﻢﻤﯿﻨﯿﻣ و ﻢﻤﯾﺰﮐﺎﻣ

نﺮﺗﺮﻓ نﺎﺑز ﯽﻧﺎﺒﻣ يا ﻪﻄﺑار تارﺎﺒﻋ  )

Relational Expressions (

يا ﻪﻄﺑار ﻢﺋﻼﻋ ﻪﻄﺑار

.LT. or <

زا ﺖﺳاﺮﺗ ﮏﭼﻮﮐ

.LE. or <=

زا ﺖﺳا يوﺎﺴﻣ ﺎﯾﺮﺗ ﮏﭼﻮﮐ

.EQ. or ==

ﺎﺑ ﺖﺳا يوﺎﺴﻣ

.NE. or /=

ﺎﺑ ﺖﺳا يوﺎﺴﻣ ﺎﻧ

.GT. or >

زا ﺖﺳاﺮﺗ گرﺰﺑ

.GE. or >=

زا ﺖﺳا يوﺎﺴﻣ ﺎﯾﺮﺗ گرﺰﺑ

 ﺪﻨﺘﺴﻫ ﻪﺴﯾﺎﻘﻣ ﻞﺑﺎﻗ ﺰﯿﻧ ﯽﻓﺮﺣ يﺎﻫ ﻪﺘﺷر .

 ود ترﺎﺒﻋ يدﺪﻋ ﺎﯾ ﺮﯿﻏ يدﺪﻋ ﺎﺑ ﺮﮕﯾﺪﮑﯾ ﻪﺴﯾﺎﻘﻣ هﺪﺷ ﺎﺗ مﻮﻠﻌﻣ دﻮﺷ

ﻪﮐ . ﻂﻠﻏ ﺎﯾ ﺖﺳا ﺢﯿﺤﺻ ﯽﺑﺎﺨﺘﻧا ﻪﻄﺑار

(7)

Advanced Numerical Methods 13

ﯽﻘﻄﻨﻣ تارﺎﺒﻋ

)

Logical Expressions (

،ﺮﯾدﺎﻘﻣ

.TRUE.

ﺎﯾ

.FALSE.

ﺪﻨﻫاﻮﺧ دﻮﺑ .

ﯽﻘﻄﻨﻣ ﺖﻣﻼﻋ لﺎﺜﻣ مﻮﻬﻔﻣ

.AND. A .AND. B ﯽﻘﻄﻨﻣ ﯽﻔﻄﻋ ﺐﯿﮐﺮﺗ

.OR. A .OR. B ﯽﻘﻄﻨﻣ ﯽﻠﺼﻓ ﺐﯿﮐﺮﺗ

.NEQV. A .NEQV. B ﯽﻘﻄﻨﻣ يزرا ﻢﻫ مﺪﻋ

.EQV. A .EQV. B ﯽﻘﻄﻨﻣ يزرا ﻢﻫ

.NOT. .NOT. A ﯽﻘﻄﻨﻣ ﯽﻔﻧ

نﺮﺗﺮﻓ نﺎﺑز ﯽﻧﺎﺒﻣ بﺎﺴﺘﻧا ﻪﻠﻤﺟ  )

Assignments Statement (

دور ﯽﻣ رﺎﮐ ﻪﺑ ﺪﺷﺎﺑ مزﻻ ﻪﮐ ﺎﺟﺮﻫ رد ﺎﻫﺮﯿﻐﺘﻣ ﻪﺑ يﺮﯾدﺎﻘﻣ بﺎﺴﺘﻧا ياﺮﺑ بﺎﺴﺘﻧا ﻪﻠﻤﺟ .

INTEGER :: Number, Term

REAL :: Xcoordinate,Ycoordinate CHARACTER (5)::String

! Assignments Statement Xcoordinate = 5.23

Ycoordinate = sqrt(25.0) Number=17

Term = Number / 3 + 2

Xcoordinate = 2.0 * Xcoordinate String = ”alpha”

(8)

Advanced Numerical Methods 15

يدورو

/ ﯽﺟوﺮﺧ )

List-Directed I/O (

هدﺎﺳ ﺖﺳا ﺮﯾز ﻞﮑﺷ ﻪﺑ ﯽﺟوﺮﺧ ﻪﺑ ﺎﻫ هداد لﺎﺳرا ﺖﻟﺎﺣ ﻦﯾﺮﺗ :

PRINT*, “Enter a float and an integer:”

READ*, x, j

PRINT*, “float = “, x, “ integer = “, j

WRITE (*,*) “Enter a float and an integer:”

READ (*,*) x, j

WRITE (*,*), “float = “, x, “ integer = “, j

 ﯽﻟﺎﺧ ﯽﺟوﺮﺧ ﻂﺧ ﮏﯾ دﺎﺠﯾا ياﺮﺑ :

WRITE (*,*) PRINT*

نﺮﺗﺮﻓ نﺎﺑز ﯽﻧﺎﺒﻣ ﻪﻣﺎﻧﺮﺑ ﻞﮑﺷ و ﺐﯿﮐﺮﺗ 

ﻪﻣﺎﻧﺮﺑ ﺮﺘﯿﺗ

)

Heading (

ﺎﻫ ﻒﯾﺮﻌﺗ و تﺎﻧﻼﻋا ﺖﻤﺴﻗ

)

Specification part (

ﻪﻣﺎﻧﺮﺑ ﯽﯾاﺮﺟا ﺖﻤﺴﻗ

)

Subprogram part (

ﻪﻣﺎﻧﺮﺑ ﯽﻧﺎﯾﺎﭘ ﻪﻠﻤﺟ

)

END PROGRAM statement

(

(9)

Advanced Numerical Methods 17

ﻪﻣﺎﻧﺮﺑ ﻞﮑﺷ و ﺐﯿﮐﺮﺗ

PROGRAM name !heading

!

!specification part IMPLICIT NONE

REAL :: Xcoordinate,Ycoordinate, Hight, Velocity,&

Time

INTEGER :: Number, Term CHARACTER (5)::String

!

!execution part Xcoordinate = 5.23

Ycoordinate = sqrt(25.0)

Number=17; Term = Number / 3 + 2 Xcoordinate = 2.0 * Xcoordinate String = ”alpha”

END PROGRAM name !end of program

نﺮﺗﺮﻓ نﺎﺑز ﯽﻧﺎﺒﻣ ﻪﻣﺎﻧﺮﺑ ﻞﮑﺷ و ﺐﯿﮐﺮﺗ 

PROGRAM circle_area IMPLICIT NONE

!reads a value representing the radius of a circle,

!then calculates and writes out the area of the circle.

REAL :: radius, area

REAL, PARAMETER :: pi=3.141592 READ (5,*) radius

area = pi*radius*radius !calculate area WRITE (6,*) area

END PROGRAM circle_area

(10)

Advanced Numerical Methods 19

ﻪﻣﺎﻧﺮﺑ ﻞﮑﺷ و ﺐﯿﮐﺮﺗ

PROGRAM circle_area IMPLICIT NONE

!reads a value representing the radius of a circle,

!then calculates and writes out the area of the circle.

REAL :: radius, area

REAL, PARAMETER :: pi=3.141592 READ (5,*) radius

area = pi*radius*radius !calculate area WRITE (6,*) area

END PROGRAM circle_area

ﯽﻟﺮﺘﻨﮐ ﻦﯿﻣاﺮﻓ ﯽﻃﺮﺷ يﺎﻫرﺎﺘﺧﺎﺳ  )

IF, IF-ELSE, … (

CASE

ﻪﻘﻠﺣ

) يﺎﻫرﺎﺘﺧﺎﺳ DO, DO WHILE

(

CONTINUE

يا ﻪﺧﺎﺷ تارﺎﺒﻋ

GOTO

PAUSE

STOP

CALL

RETURN

END

(11)

Advanced Numerical Methods 21

ﯽﻃﺮﺷ يﺎﻫرﺎﺘﺧﺎﺳ

رﺎﺘﺧﺎﺳ

هدﺎﺳ IF

Syntax: IF (logical_expression) statement

ﻦﮐ رﻮﺒﻋ طﺮﺷ وﺮﯿﭘ ﻪﻠﻤﺟ زا ﻪﻧ ﺮﮔا و ﻦﮐ اﺮﺟا ار طﺮﺷ وﺮﯿﭘ ﻪﻠﻤﺟ ،دﻮﺑ راﺮﻗﺮﺑ ﯽﻘﻄﻨﻣ طﺮﺷ ﺮﮔا .

Example: IF (Key.LT.0) x=0

Syntax: IF (logical_expression) THEN statement-sequence

END IF

Key < 0 no

yes x=0

ﻪﻣﺎﻧﺮﺑ ﯽﺑﺎﺨﺘﻧا ياﺮﺟا ﯽﻃﺮﺷ يﺎﻫرﺎﺘﺧﺎﺳ 

رﺎﺘﺧﺎﺳ

IF THEN ELSE

Syntax: IF (logical_expression) THEN statement1(s)

ELSE

statement2(s) ENDIF

Example: IF (Key.EQ.0) THEN X=X+1

ELSE X=X+2 ENDIF

Key = 0 no

yes x=x+1

x=x+2

(12)

Advanced Numerical Methods 23

رﺎﺘﺧﺎﺳ

IF ELSE IF

Syntax: IF (logical_expr1) THEN statement1(s)

ELSE IF (logical_expr2) THEN statement2(s)

ELSE

statement3(s) ENDIF

Example:

10 IF (KSTAT.EQ.1) THEN CLASS=‘FRESHMAN’

ELSE IF (KSTAT.EQ.2) THEN CLASS=‘SOPHOMORE’

ELSE IF (KSTAT.EQ.3) THEN CLASS=‘JUNIOR’

ELSE IF (KSTAT.EQ.4) THEN CLASS=‘SENIOR’

ELSE

CLASS=‘UNKNOWN’

ENDIF

KEY= 1 no

yes X=X+1

X=X+2 KEY= 2

KEY= N no

X=X+N yes

yes

no X=-1

ﻪﻣﺎﻧﺮﺑ رد راﺮﮑﺗ تﺎﯿﻠﻤﻋ ﻦﯿﻌﻣ داﺪﻌﺗ ﻪﺑ راﺮﮑﺗ 

) ( DO

ﻪﺑ ﻪﻘﻠﺣ ﻪﻧﺪﺑ و دﻮﺷ ﯽﻣ ﻪﺘﺧﺎﺳ ﻪﻘﻠﺣ هﺪﻧرﺎﻤﺷ ﮏﯾ زا هدﺎﻔﺘﺳا ﺎﺑ ﻪﻘﻠﺣ ،راﺮﮑﺗ عﻮﻧ ﻦﯾا رد ددﺮﮔ ﯽﻣ راﺮﮑﺗ ،دﻮﺷ ﯽﻣ لﺮﺘﻨﮐ هﺪﻧرﺎﻤﺷ راﺪﻘﻣ ﺎﺑ ﻪﮐ تﺎﻌﻓد داﺪﻌﺗ .

ﯽﻘﻄﻨﻣ ﻂﯾاﺮﺷ نﺪﺷ ﻖﻘﺤﻣ ترﻮﺻ رد راﺮﮑﺗ

)

WHILE DO (

دﻮﺸﯿﻣ دﺎﺠﯾا ،راﺮﮑﺗ طﺮﺷ ﺎﯾ ،ﯽﻘﻄﻨﻣ ترﺎﺒﻋ ﮏﯾ زا هدﺎﻔﺘﺳا ﺎﺑ ﻪﻘﻠﺣ ،راﺮﮑﺗ ﻦﯾا رد .

رد .ﺖﺳا ﻪﻘﻠﺣ ﻪﻧﺪﺑ تﻼﻤﺟ ياﺮﺟا هﺪﻨﻨﮐ ﻦﯿﯿﻌﺗ ﯽﻘﻄﻨﻣ ترﺎﺒﻋ نآ ترﻮﺻ ﻦﯾا

(13)

Advanced Numerical Methods 25

ﻦﯿﻌﻣ داﺪﻌﺗ ﻪﺑ راﺮﮑﺗ

)

( DO

Syntax: DO control-variable=initial-value,limit,stepsize statement-sequence

END DO

DO 100 K=2,10,2 PRINT*,A(K) 100 END DO

DO 100 K=2,10,2 PRINT*,A(K) 100 CONTINUE

SUM=0

READ *, Number DO I=1,Number

Sum=Sum+I END DO

ﻪﻣﺎﻧﺮﺑ رد راﺮﮑﺗ تﺎﯿﻠﻤﻋ ﻮﺗ رد ﻮﺗ راﺮﮑﺗ 

INTEGER:: I,J,K

DO I=1,3

DO J=1, 3 DO K=1, 3

PRINT *, I+J+K END DO

END DO

END DO

(14)

Advanced Numerical Methods 27

ﯽﻘﻄﻨﻣ ﻂﯾاﺮﺷ نﺪﺷ ﻖﻘﺤﻣ ترﻮﺻ رد راﺮﮑﺗ

)

WHILE DO (

Syntax: WHILE (logical_expression) DO statement-sequence

END WHILE

READ*,R

WHILE (R.GE.0) DO VOL=2*PI*R**2*CLEN READ*,R

END WHILE

ﺮﮕﯾد هﻮﯿﺷ)

دﻮﺷ ﯽﻣ اﺮﺟا ﺮﮕﯾد رﺎﺑ ﮏﯾ ﻞﻗاﺪﺣ ﻪﻘﻠﺣ ﻪﻧﺪﺑ (.

Syntax: DO

statement-sequence

IF (logical_expression) EXIT (CYCLE) END DO

ﺎﻫ لاورﺮﯾز و ﻊﺑاﻮﺗ زا هدﺎﻔﺘﺳا ﺎﺑ ﯽﺴﯾﻮﻧ ﻪﻣﺎﻧﺮﺑ ﻊﺑﺎﺗ 

) Function (

ﺪﻧادﺮﮔ ﯽﻣ زﺎﺑ ﺖﺳا هﺪﻧاﻮﺧاﺮﻓ ار نآ ﻪﮐ يا ﻪﻣﺎﻧﺮﺑ ﻪﺑ ار راﺪﻘﻣ ﮏﯾ.

ﺪﻧادﺮﮔ ﯽﻣ زﺎﺑ ﻊﺑﺎﺗ مﺎﻧ ﻖﯾﺮﻃ زا ار دﻮﺧ راﺪﻘﻣ ﻊﺑﺎﺗ.

دﻮﺷ ﯽﻣ هﺪﻧاﻮﺧاﺮﻓ ترﺎﺒﻋ ﮏﯾ رد نآ مﺎﻧ زا هدﺎﻔﺘﺳا ﺎﺑ ﻊﺑﺎﺗ.

لاورﺮﯾز

)

Subroutine (

ﺪﻧادﺮﮔ ﯽﻣ ﺮﺑ ار راﺪﻘﻣ ﮏﯾ زا ﺶﯿﺑ ﺐﻠﻏا.

ﻖﯾﺮﻃ زا ﺖﺳا هﺪﻧاﻮﺧاﺮﻓ ار لاورﺮﯾز ﻪﮐ يا ﻪﻣﺎﻧﺮﺑ ﻪﺑ هﺪﺷ هﺪﻧادﺮﮔزﺎﺑ ﺮﯾدﺎﻘﻣددﺮﮔ ﯽﻣ لدﺎﺒﺗ لاور ﺮﯾز رد ﻪﺘﻓر رﺎﮑﺑ يﺎﻫﺮﺘﻣارﺎﭘ .

رﻮﺘﺳد ﻖﯾﺮﻃ زا لاور ﺮﯾز  دﻮﺷ ﯽﻣ ﯽﻧاﻮﺧﺮﻓCALL

.

(15)

Advanced Numerical Methods 29

ﻊﺑﺎﺗ رﺎﺘﺧﺎﺳ

)

Function (

Syntax: [type] FUNCTION fname(p1,p2, … pN)

EXAMPLE:

REAL FUNCTION fahrenheit (c) REAL:: c

fahrenheit = (9.0/5.0)*c + 32.0 ! Convert Celsius to fahrenheit END FUNCTION fahrenheit

USE: f = fahrenheit (0.0)

دﻮﺷ نﻼﻋا ﺪﯾﺎﺑ ﺖﺳا هﺪﻧاﻮﺧاﺮﻓ ار ﻊﺑﺎﺗ ﻪﮐ يا ﻪﻣﺎﻧﺮﺑ رد ﻊﺑﺎﺗ مﺎﻧ  .

REAL :: fahrenheit

ﺎﻫ لاورﺮﯾز و ﻊﺑاﻮﺗ زا هدﺎﻔﺘﺳا ﺎﺑ ﯽﺴﯾﻮﻧ ﻪﻣﺎﻧﺮﺑ ﻊﺑﺎﺗ رﺎﺘﺧﺎﺳ 

) Function (

يا ﻪﻠﻤﺟ ﮏﺗ ﻊﺑاﻮﺗ ﻒﯾﺮﻌﺗ ياﺮﺑ هﺎﺗﻮﮐ و ﻊﯾﺮﺳ شور

PROGRAM MAIN REAL A,B,C

FUNC(X)=A*X**2-B*X+C ...program...

ANS=FUNC(4.2)+1.2 ...

END PROGRAM MAIN

(16)

Advanced Numerical Methods 31

لاورﺮﯾز رﺎﺘﺧﺎﺳ

)

Subroutine (

Syntax: SUBROUTINE fname(p1,p2, … pN)

EXAMPLE:

SUBROUTINE temp_conversion(celsius, fahrenheit) REAL:: celsius, fahrenheit

fahrenheit = (9.0/5.0)*celsius + 32.0 END SUBROUTINE temp_conversion USE: CALL temp_conversion(c, f)

ﺖﺴﯿﻧ ﯽﻘﯿﻘﺣ يﺎﻫﺮﺘﻣارﺎﭘ و ﯽﮕﺘﺧﺎﺳ يﺎﻫﺮﺘﻣارﺎﭘ مﺎﻧ ندﻮﺑ ﯽﮑﯾ ﻪﺑ يزﺎﯿﻧ  .

ﺎﻫ لاورﺮﯾز و ﻊﺑاﻮﺗ زا هدﺎﻔﺘﺳا ﺎﺑ ﯽﺴﯾﻮﻧ ﻪﻣﺎﻧﺮﺑ ﺎﻫ لاورﺮﯾز و ﻊﺑاﻮﺗ يﺮﯿﮔ راﺮﻗ نﺎﮑﻣ 

PROGRAM MAIN

...program body...

END

REAL FUNCTION AVG3(A,B,C) ...function body...

END

SUBROUTINE AVG3S(A,B,C,AV) ...subroutine body...

END

(17)

Advanced Numerical Methods 33 PROGRAMConsole1

IMPLICIT NONE

REAL:: xl, xu, es, xr, ea, Bisection INTEGER:: imax, iter

es=1.e-6; imax=100

! Initial Guess xl=0.0; xu=3.0

!xr=xl;ea=100.0

! Call Function Bisection

xr=Bisection(xl,xu,es,imax,xr,iter,ea) WRITE(*,*), "The root of equation is = ", xr PAUSE

END PROGRAM Console1

!

FUNCTIONBisection(xl, xu, es, imax, xr, iter, ea) IMPLICIT NONE

REAL:: xl, xu, es, xr, ea, Func, Bisection, x, xrold, test INTEGER:: imax, iter

iter=0 DO xrold=xr

xr=(xl+xu)/2.0 iter=iter+1

لﺎﺜﻣ : ندﺮﮐ ﻒﺼﻧ شور ﻂﺳﻮﺗ ﯽﺑﺎﯾ ﻪﺸﯾر

IF(xr/= 0.0) THEN

ea=ABS((xr-xrold)/xr)*100 END IF

test=Func(xl)*Func(xr) IF(test < 0.0) THEN

xu=xr

ELSE IF (test > 0.0) THEN xl=xr

ELSE ea=0.0 END IF

IF(ea<es .OR. iter>=imax) EXIT END DO

Bisection=xr

WRITE(*,*), "The number of iteration is = ", iter WRITE(*,*), "The percent of relative error is = ", ea END FUNCTIONBisection

!

REAL FUNCTION Func(x) IMPLICIT NONE

Referensi

Dokumen terkait