Ознакомьтесь с нашей политикой обработки персональных данных
10:25 

Двойные интегралы на PHP. Метод Монте-Карло

Есть программа на PHP по решению двойных интегралов Вот она:
<html> 
 <head> 
  <title>Двойной интеграл</title> 
 </head> 
 <body> 

 <?php
  define 
("pi"3.14false);
 
Error_Reporting(E_ALL & ~E_NOTICE);
 
define ("pi"3.14false);
 
$u=$_GET['u']; 
 
$v=$_GET['v']; 
 
$u1=$_GET['u1']; 
 
$v1=$_GET['v1']; 
 
$c=$_GET['c'];
 
$d=$_GET['d'];
  for (
$i=1$i<=$c$i++)
  {
    eval (
"\$a = $u;");
    eval (
"\$b = $v;"); 
    eval (
"\$a1 = $u1;");
    eval (
"\$b1 = $v1;");     
   
$k=$b-$a;
   
$k1=$b1-$a1;
   
$g=lcg_value();
   
$x=$a+$g*($b-$a);
   
$g=lcg_value();
   
$y=$a1+$g*($b1-$a1);
    eval (
"\$f = $d;");
   
$s=$s+$f;
  }
if (
$c!=0)
{
 
$z=(1/$c)*($k*$k1)*$s;
  echo 
"$z";
}
else echo 
"Введите значения:";
 
?> 

 
 <form method="GET" action="2.php">
 Введите нижнюю границу интегрирования (x): <input type="text" name="u"><br/> 
 Введите верхнюю границу интегрирования (x): <input type="text" name="v"><br/> 
 Введите нижнюю границу интегрирования (y): <input type="text" name="u1"><br/> 
 Введите верхнюю границу интегрирования (y): <input type="text" name="v1"><br/> 
 Введите количество случайных значений: <input type="text" name="c"><br/> 
 Введите функцию: <input type="text" name="d"><br/> 
    <input type=submit value="Посчитать"> 
 </form>   
   
Перед переменной всегда ставить знак <b>"$"</b>, например, выражение <b>x+2y</b> должно выглядеть, как <b>$x+2*$y</b><br/> 
Переменные в двойном интеграле записывать только как x (первая переменная) и у (вторая переменная) (не использовать другие буквы).<br/> 
<b>*</b> - умножение<br/> 
<b>/</b> - деление<br/> 
<b>-</b> - вычитание<br/> 
<b>+</b> - сложение<br/> 
<b>acos( ;)</b> - арккосинус.<br/> 
<b>asin( ;)</b> - арксинус.<br/> 
<b>atan( ;)</b> - арктангенс.<br/> 
<b>cos( ;)</b> - косинус.<br/> 
<b>sin( ;)</b> - синус. <br/> 
<b>tan( ;)</b> - тангенс. <br/> 
<b>exp( ;)</b> - экспонента числа. <br/> 
<b>log( ;)</b> - натуральный логарифм. <br/> 
<b>log10( ;)</b> - десятичный логарифм. <br/> 
<b>pi</b> - приближенное значение числа ПИ. <br/> 
<b>pow(<основание>, <показатель степени> ;)</b> - возведение в степень. Например, 3^2=<b>pow(3, 2)</b>=9<br/> 
<b>sqrt( ;)</b> - квадратный корень числа. <br/> 
 </body> 
</html>


Решает интегралы только четко заданными границами. Как сделать так, чтоб считала интегралы сложнее, типа ?

@темы: PHP, Алгоритмы, Вопросы, Монте-Карло, Советы и Секреты, двойной интеграл, матан

Комментарии
2010-05-19 в 10:53 

Тигр
eval ("\$a = $u;");
eval ("\$b = $v;");
eval ("\$a1 = $u1;");
eval ("\$b1 = $v1;");


Итить твою налево! Японский городовой нервно курит в сторонке! =)

То что называется "интегралом сложнее" - является интегралом с границами, которые надо посчитать, если я правильно понял. Взять и добавить методы для расчета этих границ.

2010-05-19 в 11:10 

Взять и добавить методы для расчета этих границ.

Как? И что с эвалом не так? :)

2010-05-20 в 09:22 

Неужели никто не знает? :bang: Хоть какие-нибудь догадки на этот счет...

2010-05-20 в 09:22 

Неужели никто не знает? :bang: Хоть какие-нибудь догадки на этот счет...

2010-05-20 в 10:52 

Тигр
TERAB1T, да сама идея просто ДУРНАЯ. Для интегралов есть Matlab.

2010-05-20 в 11:23 

Дурная-то может и дурная, но таково задание препода :) Поэтому надо как-то написать. Основа уже написана, осталось написать только вот именно это задание

2013-01-24 в 17:42 

URL
   

Сообщество PHP программистов

главная