Goodstein's theorem: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Robertinventor
 
en>LilHelpa
m Typo fixing and general fixes using AWB
Line 1: Line 1:
If you are reading this short article then I could safely assume that you are hunting for several hemorrhoid treatments you can do at home. If you are, then please read on. Let us initially define what hemorrhoids are plus what causes them, after recognizing that, then you can discover efficient house treatments we may use. Basically hemorrhoids are swollen veins in our anal canal. It is synonymous to varicose veins, nevertheless rather of it being in the legs it is very found in our anal canal.<br><br>It is not pricey at all, meaning it really is reasonably-priced. If you choose to purchase venapro it's good to know If you create bigger orders like 3 or even more bottles, then you might meet the needs for a bargain. The product is supported up by a refund. It has a 90 day refund. This signifies to ask to receive your cash back when it does not provide you any effect. There is sincerity in this [http://hemorrhoidtreatmentfix.com/bleeding-hemorrhoids stop bleeding hemorrhoids] product inside the sense that we will not be ripped off.<br><br>: one. The initial approach to naturally treat hemorrhoids is with the stiz tub. The right system to make a sitz bath is to add warm water to a small bathtub. Set certain bathtub solutions to the water, when you've completed this. This usually support you utilizing the pain, swelling, and distress. The bath solution will be got by you for an herb store that is in the city.<br><br>Constipation is the normal cause of hemorrhoid. In order to overcome with this constipation, you need to change a diet. Before if you use to eat those instant foods or processed food, then it's the perfect time to stop eating these foods. You have to change your die with those fibrous foods inside purchase to remedy your irregularity. Another superior thing to do is to heighten the fluid consumption. This usually moreover assist you to soften your stool and avoid from straining throughout bowel movement.<br><br>Sitz bathtub, this might be usually where to start. A sitz bath is ideal done with an inexpensive add on to the bathroom. It is a bowl like insert that we soak in. In it happens to be a mixture of warm water plus Epsom salts. All of these goods can be found at the drug store, to be setup and soaking now. Plan on 10 to 15 minute sessions 1 to 5 occasions a day. The sitz bathtub usually to begin with clean the hemorrhoids plus this might be many important but it can furthermore start the task of shrinking hemorrhoids.<br><br>One of the aspects which usually actually make hemorrhoids worse is when you stress a lot whilst going to the bathroom. It is important right now which you are having some soft stool, if the stool is hard then you'll be straining. The easiest way to make certain it's soft is to eat foods which are fairly excellent in fiber.<br><br>Whenever this bath is completed, we could then wish To take several ice (wrapped up inside a cloth) and apply it to the anal region. This causes a decrease inside the amount of blood that is flowing to the area; furthermore ice can have a numbing effect providing you a little more relief from pain.
{{Trigonometry}}
In [[mathematics]], tables of [[trigonometric function]]s are useful in a number of areas. Before the existence of [[pocket calculator]]s, '''trigonometric tables''' were essential for [[navigation]], [[science]] and [[engineering]]. The calculation of [[mathematical table]]s was an important area of study, which led to the development of the [[history of computing|first mechanical computing devices]].
 
Modern computers and pocket calculators now generate trigonometric function values on demand, using special libraries of mathematical code. Often, these libraries use pre-calculated tables internally, and compute the required value by using an appropriate interpolation method. Interpolation of simple look-up tables of trigonometric functions is still used in [[computer graphics]], where only modest accuracy may be required and speed is often paramount.
 
Another important application of trigonometric tables and generation schemes is for [[fast Fourier transform]] (FFT) algorithms, where the same trigonometric function values (called ''twiddle factors'') must be evaluated many times in a given transform, especially in the common case where many transforms of the same size are computed. In this case, calling generic library routines every time is unacceptably slow. One option is to call the library routines once, to build up a table of those trigonometric values that will be needed, but this requires significant memory to store the table. The other possibility, since a regular sequence of values is required, is to use a recurrence formula to compute the trigonometric values on the fly. Significant research has been devoted to finding accurate, stable recurrence schemes in order to preserve the accuracy of the FFT (which is very sensitive to trigonometric errors).
 
