Quantitative Analysis
Parallel Processing
Numerical Analysis
C++ Multithreading
Python for Excel
Python Utilities

I. Wavelet calculations.
1. Calculation of scaling filters.
2. Calculation of scaling functions.
3. Calculation of wavelets.
4. Convergence of cascade procedure.
5. Direct verification of wavelet properties.
6. Adapting scaling function to the interval [0,1].
7. Adapting wavelets to the interval [0,1].
II. Calculation of approximation spaces in one dimension.
III. Calculation of approximation spaces in one dimension II.
IV. One dimensional problems.
V. Stochastic optimization in one dimension.
VI. Scalar product in N-dimensions.
VII. Wavelet transform of payoff function in N-dimensions.
VIII. Solving N-dimensional PDEs.
Downloads. Index. Contents.

Adapting scaling function to the interval [0,1].

dapting scaling functions to the interval [0,1] is based on the technique of the section ( Adapting GMRA to interval [0,1] ). The python code is located in the file "OTSProjects\python\wavelet\interval\interval.py".

The class PhiGenerator performs the task. The notation in the code follows the notation of the section ( Adapting GMRA to interval [0,1] ). The example of use may be found in the function "makePhiGen" in the file "_run_interval.py". The same file performs various direct verifications of correctness of the procedure.

Examination of the code in the file interval.py reveals that we slightly deviate from the procedure of the section ( Adapting GMRA to interval [0,1] ). The reason is numerical stability. The procedure is based on the scaling functions $\phi$ , $\tilde{\phi}$ that come from infinite cascade procedure. We have to stop the cascade procedure at some limited number of steps. As a result, we do not get exact biorthogonality of the translation bases around $\phi,\tilde{\phi}$ . The biorthogonality is essential for the procedure of the section ( Adapting GMRA to interval [0,1] ). Without it we do not get biorthogonality between internal and boundary scaling functions. If we start with a slight deviation from biorthogonality of $\phi,\tilde{\phi}$ then the error is amplified when we multiply by the matrixes $A$ and $\tilde{A}$ . To see this, calculate eigenvalues for the matrixes $X_{1}$ and $X_{2}$ . For symmetric biorthogonal scaling functions, calculated directly from the procedure of the section ( Adapting GMRA to interval [0,1] ) and $n=5$ (the smallest, simplest case), the 5 eigenvalues range from 2.5e-1 to 2.0e-11. This is the origin of numerical troubles that follow after that. On the other hand, achieving biorthogonality of $\phi,\tilde{\phi}$ with great precision is costly.

The difficulty originates in the approximation properties of the system MATH that we use when constructing the initial boundary functions MATH , MATH , MATH , MATH . As we increase the maximal degree, the condition number of Gram matrix increases. To remove the difficulty, we rotate the system MATH into shifted Legendre polynomials. Indeed, the matrix MATH has eigenvalues in the range from 1.5 to 3.3e-6 for $N=5$ (see the script tPwrOrt.py) but the same matrix for the Legendre polynomials is equal to MATH .

The more efficient solution is obtained by performing orthogonalization of polynomials MATH with custom scalar product: MATH for some positive on $\left[ 0,1\right] $ function $w\left( x\right) $ . Indeed, our concern is preserving biorthogonality of MATH vs MATH (biorthogonality across the boundary index $\min K_{L,d}$ , and similarly on the right side). We expect one of the quantities MATH , MATH , MATH , $k<k^{\ast}$ to deviate the most from zero. Therefore, we obtain good stability if we select $w$ from MATH . Experimentation shows (see the classes CondNumberMinimizer and PolynomialMinimizer and the script _run_interval.py) that optimization of $w$ does not provide significant improvement over such recipe.

In addition, we use the Python module "decimal" to control numerical precision.

With these two modifications in place, it is possible to achieve precision MATH for 8 steps of cascading procedure. We note for future use that only the functions MATH are affected by the numerical instability because these are obtained via multiplication of MATH with large-valued matrixes $U_{i}$ . The functions MATH are obtained via multiplication with $L_{i}$ and, thus, are calculate with significantly better precision.

Our final remark is about extending results for scaling parameter $d$ to $d+1$ . Note that $\phi$ and MATH may be used interchangeably to construct MRA (GMRA for pair). The spaces $V_{d},W_{d}$ would be the same after shifting the parameter $d$ . Hence, we can recover boundary functions for $d+1$ by scaling and shifting the $d$ -scale boundary functions. We obtain the boundary functions MATH by applying the operation MATH to the functions MATH for some translation parameter $k_{d,L}$ . The $k_{d,L}$ is selected by comparing supports: MATH We perform a similar operation on the right: MATH

Downloads. Index. Contents.

Copyright 2007