Simple C Program For Trapezoidal Rule

  1. Trapezoidal Rule Calculator Wolfram
  2. Simple C Program For Trapezoidal Rules
  3. Simple C Program For Single Inheritance
  4. Simple C Program For Trapezoidal Rule

The Trapezoidal Rule We saw the basic idea in our first attempt at solving the area under the arches problem earlier. Instead of using rectangles as we did in the arches problem, we'll use trapezoids (trapeziums) and we'll find that it gives a better approximation to the area. The calculator will approximate the integral using the Trapezoidal Rule, with steps shown. Show Instructions In general, you can skip the multiplication sign, so `5x` is equivalent to `5*x`.

Active6 years, 6 months ago

Little bit of a 2 parter. First of all im trying to do this in all c. First of all I'll go ahead and post my program

As you can see, it calculates trapezoidal rule given an interval.First of all it DOES work, if you hardcode the values and the function. But I need to read from a file in the format of

Trapezoidal Rule Calculator Wolfram

Which means:It is of degree 5 (no more than 50 ever)3.0x^5 +2.5x^4 −1.5x^3 +1.7x+4 is the polynomial (we skip ^2 since it's 0)and the Interval is from 6 to 10

My main concern is the f(x) function which I have hardcoded. I have NO IDEA how to make it take up to 50 besides literally typing out 50 POWS and reading in the values to see what they could be....Anyone else have any ideas perhaps?

Also what would be the best way to read in the file? fgetc? Im not really sure when it comes to reading in C input (especially since everything i read in is an INT, is there some way to convert them?)

csgillespie
44.5k11 gold badges111 silver badges153 bronze badges
user475353

2 Answers

For a large degree polynomial, would something like this work?

In your example, you would call it like:

By passing an array of coefficients (the exponents are assumed), you don't have to deal with variadic arguments. The hardest part is constructing the array, and that is pretty simple.

It should go without saying, if you put the coefficients array and number-of-coefficients into global variables, then the signature of f(x) doesn't need to change:

abelenkyabelenky
49k21 gold badges87 silver badges139 bronze badges

For you f() function consider making it variadic (varargs is another name)

This way you could pass the function 1 arg telling it how many 'pows' you want, with each susequent argument being a double value. Is this what you are asking for with the f() function part of your question?

jim mcnamarajim mcnamara
13.9k2 gold badges24 silver badges43 bronze badges
The function f(x) (in blue) is approximated by a linear function (in red).

In mathematics, and more specifically in numerical analysis, the trapezoidal rule (also known as the trapezoid rule or trapezium rule) is a technique for approximating the definite integral.

abf(x)dx{displaystyle int _{a}^{b}f(x),dx}.

The trapezoidal rule works by approximating the region under the graph of the functionf(x){displaystyle f(x)} as a trapezoid and calculating its area. It follows that

abf(x)dx(ba)f(a)+f(b)2{displaystyle int _{a}^{b}f(x),dxapprox (b-a)cdot {tfrac {f(a)+f(b)}{2}}}.

The trapezoidal rule may be viewed as the result obtained by averaging the left and rightRiemann sums, and is sometimes defined this way. The integral can be even better approximated by partitioning the integration interval, applying the trapezoidal rule to each subinterval, and summing the results. In practice, this 'chained' (or 'composite') trapezoidal rule is usually what is meant by 'integrating with the trapezoidal rule'. Let {xk}{displaystyle {x_{k}}} be a partition of [a,b]{displaystyle [a,b]} such that a=x0<x1<<xN1<xN=b{displaystyle a=x_{0}<x_{1}<cdots <x_{N-1}<x_{N}=b} and Δxk{displaystyle Delta x_{k}} be the length of the k{displaystyle k}-th subinterval (that is, Δxk=xkxk1{displaystyle Delta x_{k}=x_{k}-x_{k-1}}), then

abf(x)dxk=1Nf(xk1)+f(xk)2Δxk=Δx2(f(x0)+2f(x1)+2f(x2)+2f(x3)+2f(x4)++2f(xN1)+f(xN)){displaystyle int _{a}^{b}f(x),dxapprox sum _{k=1}^{N}{frac {f(x_{k-1})+f(x_{k})}{2}}Delta x_{k}={tfrac {Delta x}{2}}left(f(x_{0})+2f(x_{1})+2f(x_{2})+2f(x_{3})+2f(x_{4})+cdots +2f(x_{N-1})+f(x_{N})right)}.
Illustration of 'chained trapezoidal rule' used on an irregularly-spaced partition of [a,b]{displaystyle [a,b]}.

The approximation becomes more accurate as the resolution of the partition increases (that is, for larger N{displaystyle N}, Δxk{displaystyle Delta x_{k}} decreases).When the partition has a regular spacing, as is often the case, the formula can be simplified for calculation efficiency.

As discussed below, it is also possible to place error bounds on the accuracy of the value of a definite integral estimated using a trapezoidal rule.

  • 2Numerical implementation
  • 3Error analysis

History[edit]

A 2016 paper reports that the trapezoid rule was in use in Babylon before 50 BC for integrating the velocity of Jupiter along the ecliptic.[1]

Numerical implementation[edit]

Non-uniform grid[edit]

When the grid spacing is non-uniform, one can use the formula

abf(x)dxk=1Nf(xk1)+f(xk)2Δxk{displaystyle int _{a}^{b}f(x),dxapprox sum _{k=1}^{N}{frac {f(x_{k-1})+f(x_{k})}{2}}Delta x_{k}}

Uniform grid[edit]

For a domain discretized into N{displaystyle N} equally spaced panels, considerable simplification may occur. Let

Δxk=Δx=baN{displaystyle Delta x_{k}=Delta x={frac {b-a}{N}}}

the approximation to the integral becomes

abf(x)dxΔx2k=1N(f(xk1)+f(xk)){displaystyle int _{a}^{b}f(x),dxapprox {frac {Delta x}{2}}sum _{k=1}^{N}left(f(x_{k-1})+f(x_{k})right)}
=Δx2(f(x0)+2f(x1)+2f(x2)+2f(x3)++2f(xN1)+f(xN)){displaystyle {}={frac {Delta x}{2}}(f(x_{0})+2f(x_{1})+2f(x_{2})+2f(x_{3})+dotsb +2f(x_{N-1})+f(x_{N}))}
=Δx2(f(x0)+f(xN)+2k=1N1f(xk)){displaystyle {}={frac {Delta x}{2}}left(f(x_{0})+f(x_{N})+2sum _{k=1}^{N-1}f(x_{k})right)}

which requires fewer evaluations of the function to calculate.

Error analysis[edit]

An animation showing how the trapezoidal rule approximation improves with more strips for an interval with a=2{displaystyle a=2} and b=8{displaystyle b=8}. As the number of intervals N{displaystyle N} increases, so too does the accuracy of the result.

The error of the composite trapezoidal rule is the difference between the value of the integral and the numerical result:

error=abf(x)dxbaN[f(a)+f(b)2+k=1N1f(a+kbaN)]{displaystyle {text{error}}=int _{a}^{b}f(x),dx-{frac {b-a}{N}}left[{f(a)+f(b) over 2}+sum _{k=1}^{N-1}fleft(a+k{frac {b-a}{N}}right)right]}

There exists a number ξ between a and b, such that[2]

error=(ba)312N2f(ξ){displaystyle {text{error}}=-{frac {(b-a)^{3}}{12N^{2}}}f'(xi )}

It follows that if the integrand is concave up (and thus has a positive second derivative), then the error is negative and the trapezoidal rule overestimates the true value. This can also be seen from the geometric picture: the trapezoids include all of the area under the curve and extend over it. Similarly, a concave-down function yields an underestimate because area is unaccounted for under the curve, but none is counted above. If the interval of the integral being approximated includes an inflection point, the error is harder to identify.

Proof[edit]

First suppose that h=baN{displaystyle h={frac {b-a}{N}}} , ak=a+(k1)h{displaystyle a_{k}=a+(k-1)h}, and gk(t)=12t[f(ak)+f(ak+t)]akak+tf(x)dx{displaystyle g_{k}(t)={frac {1}{2}}t[f(a_{k})+f(a_{k}+t)]-int _{a_{k}}^{a_{k}+t}f(x)dx}

Simple C Program For Trapezoidal Rules

Then:

dgkdt=12[f(ak)+f(ak+t)]+12tf(ak+t)f(ak+t){displaystyle {dg_{k} over dt}={1 over 2}[f(a_{k})+f(a_{k}+t)]+{1 over 2}tcdot f'(a_{k}+t)-f(a_{k}+t)}

d2gkdt2=12tf(ak+t){displaystyle {d^{2}g_{k} over dt^{2}}={1 over 2}tcdot f'(a_{k}+t)}

and suppose that f(x)f(ξ){displaystyle leftvert f'(x)rightvert leq f'(xi )}, so that:

f(ak+t)f(ξ){displaystyle leftvert f'(a_{k}+t)rightvert leq f'(xi )}, f(ξ)f(ak+t)f(ξ){displaystyle -f'(xi )leq f'(a_{k}+t)leq f'(xi )}

f(ξ)t2gk(t)f(ξ)t2{displaystyle -{frac {f'(xi )t}{2}}leq g_{k}'(t)leq {frac {f'(xi )t}{2}}}

Because of gk(0)=0{displaystyle g_{k}'(0)=0}, gk(0)=0{displaystyle g_{k}(0)=0}

0tgk(x)dx=gk(t){displaystyle int _{0}^{t}g_{k}'(x)dx=g_{k}'(t)}, 0tgk(x)dx=gk(t){displaystyle int _{0}^{t}g_{k}'(x)dx=g_{k}(t)}

so that:

f(ξ)t24gk(t)f(ξ)t24{displaystyle -{frac {f'(xi )t^{2}}{4}}leq g_{k}'(t)leq {frac {f'(xi )t^{2}}{4}}}

f(ξ)t312gk(t)f(ξ)t312{displaystyle -{frac {f'(xi )t^{3}}{12}}leq g_{k}(t)leq {frac {f'(xi )t^{3}}{12}}}

Then assign h to t.

f(ξ)h312gk(h)f(ξ)h312{displaystyle -{frac {f'(xi )h^{3}}{12}}leq g_{k}(h)leq {frac {f'(xi )h^{3}}{12}}}

Simple C Program For Single Inheritance

And:

k=1Ngk(h)=baN[f(a)+f(b)2+k=1N1f(a+kbaN)]abf(x)dx{displaystyle sum _{k=1}^{N}g_{k}(h)={frac {b-a}{N}}left[{f(a)+f(b) over 2}+sum _{k=1}^{N-1}fleft(a+k{frac {b-a}{N}}right)right]-int _{a}^{b}f(x)dx}, k=1Nf(ξ)h312=f(ξ)h3N12{displaystyle sum _{k=1}^{N}{frac {f'(xi )h^{3}}{12}}={frac {f'(xi )h^{3}N}{12}}}

So that:

f(ξ)h3N12baN[f(a)+f(b)2+k=1N1f(a+kbaN)]abf(x)dxf(ξ)h3N12{displaystyle -{frac {f'(xi )h^{3}N}{12}}leq {frac {b-a}{N}}left[{f(a)+f(b) over 2}+sum _{k=1}^{N-1}fleft(a+k{frac {b-a}{N}}right)right]-int _{a}^{b}f(x)dxleq {frac {f'(xi )h^{3}N}{12}}}

error=abf(x)dxbaN[f(a)+f(b)2+k=1N1f(a+kbaN)]=f(ξ)h3N12=f(ξ)(ba)312N2{displaystyle {text{error}}=int _{a}^{b}f(x)dx-{frac {b-a}{N}}left[{f(a)+f(b) over 2}+sum _{k=1}^{N-1}fleft(a+k{frac {b-a}{N}}right)right]={frac {f'(xi )h^{3}N}{12}}={frac {f'(xi )(b-a)^{3}}{12N^{2}}}}

In general, three techniques are used in the analysis of error:[3]

  1. Euler–Maclaurin summation formula:[4][5]

An asymptotic error estimate for N → ∞ is given by

error=(ba)212N2[f(b)f(a)]+O(N3).{displaystyle {text{error}}=-{frac {(b-a)^{2}}{12N^{2}}}{big [}f'(b)-f'(a){big ]}+O(N^{-3}).}

Further terms in this error estimate are given by the Euler–Maclaurin summation formula.

Free lightscribe cd label software free download - CD and DVD Label Maker, CD Label Designer, LightScribe Simple Labeler, and many more programs. Nero lightscribe software is an application which is a part of any nero burning rom software. Features: Very professional layouts. Lacie Lightscribe labeler. It is a very good option as lightscribe software for Mac. Features: Various templates. Photo editing and text editing. Information importing from CD. This lightscribe. If you enjoy burning quality CDs and DVDs, also take a look at our reviews on CD burning and DVD burning software. Label Making Software: Key Findings. The best label making programs have several key features that set them apart from the others. LightScribe Simple Labeler is an intuitive labeling application designed to make your labeling experience faster and more enjoyable. LightScribe System Software. Cd Labeler Lightscribe. Best cd burning software free.

It is argued that the speed of convergence of the trapezoidal rule reflects and can be used as a definition of classes of smoothness of the functions.[6]

Periodic and peak functions[edit]

The trapezoidal rule converges rapidly for periodic functions. This is an easy consequence of the Euler-Maclaurin summation formula, which says thatif f{displaystyle f} is p{displaystyle p} times continuously differentiable with period T{displaystyle T}

k=0N1f(kh)h=0Tf(x)dx+k=1p/2B2k(2k)!(f(2k1)(T)f(2k1)(0))(1)php0TB~p(x/T)f(p)(x)dx{displaystyle sum _{k=0}^{N-1}f(kh)h=int _{0}^{T}f(x),dx+sum _{k=1}^{lfloor p/2rfloor }{frac {B_{2k}}{(2k)!}}(f^{(2k-1)}(T)-f^{(2k-1)}(0))-(-1)^{p}h^{p}int _{0}^{T}{tilde {B}}_{p}(x/T)f^{(p)}(x),mathrm {d} x}

where h:=T/N{displaystyle h:=T/N} and B~p{displaystyle {tilde {B}}_{p}} is the periodic extension of the p{displaystyle p}th Bernoulli polynomial.[7] Due to the periodicity, the derivatives at the endpoint cancel and we see that the error is O(hp){displaystyle O(h^{p})}.

A similar effect is available for peak-like functions, such as Gaussian, Exponentially modified Gaussian and other functions with derivatives at integration limits that can be neglected.[8] The evaluation of the full integral of a Gaussian function by trapezoidal rule with 1% accuracy can be made using just 4 points.[9]Simpson's rule requires 1.8 times more points to achieve the same accuracy.[9][10]

Although some effort has been made to extend the Euler-Maclaurin summation formula to higher dimensions,[11] the most straightforward proof of the rapid convergence of the trapezoidal rule in higher dimensions is to reduce the problem to that of convergence of Fourier series. This line of reasoning shows that if f{displaystyle f} is periodic on a n{displaystyle n}-dimensional space with p{displaystyle p} continuous derivatives, the speed of convergence is O(hp/d){displaystyle O(h^{p/d})}. For very large dimension, the shows that Monte-Carlo integration is most likely a better choice, but for 2 and 3 dimensions, equispaced sampling is efficient. This is exploited in computational solid state physics where equispaced sampling over primitive cells in the reciprocal lattice is known as Monkhorst-Pack integration.[12]

Simple C Program For Trapezoidal Rule

'Rough' functions[edit]

For functions that are not in C2, the error bound given above is not applicable. Still, error bounds for such rough functions can be derived, which typically show a slower convergence with the number of function evaluations N{displaystyle N} than the O(N2){displaystyle O(N^{-2})} behaviour given above. Interestingly, in this case the trapezoidal rule often has sharper bounds than Simpson's rule for the same number of function evaluations.[13]

Applicability and alternatives[edit]

The trapezoidal rule is one of a family of formulas for numerical integration called Newton–Cotes formulas, of which the midpoint rule is similar to the trapezoid rule. Simpson's rule is another member of the same family, and in general has faster convergence than the trapezoidal rule for functions which are twice continuously differentiable, though not in all specific cases. However, for various classes of rougher functions (ones with weaker smoothness conditions), the trapezoidal rule has faster convergence in general than Simpson's rule.[13]

Moreover, the trapezoidal rule tends to become extremely accurate when periodic functions are integrated over their periods, which can be analyzed in various ways.[6][10] A similar effect is available for peak functions.[9][10]

For non-periodic functions, however, methods with unequally spaced points such as Gaussian quadrature and Clenshaw–Curtis quadrature are generally far more accurate; Clenshaw–Curtis quadrature can be viewed as a change of variables to express arbitrary integrals in terms of periodic integrals, at which point the trapezoidal rule can be applied accurately.

See also[edit]

Notes[edit]

  1. ^Ossendrijver, Mathieu (Jan 29, 2016). 'Ancient Babylonian astronomers calculated Jupiter's position from the area under a time-velocity graph'. Science. 351 (6272): 482–484. doi:10.1126/science.aad8085. PMID26823423.
  2. ^Atkinson (1989, equation (5.1.7))
  3. ^(Weideman 2002, p. 23, section 2)
  4. ^Atkinson (1989, equation (5.1.9))
  5. ^Atkinson (1989, p. 285)
  6. ^ ab(Rahman & Schmeisser 1990)
  7. ^Kress, Rainer (1998). Numerical Analysis, volume 181 of Graduate Texts in Mathematics. Springer-Verlag.
  8. ^Goodwin, E. T. (1949). 'The evaluation of integrals of the form'. Mathematical Proceedings of the Cambridge Philosophical Society. 45 (2): 241–245. doi:10.1017/S0305004100024786. ISSN1469-8064.
  9. ^ abcKalambet, Yuri; Kozmin, Yuri; Samokhin, Andrey (2018). 'Comparison of integration rules in the case of very narrow chromatographic peaks'. Chemometrics and Intelligent Laboratory Systems. 179: 22–30. doi:10.1016/j.chemolab.2018.06.001. ISSN0169-7439.
  10. ^ abc(Weideman 2002)
  11. ^'Euler-Maclaurin Summation Formula for Multiple Sums'. math.stackexchange.com.
  12. ^Thompson, Nick. 'Numerical Integration over Brillouin Zones'. bandgap.io. Retrieved 19 December 2017.
  13. ^ ab(Cruz-Uribe & Neugebauer 2002)

References[edit]

  • Atkinson, Kendall E. (1989), An Introduction to Numerical Analysis (2nd ed.), New York: John Wiley & Sons, ISBN978-0-471-50023-0
  • Rahman, Qazi I.; Schmeisser, Gerhard (December 1990), 'Characterization of the speed of convergence of the trapezoidal rule', Numerische Mathematik, 57 (1): 123–138, doi:10.1007/BF01386402, ISSN0945-3245
  • Burden, Richard L.; Faires, J. Douglas (2000), Numerical Analysis (7th ed.), Brooks/Cole, ISBN978-0-534-38216-2
  • Weideman, J. A. C. (January 2002), 'Numerical Integration of Periodic Functions: A Few Examples', The American Mathematical Monthly, 109 (1): 21–36, doi:10.2307/2695765, JSTOR2695765
  • Cruz-Uribe, D.; Neugebauer, C. J. (2002), 'Sharp Error Bounds for the Trapezoidal Rule and Simpson's Rule'(PDF), Journal of Inequalities in Pure and Applied Mathematics, 3 (4)

External links[edit]

The Wikibook A-level Mathematics has a page on the topic of: Trapezium Rule
  • Trapezium formula. I.P. Mysovskikh, Encyclopedia of Mathematics, ed. M. Hazewinkel
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Trapezoidal_rule&oldid=909677964'