home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / octave-1.1.1p1-src.tgz / tar.out / fsf / octave / scripts / polynomial / polyval.m < prev    next >
Text File  |  1996-09-28  |  2KB  |  61 lines

  1. # Copyright (C) 1995 John W. Eaton
  2. # This file is part of Octave.
  3. # Octave is free software; you can redistribute it and/or modify it
  4. # under the terms of the GNU General Public License as published by the
  5. # Free Software Foundation; either version 2, or (at your option) any
  6. # later version.
  7. # Octave is distributed in the hope that it will be useful, but WITHOUT
  8. # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  9. # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  10. # for more details.
  11. # You should have received a copy of the GNU General Public License
  12. # along with Octave; see the file COPYING.  If not, write to the Free
  13. # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  14.  
  15. function y = polyval (c, x)
  16.  
  17. # usage: polyval (c, x)
  18. #
  19. # Evaluate a polynomial.
  20. # In octave, a polynomial is represented by it's coefficients (arranged
  21. # in descending order). For example a vector c of length n+1 corresponds
  22. # to the following nth order polynomial
  23. #   p(x) = c(1) x^n + ... + c(n) x + c(n+1).
  24. # polyval(c,x) will evaluate the polynomial at the specified value of x.
  25. # If x is a vector or matrix, the polynomial is evaluated at each of the
  26. # elements of x.
  27. # SEE ALSO: polyvalm, poly, roots, conv, deconv, residue, filter,
  28. #           polyderiv, polyinteg
  29.  
  30. # Written by Tony Richardson (amr@mpl.ucsd.edu) June 1994.
  31.  
  32.   if (nargin != 2)
  33.     usage ("polyval (c, x)");
  34.   endif
  35.  
  36.   if(is_matrix (c))
  37.     error ("poly: first argument must be a vector.");
  38.   endif
  39.  
  40.   if (length (c) == 0)
  41.     y = c;
  42.     return;
  43.   endif
  44.  
  45.   n = length (c);
  46.   y = c (1) * ones (rows (x), columns (x));
  47.   for index = 2:n
  48.     y = c (index) + x .* y;
  49.   endfor
  50.  
  51. endfunction
  52.