.


:




:

































 

 

 

 


I-

26 Ck1=new double [(SizeX+1)*(SizeZ+1)]; //

// (i+1)-

27 //

28 for (iX=0; iX<SizeX+1; iX++) { // " () "

29 *(Ck+iX)=0;

30 *(Ck1+iX)=0;

31 }

32 for (iZ=1; iZ<aZ+1; iZ++) { //

33 for (iX=0; iX<SizeX+1; iX++) {

34 *(Ck+iZ*(SizeX+1)+iX)=C0d;

35 *(Ck1+iZ*(SizeX+1)+iX)=C0d;

36 }

37 }

38 for (iZ=aZ+1; iZ<bZ+1; iZ++) { //

39 for (iX=aX; iX<bX+1; iX++) {

40 *(Ck+iZ*(SizeX+1)+iX)=C0d;

41 *(Ck1+iZ*(SizeX+1)+iX)=C0d;

42 }

43 }

44 for (iZ=aZ+1; iZ<bZ+1; iZ++) { //

45 for (iX=0; iX<aX; iX++) {

46 *(Ck+iZ*(SizeX+1)+iX)=C0k;

47 *(Ck1+iZ*(SizeX+1)+iX)=C0k;

48 }

49 }

50 for (iZ=aZ+1; iZ<bZ+1; iZ++) { //

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

52 *(Ck+iZ*(SizeX+1)+iX)=C0k;

53 *(Ck1+iZ*(SizeX+1)+iX)=C0k;

54 }

55 }

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

57 for (iX=0; iX<SizeX+1; iX++) {

58 *(Ck+iZ*(SizeX+1)+iX)=C0k;

59 *(Ck1+iZ*(SizeX+1)+iX)=C0k;

60 }

61 }

62 //

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

64 for (iZ=1; iZ<aZ-1; iZ++) //

65 for (iX=1; iX<SizeX; iX++)

*(Ck1+iX+iZ*(SizeX+1))=*(Ck+iX+iZ*(SizeX+1))+DtauD*

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

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

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

66 for (iX=1; iX<aX+1; iX++) // ,

// "-"

*(Ck1+iX+(aZ-1)*(SizeX+1))=*(Ck+iX+(aZ-1)*(SizeX+1))+DtauDW*

(*(Ck+iX+aZ*(SizeX+1))+(*(Ck+iX+(aZ-2)*(SizeX+1)))+(*(Ck+

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

iX+(aZ-1)*(SizeX+1)))*4);

67 for (iX=aX+1; iX<bX; iX++) // , (

// 66)

*(Ck1+iX+(aZ-1)*(SizeX+1))=*(Ck+iX+(aZ-1)*(SizeX+1))+DtauD*

(*(Ck+iX+aZ*(SizeX+1))+(*(Ck+iX+(aZ-2)*(SizeX+1)))+(*(Ck+

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

iX+(aZ-1)*(SizeX+1)))*4);

68 for (iX=bX; iX<SizeX; iX++) // ,

"-" ( 67)

*(Ck1+iX+(aZ-1)*(SizeX+1))=*(Ck+iX+(aZ-1)*(SizeX+1))+DtauDW*