==On-demand computation==
[[Image:Bernegger Manuale 137.jpg|thumb|right|200px|A page from a 1619 book of [[mathematical table]]s]]
Modern computers and calculators use a variety of techniques to provide trigonometric function values on demand for arbitrary angles (Kantabutra, 1996). One common method, especially on higher-end processors with [[Floating point|floating-point]] units, is to combine a [[polynomial]] or [[rational function|rational]] [[approximation theory|approximation]] (such as [[Chebyshev approximation]], best uniform approximation, and [[Padé approximant|Padé approximation]], and typically for higher or variable precisions, [[Taylor series|Taylor]] and [[Laurent series]]) with range reduction and a table lookup &mdash; they first look up the closest angle in a small table, and then use the polynomial to compute the correction. Maintaining precision while performing such interpolation is nontrivial, however; and methods like [[Gal's accurate tables]], Cody and Waite reduction, and Payne and Hanek reduction algorithms can be used for this purpose. On simpler devices that lack a [[multiplication ALU|hardware multiplier]], there is an algorithm called [[CORDIC]] (as well as related techniques) that is more efficient, since it uses only [[shift operator|shift]]s and additions. All of these methods are commonly implemented in [[computer hardware|hardware]] for performance reasons.
 
For [[arbitrary-precision arithmetic|very high precision]] calculations, when series-expansion convergence becomes too slow, trigonometric functions can be approximated by the [[arithmetic-geometric mean]], which itself approximates the trigonometric function by the ([[complex number|complex]]) [[elliptic integral]] (Brent, 1976).
 
Trigonometric functions of angles that are [[rational number|rational]] multiples of 2π are [[algebraic number]]s, related to [[roots of unity]], and can be computed with a [[polynomial]] [[root-finding algorithm]] in the [[complex plane]]. For example, the cosine and sine of 2π&nbsp;⋅&nbsp;5/37 are the [[real part|real]] and [[imaginary part]]s, respectively, of a 37th root of unity, corresponding to a root of a [[degree of a polynomial|degree]]-37 polynomial ''x''<sup>37</sup>&nbsp;&minus;&nbsp;1.  Root-finding algorithms such as [[Newton's method]] are much simpler than the arithmetic-geometric mean algorithms above while converging at a similar asymptotic rate; the latter algorithms are required for [[transcendental number|transcendental]] trigonometric constants, however.
 
==Half-angle and angle-addition formulas==
 
Historically, the earliest method by which trigonometric tables were computed, and probably the most common until the advent of computers, was to repeatedly apply the half-angle and angle-addition [[Trigonometric identity|trigonometric identities]] starting from a known value (such as sin(π/2)&nbsp;=&nbsp;1, cos(π/2)&nbsp;=&nbsp;0). This method was used by the ancient astronomer [[Ptolemy]], who derived them in the ''[[Almagest]]'', a treatise on astronomy.  In modern form, the identities he derived are stated as follows (with signs determined by the quadrant in which ''x'' lies;
 
:<math>\cos\left(\frac{x}{2}\right) =  \pm \sqrt{\tfrac{1}{2}(1 + \cos x)}</math>
 
:<math>\sin\left(\frac{x}{2}\right) =  \pm \sqrt{\tfrac{1}{2}(1 - \cos x)}</math>
 
:<math>\sin(x \pm y) = \sin(x) \cos(y) \pm \cos(x) \sin(y)\,</math>
 
:<math>\cos(x \pm y) = \cos(x) \cos(y) \mp \sin(x) \sin(y)\,</math>
 
These were used to construct [[Ptolemy's table of chords]], which was applied to astronomical problems.
 
Various other permutations on these identities are possible: for example, some early trigonometric tables used not sine and cosine, but sine and [[versine]]).
 
==A quick, but inaccurate, approximation==
 
A quick, but inaccurate, algorithm for calculating a table of ''N'' approximations ''s''<sub>''n''</sub> for [[sine|sin]](2[[Pi|&pi;]]''n''/''N'') and ''c''<sub>''n''</sub> for [[cosine|cos]](2π''n''/''N'') is:
 
:''s''<sub>0</sub> = 0
:''c''<sub>0</sub> = 1
:''s''<sub>''n''+1</sub> = ''s''<sub>''n''</sub> + ''d'' &times; ''c''<sub>''n''</sub>
:''c''<sub>''n''+1</sub> = ''c''<sub>''n''</sub> &minus; ''d'' &times; ''s''<sub>''n''</sub>
for ''n'' = 0,...,''N''&nbsp;&minus;&nbsp;1, where ''d'' = 2π/''N''.
 
This is simply the [[Numerical ordinary differential equations#The Euler method|Euler method]] for integrating the [[differential equation]]:
 
:<math>ds/dt = c</math>
:<math>dc/dt = -s</math>
 
with initial conditions ''s''(0) = 0 and ''c''(0) = 1, whose analytical solution is ''s'' = sin(''t'') and ''c'' = cos(''t'').
 
Unfortunately, this is not a useful algorithm for generating sine tables because it has a significant error, proportional to 1/''N''.
 
For example, for ''N'' = 256 the maximum error in the sine values is ~0.061 (''s''<sub>202</sub> = &minus;1.0368 instead of &minus;0.9757).  For ''N'' = 1024, the maximum error in the sine values is ~0.015 (''s''<sub>803</sub> = &minus;0.99321 instead of &minus;0.97832), about 4 times smaller.  If the sine and cosine values obtained were to be plotted, this algorithm would draw a logarithmic spiral rather than a circle.
 
==A better, but still imperfect, recurrence formula==
 
A simple recurrence formula to generate trigonometric tables is based on [[Euler's formula]] and the relation:
 
:<math>e^{i(\theta + \Delta\theta)} = e^{i\theta} \times e^{i\Delta\theta}</math>
 
This leads to the following recurrence to compute trigonometric values ''s''<sub>''n''</sub> and ''c''<sub>''n''</sub> as above:
 
:''c''<sub>0</sub> = 1
:''s''<sub>0</sub> = 0
:''c''<sub>''n''+1</sub> = ''w''<sub>''r''</sub> ''c''<sub>''n''</sub> &minus; ''w''<sub>''i''</sub> ''s''<sub>''n''</sub>
:''s''<sub>''n''+1</sub> = ''w''<sub>''i''</sub> ''c''<sub>''n''</sub> + ''w''<sub>''r''</sub> ''s''<sub>''n''</sub>
for ''n'' = 0, ..., ''N''&nbsp;&minus;&nbsp;1, where ''w''<sub>''r''</sub> = cos(2π/''N'') and ''w''<sub>''i''</sub> = sin(2π/''N''). These two starting trigonometric values are usually computed using existing library functions (but could also be found e.g. by employing [[Newton's method]] in the complex plane to solve for the primitive [[root of unity|root]] of ''z''<sup>''N''</sup>&nbsp;&minus;&nbsp;1).
 
This method would produce an ''exact'' table in exact arithmetic, but has errors in finite-precision [[floating-point]] arithmetic.  In fact, the errors grow as O(ε&nbsp;''N'') (in both the worst and average cases), where ε is the floating-point precision.
 
A significant improvement is to use the following modification to the above, a trick (due to Singleton, 1967) often used to generate trigonometric values for FFT implementations:
 
:''c''<sub>0</sub> = 1
:''s''<sub>0</sub> = 0
:''c''<sub>''n''+1</sub> = ''c''<sub>''n''</sub>&nbsp;&minus;&nbsp;(&alpha;''c''<sub>''n''</sub>&nbsp;+&nbsp;&beta; ''s''<sub>''n''</sub>)
:''s''<sub>''n''+1</sub> = ''s''<sub>''n''</sub>&nbsp;+&nbsp;(&beta;&nbsp;''c''<sub>''n''</sub>&nbsp;&minus;&nbsp;&alpha;&nbsp;''s''<sub>''n''</sub>)
 
where α = 2&nbsp;sin<sup>2</sup>(π/''N'') and β = sin(2π/''N'').  The errors of this method are much smaller, O(ε&nbsp;√''N'') on average and O(ε&nbsp;''N'') in the worst case, but this is still large enough to substantially degrade the accuracy of FFTs of large sizes.
 
==See also==
* [[Numerical analysis]]
* [[CORDIC]]
* [[Exact trigonometric constants]]
* [[Aryabhata's sine table]]
* [[Madhava's sine table]]
 
==References==
* Carl B. Boyer, ''A History of Mathematics'', 2nd ed. (Wiley, New York, 1991).
* Manfred Tasche and Hansmartin Zeuner, "Improved roundoff error analysis for precomputed twiddle factors," ''J. Computational Analysis and Applications'' '''4''' (1), 1&ndash;18 (2002).
* James C. Schatzman, "Accuracy of the discrete Fourier transform and the fast Fourier transform," ''SIAM J. Sci. Comput.'' '''17''' (5), 1150&ndash;1166 (1996).
* Vitit Kantabutra, "On hardware for computing exponential and trigonometric functions," ''IEEE Trans. Computers'' '''45''' (3), 328–339 (1996).
* R. P. Brent, "[http://doi.acm.org/10.1145/321941.321944 Fast Multiple-Precision Evaluation of Elementary Functions]", ''J. ACM'' '''23''', 242&ndash;251 (1976).
* Singleton, Richard C. (1967). On computing the fast Fourier transform. ''Comm. ACM'', vol. 10, 647–654.
* Gal, Shmuel and Bachelis, Boris. An accurate elementary mathematical library for the IEEE floating point standard, ACM Transaction on Mathematical Software (1991).  
 
[[Category:Numerical analysis]]
[[Category:Trigonometry]]

Revision as of 23:00, 6 October 2013

Template:Trigonometry In mathematics, tables of trigonometric functions are useful in a number of areas. Before the existence of pocket calculators, trigonometric tables were essential for navigation, science and engineering. The calculation of mathematical tables was an important area of study, which led to the development of the first mechanical computing devices.

Modern computers and pocket calculators now generate trigonometric function values on demand, using special libraries of mathematical code. Often, these libraries use pre-calculated tables internally, and compute the required value by using an appropriate interpolation method. Interpolation of simple look-up tables of trigonometric functions is still used in computer graphics, where only modest accuracy may be required and speed is often paramount.

Another important application of trigonometric tables and generation schemes is for fast Fourier transform (FFT) algorithms, where the same trigonometric function values (called twiddle factors) must be evaluated many times in a given transform, especially in the common case where many transforms of the same size are computed. In this case, calling generic library routines every time is unacceptably slow. One option is to call the library routines once, to build up a table of those trigonometric values that will be needed, but this requires significant memory to store the table. The other possibility, since a regular sequence of values is required, is to use a recurrence formula to compute the trigonometric values on the fly. Significant research has been devoted to finding accurate, stable recurrence schemes in order to preserve the accuracy of the FFT (which is very sensitive to trigonometric errors).

On-demand computation

A page from a 1619 book of mathematical tables

Modern computers and calculators use a variety of techniques to provide trigonometric function values on demand for arbitrary angles (Kantabutra, 1996). One common method, especially on higher-end processors with floating-point units, is to combine a polynomial or rational approximation (such as Chebyshev approximation, best uniform approximation, and Padé approximation, and typically for higher or variable precisions, Taylor and Laurent series) with range reduction and a table lookup — they first look up the closest angle in a small table, and then use the polynomial to compute the correction. Maintaining precision while performing such interpolation is nontrivial, however; and methods like Gal's accurate tables, Cody and Waite reduction, and Payne and Hanek reduction algorithms can be used for this purpose. On simpler devices that lack a hardware multiplier, there is an algorithm called CORDIC (as well as related techniques) that is more efficient, since it uses only shifts and additions. All of these methods are commonly implemented in hardware for performance reasons.

For very high precision calculations, when series-expansion convergence becomes too slow, trigonometric functions can be approximated by the arithmetic-geometric mean, which itself approximates the trigonometric function by the (complex) elliptic integral (Brent, 1976).

Trigonometric functions of angles that are rational multiples of 2π are algebraic numbers, related to roots of unity, and can be computed with a polynomial root-finding algorithm in the complex plane. For example, the cosine and sine of 2π ⋅ 5/37 are the real and imaginary parts, respectively, of a 37th root of unity, corresponding to a root of a degree-37 polynomial x37 − 1. Root-finding algorithms such as Newton's method are much simpler than the arithmetic-geometric mean algorithms above while converging at a similar asymptotic rate; the latter algorithms are required for transcendental trigonometric constants, however.

Half-angle and angle-addition formulas

Historically, the earliest method by which trigonometric tables were computed, and probably the most common until the advent of computers, was to repeatedly apply the half-angle and angle-addition trigonometric identities starting from a known value (such as sin(π/2) = 1, cos(π/2) = 0). This method was used by the ancient astronomer Ptolemy, who derived them in the Almagest, a treatise on astronomy. In modern form, the identities he derived are stated as follows (with signs determined by the quadrant in which x lies;

These were used to construct Ptolemy's table of chords, which was applied to astronomical problems.

Various other permutations on these identities are possible: for example, some early trigonometric tables used not sine and cosine, but sine and versine).

A quick, but inaccurate, approximation

A quick, but inaccurate, algorithm for calculating a table of N approximations sn for sin(2πn/N) and cn for cos(2πn/N) is:

s0 = 0
c0 = 1
sn+1 = sn + d × cn
cn+1 = cnd × sn

for n = 0,...,N − 1, where d = 2π/N.

This is simply the Euler method for integrating the differential equation:

with initial conditions s(0) = 0 and c(0) = 1, whose analytical solution is s = sin(t) and c = cos(t).

Unfortunately, this is not a useful algorithm for generating sine tables because it has a significant error, proportional to 1/N.

For example, for N = 256 the maximum error in the sine values is ~0.061 (s202 = −1.0368 instead of −0.9757). For N = 1024, the maximum error in the sine values is ~0.015 (s803 = −0.99321 instead of −0.97832), about 4 times smaller. If the sine and cosine values obtained were to be plotted, this algorithm would draw a logarithmic spiral rather than a circle.

A better, but still imperfect, recurrence formula

A simple recurrence formula to generate trigonometric tables is based on Euler's formula and the relation:

This leads to the following recurrence to compute trigonometric values sn and cn as above:

c0 = 1
s0 = 0
cn+1 = wr cnwi sn
sn+1 = wi cn + wr sn

for n = 0, ..., N − 1, where wr = cos(2π/N) and wi = sin(2π/N). These two starting trigonometric values are usually computed using existing library functions (but could also be found e.g. by employing Newton's method in the complex plane to solve for the primitive root of zN − 1).

This method would produce an exact table in exact arithmetic, but has errors in finite-precision floating-point arithmetic. In fact, the errors grow as O(ε N) (in both the worst and average cases), where ε is the floating-point precision.

A significant improvement is to use the following modification to the above, a trick (due to Singleton, 1967) often used to generate trigonometric values for FFT implementations:

c0 = 1
s0 = 0
cn+1 = cn − (αcn + β sn)
sn+1 = sn + (β cn − α sn)

where α = 2 sin2(π/N) and β = sin(2π/N). The errors of this method are much smaller, O(ε √N) on average and O(ε N) in the worst case, but this is still large enough to substantially degrade the accuracy of FFTs of large sizes.

See also

References

  • Carl B. Boyer, A History of Mathematics, 2nd ed. (Wiley, New York, 1991).
  • Manfred Tasche and Hansmartin Zeuner, "Improved roundoff error analysis for precomputed twiddle factors," J. Computational Analysis and Applications 4 (1), 1–18 (2002).
  • James C. Schatzman, "Accuracy of the discrete Fourier transform and the fast Fourier transform," SIAM J. Sci. Comput. 17 (5), 1150–1166 (1996).
  • Vitit Kantabutra, "On hardware for computing exponential and trigonometric functions," IEEE Trans. Computers 45 (3), 328–339 (1996).
  • R. P. Brent, "Fast Multiple-Precision Evaluation of Elementary Functions", J. ACM 23, 242–251 (1976).
  • Singleton, Richard C. (1967). On computing the fast Fourier transform. Comm. ACM, vol. 10, 647–654.
  • Gal, Shmuel and Bachelis, Boris. An accurate elementary mathematical library for the IEEE floating point standard, ACM Transaction on Mathematical Software (1991).