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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Appendix A<br />

Mathematica packages<br />

A Mathematica packages<br />

The appendix conta<strong>in</strong>s source code list<strong>in</strong>gs of the most important Mathematica packages that<br />

we<strong>re</strong> needed to carry out the numerical evaluation of the wave <strong>in</strong>tegrals <strong>in</strong> the rst part of<br />

this work. The last section describes a number of utilities that made life easier with the<br />

th<strong>re</strong>e-dimensional pictu<strong>re</strong>s of propagat<strong>in</strong>g waves.<br />

A.1 Numerical quadratu<strong>re</strong><br />

The package OscInt was written to compute semi-<strong>in</strong> nite <strong>in</strong>tegrals of strongly oscillat<strong>in</strong>g<br />

<strong>in</strong>tegrands. The user <strong>in</strong>terface and implementation a<strong>re</strong> described <strong>in</strong> detail <strong>in</strong> chapter 7.<br />

(* Copyright: Copyright 1997, Institute of Computertechnology, *)<br />

(* Vienna University of Technology *)<br />

(*:Version: Mathematica 2.2.3 *)<br />

(*:Title: OscInt *)<br />

(*:Revision: 1.2 *)<br />

(*:Author: Thilo Sauter *)<br />

(*:Keywords: Semi-<strong>in</strong>f<strong>in</strong>ite Quadratu<strong>re</strong>, Very Oscillat<strong>in</strong>g Integrands,<br />

Series Acceleration *)<br />

(*:Requi<strong>re</strong>ments: None. *)<br />

(*:Warn<strong>in</strong>gs: None so far *)<br />

(*:Summary: This package provides a set of functions for the numerical<br />

quadratu<strong>re</strong> of univariate oscillat<strong>in</strong>g <strong>in</strong>tegrands over the<br />

semi-<strong>in</strong>f<strong>in</strong>te range {a,Inf<strong>in</strong>ity}. The oscillations of the<br />

<strong>in</strong>tegrand may be ir<strong>re</strong>gular and need not show an ultimately<br />

constant period. The <strong>in</strong>tegrand must be of the form<br />

f(x) u(g(x)) with u(x) be<strong>in</strong>g S<strong>in</strong>[x], Cos[x] or - mo<strong>re</strong><br />

generally - Exp[I x]. The argument function g(x) must have<br />

an asymptotic expansion at <strong>in</strong>f<strong>in</strong>ity.<br />

*)<br />

(*:History: 27-12-1996 ZerosInBetween extended to cope with special cases<br />

25-01-1997 PartInt, PartitionTable added, OscInt <strong>re</strong>written<br />

24-03-1997 OscIntControlled, PartitionOffs, PartitionPo<strong>in</strong>ts<br />

added to allow accuracy control<br />

25-03-1997 Check of the limit of zerof[x] added to functions<br />

PartitionTable and PartitionPo<strong>in</strong>ts to detect<br />

argument functions with f<strong>in</strong>ite limit (and thus<br />

f<strong>in</strong>ite set of zeros)<br />

*)<br />

Beg<strong>in</strong>Package["OscInt`"]<br />

PolynomialDeg<strong>re</strong>e::usage =<br />

"PolynomialDeg<strong>re</strong>e[f,x] <strong>re</strong>turns the deg<strong>re</strong>e of the polynomial<br />

asymptotic expansion of f <strong>re</strong>gard<strong>in</strong>g the variable x at Inf<strong>in</strong>ity. If f<br />

is a pu<strong>re</strong> function or is def<strong>in</strong>ed as f[...][x] then x need not be<br />

specified."<br />

214

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

Saved successfully!

Ooh no, something went wrong!