ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ИсслСдованиС ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ взаимодСйствия Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ² Β«Π₯ΠΈΡ‰Π½ΠΈΠΊ-ΠΆΠ΅Ρ€Ρ‚Π²Π°Β» ΠΈ Β«ΠšΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡΒ» с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π ΡƒΠ½Π³Π΅ β€” ΠšΡƒΠ³Π³Π° 4 порядка ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Коши

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Π£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

M_Chart2d.AllocSerie (pcount); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊ. Double hp; // шаг фиксации Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Double eps, e1, e2; // ΠΎΡ†Π΅Π½ΠΊΠ° ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ. Eps /= 15.; // для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° 4-Π³ΠΎ порядка. M_Pr.SetPos (j); // Π΄ΠΎΠ²ΠΎΠ΄ΠΈΠΌ прогрСссор. M_Pr.SetPos (j); // Π΄Π²ΠΈΠ³Π°Π΅ΠΌ прогрСссор. Else{ // Π²Ρ‹Π±Ρ€Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π ΡƒΠ½Π³Π΅-ΠšΡƒΡ‚Ρ‚Π°. TODO: Add your control notification handler code here. If (iMeth){ // Π²Ρ‹Π±Ρ€Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π­ΠΉΠ»Π΅Ρ€Π°. X0. set (0,x… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ИсслСдованиС ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ взаимодСйствия Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ² Β«Π₯ΠΈΡ‰Π½ΠΈΠΊ-ΠΆΠ΅Ρ€Ρ‚Π²Π°Β» ΠΈ Β«ΠšΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡΒ» с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π ΡƒΠ½Π³Π΅ β€” ΠšΡƒΠ³Π³Π° 4 порядка ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Коши (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  • 1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 2. ОписаниС матСматичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ
  • 3. ОписаниС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²
  • 4. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ расчСтов
  • 5. Анализ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² расчСтов
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ИсслСдованиС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π ΡƒΠ½Π³Π΅-ΠšΡƒΡ‚Ρ‚Π° 4 порядка ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π­ΠΉΠ»Π΅Ρ€Π°.

Рис.

6.1. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. Π‘Π°Π·Ρ‹ΠΊΠΈΠ½ А. Π”. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π±ΠΈΠΎΡ„ΠΈΠ·ΠΈΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… популяций. — Πœ.: Наука, 1985. — 184 с.

2. ΠžΡ€Ρ‚Π΅Π³Π° Π”ΠΆ., ΠŸΡƒΠ» Π£.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π² Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ/ ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π».; Под Ρ€Π΅Π΄. А. А. Абрамова — М.: Наука. Π“Π». Ρ€Π΅Π΄. Ρ„ΠΈΠ·.-ΠΌΠ°Ρ‚. Π»ΠΈΡ‚., 1986. — 288 с., ΠΈΠ».

3. Π’ΠΎΠ»ΡŒΡ‚Π΅Ρ€Ρ€Π° Π’. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ тСория Π±ΠΎΡ€ΡŒΠ±Ρ‹ Π·Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅. — Πœ.: Наука, 1976. — 288 с.

4. Алгоритмы ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ проСктирования автоматичСских систСм/ П. Π”. ΠšΡ€ΡƒΡ‚ΡŒΠΊΠΎ, А. И. Максимов, Π›. М. Π‘ΠΊΠ²ΠΎΡ€Ρ†ΠΎΠ²; Под Ρ€Π΅Π΄. П. Π”. ΠšΡ€ΡƒΡ‚ΡŒΠΊΠΎ. — Πœ.: Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·ΡŒ, 1988. — 306 с., ΠΈΠ».

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

void

nextRK4(eco *s, double h) // РСализация ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π ΡƒΠ½Π³Π΅-ΠšΡƒΡ‚Ρ‚Π° 4-Π³ΠΎ порядка

{

int d=s->x.getd ();

double t=s->time;

column k1(d), k2(d), k3(d), k4(d);

column x1;

x1=s->x;

k1=s->fr (t, x1)*h;

t += h/2.;

k2=s->fr (t, x1+k½.)*h;

k3=s->fr (t, x1+k2/2.)*h;

t += h/2;

s->x=x1+(k1+k2*2.+k3*2+s->fr (t, x1+k3)*h)/6.;

s->time += h;

}

void

nextEil (eco *s, double h) // РСализация ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π­ΠΉΠ»Π΅Ρ€Π°

{

s->x=s->x+s->fr (s->time, s->x)*h;

s->time += h;

}

void CCgrafDlg: OnButton1()

