Нейролингвистическое программирование краткий обзор
:
- 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