- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
<?php
{
$iter = 10000; //количество итераций
$Xmax = array(1,1); //верхние границы
$Xmin = array(-1,-1); //нижние границы
$F = 'cos($x[0])*cos($x[1])'; //подынтегральное выражение
$F2 = '$x[0]+5-sin($x[1])>=2'; //выражение, определяющее границы функции (если такового нет, впишите 0)
}
$U = count($Xmin); //кратность интеграла
$Xint = array();
$x = array();
$SumH = 0;
for ($i = 0; $i <= $U; $i++)
{
$Xint[$i] = $Xmax[$i] - $Xmin[$i];
}
for ($j = 1; $j <= $iter; $j++)
{
for ($i = 0; $i <= $U; $i++)
{
$x[$i] = $Xmin[$i] + lcg_value() * $Xint[$i];
}
eval ("\$F1 = $F2;"); //левая часть выражения, определяющего границы функции
if ($F1 !== 0)
{
$InInt = false;
if ($F1) $InInt = true;
if (!$InInt) continue;
}
eval ("\$F3 = $F;");
$SumH += abs($F3);
}
$rez = 1;
for ($i = 0; $i <= $U-1; $i++)
{
$rez = $rez*$Xint[$i];
}
$rez = ($SumH*$rez)/ $iter;
echo ("Answer: $rez");
?>
guest 21.06.2010 02:08 # −1
guest 21.06.2010 02:17 # −2
guest 21.06.2010 02:27 # +2
guest 21.06.2010 02:39 # −3
guest 21.06.2010 02:40 # −1
TERAB1T 21.06.2010 02:25 # −1
guest 21.06.2010 02:28 # −1
Dummy00001 21.06.2010 02:34 # +1
TERAB1T 21.06.2010 02:37 # +1
guest 21.06.2010 02:39 # −2
не волнуйся, нубы составляют основной контингент говнокод.ру
guest 21.06.2010 02:52 # −2
guest 21.06.2010 02:34 # −5
guest 21.06.2010 02:52 # −5
guest 21.06.2010 07:31 # −5
TERAB1T 21.06.2010 02:31 # −5
guest 21.06.2010 02:53 # −5
guest 21.06.2010 07:09 # −3
guest 21.06.2010 04:33 # −4
guest 21.06.2010 04:52 # −3
guest 21.06.2010 05:22 # −5
guest 21.06.2010 05:25 # −5
guest 21.06.2010 05:27 # −5
guest 21.06.2010 06:16 # −5
guest 21.06.2010 07:08 # −6
guest 21.06.2010 07:30 # −6
Инкрезон 22.06.2010 03:06 # −4
Говногость 22.06.2010 15:12 # +3
Webkill 21.06.2010 11:11 # −4
TERAB1T 21.06.2010 11:34 # −4
Lure Of Chaos 21.06.2010 12:15 # −4
$F1 = eval ($F2)
не?
bugmenot 21.06.2010 23:08 # −2
Suor 26.06.2010 17:14 # 0
function F2($x) { return $x[0]+5-sin($x[1])>=2 }
... $F1 = F2($x) ... $F3 = F($x)
или если уж так нужно задавать интегрируемое выражение и границы строкой, то
$F = create_function('$x', "return $F");
$F2 = create_function('$x', "return $F2");
... $F1 = $F2($x) ... $F3 = $F($x)
А вообще считать интегралы на PHP это пиздец
xXx_totalwar 26.06.2010 17:41 # 0
Lure Of Chaos 26.06.2010 21:17 # 0
xXx_totalwar 26.06.2010 21:19 # 0
Wеbkill 26.06.2010 21:42 # −3
Wеbkill 26.06.2010 22:33 # −3
Webkill 26.06.2010 23:06 # −1