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.


Inicio / Algoritmos en Matlab u Octave