Inicio / Algoritmos en Matlab u Octave
Ayuda en línea: versión 1
Para utilizar las funciones puede consultarse una ayuda en línea con el comando help seguido del nombre la función. Por ejemplo, para consultar la ayuda en línea de la función autovalor hay que escribir en Octave o Matlab el comando
help autovalor
Detallamos a continuación las ayudas en línea para cada función en la primera versión.
autovalor
autovalor
[K, X, Y] = autovalor(F)
Calcula los autovalores y los autovectores para el problema
polinómico inverso
X (f0 + f1/k + f2/k^2 + f3/k^3 + ...) = 0
(f0 + f1/k + f2/k^2 + f3/k^3 + ...) Y = 0
1 + X (-f1/k^2 - 2 f2/k^3 - 3 f3/k^4 + ...) Y = 0
[K, X, Y] = autovalor(F, positivos)
F recetas en tiempo discreto
positivos si no es [] devuelve sólo los autovalores positivos
K autovalores solución
X autovectores por la izquierda
Y autovectores por la derecha
Los autovectores por la izquierda son vectores-fila y los autovectores
por la derecha son vectores-columna.
condicionesvn
condicionesvn
solucion = condicionesvn(k, X, Y, F, signoX, signoXF)
Comprueba si se cumplen las condiciones de primer orden para VN
X ~ 0 <-> F(k) Y ~ 0 X .* F(k) Y = 0
X F(k) ~ 0 <-> -Y ~ 0 X F(k) .* Y = 0
k > 0 1 + X F'(k) Y = 0
[solucion, distancia, distabs] = condicionesvn(k,X,Y,F,signoX,signoXF,cero)
Devuelve la tabla con las distancias al cumplimiento de las condiciones
[X~0, dL/dX~0, X·dL/dX; -Y~0, dL/dY~0, dL/dY·Y; k>0, dL/dk, k·dL/dk]
k, X, Y factor, intensidades y valores solución
F recetas en tiempo discreto o continuo
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
cero precisión del cero (1e-10 por defecto)
solucion es 1 si se cumplen las condiciones y 0 si no se cumplen
distancia tabla con las distancias a las condiciones
distabs suma de la magnitud absoluta de las distancias
cpbusqueda
cpbusqueda
[k, X, Y] = cpbusqueda(F, signoX, signoXF)
Busca un k para el que existe un crecimiento proporcional usando
cpdistancia.
[k, X, Y, u, pasos, kno, Xno, Yno, uno] = cpbusqueda(F, signoX, signoXF, k0)
F recetas en tiempo discreto o continuo
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
k0 factor con el que se inicia la iteración; por defecto 1
k factor para el que existe un crecimiento proporcional
X intensidades para las que existe un crecimiento proporcional
Y multiplicadores de Lagrange del juego correspondiente
u valor del juego para k
pasos número de iteraciones
kno factor el que no existe un crecimiento proporcional
Xno intensidades para las que no existe un crecimiento proporcional
Yno multiplicadores de Lagrange del juego correspondiente
uno valor del juego para kno
cpdistancia
cpdistancia
u = cpdistancia(Fact)
Determina la distancia a un crecimiento proporcional con la matriz
numérica de fujos actualizados para un factor, transformando el
problema a la forma canónica y resolviendo el juego con la matriz de
pagos correspondiente.
[u, X, Y] = cpdistancia(Fact, signoX, signoXF)
Fact matriz numérica con los flujos actualizados
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
u si u >= 0 existe un crecimiento proporcional, si u < 0 no
X intensidades
Y multiplicadores de Lagrange
Si escribimos
[u, X, Y] = cpdistancia(forma0(F,k), signoX, signoXF)
nos determinará si existe un crecimiento proporcional para unas recetas
en tiempo discreto o continuo con el factor k. También si escribimos
[u, X, Y] = cpdistancia(P, 1, 1)
obtendremos el valor u y las estrategias X e Y del juego para la matriz
de pagos P.
ej
ej
F = ej(Ejemplo)
Almacena los ejemplos estudiados en la tesis así como otros que pueden
encontrarse en la literatura.
Nº Sección Modelo
1 §2.5 VN Primer ejemplo de VN
2 §3.5 TE Primer ejemplo de TE
3 §4.1 TE Cantidades de trabajo necesario
4 §4.2 TE Tipos de trabajo
5 §4.3 VN Productivo e improductivo
6 §4.4 VN Materias "escasas"
7 §4.4b VN Materias "escasas" sin el cuarto proceso
8 §4.4c VN Materias "escasas" sin los procesos tercero y cuarto
9 §4.4d TE Materias "escasas" sin el cuarto proceso
10 §4.5 VN Valores negativos
11 §4.5b VN Con el proceso de eliminación gratuita
12 §4.5c TE Valores negativos
13 §4.5d TE Con el proceso de eliminación gratuita
14 §5.1 VN Espacio
15 §5.1b TE Espacio
16 §6.1 VN Depreciación con eficiencia constante (edades = par1)
17 §6.1b TE Desvalorización con eficiencia constante (edades = par1)
18 §6.1c TE Método de edades
19 §6.1d TE Método de la carga de desvalorización
20 §6.4 TE Materia de vida cíclica
21 §6.4b VN Materia de vida cíclica
22 §7.1 VN Problema de los conejos de Fibonacci
23 §7.1b VN Demografía
24 §7.1c VN Demografía con br/1.34659988411590
25 §7.1d VN Demografía con br/2
26 §7.3 VN Colmena
27 §8.1 VN Procesos duraderos con un paso temporal
28 §8.1b VN Procesos duraderos con los procesos que se inician
29 §8.1c TE Procesos duraderos con un paso temporal
30 §8.2 VN Procesos duraderos con varios pasos temporales
31 §8.3 VN Tiempo continuo
32 §9.3 VN Funciones de producción con aproximación poligonal
33 §10.4 VNC Población con ciclo anual
34 §10.4b VNC Matriz cíclica, p = 1
35 §10.4c VNC Matriz cíclica, p = 2
36 §10.4d VNC Matriz cíclica, p = 3
37 §10.4e VNC Matriz cíclica, p = 4
38 §10.4f VNC Matriz cíclica (p = par1)
39 §12.2 VN Intercambios con el primer proceso
40 §12.2b VN Intercambios con el segundo proceso
41 §12.2c VN Intercambios con el tercer proceso
42 §12.2d VN Intercambios con precios [1;12], primer proceso
43 §12.2e VN Intercambios con precios [1;12], segundo proceso
44 §13.3 VN Flujos impuestos
45 §13.3b TE Flujos impuestos
46 §13.3c VN Flujos impuestos con precios [1,15,2]
47 §13.3d VN Imposición prefijada desde ej(16) (imposición = par1)
48 §13.4 VN Colmena con extracción de miel (miel retirada = par1)
49 §14.1 VN Solución múltiple
50 §15.1 VN Perturbación h = 0
51 §15.1b VN Perturbación h = 0.01
52 §15.1c VN Perturbación h = 0.1
53 §15.1d VN Perturbación h = 1
54 §15.1e VN Perturbación h = 10
55 §15.1f VN Perturbación h = 100
56 §15.1g VN Perturbación (h = par1)
57 §15.2 VN Solución múltiple
58 §15.2b VN Antigua solución múltiple con proceso añadido
59 §19.2 VN Economía robótica
60 §19.2b VN Economía robótica incluyendo los procesos con trabajo
61 §21.5 VN Ecosistema (forma canónica)
62 §21.5b VN Ecosistema complejo con edades
63 §23.6 TE Teoría de explotación Trigo
64 §23.6b TE Teoría de explotación Hierro
65 §23.6c TE Teoría de explotación Miel
66 §23.6d TE Teoría de la cosecha extrayendo una edad (edad = par1)
67 §23.6e TE Teoría de la cosecha extrayendo todas las edades
68 §24.1 VN Tableau de Quesnay
69 §24.2 VN Esquemas de reproducción de Marx (C+V -> B)
70 §24.2b TE Esquemas de reproducción de Marx
71 §24.2c VN Esquemas de reproducción de Marx (C+V+S -> B)
101 VN Thompson, en Kuhn y Tucker [2], página 278 (forma canónica)
102 VN Thompson, en Kuhn y Tucker [2], página 279 (forma canónica) (par1,par2)
103 VN Thompson, en Kuhn y Tucker [2], página 279 (forma canónica)
104 VN Gale, en Kuhn y Tucker [2], página 296 (forma canónica)
105 VN Gale, en Kuhn y Tucker [2], página 297 (forma canónica)
106 VN Gale, en Kuhn y Tucker [2], página 298 (forma canónica)
107 VN Morgenstern y Thompson [1], página 24 (forma canónica)
108 VN Morgenstern y Thompson [1], página 25 (forma canónica)
109 VN Morgenstern y Thompson [1], página 26 (forma canónica)
110 VN Morgenstern y Thompson [1], página 27 (forma canónica)
111 VN Leontief [2], página 20
112 VN Leontief [2], página 6 a 9
113 VN Sraffa [1], página 3
114 VN Sraffa [1], página 4
115 VN Sraffa [1], página 7
116 VN Sraffa [1], página 19
117 VN Bródy [1], página 30
118 VN Bródy [1], página 32
119 TE Bródy [1], página 32
Escribiendo F = ej(1) definimos en F las recetas del primer ejemplo de
la tesis. Si escribimos [k,X,Y] = vn(ej(1)) obtenemos la solución de
VN, y con [k,X,Y] = te(ej(2)) la de TE.
F = ej(ejemplo, presentacion, par1, par2, par3, par4, par5)
Si presentacion es 0 se suprime el título del ejemplo. Algunos ejemplos
admiten parámetros que pueden definirse en par1, par2, etc.
forma0
forma0
M = forma0(F, k)
Calcula la matriz numérica de flujos actualizados F(k) para un k dado.
F(k) = f0 + f1/k + f2/k^2 + f3/k^3 + ...
F puede escribirse como recetas en tiempo discreto
F(:,:,1) = f0, F(:,:,2) = f1, F(:,:,3) = f2, F(:,:,4) = f3, ...
o como recetas en tiempo continuo, definidas con inline
F=inline('[-280+575/k,-12;-120,-8+20/k;-280+400/k,-12]')
o en un script m
forma1
forma1
M = forma1(F, k)
Calcula la matriz numérica de las derivadas de los flujos actualizados
F(k) con respecto a k para un k dado.
F'(k) = - 1 f1/k^2 - 2 f2/k^3 - 3 f3/k^4 + ...
F puede escribirse como recetas en tiempo discreto
F(:,:,1) = f0, F(:,:,2) = f1, F(:,:,3) = f2, F(:,:,4) = f3, ...
o como recetas en tiempo continuo, definidas con inline
F=inline('[-280+575/k,-12;-120,-8+20/k;-280+400/k,-12]')
o en un script m
forma2
forma2
M = forma2(F, k)
Calcula la matriz numérica de la segundas derivadas de los flujos
actualizados F(k) con respecto a k para un k dado.
F"(k) = 1*2*f1/k^3 + 2*3*f2/k^4 + 3*4*f3/k^5 + ...
F puede escribirse como recetas en tiempo discreto
F(:,:,1) = f0, F(:,:,2) = f1, F(:,:,3) = f2, F(:,:,4) = f3, ...
o como recetas en tiempo continuo, definidas con inline
F=inline('[-280+575/k,-12;-120,-8+20/k;-280+400/k,-12]')
o en un script m
formaab
formaab
[A, B] = formaab(F)
Convierte unas recetas en tiempo discreto a la forma de matrices de
insumos A y productos B.
|-F0 0 0 0 0| |F1 I 0 0 0|
| 0 I 0 0 0| |F2 0 I 0 0|
A = | 0 0 I 0 0| B = |F3 0 0 I 0|
| 0 0 0 I 0| |F4 0 0 0 I|
| 0 0 0 0 I| |F5 0 0 0 0|
[A, B] = formaab(F, concluir)
F recetas en tiempo discreto
concluir si es 1 no incluye los procesos después de su último flujo
A matriz de insumos
B matriz de productos
formaciclos
formaciclos
G = formaciclos(F, p)
Construye las matrices cíclicas de período p para una F constante. Por
ejemplo, si p fuera 4 nos quedaría
|F0 F1 F2 F3| |F4 F5 F6 0 | |0 0 0 0 |
G0 = |0 F0 F1 F2| G1 = |F3 F4 F5 F6| G2 = |0 0 0 0 |
|0 0 F0 F1| |F2 F3 F4 F5| |F6 0 0 0 |
|0 0 0 F0| |F1 F2 F3 F4| |F5 F6 0 0 |
[G, iniciales] = formaciclos({F_1, F_2, F_3, ...}, [p_1, p_2, p_3, ...])
F_i recetas i
p_i número de instantes en los que se usan las recetas i
G recetas salida
iniciales lista con los primeros procesos en cada instante
Construye las matrices cíclicas de período p para unas F que cambian en
el tiempo. F debe escribirse entre llaves y p entre corchetes. Si p es
un escalar se aplica a todas las recetas.
formaf
formaf
F = formaf(A, B)
Convierte las matrices de insumos A y de productos B a la forma de
recetas en tiempo discreto. Así para resolver VN con estas matrices
puede escribirse
[k, X, Y] = vn(formaf(A, B))
También para resolver TE con las matrices C, V, D, W se puede escribir
[k, X, Y] = te(formaf(V-W, D-C))
formapoligonal
formapoligonal
F = formapoligonal(funcion)
Obtiene unas recetas en tiempo discreto con la aproximación poligonal a
unas funciones de producción (en tiempo discreto o continuo)
[F, T] = formapoligonal(funcion, msist, malet, maletodo, LB, UB, K, grado)
funcion archivo con la definición de las funciones de producción
msist muestras sistemáticas por cada insumo
malet muestras aleatorias por grupo separable
maletodo muestras aleatorias para todos los insumos
LB límite inferior para cada insumo (por defecto 0)
UB limite superior para cada insumo (por defecto 1)
K factores con formapolinomioinverso (sólo con tiempo continuo)
grado grado con formapolinomioinverso (sólo con tiempo continuo)
F aproximación poligonal como recetas en tiempo discreto
T matriz de conversión de intensidades a insumos
msist y malet también pueden definirse como vectores para cada grupo
separable, y LB y UB para cada insumo. En Octave con funciones en
tiempo continuo hay que definir algún K.
A partir de la X solución de VN para F los insumos se obtienen con X*T.
En el caso en tiempo discreto los flujos netos en el tiempo se obtienen
con funcion(X*T); las materias se corresponden con las filas y el
tiempo con las columnas. En el caso en tiempo continuo los flujos
actualizados se obtienen con funcion(k, X*T).
formapolinomioinverso
formapolinomioinverso
F = formapolinomioinverso(funcion)
Construye una aproximación en forma de recetas en tiempo discreto de
unas recetas en tiempo continuo, definidas en un script o con el
comando inline; un ejemplo de este ultimo caso seria
F = inline('[-280+575/k,-12; -120,-8+20/k; -280+400/k, -12]')
F = formapolinomioinverso(funcion, K, grado)
funcion nombre de la función con las recetas en tiempo continuo
K factores sobre los que se calcula la aproximación
grado número de pasos temporales para el tiempo discreto
F aproximación con recetas en tiempo discreto
Si K es un escalar la aproximación se hace en el intervalo [K/2, K*3/2]
formapolyval
formapolyval
Y = formapolyval(A, X)
Devuelve las magnitudes de los polinomios definidos en cada fila de A.
formaprecios
formaprecios
Fn = formaprecios(F, Pc, Pv)
Añade a unas recetas en tiempo discreto F procesos de intercambio con
los precios de compra Pc y de venta Pv correspondientes.
| F 0 |
Fn = | I -Pc |
| -I Pv |
formaproblema
formaproblema
Fn = formaproblema(F, signoX, signoXF, problema)
Convierte unas recetas a la forma estándar, X >= 0 y X F(k) = 0, o a la
forma canónica, X >=0 y X F(k) >= 0.
F recetas originales en tiempo discreto
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
problema [] para la forma estándar y 1 para la forma canónica
Fn recetas transformadas en tiempo discreto
formasolucion
formasolucion
[X, Y] = formasolucion(Xn, Yn, signoX, signoXF, problema)
Convierte una solución transformada a la forma estándar o canónica a la
forma original.
Xn, Yn intensidades y valores transformados
signoX signo de las intensidades
signoXF signo de los balances materiales
problema [] desde la forma estándar y 1 desde la forma canónica
X, Y intensidades y valores originales
ode45octave
ode45octave
[T, Y] = ode45octave(FUN, tspan, Y0)
Integra un sistema de ecuaciones diferenciales ordinarias usando el
método de Runge-Kutta en la variante Dormand-Price.
[T, Y] = ode45octave(FUN, tspan, Y0, tol, par_1, par_2, ...)
FUN función con las derivadas
tspan intervalo de integración [tinicial, tfinal]
Y0 magnitud inicial de las variables
tol margen de error (por defecto 1e-10)
par_i parámetros para FUN
T puntos de integración
Y solución del sistema de ecuaciones en cada punto
Esta función fue creada originalmente por Marc Compere
http://users.powernet.co.uk/kienzle/octave/matcompat/scripts/ode_v1.11/ode45.m
y modificada para simplificarla y garantizar la compatibilidad con
Matlab. FUN debe usar la sintaxis de odefile en Matlab, de modo
que dYdt = fun(t, Y, [], par_1, par_2, ...)
perturbacion
perturbacion
[sk, sX, sY] = perturbacion(F, G, k, X, Y)
Series perturbativas para el problema de autovalores, para VN o para TE.
[sk, sX, sY, sm, U, iU] = perturbacion(F, G, k, X, Y, problema, grado)
F recetas en tiempo discreto con los procesos de producción
G recetas en tiempo discreto con la perturbación
k autovalor o factor
X autovector por la izquierda o intensidades
Y autovector por la derecha o valores
problema para autovalores 0, para VN 1 (por defecto), y para TE 2
grado grado de la serie (por defecto 100)
sk serie para el factor
sX serie para las intensidades
sY serie para los valores
sm serie para el multiplicador de la normalización
U matriz de coeficientes del sistema lineal
iU inversa de la matriz de coeficientes
F y G deben tener la misma dimensión. Las series usan el formato de los
polinomios en Matlab-Octave. Podemos aproximar la solución de VN (o
para los otros problemas) para las recetas F + h*G para un escalar h
dado con el comando
formapolyval(sk, h) para obtener el factor
formapolyval(sX, h)' para las intensidades
formapolyval(sY, h) para los valores
siempre que estemos dentro del radio de convergencia y aplicación de
las series.
perturbacionode
perturbacionode
[k, X, Y] = perturbacionode(F, G, k0, X0, Y0)
Integración de las ecuaciones diferenciales perturbativas para el
problema de autovalores, para VN o para TE.
[k, X, Y, T, V] = perturbacionode(F, G, k0, X0, Y0, problema)
F recetas en tiempo discreto con los procesos de producción
G recetas en tiempo discreto con la perturbación
k0 autovalor o factor inicial
X0 autovector por la izquierda o intensidades iniciales
Y0 autovector por la derecha o valores iniciales
problema para autovalores 0, para VN 1 (por defecto), y para TE 0
k autovalor o factor final
X autovector por la izquierda o intensidades finales
Y autovector por la derecha o valores finales
T puntos de análisis
V magnitud de k, X e Y en cada punto de análisis
F y G deben tener la misma dimensión. En Matlab la integración se
efectúa con la función nativa ode45.m y en Octave con ode45octave.m
perturbacionodefile
perturbacionodefile
dVdh = perturbacionodefile(h, V, flag, F, G, problema)
Derivada del factor, intensidades y valores ante la perturbación.
h punto de integración
V variables V = [k; X'; Y]
flag parámetro sin uso incluido para compatibilidad con Matlab
F procesos de producción
G perturbación
problema para autovalores 0, para VN 1, y para TE 2
dVdh derivada de las variables dVdh = [dkdh; dXdh'; dYdh]
Se usa la sintaxis de Matlab; véase help odefile. El parámetro flag
está incluido para garantizar la compatibilidad con Matlab y puede
definirse como []. Véase también perturbacionode.m
programalineal
programalineal
[X, Y] = programalineal(F, C, D)
Lanza las funciones correspondientes en cada software para obtener la
solución del programa lineal
Max X C Min D Y
D + X F ~ 0 <-> -Y ~ 0 (D + X F) .* Y' = 0
X ~ 0 <-> C + F Y ~ 0 X' .* (C + F Y) = 0
[X, Y, exit] = programalineal(F, C, D, signoX, signoXF)
F matriz m*n
C vector columna m*1
D vector fila 1*n
signoX signo de las variables; por defecto X >= 0
signoXF signo de las restricciones; por defecto D + X F = 0
X vector fila 1*m de variables
Y vector columnas n*1 de multiplicadores de Lagrange
exit si es 1 la solución cumple las condiciones del programa
Los códigos para los signos son 0 = 1 >= 2 <= 3 >=<
programalinealaux
programalinealaux
Función auxiliar de programalineal.m. Lanza los problemas en Octave y
en las versiones superiores de Matlab.
te
te
[k, X, Y] = te(F)
Resuelve la Teoría de la explotación
Max
X (D-C+k(W-V)) ~ 0 <-> -Y ~ 0 X (D-C+k(W-V)) .* Y = 0
X ~ 0 <-> (D-C+k(W-V)) Y ~ 0 X .* (D-C+k(W-V)) Y = 0
k > 0 1 + X (W-V) Y = 0
Los procesos deben escribirse como
F(:,:,1) = W - V
F(:,:,2) = D - C
[k, X, Y, pasos, distancias] = te(F, signoX, signoXF, algoritmo)
F procesos de producción
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X(D-C+k(W-V))=0
algoritmo especifica el algoritmo que se usará
k factor de explotación
X intensidades-trabajo
Y valores-trabajo
pasos número de iteraciones efectuadas
distancias distancia de la solución a las condiciones
Esta función opera usando vn y normalizando los valores-trabajo. Véase
la ayuda de vn.
vn
vn
[k, X, Y] = vn(F)
Resuelve el modelo Von Neumann
Max k
X F(k) ~ 0 <-> -Y ~ 0 X F(k) .* Y = 0
X ~ 0 <-> F(k) Y ~ 0 X .* F(k) Y = 0
k > 0 1 + X F'(k) Y = 0
[k, X, Y, pasos, distancias] = vn(F, signoX, signoXF, algoritmo)
F recetas en tiempo discreto o continuo
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
algoritmo especifica el algoritmo que se usará; por defecto 0
k factor de expansión
X intensidades-VN
Y valores-VN o precios
pasos número de iteraciones efectuadas
distancias distancia de la solución a las condiciones
Los códigos para los signos son 0 = 1 >= 2 <= 3 >=<
Si se escribe un escalar para signoX o signoXF se aplica a todos; así
vn(F, 1, 0) resuelve la forma estándar, X >= 0, X F(k) = 0.
vn(F, 1, 1) resuelve la forma canónica, X >= 0, X F(k) >= 0.
Según definamos algoritmo se usará:
0 selección automática (por defecto)
1 vnautovalor
2 vnautovalor mayor orden
3 vnbiseccion
4 vnnewton
5 vnpls
6 vnsimplex
7 vnnolineal
8 vnbrody
9 cpbusqueda -> vnbiseccion
10 cpbusqueda -> vnpls
11 vnpls; cpbusqueda -> vnpls; cpbusqueda -> vnbiseccion
Cuando F son recetas en tiempo discreto la selección automática escoge
el algoritmo 1 para los problemas pequeños, el 2 para los problemas
casi-cuadrados medianos y para los problemas cuadrados grandes en la
forma estándar, el 11 para los problemas rectangulares grandes, y el 6
para los muy grandes.
Cuando F son unas recetas en tiempo continuo la selección automática
escoge el 11 en cualquier caso. Si con unas recetas en tiempo continuo
pedimos la solución con los algoritmos 1,2,6,7,8 primero se usa
formapolinomioinverso.
Los algoritmos 9 a 11 ejecutan sucesivamente los algoritmos indicados
hasta encontrar una solución.
vnautovalor
vnautovalor
[k, X, Y] = vnautovalor(F)
Construye todos los menores cuadrados posibles, calcula los
autovalores y autovectores por la izquierda y la derecha de cada
menor y muestra las soluciones que cumplen las condiciones de VN.
[k, X, Y] = vnautovalor(F, signoX, signoXF, orden, numsol)
F recetas en tiempo discreto
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
orden si = [] todos los ordenes, si = 0 los de mayor orden
numsol si = [] busca todas las soluciones, si = n busca sólo n
k, X, Y factor, intensidades y valores solución
Los códigos para los signos son 0 = 1 >= 2 <= 3 >=<
Por defecto busca todas las soluciones en todos los menores.
vnbiseccion
vnbiseccion
[k, X, Y] = vnbiseccion(F)
Busca la solución de VN con el método de bisección. Se parte de un
ksi para el que existe un crecimiento proporcional y de un kno mayor
que ksi para el que no. Se procede comprobando si en el medio del
intervalo [ksi, kno) existe un crecimiento proporcional y bisecando el
intervalo en consecuencia hasta que kno-ksi sea menor que una cota.
[k, X, Y] = vnbiseccion(F, signoX, signoXF, ksi, kno)
F recetas en tiempo discreto o continuo
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
ksi factor para el que existe un crecimiento proporcional
kno factor, mayor que ksi, para el que no existe
k, X, Y factor, intensidades y valores solución.
Los códigos para los signos son 0 = 1 >= 2 <= 3 >=<
vnbrody
vnbrody
[k, X, Y] = vnbrody(F)
Formatea el problema y lanza un código de Bródy para resolver VN.
[k, X, Y] = vnbrody(F, signoX, signoXF)
F recetas en tiempo discreto
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
k, X, Y factor, intensidades y valores solución
Los códigos para los signos son 0 = 1 >= 2 <= 3 >=<
El algoritmo puede consultarse en:
András Bródy, "The implicit dynamics of the Neumann growth model",
Acta Oeconomica, Vol. 54 (1) pp. 63-72 (2004)
http://www.akademiai.com/content/x71485711558/
vnnewton
vnnewton
[k, X, Y] = vnnewton(F)
busca la solución de VN intentando resolver la ecuación u(k) = 0
mediante el método de Newton, donde u(k) es la distancia al crecimiento
proporcional establecida como el valor del juego para la matriz de
pagos F(k) convertida a la forma canónica.
[k, X, Y] = vnnewton(F, signoX, signoXF, k0)
F recetas en tiempo discreto o continuo
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
k0 factor con el que se inicia la iteración; por defecto 1
k, X, Y factor, intensidades y valores solución
Los códigos para los signos son 0 = 1 >= 2 <= 3 >=<
vnnolineal
vnnolineal
[k, X, Y] = vnnolineal(F)
Resuelve VN utilizando las funciones para programas no lineales constr
en Matlab 5 y fmincon en las versiones superiores de Matlab; esta
función no está implementada en Octave.
[k, X, Y] = vnnolineal(F, signoX, signoXF, k0, X0)
F recetas en tiempo discreto
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
k0 factor con el que se inicia la iteración
X0 intensidades con las que se inicia la iteración
k, X, Y factor, intensidades y valores solución
Los códigos para los signos son 0 = 1 >= 2 <= 3 >=<
vnnolinealaux1
vnnolinealaux1
[fobjetivo, restricciones] = vnnolinealaux1(U, F)
Función auxiliar de vnnolineal. Calcula la función objetivo y las
restricciones de VN para MATLAB 5
vnnolinealaux2
vnnolinealaux2
[difeobjetivo, difrestricciones] = vnnolinealaux2(U, F)
Función auxiliar de vnnolineal. Calcula el gradiente de la función
objetivo y el jacobiano de las restricciones de VN con MATLAB 5
vnnolinealaux3
vnnolinealaux3
Función auxiliar de vnnolineal. Lanza el problema con las versiones
superiores de Matlab.
vnnolinealaux4
vnnolinealaux4
Función auxiliar de vnnolineal. Calcula las restricciones de VN
con las versiones superiores de Matlab
vnpls
vnpls
[k, X, Y] = vnpls(F)
Busca la solución de VN mediante la programación lineal secuencial.
Resuelve sucesivamente la aproximación lineal de VN
max k min -mu
X F(kn) + k Xn F'(kn) - kn Xn F'(kn) ~ 0 -Y ~ 0
sum(X) - 1 = 0 -mu >=< 0
X ~ 0 F(kn) Y + mu ~ 0
k >= 0 1 + Xn F'(kn) Y <= 0
hasta que las variables converjan.
[k, X, Y] = vnpls(F, signoX, signoXF, k0, X0)
F recetas en tiempo discreto o continuo
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
k0 factor con el que se inicia la iteración
X0 intensidades con las que se inicia la iteración
k, X, Y factor, intensidades y valores solución
Los códigos para los signos son 0 = 1 >= 2 <= 3 >=<
vnsimplex
vnsimplex
[k, X, Y] = vnsimplex(F)
Busca la solución de VN mediante el algoritmo simplex. Se parte de unos
procesos básicos. Se resuelve VN para esos procesos y se descartan de
los básicos los procesos con pérdidas; si ningún proceso tiene
rentabilidad positiva se ha encontrado una solución; en caso contrario
se incorpora a los básicos el proceso más rentable y se itera el
procedimiento.
[k, X, Y] = vnsimplex(F, signoX, signoXF, basicos, algoritmo)
F recetas en tiempo discreto
signoX signo de las intensidades; por defecto X >= 0
signoXF signo de los balances materiales; por defecto X F(k) = 0
basicos procesos básicos con los que se inicia la iteración
algoritmo número del algoritmo para resolver los problemas básicos
k, X, Y factor, intensidades y valores solución
Los códigos para los signos son 0 = 1 >= 2 <= 3 >=<
Si basicos = [] escoge como básicos los últimos procesos.
Si algoritmo = [] escoge automáticamente el algoritmo para resolver los
sucesivos sistemas básicos.