.


:




:

































 

 

 

 


(26)




@ , (29)

@ (30)

@ . (31)

(29) (31) τ , h 1 h 2 . (29) (31) (26) (27) (28)

= D ( + ), (32)

c 0 i,j= 0, i= , j= , (33)

ck 0 ,j =f (j h 2), k= , j= , (34)

|...| , T .

(32) (34) τ, h 1 h 2 , . , [5], :

(35)

. (36)

. 2. (26) (28)

, , (35) (36) 0.25. (32) , , (32) (34)

=0.25 ( + ), (37)

c 0 i,j= 0, i= , j= , (38)

ck 0 ,j =f (j h), k= , j= , (39)

, (, ) (k + 1)∙τ, k τ .

. 3 (26) (28) t =0, t, 2t3t :

L 1 /h = L 2 /h= 4;

f (j h) =const= 1.6 ;

T / t=4.

 

 

k= 0 . k= 1 .
k= 2 . k= 3 .

 

. 3. (26) (28)

. t =0 ( ), . t =t ( ), . t =2t( ) . t =3t( )

 


3 ( )

, , , , . , - , . , [6] , , , , .., , , , , . , , , , , . , . , , , - . , , .

, ? -, () , , -, . , , (26)-(28), . 1, , . 3, - " ", , , . , , (26)-(28) . 1 , , "", , - , , , . , , , , . . , , . , 3, , " " " " , , , , , . . , , , .

, . , , , , . , , . , , , , , , , , . , .. [7] , . , [8]. , , , :

1. () : , , , (), , .

2. . () , (, ), ..

3. () . . , , , , . , , , , - .

4. . -. ( ), .

5. "" .

6. . . , .

7. . , .

8. .

, , , " ?"

4 ()

1. "-" :

= (40)

:

c (x,y, 0) = 0, x Î(0 ,+L 1), y Î[ -L 2 ,+L 2], (41)

c (0 ,y, 0) = 0, (42)

c (0 ,y,t) =f (y), y Î(-l, +l), (43)

(44)

( ) (40) (44) . 5 ( . 4 , (44)), .

1 (44)

 

. 4. 1 (44)

 

. 5. 1

 


1

01 # include <stdio.h>

02 # define SizeX (23) // X

03 # define SizeZ (12) // Z

04 # define SizeT (12) //

05 # define SizeXWin (5) // X

06 int main(void)

07 {

08 int iZ,iX,k;

09 double *Ck, *Ck1;

10 FILE *dif_dat;

11 dif_dat = fopen(" :\\ \\ \\ dif_dat.dat", "w"); //

//

12 int aX=(SizeX-SizeXWin)/2; // X

13 int bX=aX+SizeXWin; // X

14 Ck=new double [300]; // i-

//

15 Ck1=new double [300]; // (i+1)-

//

16 for (iX=0; iX<(aX-1); iX++) { //

17 *(Ck+iX)=0;

18 *(Ck1+iX)=0;

19 }

20 for (iX=(aX-1); iX<(bX+1); iX++) { //

21 *(Ck+iX)=16;

22 *(Ck1+iX)=16;

23 }

24 for (iX=(bX+1); iX<SizeX; iX++) { //

25 *(Ck+iX)=0;

26 *(Ck1+iX)=0;

27 }

28 for (iZ=1; iZ<SizeZ; iZ++) { //

29 for (iX=0; iX<SizeX; iX++) {

30 *(Ck+iX+iZ*SizeX)=0;

31 *(Ck1+iX+iZ*SizeX)=0;

32 }

33 }

//

34 for (k=0; k<SizeT; k++){

35 for (iZ=1; iZ<(SizeZ-1); iZ++)

36 for (iX=1; iX<(SizeX-1); iX++)

37 *(Ck1+iX+iZ*SizeX)=*(Ck+iX+iZ*SizeX)+0.25*(*(Ck+iX+

(iZ+1)*SizeX)+(*(Ck+iX+(iZ-1)*SizeX))+

(*(Ck+iZ*SizeX+iX+1))+(*(Ck+iZ*SizeX+

iX-1))-(*(Ck+iX+iZ*SizeX))*4);

38 for (iZ=0; iZ<SizeZ; iZ++) //

39 for (iX=0; iX<SizeX; iX++)

40 *(Ck+iX+iZ*SizeX)=*(Ck1+iX+iZ*SizeX);

41 for (iX=0; iX<(aX-1); iX++) // (44)

42 *(Ck+iX)=*(Ck1+iX+SizeX);

43 for (iX=(bX+1); iX<SizeX; iX++) // (44)

44 *(Ck+iX)=*(Ck1+iX+SizeX);

45 }

46 for (iZ=0; iZ<SizeZ; iZ++){ //

47 for (iX=0; iX<SizeX; iX++)

48 fprintf(dif_dat," %7.3f",*(Ck+iX+iZ*SizeX));

49 fprintf(dif_dat,"\n");

50 }

51 delete Ck; //

52 delete Ck1;

53 fclose(dif_dat); //

56 return 0;

57 }

