Numerical Analysis/Neville's algorithm code

< Numerical Analysis

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


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

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

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

(3) When should the loop end?

(4) When should the loop end?

(5) When should the loop end?

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

This article is issued from Wikiversity - version of the Saturday, April 02, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.