function [K, X, Y] = autovalor(F, positivos)1%autovalor2% [K, X, Y] = autovalor(F)3%4% Calcula los autovalores y los autovectores para el problema5% polin�mico inverso6% X (f0 + f1/k + f2/k^2 + f3/k^3 + ...) = 07% (f0 + f1/k + f2/k^2 + f3/k^3 + ...) Y = 08% 1 + X (-f1/k^2 - 2 f2/k^3 - 3 f3/k^4 + ...) Y = 09%10% [K, X, Y] = autovalor(F, positivos)11% F recetas en tiempo discreto12% positivos si no es [] devuelve s�lo los autovalores positivos13% K autovalores soluci�n14% X autovectores por la izquierda15% Y autovectores por la derecha16%17% Los autovectores por la izquierda son vectores-fila y los autovectores18% por la derecha son vectores-columna.1920% necesita forma1.m, formaab.m2122if nargin < 2, positivos = []; end23cero = 1e-6; %define la precisi�n del cero24[filas, columnas, ancho] = size(F); %determina el tama�o del problema25[A, B] = formaab(F, 1); %convierte F(k) a la forma -A + B/k26[X1, K1] = eig(B', A'); %resuelve el problema de autovalores y autovectores por la izquierda27[Y2, K2] = eig(B, A); %resuelve el problema de autovalores y autovectores por la derecha28K = []; X = []; Y = []; %crea las variables para almacenar las soluciones29for c1 = 1:size(K1, 2) %para cada autovalor del problema por la izquierda30Knn = K1(c1, c1); %extrae el autovalor31if or(isempty(positivos), and(abs(imag(Knn))<cero, real(Knn)>cero)) %si positivos es [] o si Knn es real y Knn > 032if and(Knn == Knn, and(abs(Knn)<Inf, abs(Knn)>cero))%si Knn >< NaN y Knn >< +-Inf y Knn >< 033DF = forma1(F, Knn); %calcula F'(k)34Xnn = X1(1:filas, c1)'; %extrae el X de los procesos que se inician35s = sum(Xnn); if abs(s) > cero, Xnn = Xnn ./ s; end %normaliza X para que sum(X) = 136for c2 = 1:size(K2, 2) %para cada autovalor por la derecha37if abs(Knn - K2(c2, c2)) < cero %si el autovalor por la izquierda y la derecha coinciden38Ynn = Y2(1:columnas, c2); %extrae el Y de las materias39q = -Xnn*DF*Ynn; if abs(q)>cero, Ynn = Ynn ./ q; end %normaliza Y para que 1 + X F'(k) Y = 040K = [K, Knn]; X = [X; Xnn]; Y = [Y, Ynn]; %almacena la soluci�n41end42end43end44end45end46474849