Matlab : Test interpolation Polynomial program - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Matlab : Test interpolation Polynomial program

DaliaViolaDaliaViola Posts: 3Member
Hi, I'm Italian, so I apologize for my bad english...i'm writing here because in this period I'm trying to study matlab, but I think I I have a program and I ask you what tests can I do to verify its operation, the program is this:

[code]% The function y allows you to calculate the value of the % interpolating polynomial, given some starting points in % arbitrary values of the variable
% independent.

%It accepts INPUT% in three vectors:
% x: whose components constitute the abscissas of the %points interpolating;
% y whose components are the ordinates of the %interpolating points;
% t: tab vector, whose components are the values on which
% we want to calculate the polynomial interpolating the %points (x (i), f (i))
% and a scalar:
% TOLL: tolerance within which must be the absolute value % of
% difference of the abscissa (or ordinate) of the points % of interpolation.
% In OUTPUT instead provides the vector y whose %components %are the calculated values of the polynomial
% in the components of the vector t tab.

function y= Newton(x, f, t, TOLL)
n= length(x); m=length(f); k =length(t); y=1:1:k;
if n~= m % length control vectors x and f
error('error:interpolation points unspecified');
A=zeros(n,n); % initialize matrix designed to contain %the divided differences
for i=1:1:n
for i=2:1:n
for j=i-1 :-1:1
if abs(x(i)-x(j))<= TOLL && abs(f(i)-f(j))<= TOLL
error('coincident points');
elseif abs(x(i)-x(j))<= TOLL
error('abscissas coincident')
A(i,j)= (A(i,j+1) - A(i-1,j))/(x(i)-x(j));
% the matrix A at the end of the cycle will be %inferiorly triangular
% and is such that for i> j %A(i,j)=f[x_j,x_(j+1),....,x_i]
%with f [, ..] is the divided difference
for h=1:1:k % calculation of the interpolating %polynomial in the components of t
for i=n-1:-1:1
p=(t(h) - x(i))*p + A(i,1);

I hope you can help me, thanks a lot! Byeeee!!!
Sign In or Register to comment.