. -31
. .
2006 .
1. .
. . .
- , . , , .
2. .
, .. , , . , ., . . , , , , t,
, , , , . .
( ) : , , :
(1)
. , , , , , , . ,
, , , , , (2)
, ,
, 2, 3, ,
, ,
, , , ,
( ), (2).
:
;
. , (2).
: (2)? , , (2). :
,
, , (1).
, . , , , (, . .). .
,
x:
,
, . (3)
. (4)
(n=1,2,3,),
:
,
. x, , , x.
, , . , , , , .
3.1.1. .
, , , . -:
, , , (10)
. , , , . , ; , . . , . , .
( ) , .. , . (10) , . , , , , , .
3.1.1.1. .
, , 0 k
,
.
(, !):
.
, :
.
, (10), :
,
.
k=12
,
:
,
, , :
.
,
(11)
,
.
( - ) , , .
:
:
, , :
(12)
, (11).
3.1.1.2. .
1) ( ) . . , :
T |
-7200 |
-300 |
7000 |
4300 |
0 |
-5200 |
-7400 |
250 |
4500 |
7600 |
3850 |
-2250 |
U |
-7200 |
-50 |
11500 |
11900 |
3850 |
-7450 |
-7400 |
V |
-550 |
2500 |
-3300 |
-3850 |
-2950 |
u |
-7200 |
-50 |
11500 |
11900 |
-7400 |
-7450 |
3850 |
s |
-14600 |
-7500 |
15350 |
11900 |
d |
200 |
7400 |
7650 |
V |
-550 |
2500 |
-3300 |
-2950 |
-3850 |
|
-3500 |
-1350 |
-3300 |
|
2400 |
6350 |
(12):
,
, :
, .
2) , , .
,
,
x
.
:
x |
0 |
|
|
|
|
|
|
|
|
|
|
|
2 |
y |
0 |
0.400 |
0.582 |
0.589 |
0.465 |
0.255 |
0 |
-0.255 |
-0.465 |
-0.589 |
-0.582 |
-0.400 |
0 |
:
y:
b1=0.608; b2=0.076; b3=0.022;
, .
(10) ( ):
,
; ; .
!
3) . , :
.
:
,
:
x |
0 |
|
|
|
|
|
|
|
|
|
|
|
2 |
y |
1 |
0,694 |
0,444 |
0,250 |
0,111 |
0,028 |
0 |
0,028 |
0,111 |
0,250 |
0,444 |
0,694 |
1 |
- . :
,
; ; .
, 1,5-2 %, 10% 20%! , .
3.1.1.3. .
, :
,
:
,
.
, , :
( ), , . . :
, q r .
k, l, m, n, q r :
.
. , , ( ) ( ). .
3.1.2. .
. .
. , , . .
f(x) 1
, (1)
. (2)
i .
, l, N , N , . , k , , kl . ,
(3)
. f(x) , (1)
, (4)
. (5)
. , (5), (4) , [0, N-1] [m,N-1+m], m .
, , (1). , , . - (2), (4).
:
.
( : f(x) g(x) [0,1], f(x)g(x)
). . ,
.
, ,
( 0). ,
. (6)
(4) ,
(7)
,
j.
,
(8)
. . (4) , . , (8) . f(x) , , , .
, (4)
. (9)
f(x) , j , q. , f(x) q.
, .
. (9) , - .
.
. [-1,1] f(x) . x=cost f(cost) .
.
, f(x) , , , . . - - f(cost) , .
3.1.2.3. .
. (4), (7) . . . , N (7) , . , .
. q, j, , , .
.
,
.
, - . . , , , N. . q, l
,
.
,
s - , , . , ,
O(N) ; r, .
(3.7). , . , . , m=1 +1 -1. j, . , ,
, ,
.
. : , ;
.
: N
; .
3.1.3. .
:
;
.
3.1.3.1. .
. ( ). . 1.
3.1.3.2. .
, .. . 2.
3.1.3.3. .
, , , , (+2n), (), (u,v,p,).
, .
, . . . Numerical recipes in C: The art of scientific computing-Cambridge unv.,1992.
, ... .., ... ( . n 12- , ).
.
4. .
, - . , , .
, , , , . - . , , .
5. .
. . (III ) , 1970.
.. - , 2002.
.., .. - , 1970.
1.
{ 12- :}
Program MetodRunge;
uses crt;
type ord1=array [0..11] of real;
var Y,U,V,S:ord1;
A:array [0..3] of real;
B:array [1..3] of real;
i,k:integer;
{ :}
Procedure SummaRaznost(X:ord1;var Sum:ord1;var Raz:ord1;j:integer);
var m:integer;
begin
m:=j*2+1;
for i:=1 to j do
begin
sum[i]:=X[i]+X[m];
raz[i]:=X[i]-X[m];
m:=m-1;
end;
sum[j+1]:=X[j+1];
end;
begin
clrscr;
{:}
writeln(' 12-, pi/6, ');
for i:=0 to 11 do read(Y[i]);
{ u v:}
SummaRaznost(Y,U,V,5);
U[0]:=Y[0];
{ :u , ( Y)}
for i:=7 downto 1 do
U[i]:=U[i-1];
{ s d ( d Y):}
SummaRaznost(U,S,Y,3);
{ 0- 2- :a, s:}
A[0]:=(S[1]+S[2]+S[3]+S[4])/12;
A[2]:=(S[1]-S[4]+0.5*(S[2]-S[3]))/6;
{ 1- 3- :a, d:}
A[1]:=(Y[1]+0.886*Y[2]+0.5*Y[3])/6;
A[3]:=(Y[1]-Y[3])/6;
{ sigma delta( sigma Y, delta U):}
SummaRaznost(V,Y,U,2);
{ 1 3- :b, sigma:}
B[1]:=(0.5*Y[1]+0.886*Y[2]+Y[3])/6;
B[3]:=(Y[1]-Y[3])/6;
{ 2- :b, delta:}
B[2]:=0.886*(U[1]+U[2])/6;
{ :}
writeln(':');
write('T=',A[0]:7:3);
for i:=1 to 3 do begin
if A[i]<0 then write(A[i]:7:3)
else write('+',A[i]:7:3);
write('cos',i,'x');
if B[i]<0 then write(B[i]:7:3)
else write('+',B[i]:7:3);
write('sin',i,'x');
end;
end.
2.
{:}
Program MetTrapecyi;
uses crt;
const pi=3.14;
type ord=array [0..5] of real;
var A,B:ord;
Y:array [0..23] of real;
h,eps:real;
m,i,k:integer;
{ m- :}
function af(n:integer;m:integer):real;
var res:real;
begin
res:=0;
for i:=0 to (n-1) do
res:=res+y[i]*cos(m*i*h);
af:=res*2/n;
end;
{ m- b :}
function bf(n:integer;m:integer):real;
var res:real;
begin
res:=0;
for i:=0 to (n-1) do
res:=res+y[i]*(sin(m*i*h));
bf:=res*2/n;
end;
begin
clrscr;
writeln(' : 0 2pi');
{ :}
writeln(' ');
read(k);
writeln(' 2pi/',k);
for i:=0 to (k-1) do
read(Y[i]);
{h-}
h:=(2*pi)/k;
for m:=0 to 5 do begin
A[m]:=af(k,m);
B[m]:=bf(k,m);
end;
{ .}
writeln(': ');
writeln('a0=',A[0]/2);
for i:=1 to 5 do
writeln('a',i,'=',A[i]:5:4);
for i:=1 to 5 do
writeln('b',i,'=',B[i]:5:4);
end.
|