Пример #1
0
double V_2(double x, double y)
{
/*    double x_eval = x;
    double y_eval = y;
    
    double x1 = -2.0;
    double y1 = 2.0;
    double x2 = 7.0;
    double y2 = 7.0;
    
    x_eval -= x1;
    y_eval -= y1;
    x2 -= x1;
    y2 -= y1;
    
    double L = sqrt(x2*x2+y2*y2);
    if (fabs(L) >= 1E-12)
    {
        x2 /= L;
        y2 /= L;
    }
    else return 0;
    
    x = (x_eval*y2-y_eval*x2);
    y = (x_eval*x2+y_eval*y2);
    
    return (antideriv(x,y)-antideriv(x,y-L))/(-_2pi);*/
    
   /* double s = sqrt(x*x+y*y);
    if ( fabs(s) >= 1E-14 )
        return log(s)/(-_2pi);
    else return 0.0;*/
    
    return (antideriv(x,y)-antideriv(x,y-3.0))/(-_2pi);
}
Пример #2
0
int main (void)
{
  double (*testfn)(double);
  double (*antideriv)(double);
  int lower=-8;
  int upper=8;
  int budget=100000;

  testfn = exponential;
  antideriv = exponential;
  double answer = antideriv(upper)-antideriv(lower);
  

  printf("%20.14f \n", answer);
  
  adaptivetrial(trapezium, testfn, lower, upper, answer, budget);
  adaptivetrial(boole, testfn, lower, upper, answer, budget);
  depthtrial(trapezium, testfn, lower, upper, answer, budget);
  depthtrial(boole, testfn, lower, upper, answer, budget);

}