annotate scripts/polynomial/poly-tuwien.m @ 772:05cd8c8b13b3

[project @ 1994-10-05 22:10:27 by jwe]
author jwe
date Wed, 05 Oct 1994 22:12:21 +0000
parents faf108b99d21
children 4fcd2e68dd3b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
558
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
1 function y = poly (x)
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
2 #
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
3 # If A is a square matrix, poly (A) is the row vector of coefficients of
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
4 # the characteristic polynomial det (z * eye(A) - A).
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
5 # If x is a vector, poly (x) is a vector of coefficients of the polynomial
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
6 # whose roots are the elements of x.
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
7
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
8 # written by KH (Kurt.Hornik@neuro.tuwien.ac.at) on Dec 24, 1993
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
9 # copyright Dept of Probability Theory and Statistics TU Wien
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
10
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
11 m = min(size(x));
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
12 n = max(size(x));
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
13 if (m == 0)
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
14 y = 1;
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
15 elseif (m == 1)
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
16 v = x;
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
17 elseif (m == n)
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
18 v = eig(x);
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
19 else
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
20 error("usage: poly(x), where x is a vector or a square matrix");
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
21 endif
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
22
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
23 y = [ 1 zeros(1,n) ];
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
24 for j = 1:n;
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
25 y(2:(j+1)) = y(2:(j+1)) - v(j) .* y(1:j);
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
26 endfor
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
27
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
28 if all(imag(x) == 0)
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
29 y = real(y);
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
30 endif
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
31
faf108b99d21 [project @ 1994-07-25 20:38:45 by jwe]
jwe
parents:
diff changeset
32 endfunction