Fresnel Integral

Compute Fresnel integral.
1.5K Downloads
Updated 6 Sep 2012

View License

Usage: F = FCS(X, TERMS) or [C, S] = FCS(X, TERMS)

Returns the Fresnel cosine integral C and sine integral S for each element in X. If only one output is requested, F = C + j*S is output. The convention of this function is to use a pi/2 normalization in the argument of the trignometric function in the definition. To get the Fresnel integral without this normalization, input sqrt(2/pi)*x and multiply the the output by sqrt(pi/2).

For inputs with magnitude less than or equal to 1.6, the Taylor series expansion using TERMS (default 12) number of terms is used. Otherwise, an auxillary function is used. The algorithm is described in the paper:

Klaus D. Mielenz, Computation of Fresnel Integrals. II J. Res. Natl. Inst. Stand. Technol. 105, 589 (2000), pp 589-590 (accessible online: http://nvlpubs.nist.gov/nistpubs/jres/105/4/j54mie2.pdf)

The paper claims the error should be less than 1e-9.

Inputs:
-X: values to compute Fresnel integral of.
-TERMS: number of terms to use in Taylor series expansion (optional, default is 12).

Outputs:
-C: Fresnel cosine integral (with a pi/2 normalization).
-S: Fresnel sine integral (with a pi/2 normalization).

This file was inspired by the file Fresnel integrals by Peter Volegov. That file uses a MEX file to compute the Fresnel integral using the same method that this file uses. I implemented the same technique directly in MATLAB.

Cite As

Drew Compston (2024). Fresnel Integral (https://www.mathworks.com/matlabcentral/fileexchange/34134-fresnel-integral), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2007b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Physics in Help Center and MATLAB Answers
Acknowledgements

Inspired by: Fresnel integrals

Inspired: FresnelS and FresnelC

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.1.0.0

Fixed problem for inputs less than -1.6.

1.0.0.0