27.12.2012 Views

Wave Propagation in Linear Media | re-examined

Wave Propagation in Linear Media | re-examined

Wave Propagation in Linear Media | re-examined

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>in</strong>tegration limit a or the rightmost ext<strong>re</strong>mum of f, whichever is g<strong>re</strong>ater, a<strong>re</strong><br />

calculated. In the second case, the first n function values of f to the right of a<br />

a<strong>re</strong> sought. Note that <strong>in</strong> this case, f is supposed to <strong>re</strong>turn values only to the<br />

right of the rightmost ext<strong>re</strong>mum. In any case, f must be of the form f[...][x]."<br />

OscInt::usage =<br />

"OscInt[f,fpartition,a,(opts)] <strong>re</strong>turns the univariate <strong>in</strong>tegral of an oscillat<strong>in</strong>g<br />

function f over the range (a,Inf<strong>in</strong>ity) by means of a partition extrapolation strategy.<br />

The function f is <strong>re</strong>qui<strong>re</strong>d to of the form f[...][x], x be<strong>in</strong>g the<br />

<strong>in</strong>tegration variable. Quadratu<strong>re</strong> is carried out between successive partition po<strong>in</strong>ts<br />

def<strong>in</strong>ed by the function fpartition[...][x] that either <strong>re</strong>turns the zeros of the<br />

<strong>in</strong>tegrand or the argument of the oscillat<strong>in</strong>g part. The sequence of partition<br />

po<strong>in</strong>ts is computed by the function PartitionTable, the actual <strong>in</strong>tegration is carried<br />

out with the function PartInt. The first partition po<strong>in</strong>t can be given explicitly<br />

with OscInt[f,fpartition,{a,a0},(opts)]. The options a<strong>re</strong> passed to PartitionTable and<br />

PartInt."<br />

OscIntControlled::usage =<br />

"OscIntControlled[f,fpartition,a,(opts)] works like OscInt with the additional<br />

featu<strong>re</strong> that the accuracy of the <strong>re</strong>sult may be specified <strong>in</strong> advance."<br />

FunctionType::usage =<br />

"FunctionType is an option for PartitionTable (and OscInt) that specifies how<br />

the function passed to PartitionTable is to be <strong>in</strong>terp<strong>re</strong>ted.<br />

FunctionType -> ZeroList means that the function <strong>re</strong>turns consecutive zeros of the<br />

<strong>in</strong>tegrand. FunctionType -> S<strong>in</strong>Argument or CosArgument means that it is the argument<br />

function of the <strong>re</strong>spective cyclic function."<br />

ZeroList::usage =<br />

"ZeroList is a value to FunctionType."<br />

S<strong>in</strong>Argument::usage = CosArgument::usage =<br />

"Argument is a value to FunctionType."<br />

AccuracyControl::usage =<br />

"AccuracyControl specifies whether the accuracy of the <strong>re</strong>sult of OscInt should<br />

be controlled. With AccuracyControl -> n, at most MaxIterations a<strong>re</strong> performed<br />

to achieve the number of n cor<strong>re</strong>ct digits. With AccuracyControl -> False, no<br />

check<strong>in</strong>g is done. The control loop uses the built-<strong>in</strong> function Accuracy."<br />

IterationLength::usage =<br />

"IterationLength specifies the number of terms that a<strong>re</strong> added to the sequence<br />

of partial sums with each iteration."<br />

ApproxLimGeneric::nounique =<br />

"The<strong>re</strong> a<strong>re</strong> `1` <strong>re</strong>al solutions `2`, he<strong>re</strong> is the largest.";<br />

ApproxLimGeneric::nosolution =<br />

"The<strong>re</strong> is no positive <strong>re</strong>al valued solution.";<br />

QuadZero::noquad = "Function is not a quadratic polynomial";<br />

ApproxLimQuad::noapprox = "No approximation needed";<br />

ApproxLimL<strong>in</strong>ear::noosc = "Function not <strong>in</strong>f<strong>in</strong>itely oscillat<strong>in</strong>g";<br />

ZerosInBetween::outside = "Function has no zeros <strong>in</strong>side the <strong>in</strong>terval";<br />

OscInt::lowfirst =<br />

"First partition po<strong>in</strong>t is smaller than lower limit, only<br />

`1` po<strong>in</strong>ts a<strong>re</strong> g<strong>re</strong>ater. This may cause problems.";<br />

OscInt::badparam =<br />

"\"`1`\" is no valid parameter for AccuracyControl.";<br />

OscInt::accfail =<br />

"OscInt failed to achieve the desi<strong>re</strong>d accuracy after `1` iterations. Inc<strong>re</strong>ase<br />

MaxIterations or lower AccuracyControl.";<br />

PartitionTable::badparam =<br />

"\"`1`\" is no valid parameter for FunctionType.";<br />

Beg<strong>in</strong>["`Private`"]<br />

Options[OscInt] = {Work<strong>in</strong>gP<strong>re</strong>cision->$Mach<strong>in</strong>eP<strong>re</strong>cision,<br />

AccuracyGoal->Inf<strong>in</strong>ity,<br />

P<strong>re</strong>cisionGoal->Automatic,<br />

M<strong>in</strong>Recursion->0,<br />

MaxRecursion->20,<br />

NSumTerms->10,<br />

NSumExtraTerms->12,<br />

216<br />

A Mathematica packages

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!