WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаФізика → Динамічні властивості нелінійних локалізованих мод у лінійних молекулярних ланцюжках - Курсова робота

Динамічні властивості нелінійних локалізованих мод у лінійних молекулярних ланцюжках - Курсова робота


//вивід параметрів на екран
print "Параметри:N=$N, tau=$tau, dtau=$dtau, j=$j, g0=$g0, c0=$c0, hamma=$hamma";
$xwail=fopen($filo, w);
fputs($xwail, "№ t f^2+fi^2 u(x,t)n");
$norm = 0;
$nulli = fopen ("0.txt", w);
for ($m=1; $m <= $N; $m++)
//Задаємо початкове збудження для всіх молекул
{
if ($m == $N/2)
$f[$m][0] = 0.8;
if (($m == $N/2+1)||($m == $N/2-1))
$f[$m][0] = 0.4;
if (($m == $N/2+2)||($m == $N/2-2))
$f[$m][0] = sqrt(0.02);
$fi[$m][0] = 0;
$norm += $f[$m][0]*$f[$m][0] + $fi[$m][0]*$fi[$m][0];
$p[$m][0] = 0;
$u[$m][0] = 0;
$fu = $u[$m][0];//Тотожність, зручно записувати у файл
//просто змінну не масива
$fm = $f[$m][0]*$f[$m][0]+$fi[$m][0]*$fi[$m][0];
//Запис $m $t $fm $fu
fputs($xwail, "$m 0 $fm $fun");
fputs($nulli, "$m $fm $fun");
}
fclose ($nulli);
print "У початковий момент часу норма = $norm";
//Накладаємо періодичні умови, "нульова" молекула тотожня до N-ї
$f[0][0] = $f[$N][0];
$fi[0][0] = $fi[$N][0];
$p[0][0] = $p[$N][0];
$u[0][0] = $u[$N][0];
//Так само вчинимо з молекулою N+1
$f[$N+1][0] = $f[1][0];
$fi[$N+1][0] = $fi[1][0];
$p[$N+1][0] = $p[1][0];
$u[$N+1][0] = $u[1][0];
for ($t=$dtau; $t < $tau+$dtau; $t=$t+$dtau) //Зсув за часом
{
$norm = 0;
$pot = fopen ("$t.txt", w);
for ($m = 1; $m <= $N; $m++) //Пішов обрахунок N молекул
{
//Для молекул рахуємо методом Рунґе-Кутта
//Функції v, w ,y, z стосуються невідомих f, fi, p, u
$tm1 = $t-$dtau;
$mp1 = $m+1;
$mm1 = $m-1;
$v1[$m][$tm1] =
f1($j, $fi[$mp1][$tm1], $fi[$mm1][$tm1], $g0, $u[$m][$tm1], $fi[$m][$tm1]);
$w1[$m][$tm1] =
f2($j, $f[$mp1][$tm1], $f[$mm1][$tm1], $g0,$u[$m][$tm1],$f[$m][$tm1]);
$y1[$m][$tm1] =
f3($g0,$c0, $fi[$m][$tm1], $f[$m][$tm1], $u[$m][$tm1], $hamma, $p[$m][$tm1]);
$z1[$m][$tm1] = f4($p[$m][$tm1]);
$v2[$m][$tm1] = f1($j, $fi[$mp1][$tm1]+$w1[$mp1][$tm1]/2, $fi[$mm1][$tm1]+$w1[$mm1][$tm1]/2, $g0, $u[$m][$tm1]+$z1[$m][$tm1]/2, $fi[$m][$tm1]+$w1[$m][$tm1]/2);
$w2[$m][$tm1] = f2($j, $f[$mp1][$tm1]+$v1[$mp1][$tm1]/2, $f[$mm1][$tm1]+$v1[$mm1][$tm1]/2, $g0, $u[$m][$tm1]+$z1[$m][$tm1]/2, $f[$m][$tm1]+$v1[$m][$tm1]/2);
$y2[$m][$tm1] = f3($g0,$c0, $fi[$m][$tm1]+$w1[$m][$tm1]/2, $f[$m][$tm1]+$v1[$m][$tm1]/2, $u[$m][$tm1]+$z1[$m][$tm1]/2, $hamma, $p[$m][$tm1]+$y1[$m][$tm1]/2);
$z2[$m][$tm1] = f4($p[$m][$tm1]+$y1[$m][$tm1]/2);
$v3[$m][$tm1] = f1($j,$fi[$mp1][$tm1]+$w2[$mp1][$tm1]/2, $fi[$mm1][$tm1]+$w2[$mm1][$tm1]/2, $g0, $u[$m][$tm1]+$z2[$m][$tm1]/2, $fi[$m][$tm1]+$w2[$m][$tm1]/2);
$w3[$m][$tm1] = f2($j, $f[$mp1][$tm1]+$v2[$mp1][$tm1]/2, $f[$mm1][$tm1]+$v2[$mm1][$tm1]/2, $g0, $u[$m][$tm1]+$z2[$m][$tm1]/2, $f[$m][$tm1]+$v2[$m][$tm1]/2);
$y3[$m][$tm1] = f3($g0,$c0, $fi[$m][$tm1]+$w2[$m][$tm1]/2, $f[$m][$tm1]+$v2[$m][$tm1]/2, $u[$m][$tm1]+$z2[$m][$tm1]/2, $hamma, $p[$m][$tm1]+$y2[$m][$tm1]/2);
$z3[$m][$tm1] = f4($p[$m][$tm1]+$y2[$m][$tm1]/2);
$v4[$m][$tm1] = f1($j, $fi[$mp1][$tm1]+$w3[$mp1][$tm1], $fi[$mm1][$tm1]+$w3[$mm1][$tm1], $g0, $u[$m][$tm1]+$z3[$m][$tm1], $fi[$m][$tm1]+$w3[$m][$tm1]);
$w4[$m][$tm1] = f2($j, $f[$mp1][$tm1]+$v3[$mp1][$tm1], $f[$mm1][$tm1]+$v3[$mm1][$tm1], $g0, $u[$m][$tm1]+$z3[$m][$tm1], $f[$m][$tm1]+$v3[$m][$tm1]);
$y4[$m][$tm1] = f3($g0,$c0, $fi[$m][$tm1]+$w3[$m][$tm1], $f[$m][$tm1]+$v3[$m][$tm1], $u[$m][$tm1]+$z3[$m][$tm1], $hamma, $p[$m][$tm1]+$y3[$m][$tm1]);
$z4[$m][$tm1] = f4($p[$m][$tm1]+$y3[$m][$tm1]);
//Маємо результати
$f[$m][$t] = $f[$m][$tm1] + ($dtau/6)*($v1[$m][$tm1] + 2*$v2[$m][$tm1] + 2*$v3[$m][$tm1] + $v4[$m][$tm1]);
$fi[$m][$t] = $fi[$m][$tm1] + ($dtau/6)*($w1[$m][$tm1] + 2*$w2[$m][$tm1] + 2*$w3[$m][$tm1] + $w4[$m][$tm1]);
$p[$m][$t] = $p[$m][$tm1] + ($dtau/6)*($y1[$m][$tm1] + 2*$y2[$m][$tm1] + 2*$y3[$m][$tm1] + $y4[$m][$tm1]);
$u[$m][$t] = $u[$m][$tm1] + ($dtau/6)*($z1[$m][$tm1] + 2*$z2[$m][$tm1] + 2*$z3[$m][$tm1] + $z4[$m][$tm1]);
if ($m == $N)
{
$v1[0][$tm1] = $v1[$N][$tm1];
$v2[0][$tm1] = $v2[$N][$tm1];
$v3[0][$tm1] = $v3[$N][$tm1];
$v4[0][$tm1] = $v4[$N][$tm1];
$f[0][$t] = $f[$N][$t];
$w1[0][$tm1] = $w1[$N][$tm1];
$w2[0][$tm1] = $w2[$N][$tm1];
$w3[0][$tm1] = $w3[$N][$tm1];
$w4[0][$tm1] = $w4[$N][$tm1];
$fi[0][$t] = $fi[$N][$t];
$y1[0][$tm1] = $y1[$N][$tm1];
$y2[0][$tm1] = $y2[$N][$tm1];
$y3[0][$tm1] = $y3[$N][$tm1];
$y4[0][$tm1] = $y4[$N][$tm1];
$p[0][$t] = $p[$N][$t];
$z1[0][$tm1] = $z1[$N][$tm1];
$z2[0][$tm1] = $z2[$N][$tm1];
$z3[0][$tm1] = $z3[$N][$tm1];
$z4[0][$tm1] = $z4[$N][$tm1];
$u[0][$t] = $u[$N][$t];
}
if ($m == 1)
{
$v1[$N+1][$tm1] = $v1[1][$tm1];
$v2[$N+1][$tm1] = $v2[1][$tm1];
$v3[$N+1][$tm1] = $v3[1][$tm1];
$v4[$N+1][$tm1] = $v4[1][$tm1];
$f[$N+1][$t] = $f[1][$t];
$w1[$N+1][$tm1] = $w1[1][$tm1];
$w2[$N+1][$tm1] = $w2[1][$tm1];
$w3[$N+1][$tm1] = $w3[1][$tm1];
$w4[$N+1][$tm1] = $w4[1][$tm1];
$fi[$N+1][$t] = $fi[1][$t];
$y1[$N+1][$tm1] = $y1[1][$tm1];
$y2[$N+1][$tm1] = $y2[1][$tm1];
$y3[$N+1][$tm1] = $y3[1][$tm1];
$y4[$N+1][$tm1] = $y4[1][$tm1];
$p[$N+1][$t] = $p[1][$t];
$z1[$N+1][$tm1] = $z1[1][$tm1];
$z2[$N+1][$tm1] = $z2[1][$tm1];
$z3[$N+1][$tm1] = $z3[1][$tm1];
$z4[$N+1][$tm1] = $z4[1][$tm1];
$u[$N+1][$t] = $u[1][$t];
}
//Запис всіх знайдених змінних
$fu = $u[$m][$t];//Тотожність, зручно записувати у файл просто змінну не масива
$fm = $f[$m][$t]*$f[$m][$t]+$fi[$m][$t]*$fi[$m][$t];
//fputs($xwail, "$m $t $fm $fun");
$norm += $fm;
}
$norm2 = 0;
$norm = sqrt($norm);
//print "$norm";
for ($m = 1; $m <= $N; $m++) //Перерозрахунок, застосування
//умови нормування
{
if ($norm != 1)
{
$f[$m][$t] = $f[$m][$t]/$norm;
$fi[$m][$t] = $fi[$m][$t]/$norm;
}
$fu = $u[$m][$t];//Тотожність, зручно записувати у файл
//просто змінну не масива
$fm = $f[$m][$t]*$f[$m][$t]+$fi[$m][$t]*$fi[$m][$t];
fputs($xwail, "$m $t $fm $fun");
fputs($pot, "$m $fm $fun");
$norm2 += $fm;
}
fclose ($pot);
print "Перевірка норми (час $t): $norm";
}
//Кінець циклу і скрипта майже
print "Success!! Результати обрахунків занесено до файла $filo, який можете
скачати звідси й імпортувати для побудови графіків";
?>
Назад >>>
Loading...

 
 

Цікаве