«  »

Нейролингвистическое программирование краткий обзор











:





- 4

:



: . -96

..

: . ..

. 1998



, -, -4, ,
, , , , , ,
.

: 28

: 2

: 4

- 4 ,
,
,
.



:



1. 腅6

2. 8

3. 14

4. ...15

5. ..17

6. 19

7. ..20

8. ⅅ...21

9. 充...23

10. 充.27





()

. ,
, ,
, .

n-
y(x) n x

(( x, y, y1, ... y(n) )=0. 1.1

, (1.1) n


(k(x, y1, y1 ,y2 ,y2 , ... ,yn ,yn )=0. 1.2

k=1, ... , n.

(1.1) (1.2)
.
, .
,
.

, .
(1.1) xo
, .. y(x)


y(x0)=y0 , y(x0)=y10, ... , y(n-1)(x0)=yn-1,0.

(1.2)

y1(x0)=y10 , y2(x0)=y20, ... , yn(x0)=yn0. 1.3

,
,
.
n .
x (x0 ,xk(,
, . ,
, .

.
, y(x)
m (1((2((( m(
(
[x0(xk] m+n (
(
(
(
( (
((

(
(

(

(
(



1.

-

(
(
(
(



(
( )( (

(
(
( (
(
(
- 4 .

,
.
.

. ,
,
.
,
.

K1,K2,K3,K4 ,
.


-
,
. ,
- ,
.
.

2.

(
( (
-(

- :

1( : m+1(

xm(ym(

2( hp(




(

3( f (x(y)(


(


(
(

( xm(ym (
(m=f(xm(ym)(
xm(ym( (1(
(
( L1 ( (



( L1
( x=xm+1=xm+h(



L1 : y=ym+y(m(x-xm) y(=f(xm(ym)
( xm+1=xm+h

ym+1=ym+h*f(xm(ym)
1(1

x=xm+1 ( (

h( et=h2

( 1 (
ym
(

1(1 (
(
( -
(



(

: xm(ym xm+h(ym+hy(m(
( xm+1(ym+1(
xm+1(ym+1 (2(
xm+h(ym+hy(m( L1(
( (( (
xm(ym L( (( ( L
( x=xm+1=xm+h(
xm+1(ym+1(

( L



(xm(ym(h)=([f(xm(ym)+f(xm+h(ym+y(mh)] 1(2



y(m=f(xm(ym)
1(3

L

y=ym+(x-xm)(xm(ym(h)(



ym+1=ym+h(xm(ym(h)(
1(4

1(2( 1(3( 1(4 (

(
( ( f(x(y)
:



f(x(y)=f(xm(ym)+(x-xm)(f/(x+(y-ym)(f/(x+( 1(5

x=xm y=ym(

1(5 x=xm+h y=ym+hy(m 1(3
y(m(

f(xm+h(ym+hy(m)=f+hfx+hffy+O(h2)(

f xm(ym(
1(2 (


(xm(ym(h)=f+h/2(fx+ffy)+O(h2)(

1(4

ym+1=ym+hf+h2/2(fx+ffy)+O(h3)(

(
h2( ( (
- (

( (3
( (2(
( x=x+h/2(
(
y=ym+(h/2)y(m(

(xm(ym(h)=f+(xm+h/2(ym+h/2*y(m)(
1(6

y(m=f(xm(ym)
1(7

( ( (*(
( xm(ym (*(
L0( x=xm+h
xm+1(ym+1(
y=ym+(x-xm)(xm(ym(h)(

1(6(

ym+1=ym+h(xm(ym(h) 1(8

1(6( 1(7( 1(8
- (
( (

ym+1=ym+h(xm(ym(h)
1(9





(xm(ym(h)=a1f(xm(ym)+a2f(xm+b1h(ym+b2hy(m)( 1(10

y(m=f(xm(ym)
1(11

(

a1=a2=1/2;

b1=b2=1(



a1=0( a2=1(

b1=b2=1/2(

1(9( 1(10( 1(11 -(
(
a1( a2( b1 b2 (

h(
(
h2( (
h2fx h2ffy(
(
h2( (
- (

f(x(y) 1(5 xm(ym
x=xm+b1h(

y=ym+b2hf(

f(xm+b1h(ym+b2hf)=f+b1hfx+b2hffy+O(h2)(
xm(ym(

1(9
ym+1=ym+h[a1f+a2f+h(a2b1fx+a2b2ffy)]+O(h3)(

(

ym+1=ym+h[a1f+a2f+h(a2b1fx+a2b2ffy)]+O(h3)(

hf( a1+a2=1(

( h2fx( a2b1=1/2(

( h2ffy( a2b2=1/2(

(
( (
( ( (
(

( ( a2=((0( a1=1-(( b1=b2=1/2( 1(9(
1(10( 1(11

ym+1=ym+h[(1-()f(xm(ym)+(f(xm+h/2((ym+h/2(f(xm(ym))]+O(h3)
1(12

- (
(=1/2 ( (=1
( (( (


et=kh3
1(13

-
(
( (
( ( (
(
-


ym+1=ym+h/6(R1+2R2+2R3+R4)
1(14

R1=f(xm(ym)(
1(15

R2=f(xm+h/2(ym+hR1/2)(
1(16

R3=f(xm+h/2(ym+hR2/2)(
1(17

R4=f(xm+h/2(ym+hR3/2).
1(18

et=kh5

1(14-1(18 ( (

(



3.

,
- 4 ,

(













4. -



INIT



f1,C[1],C[2],C[3]

f1,k1,k2,k3,k4

f1,Xn,Xk,dp,n,eps,p



5.

PROGRAM smith_04;

USES crt;

VAR

i,n:integer;

sum,k1,k2,k3,k4,p,dp,eps,Xn,Xk,X,dX:real;

rSR,C,dC,r1,r2,r3,r4,cPR:array[1..3] of real;

f1,f2:text;

PROCEDURE Difur;

BEGIN

dC[1]:=C[3]*k2+C[2]*k4-C[1]*k1-C[1]*k3; {dcA}

dC[2]:=C[1]*k3-C[2]*k4; {dcB}

dC[3]:=C[1]*k1-C[3]*k2; {dcC}

END;

PROCEDURE RK_4;

BEGIN

Difur;

FOR i:=1 TO n DO BEGIN

r1[i]:=dC[i];

C[i]:=cPR[i]+r1[i]*(dX/2);

END;

Difur;

FOR i:=1 TO n DO BEGIN

r2[i]:=dC[i];

C[i]:=cPr[i]+r2[i]*(dX/2);

END;

Difur;

FOR i:=1 TO n DO BEGIN

r3[i]:=dC[i];

C[i]:=cPR[I]+r3[i]*dX;

END;

Difur;

FOR i:=1 TO n DO r4[i]:=dC[i];

FOR i:=1 TO n DO
rSR[i]:=((r1[i]+r2[i])*(r2[i]+r3[i])*(r3[i]+r4[i]))/6;

END;

PROCEDURE STROKA;

BEGIN

WRITE(f2,'|',x:4:1,'|',c[1]:7:3,'|',c[2]:7:3,'|',c[3]:7:3,'|');

WRITE(f2,sum:3:0,'|',dc[1]:7:3,'|',dc[2]:7:3,'|',dc[3]:7:3,'|');

WRITELN(f2);

END;

PROCEDURE RUN;

BEGIN

WRITE('Step 3: Calculating data and writting results to file :
out.rez');

X:=Xn;

dX:=0.05;

REPEAT

IF (ABS(x-p)
Difur;

sum:=C[1]+C[2]+C[3];

STROKA;

p:=p+dp; END;

FOR i:=1 TO n DO Cpr[i]:=C[i];

RK_4;

X:=X+dX;

UNTIL(X>Xk);

WRITELN(' - done.');

END;

PROCEDURE INIT;

BEGIN

ClrScr;

WRITELN('Smith-04: v1.0 (c) 1998 by Mike Smith smith01@home.bar.ru ');

WRITELN;

WRITELN;

WRITE('Step 1: Read data from file :
in.dat');

ASSIGN(f1,'in.dat');

RESET(f1);

READLN(f1,C[1],C[2],C[3]);

READLN(f1,k1,k2,k3,k4);

READLN(f1,Xn,Xk,dp,n,eps,p);

WRITELN(' - done.');

ASSIGN(f2,'out.rez');

REWRITE(f2);

WRITE('Step 2: Write header to file :
out.rez');


WRITELN(f2,'==========================================================')
;

WRITELN(f2,'| t,c| Ca,% | Cb,%| Cc,% | SUM | dCa | dCb | dCc
|');


WRITELN(f2,'==========================================================')
;

WRITELN(' - done.');

END;



PROCEDURE DONE;

BEGIN

WRITELN('Step 4: Close all files and exiting...');

CLOSE(f1);


WRITELN(f2,'============================================================
');

CLOSE(f2);

WRITELN;

END;

BEGIN

INIT;

RUN;

DONE;

END.

6.

1



7.

2

8. .


-,
.
, , , ,
,
.

.
.
,
. ,
.
. , . ,
, ,
.
, ,
, ,
, .
. , .

. 4



,
.

.

,
.
,
,
.
. ,
.



9.

, 3 :

Init - , ;

Run - ,
Difur, RK-4, Stroka,
, -
;

Done - ;

:



Difur - (
)

RK-4 - , Difur,
-

Stroka -

:

INIT:



/ Wite/Read,
Crt - CrlScr - , /
- Reset/Rewrite ,
.
, in.dat, ,
out.rez
.

RUN:

Repeat/Until, For/Do
c IF/Then.
Difur Strok.
RK-4 4 Difur.

DONE:

Close,

.

DIFUR:


.

STROKA:

WRITE
, F2,
ASSIGN INIT

RK-4:

, Difur,
FOR,
.

2
smith.pas smith.exe
TNT Pascal 3.25 Layer`s Ins.


: MS Dos, Windows95, Windows NT, OS/2, X-windows
Linux ( )

640 b 20
kb . ,
, .


in.dat
out.rez .
,
, ,
, ,
. - Runtime
error 202 at 0000:0A86 - ,
.
,
.
, .

3
in.dat

100 0 0

0.2 0.1 0.2 0.1

0 10 0.5 3 0.05 0

,
.


. ,
:

Step 1: Read data from file : in.dat
- done.

Step 2: Write header to file : out.rez
- done.

Step 3: Calculating data and writting results to file : out.rez -
done.

Step 4: Close all files and exiting...

(step1) , in.dat


out.rez


,
out.rez


.

, ,
,
out.rez.
, c .

10. .


. ,
.
( )
:

max ;

, 10 , max B
,

,

, B ;


- ,

.
.

.

1. .. ,

. , , 1991 .



INIT



RUN







PROCEDURE INIT;

BEGIN

ClrScr;

WRITE('Step 1: Read data from file :
in.dat');

ASSIGN(f1,'in.dat');

RESET(f1);

READLN(f1,C[1],C[2],C[3]);

READLN(f1,k1,k2,k3,k4);

READLN(f1,Xn,Xk,dp,n,eps,p);

WRITELN(' - done.');

ASSIGN(f2,'out.rez');

REWRITE(f2);

WRITE('Step 2: Write header to file :
out.rez');

WRITELN(f2,_____________________________________');

WRITELN(f2,'t,c Ca,% Cb,% Cc,% SUM dCa dCb dCc
');

WRITELN(f2,'_____________________________________');

WRITELN(' - done.');

END;

PROCEDURE RUN;

BEGIN

X:=Xn;

dX:=0.05;

REPEAT

IF (ABS(x-p)
Difur;

sum:=C[1]+C[2]+C[3];

STROKA;

p:=p+dp; END;

FOR i:=1 TO n DO Cpr[i]:=C[i];

RK_4;

X:=X+dX;

UNTIL(X>Xk);

WRITELN(' - done.');

END;

PROCEDURE DONE;

BEGIN

CLOSE(f1);

WRITELN(f2,'___________________');

CLOSE(f2);

WRITELN;

END;

PROCEDURE Difur;

BEGIN

dC[1]:=C[3]*k2+C[2]*k4-C[1]*k1-C[1]*k3;

dC[2]:=C[1]*k3-C[2]*k4;

dC[3]:=C[1]*k1-C[3]*k2;

END;

PROCEDURE STROKA;

BEGIN

WRITE(f2,'',x:4:1,'',c[1]:7:3,'',c[2]:7:3,'',c[3]:7:3,'');

WRITE(f2,sum:3:0,'',dc[1]:7:3,'',dc[2]:7:3,'',dc[3]:7:3,'');

WRITELN(f2);

END;

PROCEDURE RK_4;

BEGIN

Difur;

FOR i:=1 TO n DO BEGIN

r1[i]:=dC[i];

C[i]:=cPR[i]+r1[i]*(dX/2);

END;

Difur;

FOR i:=1 TO n DO BEGIN

r2[i]:=dC[i];

C[i]:=cPr[i]+r2[i]*(dX/2);

END;

Difur;

FOR i:=1 TO n DO BEGIN

r3[i]:=dC[i];

C[i]:=cPR[I]+r3[i]*dX;

END;

Difur;

FOR i:=1 TO n DO r4[i]:=dC[i];

FOR i:=1 TO n DO
rSR[i]:=((r1[i]+r2[i])*(r2[i]+r3[i])*(r3[i]+r4[i]))/6;

END;

K1 K3

C A B

K2 K4

dCA

= CC * K2 + CB * K4 CA * K1 - CA * K3;

d(

dCB

= CA * K3 CB * K4;

d(

dCC

= CA * K1 - CC * K2;

d(

Y

L1

y = y + y`m (x-xm)



(

y = y(x)

ym

xm h xm+1 X



. 1

Y L`

L1 L2



(xm+h,ym+h*y`m)

L

y = y(x)

(xm+1,ym+1)



xm h xm+1 X

. 2

Y

L1



L* L0

y = y(x)

(xm+1,ym+1)

P



xm h/2 xm+1 X

h

. 3

RUN



X:=Xn; X>Xk

dX:=0.05





ABS(x-p)


Stroka

i=1,n RK_4 X:=X+dX

Cpr[i]:=C[i]

Difur



dC[1]:=C[3]*k2+C[2]*k4-C[1]*k1-C[1]*k3

dC[2]:=C[1]*k3-C[2]*k4;

dC[3]:=C[1]*k1-C[3]*k2;



Stroka



t, C[1],C[2],C[3],sum,

dC[1], dC[2], dC[3]



RUN



X:=Xn; X>Xk

dX:=0.05





ABS(x-p)


Stroka

i=1,n RK_4 X:=X+dX

Cpr[i]:=C[i]

RK-4

-1 rSR[i]:=((r1[i]+r2[i])*(r2[i]+r3[i])*(r3[i]+r4[i]))/6





Difur

I=1,n

R1[i]:=dc[i] I=1,n

C[i]:=cPR[i]+r1[i]*(dX/2)

I=1,n -1

R2[i]:=dc[i

C[i]:=cPr[i]+r2[i]*(dX/2)





I=1,n

r3[i]:=dC[i ]; I=1,n

C[i]:=cPR[I]+r3[i]*dX



/













1 I,N I,N Integer -

2 k1,k2,k3,k4 k1,k2,k3,k4 Difur Real - -

3 Sum Sum Init,Run Real %

4 r1,r2,r3,r4 r1,r2,r3,r4 Rk-4 Array [1..3] of real
-

5 Xn Xn Init,Run,

Stroka Real



6 Xk Xk Init,Run,

Stroka Real



7 X X Init,Run,

Stroka Real



8 dX dX Init,Run,

Stroka Real

9 C C Init,Run, Stroka,Difur,Rk-4 Array [1..3] of real


1,2,3,4 %

10 dC dC Init,Run, Stroka,Difur,Rk-4 Array [1..3] of real
%

11 cPr cPr Run, Rk-4 Array [1..3] of real
%

12 rSr rSr Run, Rk-4 Array [1..3] of real
-

13 F1,F2 F1,F2 File of text
txt



t , % , % , % Sum dcA dcB dcC

0.0 100.000 0.000 0.000 100 -40.000 20.000 20.000

0.5 83.881 8.060 8.060 100 -31.940 15.970 15.970

1.0 69.750 15.125 15.125 100 -24.875 12.437 12.437

1.5 57.788 21.106 21.106 100 -18.894 9.447 9.447

2.0 49.429 25.286 25.286 100 -14.714 7.357 7.357

2.5 42.919 28.541 28.541 100 -11.459 5.730 5.730

3.0 37.849 31.076 31.076 100 -8.924 4.462 4.462

3.5 33.901 33.050 33.050 100 -6.950 3.475 3.475

4.0 30.826 34.587 34.587 100 -5.413 2.706 2.706

4.5 28.431 35.785 35.785 100 -4.215 2.108 2.108

5.0 26.732 36.634 36.634 100 -3.366 1.683 1.683

5.5 25.243 37.379 37.379 100 -2.621 1.311 1.311

6.0 24.083 37.958 37.958 100 -2.042 1.021 1.021

6.5 23.180 38.410 38.410 100 -1.590 0.795 0.795

7.0 22.476 38.762 38.762 100 -1.238 0.619 0.619

7.5 21.929 39.036 39.036 100 -0.964 0.482 0.482

8.0 21.502 39.249 39.249 100 -0.751 0.376 0.376

8.5 21.170 39.415 39.415 100 -0.585 0.292 0.292

9.0 20.911 39.545 39.545 100 -0.455 0.228 0.228

9.5 20.709 39.645 39.645 100 -0.355 0.177 0.177

10.0 20.553 39.724 39.724 100 -0.276 0.138 0.138




?
?
?