Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: Matlab : Test Polynomial Interpolation Program
Replies: 0  

Advanced Search

Back to Topic List Back to Topic List  
Dalia

Posts: 2
Registered: 2/8/13
Matlab : Test Polynomial Interpolation Program
Posted: Feb 8, 2013 5:30 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

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 denied...so I have a program and I ask you what tests can I do to verify its operation, the program is this:

% 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');
end
A=zeros(n,n); % initialize matrix designed to contain %the divided differences
for i=1:1:n
A(i,i)=f(i);
end
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')
end
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
end
end
for h=1:1:k % calculation of the interpolating %polynomial in the components of t
p=A(n,1);
for i=n-1:-1:1
p=(t(h) - x(i))*p + A(i,1);
end
y(h)=p;
end
end



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.