Login     Register

        Contact Us     Search

XLeratorDB/math Documentation

SQL Server double exponential quadrature for periodic functions


QUADOSC

Updated: 31 March 2014


Use the scalar function QUADOSC to evaluate an infinite integral. QUADOSC calculates the integral of the given function f(x) over the interval (-Infinity, Infinity) using Double Exponential Quadrature for Periodic functions.
Syntax
SELECT [wctMath].[wct].[QUADOSC](
  <@Func, nvarchar(max),>
 ,<@VarName, nvarchar(4000),>
 ,<@A, sql_variant,>
 ,<@B, sql_variant,>
 ,<@Omega, float,>)
Arguments
@Func
the function to be integrated. @Func is a string containing any valid TSQL statement which includes a single variable that is the object of the integration. The variable name is defined in @VarName. @Func is of a type nvarchar or of any type which implicitly converts to nvarchar.
@VarName
the TSQL variable name. The variable name must start with '@'. @VarName must be of a type nvarchar of a type which implicitly converts to nvarchar.
 @A
the lower limit of integration.
@B
the upper limit of integration.
@Omega
the periodicity of the function. @Omega must be of the type float or of a type that implicitly converts to float.
Return Types
float
Remarks
·         If @A is not '-Inf' and @B is not 'Inf' then NULL will be returned.
·         If @A is '-Inf' then the function will be integrate from –8 to @B.
·         If @A is not '-Inf' then the function will be integrated from @A to 8.
·         If @Omega is NULL then @Omega is set to 1.
·         @Omega cannot be equal to zero.
·         @A can be any floating point number or '-Inf'.
·         @B can be any floating point number or 'Inf'.
·         If @Func contains an undeclared SQL variable and it is not defined in @VarName a NULL will be returned.
·         For best results you should only periodic functions. For non-periodic functions use QUADDE instead.
Example
In this example we want to evaluate the integral:

SELECT dbo.QUADOSC(
   'SELECT (SIN(@x)-@x*COS(@x))/POWER(@x,2)',   --@Func
   '@x',    --@VarName
   0,       --@A
   'Inf',   --@B
   1        --@Omega
   ) as Integral

This produces the following result.
              Integral
----------------------
      0.99999999999999

In this example we want to evaluate the integral:


SELECT dbo.QUADOSC(
      'SELECT (SIN(@x)-@x*COS(@x))/POWER(@x,2)',      --@Func
      '@x',       --@VarName
      '-Inf',     --@A
      0,          --@B
      1           --@Omega
   ) as Integral

This produces the following result.
              Integral
----------------------
     -0.99999999999999

In this example we want to evaluate the integral:


SELECT dbo.QUADOSC(
   'SELECT EXP(-16*POWER(@x,2))*COS(3*(@x+5))', --@Func
   '@x',    --@VarName
   '-Inf',  --@A
   'Inf',   --@B
   NULL     --@Omega
   ) as Integral

This produces the following result.
              Integral
----------------------
      3.14159265358979

 

See Also

 



Copyright 2008-2017 Westclintech LLC         Privacy Policy        Terms of Service