# Numerical Analysis/Neville's algorithm code

The basic outline of a Matlab program that evaluates an interpolating polynomial using Neville's Algorithm given inputs of a point at which to evaluate (x0), a matrix of the x terms of the ordered pairs (x), and a matrix of the y terms of the ordered pairs (y) is given below. The numbers in the parenthese at the end of the comments correspond to questions given below the code.

## Matlab Code[edit | edit source]

```
function p = neville(x0,x,y)
%Inputs: x0-- the point at which to evaluate
% x -- the matrix of the x terms of the ordered pairs
% y -- the matrix of the y terms of the ordered pairs
%Output: p -- the value of the polynomial going through the n data points
n = ____;____ % n is the degree of the polynomial (1)
p = zeros(____,____) % creates the zero matrix p (2)
for i = 1:____ % runs loop from i equals 1 until it reaches end value (3)
p(i,i) = y(i); % when i is equal to j, set the element equal to the corresponding y value
end
for j = 1:____ % runs loop from j equal to 1 until it reaches end value (4)
for i = 1:____ % runs loop from i equal to 1 until it reached end value (5)
p(i,i+j) = ((x(i+j)-x0)*p(i,i+j-1) + (x0-x(i))*p(i+1,i+j))/(x(i+j)-x(i));
% evaluates each element of the matrix, when i is not equal to j, using Neville's Algorithm
end
end
p = p(____,____); % outputs the value of the polynomial going through the
% n data points at the point x0 (6)
```

## Questions[edit | edit source]

(1) Is the degree of the polynomial equal to the length of x minus 1 or the length of x plus one?

Solution:

length of x minus 1

(2) How many rows and columns should matrix p have?

Solution:

n+1 rows and n+1 columns

(3) When should the loop end?

Solution:

when i is equal to the length of x, which is also when i is equal to n+1

(4) When should the loop end?

Solution:

when j is equal to n+1

(5) When should the loop end?

Solution:

when i is equal to n+1-j

(6) What term of the matrix is the output value?

Solution:

p = p(1,n+1)