< -->
{==================}Program Runge_Kutt_Diff_Ur_Plus2;{======================}
{Ðåøåíèå äèôôåðåíöèàëüíûõ óðàâíåíèé ìåòîäàìè Ðóíãå-Êóòòà}
{Ëàáîðàòîðíàÿ ðàáîòà ïî âû÷èñëèòåëüíîé ôèçèêå (×ÌèÌÌ) ¹2}
{Äîïîëíåíèå ê ïðîãðàììå. Ðèñóåò ãðàôèêè ôóíêöèè f(t, x) = z, }
{ ______ }
{ ãäå z= z1, z2 }
(*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*)
{[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]}
(*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>*)
{
Îêðóãèí Û²° Àëåêñàíäð. Copiright 2002ã.(C) v1.1(October, 25)
=
~~~~~~~ +++ ~~~~~~~ /-_-_-_-_-^^^-_-_!_-_-^^^-_-_-_-_-\
~~~~~ !!!!! ~~~~~ |ÛÛÛÛÛÛÛÛÛÛÛ\ÛÛÛÛÛÛÛÛÛ/ÛÛÛÛÛÛÛÛÛÛÛ|
~~~ _______ ~~~ |Û/\²²²²²²²²²²\²²^²²/²²²²²²²²²²/\Û|
~ --------- ~ |ÛÛ\\²²°°°°°°°°°\°/°°°°°°°°°²²//ÛÛ|
########### |ÛÛÛ²\²°°°ÚÄÄÄÄÄÄ|ÄÄÄÄÄÄ¿°°°²/²ÛÛÛ|
||| ^^^^^^^^^^^^^ ||| |ÛÛÛ²²\°°°³ÉÍÍÍÍÍþÍÍÍÍÍ»³°°°/²²ÛÛÛ|
||| ÉÍÍÍÍÍÍÍÍÍÍÍÍÍ» ||| |Û*Û²²²\°°³ºßß!ßßßßß!ßߺ³°°/²²²Û*Û|
||| |ºÚÄÄÄÄÄÄÄÄÄÄÄ¿º| ||| |ÛÛÛ²²²°\°³ºÝÞÝÞÝÜÝÞÝÞݺ³°/°²²²ÛÛÛ|
Þ|º³ÛÛÛÛÛÛÛÛÛÛÛ³º|Ý |ÛÛÛ²²²°°\³ºÞÝÞÝÞßÞÝÞÝÞº³/°°²²²ÛÛÛ|
ßßßß þÞ|º³Û²²²²²²²²²Û³º|Ýþ ÜÜÜÜ |ÛÛ<>²<>°#-þßÜßÜßXßÜßÜßþ-#°<>²<>ÛÛ|
<<< þÞ|º³Û²²°°°°°²²Û³º|Ýþ >>> |ÛÛÛ²²²°°/³ºÞÝÞÝÞßÞÝÞÝÞº³\°°²²²ÛÛÛ|
ßßßß þÞ|º³Û²²°°*°°²²Û³º|Ýþ ÜÜÜÜ |ÛÛÛ²²²°/°³ºÝÞÝÞÝÜÝÞÝÞݺ³°\°²²²ÛÛÛ|
>>> þÞ|º³Û²²°°°°°²²Û³º|Ýþ <<< |Û*Û²²²/°°³ºÜ!ÜÜÜÜÜÜÜ!ܺ³°°\²²²Û*Û|
ßßßß þÞ|º³Û²²²²²²²²²Û³º|Ýþ ÜÜÜÜ |ÛÛÛ²²/°°°³ÈÍÍÍÍÍþÍÍÍÍͼ³°°°\²²ÛÛÛ|
Þ|º³ÛÛÛÛÛÛÛÛÛÛÛ³º|Ý |ÛÛÛ²/²°°°ÀÄÄÄÄÄÄ|ÄÄÄÄÄÄÙ°°°²\²ÛÛÛ|
/// |ºÀÄÄÄÄÄÄÄÄÄÄÄÙº| \\\ |ÛÛ//²²°°°°°°°°°/°\°°°°°°°°°²²\\ÛÛ|
ÈÍÍÍÍÍÍÍÍÍÍÍÍͼ |Û\/²²²²²²²²²²/²²#²²\²²²²²²²²²²\/Û|
/ÛÛÛÛÛÛÛÛÛßßßßßßßßßßßÛÛÛÛÛÛÛÛÛ\ |ÛÛÛÛÛÛÛÛÛÛÛ/ÛÛÛÛÛÛÛÛÛ\ÛÛÛÛÛÛÛÛÛÛÛ|
\ÛÛÛÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÛÛÛÛ/ \-+-+-+-+-<<<-+-+=+-+->>>-+-+-+-+-/
}
{$E-}
{$N+}
{$D-}
Uses Graph, CRT;
type Float = Extended;
const
t0 : Float = 0.0 ;
x0 : Float = 10.0 ;
b : Float = 6.0 ;
h0 : Float = 0.5 ;
var
D, R, e : Integer;
i : Integer;
zf, x, t, z : Float;
S : String;
St : Float;
Sx : Float;
Function f(t, x : Float) : Float;
begin
f:= -2*(t-2.0)*x + sin(t)*exp(-t*t)*(t-2.0)*(t-2.0);
end;
Procedure DoScreen;
begin
ClearViewPort;
SetColor(DarkGray);
MoveTo(0, 240);
LineTo(640, 240);
LineTo(630, 238);
LineTo(630, 242);
LineTo(640, 240);
MoveTo(320, 480);
LineTo(320, 0);
LineTo(318, 10);
LineTo(322, 10);
LineTo(320,0);
SetColor(LightGray);
for i := 1 to 32 do Line(i*20, 239, i*20, 241);
for i := 1 to 24 do Line(319, i*20, 321, i*20);
SetColor(Brown);
OutTextXY(324, 230, '0');
OutTextXY(632, 230, 't');
OutTextXY(324, 3, 'x');
end;
begin
D:=Detect;
InitGraph(D,R,'');
e:=GraphResult;
if e <> 0 then
begin
WriteLn('Îøèáêà ãðàôèêè(', e, '):');
WriteLn(GraphErrorMsg(e));
Halt;
end;
St := 6.0;
Sx := 15.0;
x := -12.0/Sx;
t := -16.0/St;
z := -1.5;
DoScreen;
While (z<=1.0) and (not Keypressed) do
begin
zf:=f(t,x);
if ( zfz-0.05) then
PutPixel(320+Round(20.0*St*t),240-Round(20.0*Sx*x),15);
t := t+0.01;
if t*St>=16.0 then
begin
t:=-16.0/St;
x:= x+0.01;
if Sx*x>12.0 then
begin
DoScreen;
t:=-16.0/St;
x:=-12.0/Sx;
z:=z+0.02;
Str(z:1:1,S);
SetColor(Black);
OutTextXY(10,10,'ÛÛÛÛÛÛÛÛÛÛ');
SetColor(White);
OutTextXY(10,10,S);
end;
end;
end;
ReadKey;
CloseGraph;
end.
Íàçàä