{

// TODO: Add your control notification handler code here

// ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° интСгрирования

double hp; // шаг фиксации Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

long icount; // количСство Ρ‚ΠΎΡ‡Π΅ΠΊ интСгрирования

int pcount; // количСство Ρ‚ΠΎΡ‡Π΅ΠΊ для Π²Ρ‹Π²ΠΎΠ΄Π°

double *t; // врСмя Π² Π·Π°Ρ„иксированных Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…

double *result; // ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ состояния Π² Π·Π°Ρ„иксированных Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…

double min, max; // ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ измСнСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

double eps, e1, e2; // ΠΎΡ†Π΅Π½ΠΊΠ° ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ

char buf[20];

int i, j;

icount=(int)(itime/h)+1; // ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ шага фиксации Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

if (icount < 10 001){ // Π±Π΅Ρ€Π΅ΠΌ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10 000 Ρ‚ΠΎΡ‡Π΅ΠΊ

pcount=icount;

hp=h;

}

else{

pcount=10 001;

hp=itime/10 000.;

}

t= new double[pcount];

result= new double[pcount*2];

m_Pr.SetPos (0); // инициализация прогрСссора

m_Pr.SetRange (0,pcount);

column x0(2);

x0.set (0,x[0]); // Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ условия

x0.set (1,x[1]);

eco s (x0);

eco s2(x0);

// Ρ†ΠΈΠΊΠ» интСгрирования

eps=0.;

for (i=0,j=0; i < icount; i++){

double mi=s.getx (0) < s. getx (1)? s. getx (0): s. getx (1);// ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ опрСдСляСм ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ

double ma=s.getx (0) > s. getx (1)? s. getx (0): s. getx (1);// ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌ для построСния

if (i == 0){ // ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ бСзусловно

min=mi;

max=ma;

t[j]=s.gettime ();

result[j]=s.getx (0);

result[pcount+j]=s.getx (1);

j++;

}

else{

min=min < mi? min: mi; // ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ опрСдСляСм ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ

max=max > ma? max: ma; // ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌ для построСния

}

if (s.gettime ()+h >= t[j-1]+hp && j < pcount-1){// Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΡƒΡŽ

t[j]=s.gettime ()+h; // Ρ‚ΠΎΡ‡ΠΊΡƒ

result[j]=s.getx (0);

result[pcount+j]=s.getx (1);

j++;

m_Pr.SetPos (j); // Π΄Π²ΠΈΠ³Π°Π΅ΠΌ прогрСссор

}

if (iMeth){ // Π²Ρ‹Π±Ρ€Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π­ΠΉΠ»Π΅Ρ€Π°

nextEil (&s, h);

nextEil (&s2,h/2); // ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ с ΡˆΠ°Π³ΠΎΠΌ h/2

nextEil (&s2,h/2);

e1=fabs (s.getx (0)-s2.getx (0)); // Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ

e2=fabs (s.getx (1)-s2.getx (1));

eps=eps > e1? eps > e2? eps: e2: e1;

}

else{ // Π²Ρ‹Π±Ρ€Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π ΡƒΠ½Π³Π΅-ΠšΡƒΡ‚Ρ‚Π°

nextRK4(&s, h);

nextRK4(&s2,h/2); // ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ с ΡˆΠ°Π³ΠΎΠΌ h/2

nextRK4(&s2,h/2);

e1=fabs (s.getx (0)-s2.getx (0)); // Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ

e2=fabs (s.getx (1)-s2.getx (1));

eps=eps > e1? eps > e2? eps: e2: e1;

}

}

if (!iMeth)

eps /= 15.; // для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° 4-Π³ΠΎ порядка

sprintf (buf," %11.5g", eps); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ

m_Eps.SetWindowText (buf);

for (;j < pcount; j++){ // Ссли ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, t[j]=s.gettime (); // Ρ‚ΠΈΡ€Π°ΠΆΠΈΡ€ΡƒΠ΅ΠΌ послСдниС значСния

result[j]=s.getx (0);

result[pcount+j]=s.getx (1);

m_Pr.SetPos (j); // Π΄ΠΎΠ²ΠΎΠ΄ΠΈΠΌ прогрСссор

}

if (min > 0.) // догоняСм ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡ‹ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌΡ‹ Π΄ΠΎ Ρ†Π΅Π»Ρ‹Ρ…

min=0.;

else

min=floor (1.1*min);

max=ceil (1.1*max);

m_Chart2d.AllocSerie (pcount); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊ

m_Chart2d.SetRange (0,itime, min, max);

for (i=0; i < pcount; i++){

m_Chart2d.SetXYValue (t[i], result[i], i,0);

m_Chart2d.SetXYValue (t[i], result[pcount+i], i,1);

}

m_Chart2dh.AllocSerie (pcount); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ„Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚Ρ€Π΅Ρ‚

m_Chart2dh.SetRange (min, max, min, max);

for (i=0; i < pcount; i++)

m_Chart2dh.SetXYValue (result[i], result[pcount+i], i,0);

m_Chart2dh.Invalidate ();

m_Chart2d.Invalidate ();

UpdateData (FALSE);

delete[] t; // освобоТдаСм ΠΏΠ°ΠΌΡΡ‚ΡŒ

delete[] result;

}

y

A

e

B

y=y (x)

yi+1

h

yi

x

O

Ρ…i

xi+1

Ξ±

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

  1. А.Π”. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π±ΠΈΠΎΡ„ΠΈΠ·ΠΈΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… популяций. — Πœ.: Наука, 1985. — 184 с.
  2. Π”ΠΆ., ΠŸΡƒΠ» Π£. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ/ ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π».; Под Ρ€Π΅Π΄. А. А. Абрамова — М.: Наука. Π“Π». Ρ€Π΅Π΄. Ρ„ΠΈΠ·.-ΠΌΠ°Ρ‚. Π»ΠΈΡ‚., 1986. — 288 с., ΠΈΠ».
  3. Π’. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ тСория Π±ΠΎΡ€ΡŒΠ±Ρ‹ Π·Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅. — Πœ.: Наука, 1976. — 288 с.
  4. Алгоритмы ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ проСктирования автоматичСских систСм/ П. Π”. ΠšΡ€ΡƒΡ‚ΡŒΠΊΠΎ, А. И. Максимов, Π›. М. Π‘ΠΊΠ²ΠΎΡ€Ρ†ΠΎΠ²; Под Ρ€Π΅Π΄. П. Π”. ΠšΡ€ΡƒΡ‚ΡŒΠΊΠΎ. — Πœ.: Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·ΡŒ, 1988. — 306 с., ΠΈΠ».
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ
ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

Π˜Π›Π˜