.


:




:

































 

 

 

 


-

-

 

:

 

 

:

 

:

 

- 2014

 

腅................ 3

 

5

 

. 8

 

. 11

 

. 13

 

腅... 15

 

16

 

Program 8;
var
x1,x2,x3,xshtr,xm,Fm,a1,a2: real;
function
f(x:real):real;
begin
f:=x*x;
end;
begin

Ex:=0.001;
Ef:=0.001;
dx:=1;
x1:=5;
while abs(Fm-F(xshtr))>Ef do
begin
while abs(xm-xshtr)>Ex do
begin
x2:=x1+dx;
if F(x1)>F(x2) then x3:=x1+2*dx else x3:=x1-dx;
if F(x1)<F(x2)
then if F(x1)<F(x3)
then
begin
Fm:=F(x1);
xm:=x1;
end
else
begin
Fm:=F(x3);
xm:=x3;
end
else if F(x2)<F(x3)
then
begin
Fm:=F(x2);
xm:=x2;
end
else
begin
Fm:=F(x3);
xm:=x3;
end;
a1:=(F(x2)-F(x1))/(x2-x1);
a2:=(1/(x3-x2))*((F(x3)-F(x1))/(x3-x1)-(F(x2)-F(x1))/(x2-x1));
xshtr:=(x2+x1)/2-(a1/(2*a2));
if (F(xm)<F(xshtr)) then x1:=xm else x1:=xshtr;
end;
end;
writeln('xmin=',xm);
end.

 

 

 

 

 

Program 9;

Var

L,x,y,x1,y1,x0,y0,dx,dy,Ex,Ey,E,sign:real;

function f(x,y:real):real;

begin

f:=sqr(x)+sqr(y);

end;

begin

L:=1;

sign:=-1;

x0:=100;

y0:=100;

E:=0.0001;

Ex:=0.0001;

Ey:=0.0001;

while L>E DO

begin

dx:=0.1;

y:=y0;

x:=x0;

while abs(dx)>Ex DO

begin

x1:=x+dx;

if f(x1,y)<f(x,y) then

x:=x1

else

dx:=-dx/2;

end;

writeln(x,y,f(x,y));

dy:=0.1;

y:=y0;

while abs(dy)>Ey DO

begin

y1:=y+dy;

if f(x,y1)<f(x,y) then

y:=y1

else

dy:=-dy/2;

end;

writeln(x,y,f(x,y));

L:=sqrt(sqr(x1-x0)+sqr(y1-y0));

y0:=y1;

x0:=x1;

end;

writeln(x1,y1,f(x1,y1));

readln;

end.

 

 

Program A10;
type
vector=array[1..N] of real;
var
x0,x,x2:vector;
dx,S,L:real;
i,j:integer;
function
F(x:vector):real;
var
SFunct:real;
iFunct:integer;
begin
SFunct:=0;
for iFunct:=1 to N do SFunct:=SFunct+sqr(x[i]*x[i]);
F:=SFunct+1000;
end;
begin

N:=3;
e:=0.001;
ex:=0.001;
dx0:=1;

for i:=1 to N do x0[i]:=-10;
L:=10;
while abs(L)>=E do
begin
for i:= 1 to N do x[i]:=x0[i];
i:=1;
while i<=N do
begin
dx:=dx0;
while abs(dx)>=Ex do
begin
for j:= 1 to N do x2[j]:=x0[j];
x2[i]:=x0[i]+dx;
if F(x0)>F(x2)
then
begin
x0[i]:=x2[i];
end
else
begin
dx:=-dx/2;
end;
end;
i:=i+1;
end;
S:=0;
for i:=1 to N do
begin
S:=S+(x0[i]-x[i])*(x0[i]-x[i]);
end;
L:=sqrt(S);
end;
for i:=1 to N do writeln('xmin[',i,']=',x0[i],' ');
end.

 

 

 

Program A11;
var
t,t0,tp,V,V0,V1,F,m:real;
begin

dtp=0.5;
dt=0.0001;
tmax=5.0;
t0:=0;
V0:=0;
F:=1;
m:=1;
tp:=0;
t:=t0;
V:=V0;
while t<tmax do
begin
V1:=F/m;
V:=V+V1*dt;
t:=t+dt;
if t>=tp then
begin
writeln('t=',t,' V=',V);
tp:=tp+dtp;
end;
end;
end.

 

 



<== | ==>
|
:


: 2017-04-15; !; : 813 |


:

:

, .
==> ...

1546 - | 1402 -


© 2015-2024 lektsii.org - -

: 0.012 .