FOR FREE MATERIALS

Bessel's Interpolation

Back to Programming

Description

Bessel’s interpolation formula is used to compute y = f(x) for an argument x near the middle point of the set of tabulated values of even numbers of equispaced arguments. This formula is formulated by taking the arithmetic mean of Gauss’s forward formula for an even number of arguments and Gauss’s third formula.

 

DERIVATION

Taking the arithmetic mean of Gauss’s forward formula for even number of arguments we get

Now if we write 

Then after simplification, we get Bessel’s formula as:

We get Bessel’s formula as

The remainder term is:

 

GRAPHICAL REPRESENTATION

Algorithm

INPUT: 

The values of x and corresponding y

 

OUTPUT: 

The value for a given x

 

PROCESS:

Step 1: [taking inputs from the user]
	Read n [the number of elements]
	for i = 0 to n - 1 repeat
		Read x[i]
	[End of ‘for’ loop]
	for i = 0 to n - 1 repeat
		Read y[i][0]
	Read v [The value for which the interpolation is to be calculated]

Step 2: [Bessel’s Interpolation]
	for i = 1 to n - 1 repeat
		for j = 0 to n – i - 1 repeat
			Set y[j][i] ← y[j + 1][i  - 1] - y[j][i  - 1] 
		[End of ‘for’ loop]
	[End of ‘for’ loop]
	for I = 0 to n -1 repeat
		for j = 0 to n – i - 1 repeat
			print y[i][j]
		[End of ‘for’ loop]
		Move to the next line
	[End of ‘for’ loop]
	Set sum ← (y[2][0] + y[3][0]) / 2 
	if n Mod 2 ≠ 0 then
		Set k ← n / 2 
	else
		Set k ← n / 2 - 1 
	[End of ‘if’]
	Set u ← (v - x[k]) / (x[1] - x[0]) 
	for i = 1 to n - 1 repeat
		if i Mod 2 ≠ 0 then
			Set sum ← sum + ((u - 0.5) * cal_u(u, i - 1) * y[k][i]) / factorial(i) 
		else
			Set sum ← sum + (cal_u(u, i) * (y[k][i] + y[--k][i]) / (factorial(i) * 2)) 
		[End of ‘if’]
		[cal_u and factorial are two functions described in Step 3 and Step 4 respectively]
	[End of ‘for’ loop]
		Print v,sum 
	[End of Bessel’s interpolation]

Step 3: [function cal_u]
	if n = 0 then
		return 1 
	Set tmp ← u 
	for i = 1 to n / 2 repeat
		Set tmp ← tmp × (u - i)
	for i = 1 to(n / 2) - 1 repeat
		Set tmp ← tmp × (u + i)
	return tmp 
	[End of function ‘cal_u’]

Step 4: [function ‘factorial’]
	Set fact ← 1
	Set i ← 2 
	for i = 2 to n repeat
		Set fact ← fact × i
	return fact
[End of function ‘factorial’]

Code

ADVANTAGES

1. This interpolation formula is very useful when u = 1/2.

2. It gives a good approximation if ¼ < u < ¾.

 

DISADVANTAGES

1. It is used when the numbe4r of arguments is even.

 

APPLICATIONS

1. This formula is used when the interpolating point is near the middle of the table.

 

2. It gives a more accurate result when the difference table ends with even order differences.

 

3.  It gives us the best approximate values of the function formula when the starting point x0 near the middle point is so chosen such that

 

4. -.25 < v < .25 i.e. -1/4 < u - 1/2 < ¼ or, ¼ < u < ¾.