:

( ) .

1 , , . X Z, Y X. . , . 1, Y=0, "" , . , , . , , , , .

11 . , () .

37, , (37), , (32) h1 = h2 = h:

= + ( + ).

D ∙τ / h 2, 0.25, .

41 44 " ". , , c (xi, 0)= c (xi, 1), i X -.

, , , , , , [1], . , , (, ).

 

2.

= (45)

D 1 ,

D 2 "-",

D 3 ,

D 4 "-",

:

c (x, 0 ,t) = 0, x Î[0 ,L 1], t Î[0, T. ], (46)

c (x,z, 0) =c 0 , x Î[0 ,L 1], z Î(0, (L 2 -l 2) * 0. 5], (47)

c (x,z, 0) =c 0 , x Î[(L 1 -l 1) * 0. 5, (L 1 +l 1) * 0. 5), z Î((L 2 -l 2) * 0. 5, (L 2 +l 2) * 0. 5], (48)

c (x, (L 2 +l 2) * 0. 5, 0) = 0, x Î[0, (L 1 -l 1) * 0. 5), (49)

c (x, (L 2 +l 2) * 0. 5, 0) = 0, x Î[(L 1 +l 1) * 0. 5), L 1), (50)

c (x,z, 0) = 0, x Î[0 ,L 1], z Î((L 2 +l 2) * 0. 5), L 2] (51)

z Î[0, L 2],(52)

z Î[0, L 2], (53)

z Î((L 2 -l 2) * 0. 5, (L 2 +l 2) * 0. 5], (54)

z Î((L 2 -l 2) * 0. 5, (L 2 +l 2) * 0. 5], (55)

x Î[0, (L 1 -l 1) * 0. 5], (56)

x Î[0, (L 1 -l 1) * 0. 5], (57)

x Î[(L 1 +l 1) * 0. 5 ,L 1], (58)

x Î[(L 1 +l 1) * 0. 5 ,L 1], (59)

T. ,

L 1 x,

L 2 Z,

l 1 ( ) x,

l 2 ( ) Z,

c 0 .

6.

( ) 2 . 8. . 7 , , . 9 . , , , , . 7-9 , ( , Z) . .

. 6. . 2

 


. 7. 2

 

. 8. 2

 

. 9. , 2

 

2

01 # include <stdio.h>

02 # define SizeX (46) // X

03 # define SizeZ (46) // Z

04 # define SizeT (128) //

05 # define SizeXWin (14) // X

06 # define SizeZWin (6) // Z

07 # define C0d (104) //

08 # define C0k (0) //

09 # define DtauD (0.625) // DtauD=D1*tau/(h*h)

10 # define DtauDW (0.0625) // DtauDW=D2*tau/(h*h) "-

// - "

11 # define DtauK (0.025) // DtauK=D3*tau/(h*h)

12 # define DtauKW (0.25) // DtauKW=D4*tau/(h*h) "-

// "

13 int main(void)

14 {

15 int iZ,iX,k;

16 double *Ck, *Ck1;

17 FILE *dif_dat;

18 dif_dat = fopen(" :\\ \\ \\ dif_dat.dat", "w");

19 if (dif_dat == NULL){

20 printf(" dif_dat.dat .\n");

21 return 1;

22 }


[1] diffusio - , .

[2] "" .

[3] , , , .

[4] k





:


: 2016-12-18; !; : 298 |


:

:

.
==> ...

1963 - | 1725 -


© 2015-2024 lektsii.org - -

: 0.116 .