(*(Ck+iX+aZ*(SizeX+1))+(*(Ck+iX+(aZ-2)*(SizeX+1)))+(*(Ck+

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

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

69 for (iZ=aZ; iZ<bZ+1; iZ++) // ,

// "-"

*(Ck1+aX+1+iZ*(SizeX+1))=*(Ck+aX+1+iZ*(SizeX+1))+DtauDW*

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

(*(Ck+iZ*(SizeX+1)+aX+2))+(*(Ck+iZ*(SizeX+1)+aX))-(*(Ck+aX+

1+iZ*(SizeX+1)))*4);

70 for (iZ=aZ; iZ<bZ+1; iZ++) // ,

// "-"

*(Ck1+bX-1+iZ*(SizeX+1))=*(Ck+bX-1+iZ*(SizeX+1))+DtauDW*

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

(*(Ck+iZ*(SizeX+1)+bX))+(*(Ck+iZ*(SizeX+1)+bX-2))-(*(Ck+

bX-1+iZ*(SizeX+1)))*4);

71 for (iZ=aZ; iZ<bZ+1; iZ++) //

for (iX=aX+2; iX<bX-1; iX++)

*(Ck1+iX+iZ*(SizeX+1))=*(Ck+iX+iZ*(SizeX+1))+DtauD*

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

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

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

72 for (iX=1; iX<aX+1; iX++) // ,

// "-"

*(Ck1+iX+(bZ+1)*(SizeX+1))=*(Ck+iX+(bZ+1)*(SizeX+1))+DtauKW*

(*(Ck+iX+(bZ+2)*(SizeX+1))+(*(Ck+iX+bZ*(SizeX+1)))+(*(Ck+(bZ+1)*

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

(*(Ck+iX+(bZ+1)*(SizeX+1)))*4);

73 for (iX=aX+1; iX<bX; iX++) // , (

// 72)

*(Ck1+iX+(bZ+1)*(SizeX+1))=*(Ck+iX+(bZ+1)*(SizeX+1))+DtauK*

(*(Ck+iX+(bZ+2)*(SizeX+1))+(*(Ck+iX+bZ*(SizeX+1)))+(*(Ck+

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

(*(Ck+iX+(bZ+1)*(SizeX+1)))*4);

74 for (iX=bX; iX<SizeX; iX++) // ,

// "-"

*(Ck1+iX+(bZ+1)*(SizeX+1))=*(Ck+iX+(bZ+1)*(SizeX+1))+DtauKW*

(*(Ck+iX+(bZ+2)*(SizeX+1))+(*(Ck+iX+bZ*(SizeX+1)))+(*(Ck+

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

iX+(bZ+1)*(SizeX+1)))*4);

75 for (iZ=bZ+2; iZ<SizeZ; iZ++) //

76 for (iX=1; iX<SizeX; iX++)

*(Ck1+iX+iZ*(SizeX+1))=*(Ck+iX+iZ*(SizeX+1))+DtauK*

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

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

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

77 for (iZ=0; iZ<SizeZ+1; iZ++) // (i+1)-

i-

78 for (iX=0; iX<SizeX+1; iX++)

79 *(Ck+iX+iZ*(SizeX+1))=*(Ck1+iX+iZ*(SizeX+1));

80 for (iX=0; iX<aX; iX++) { //

// :

81 *(Ck+iX+aZ*(SizeX+1))=*(Ck1+iX+(aZ-1)*(SizeX+1)); //

// "-",

82 *(Ck+iX+bZ*(SizeX+1))=*(Ck1+iX+(bZ+1)*(SizeX+1)); //

// "-"

83 }

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

// :

85 *(Ck+iX+aZ*(SizeX+1))=*(Ck1+iX+(aZ-1)*(SizeX+1)); //

// "-",

86 *(Ck+iX+bZ*(SizeX+1))=*(Ck1+iX+(bZ+1)*(SizeX+1)); //

// "-"

87 }

88 for (iZ=aZ; iZ<bZ+1; iZ++) { //

// :

89 *(Ck+aX+iZ*(SizeX+1))=*(Ck1+aX+1+iZ*(SizeX+1)); //

// "-",

90 *(Ck+bX+iZ*(SizeX+1))=*(Ck1+bX-1+iZ*(SizeX+1)); //

// "-"

91 }

92 for (iZ=0; iZ<aZ; iZ++) { //

// X- :

93 *(Ck+iZ*(SizeX+1))=*(Ck1+1+iZ*(SizeX+1)); //

//

94 *(Ck+SizeX+iZ*(SizeX+1))=*(Ck1+SizeX-1+iZ*(SizeX+1)); //

//

95 }

96 }

97 for (iZ=0; iZ<SizeZ+1; iZ++){ // "dif_dat"

98 for (iX=0; iX<SizeX+1; iX++)

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

100 fprintf(dif_dat,"\n");

101 }

102 delete Ck; //

103 delete Ck1;

104 fclose(dif_dat);

105 return 0;

106 }

 

:

( ) .

18 . , () .

2830 " - ". ( ) , .

4455 , ( ). 44, 47, 52, 53 , 46, 47, 52, 53 iZ bZ.

66 " ".

67 66, .

68 " ". 67.

72 " ".

73 72, .

74 " ". 73.

89 90 " " .

, , . , , .

5

D, q, R , , .10.

, S , ,

(60)

d S , (8).

(61)

CGS , ,

(62)

(62) ε- , , E . D


 

.10.

, R / R , n, (61)

(63)

D

(64)

, 4π , , . .

(64) . : " (64) , ?" ; , , , . , "" , -, q ( - , R / Rn ), , -, ( , , ). .11 , .

(65)

, . .

q, ρ(x,y,z) Δ V, Δ S, (64)

(66)

-, (66)

(67)

(67), ,

(68)

, (62), (68) D - φ,

 

. 11.

. (69)

,

, (70)

(70) (69) ()

(71)

, (71) . , , ρ(x,y,z) , .

[9] , , (71) ( ), . [10] , , , , , , , , , . , , , . , p n , , ,

(72)

(73)

(74)

e= 4,8032 10-10 CGSEq (1,6022 10-19 ) ,

p 0 , -3,

n 0 , -3,

NA p -, -3,

ND n -, -3,

n , CGSEV (1 = 3,34 10-3 CGSEV),

p , CGSEV,

x 0 p n , .

(72)

(75)

1,161040,13,3410-3=3,87 , , , ex (1+ x) , e 3,855 ≈47, (1+ x)=4,855 ( ~860 %). eφ < kT ( 300 26 ) ex ≈ 1+ x .

(76)

, ni << NA < ND, (72)-(74)

(77)

(78)

(79)

 

n , ,

p -, ,

, -3,

, . .

(77)-(79)

(80)

(81)

(82)

(80)-(82) [11] , (81)-(82), , p n ( , "" -∞ "" +∞). , , ( - ), (80)

(83)

:

(84)

(k +1)- , k- . (83)-(84) ( ), :

(85)

, (86)

x 1 " p - ", ,

x 2 " n - ", ,

p -, ..,

p -, ..

(83) (84) (85) (86), (x 2- x 1)→0.

01 # include <stdio.h>

02 # include <math.h>

03 #include <conio.h>

04 #include <graphics.h>

05 int main()

06 {

07 int i,j;

08 double v,d,M;

09 double *fi1; //

10 double *; //

11 double *ro; //

12 double r=1; // ro

13 double *h; //

14 int size=1000; // ( )

15 int l=2; // -

//

16 double f=5; // fi1

17 double e=1; // D

18 double m=0.01; //

19 double eps=0.001; // -

// k (k +1)

//

20 double h0=0.001; //

//

21 double An=0.5; //

22 double border1=0.3; // x 1 size

23 double border2=0.5; // x 2 size

24 FILE *dif_dat;

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

26 if (dif_dat == NULL){

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

28 return 1;

29 }

30 int gdriver = DETECT, gmode, errorcode;

31 initgraph(&gdriver,&gmode,":\\\\BGI\\");

32 errorcode = graphresult();

33 if (errorcode!= grOk) {

34 printf("Graphics error: %s\n", grapherrormsg(errorcode));

35 printf("Press any key to halt:");

36 getch();

37 return 1;

38 }

39 fi1=new double [size];

40 =new double [size];

41 ro=new double [size];

42 h=new double [size];

43 for (j=0; j<size*border1; j++) { //

44 *(fi1+j)=3;

45 *(h+j)=h0;

46 }

47 for (j=size*border1; j<size*border2; j++) {

48 *(fi1+j)=0;

49 *(h+j)=h0;

50 }

51 for (j=size*border2; j<size; j++) {

52 *(fi1+j)=10;

53 *(h+j)=m*h0;

54 }

55 int scrY=getmaxy(); // ψ(x)

56 for (i=0; i<size; i+=l)

57 putpixel(ceil(i/l), scrY*0.30-ceil(f*(*(fi1+i))), 5);

58 i=0;

59 do {

60 M=0;

61 for (j=1; j<size*border1; j++) { // ψ(x) x<x 1

62 v=(*(fi1+j+1)+(*(fi1+j-1))+(*(h+j))*(*(h+j))*An*

(expl(-(*(fi1+j)-3))-1))/2;

63 d=fabs(*(fi1+j)-v);

64 *(fi1+j)=v;

65 if (M<d)

66 M=d;

67 else if (d>eps) //

68 (*(h+j))*=(1-eps/d);

69 }

70 for (j=size*border1; j<size* (border1+border2)/2; j++) {// ψ(x)

x 1 ≤x< (x 1 +x 2) / 2

71 v=(*(fi1+j+1)+(*(fi1+j-1)))/2;

72 d=fabs(*(fi1+j)-v);

73 *(fi1+j)=v;

74 if (M<d)

75 M=d;

76 else if (d>eps) //

77 (*(h+j))*=(1-eps/d);

78 for (j=size*border2; j<size-1; j++) { // ψ(x) x≥x 2

79 v=(*(fi1+j+1)+(*(fi1+j-1))-(*(h+j))*(*(h+j))*(expl((*(fi1+j)-10))-1))/2;

80 d=fabs(*(fi1+j)-v);

81 *(fi1+j)=v;

82 if (M<d)

83 M=d;

84 else if (d>eps) //

85 (*(h+j))*=(1-eps/d);

86 }

87 i++;

88 } while (M>eps);

89 printf("%d\n",i);

90 for (j=1; j<11; j++) { // ψ (x) dif_dat

91 for (i=size*(j-1)/10; i<size*j/10; i++)

92 fprintf(dif_dat," %7.3f",*(fi1+i));

93 fprintf(dif_dat,"\n");

94 }

95 for (i=0; i<size-1; i++) // (x)

96 *(+i)=-(*(fi1+i+1)-(*(fi1+i)))/(*(h+j));

97 for (i=1; i<size-1; i++) // ρ(x)

98 *(ro+i)=-(*(fi1+i+1)-2*(*(fi1+i))+(*(fi1+i-1)))/(*(h+j))/(*(h+j));

99 setcolor(5);

100 for (i=0; i<size; i+=l) // ψ(x)

101 putpixel(ceil(i/l), scrY*0.30-ceil(f*(*(fi1+i))), 2);

102 for (i=0; i<size-1; i+=l) // D (x)

103 putpixel(ceil(i/l), scrY*0.5+ceil(e*(*(+i))), 3);

104 for (i=1; i<size-1; i+=l) // ro(x)

105 putpixel(ceil(i/l), scrY*0.8+ceil(r*(*(ro+i))), 4);

106 getch();

107 closegraph();

108 delete fi1;

109 delete E;

110 delete ro;

111 fclose(dif_dat);

112 return 0;

113 }

, .

12 15 : (x 2- x 1)= 0.5* size, (x 2- x 1)=0.3* size, (x 2- x 1)= 0.2* size (x 2- x 1)= 0.0 . , 10 , . 12 , , . . " " , , . , . 13 14, . , , 15 ( ).

 

. 12. (x 2- x 1) = 0.5* size

 

 

. 13. (x 2- x 1) = 0.3* size


 

. 14. (x 2- x 1) = 0.2* size

 

 

. 15. (x 2- x 1) = 0.0

 

, , , 1 μi q i, φ, , ,

. (87)

(7)

(88)

(19)

, (89)

(13)

. (90)

(62), (69) (71) , , , , , (89) (90) :

, (91)

. (92)

, , cici (x,y,z,t), EE (x,y,z,t) ρ ≡ ρ(x,y,z,t),



<== | ==>
(26) |
:


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


:

:

, .
==> ...

790 - | 692 -


© 2015-2024 lektsii.org - -

: 0.171 .