Date post: | 27-Dec-2015 |
Category: |
Documents |
Upload: | jose-luis-neme-pereda |
View: | 796 times |
Download: | 7 times |
FUNCIONES DEL VENSIM
ABS (x) Devuelve el valor absoluto de X. Igual que el SI ENTONCES MAS (X < 0, - X, X). Unidades: ABS (cualquier unidad) à las mismas unidades Ejemplos ABS (5,0) es igual a 5.0. ABS (-5,0) es igual a 5.0.
DELAY FIXED
RETARDO FIJO (ENTRADA, TIEMPO DE RETARDO, EL VALOR INICIAL) Devuelve el valor de la entrada demorada por el tiempo de retardo. El valor inicial es el valor de la variable en el lado izquierdo de la ecuación en el inicio de la simulación. El tiempo de retardo puede ser una expresión, pero sólo se utiliza su valor inicial. Restricciones: retardo fijo deben seguir directamente el signo igual. Vensim trata la variable del lado izquierdo de la ecuación como una variable de Nivel. En el Editor de ecuaciones elegir el tipo de nivel, subtipo fija Delay. Ejemplos DI = retardo fijo (I, 22, I) DM DELAY = FIJO (MAX (A, B), C, A) No válido D = UN RETRASO + FIJO (R, 3.2, 0.0) D = retardo fijo (B, T, B) + 1 DELAY 1 DELAY1 (ENTRADA, TIEMPO DE RETARDO) RETRASO EXPONENCIAL
DELAY1 I DELAY1I (ENTRADA, TIEMPO DE RETARDO, EL VALOR INICIAL) RETRASO EXPONENCIAL CON INICIAL Devuelve un retraso exponencial de la entrada. Equivalentes a las ecuaciones: DELAY1 = LV / tiempo de retardo LV = INTEG (entrada-DELAY1, entrada * tiempo de retardo) DELAY1I = LV / tiempo de retardo LV = INTEG (entrada-DELAY1I, valor inicial * tiempo de retardo) DELAY3 DELAY3 (ENTRADA, TIEMPO DE RETARDO) RETRASO DE 3ER ORDEN EXPONENCIAL DELAY3I DELAY3I (ENTRADA, TIEMPO DE RETARDO, EL VALOR INICIAL) RETRASO DE TERCER ORDEN EXPONENCIAL CON VALOR INICIAL Devuelve una tercera orden de retardo exponencial de la entrada, la conservación de la entrada si el tiempo de retardo cambia. Equivalentes a las ecuaciones: Delay3 = LV3/DL LV3 = INTEG (RT2-Delay3, DL * entrada) RT2 = LV2/DL LV2 = INTEG (RT1-RT2, LV3) RT1 = LV1/DL LV1 = INTEG (entrada-RT1, LV3) DL = tiempo de retardo / 3
EXP (X)
Exponencial de (e ^ X) Devuelve “e a la potencia de X". Igual que la función POWER (e, X), donde e=2.718... Unidades: EXP (adimensional) àdimensiones (el argumento debe ser adimensional) Ejemplos EXP (1.0) es igual a 2.718282. EXP (0.0) es igual a 1.0. EXP (-10,0) es igual a 4.540E-5.
EXP (10.0) es igual a 22.026,46. EXP (LN (10.0)) es iguala 10,0(por definición).
IF THEN ELSE
SI -ENTONCES -CASO CONTRARIO(cond, tval, FVal) Devuelve primer valor (tval) si la condición (cond) es verdadera; segundo valor (FVal) si la condición es falsa. COND debe ser una expresión booleana o una expresión o variable que se puede interpretar como Boolean. Sólo el valor devuelto se evalúa, por lo que el valor que podría ser una expresión que daría lugar a un error. Tenga en cuenta que las expresiones tales como (a> b) exigir que A y B tienen la misma dimensión y la expresión resultante se considera que es adimensional Ejemplos SI ENTONCES CASO CONTRARIO (1.0 <2.0, 3.0, 4.0) es igual a 3.0. SI ENTONCES CASO CONTRARIO (1.0> 2.0, 3.0, 4.0) es igual a 4.0. SI ENTONCES CASO CONTRARIO (X = 0.0, 1.0, 1.0 / X) es igual a 1 / X a menos que X es de 0.0 cuando es igual a 1.0. Si X es 0.0, Vensim no intentará calcular 1 / X y no habrá error.
INTEGER(x) i
INTEGER (x) la parte entera de x Ejemplo ENTERO (5,4) es de 5,0
LN(X)
LN (X) Logaritmo natural de [variable] Devuelve el logaritmo natural de X. Ejemplos
LN (2.718282) es igual a 1.0. LN (-5,0) se produce un error (LN de un número <= 0 no está definido). LN (EXP (2.0)) es igual a 2,0 (por definición).
MAX(A,B)
MAX(A, B) Máximo de dos alternativas Devuelve el mayor de A y B. Ejemplos MAX(1,2) es igual a 2.0. MAX (1,1) es igual a 1.0.
MIN(A,B)
MIN (A, B) un mínimo de dos alternativas Devuelve el menor de A y B. Ejemplo: MIN (5,1) es igual a 1.0.
MODULO(A,B)
MODULO(A, B) módulo de a respecto a b Devuelve el resto cuando A está dividido por B. Ejemplos MODULO (9,5) es igual a 4.0. MODULO (76.5, 70) es igual a 6.5. MODULO (8.3, 7.3) es igual a 1.0
PULSE
PULSO (inicio, ancho) Devuelve 1.0, a partir de la hora de inicio, y duradera para el ancho de intervalo; 0.0 se devuelve el resto del tiempo. Lo mismo que: IF THEN ELSE (hora de inicio más>: Y: tiempo más< (inicio +ancho)), 1.0, 0.0) más el tiempo=tiempo+ (TIEMPO PASO/2.0) Con PULSE, Vensim Crea vez más internos para evitar errores de redondeo en la comparación de tiempo con inicio + ancho. Ejemplo tarea activa=PULSE (inicio de la tarea, duración de la tarea)
PULSE TRAIN
TREN DE PULSO (inicio, ancho, tbetween, final) Devuelve 1.0, a partir de hora de inicio y duración de la anchura de intervalo y luego repite este patrón cada tbetween tiempo; 0.0 Se devuelve el resto del tiempo. Si el valor de tbetween es más pequeña que el ancho de entonces 1 se devolverán entre el inicio y el final. Si el ancho es menor o igual a PASO TIEMPO los pulsos sólo duran un paso de tiempo. El valor devuelto por tren de pulsos depende sólo de los argumentos del te le pasan. Normalmente, esta función se llama con constantes. Sin embargo, se le puede llamar con variables dinámicas o expresiones en cuyo caso el patrón de salida real puede no ser regular. Con PULSE, Vensim Crea vez más internamente para evitar errores de redondeo en la comparación de tiempo con el comienzo + ancho. NOTA El valor devuelto por tren de pulsos no cambia excepto a intervalos paso de tiempo, independientemente de la técnica de integración utilizado. Unidades: PULSE (hora, tiempo) -> adimensional (inicio y ancho de tener las mismas unidades que el tiempo, el resultado de PULSE es adimensional) Ejemplo Es de día = tren de pulsos (8,12,24, TIEMPO FINAL)
RAMP
RAMP (pendiente, hora de inicio, hora de finalización)
Devuelve 0 hasta la hora de inicio y luego se desliza hacia arriba hasta la hora de finalización y luego mantiene constante. Ejemplo RAMP (1, 10,25) es 0 hasta la hora 10, luego de una línea de 15 en el momento de 25, entonces 15 después.
RANDOM NORMAL
Aleatoria Normal (m, x, h, r, s) proporciona una distribución normal de media 0 y varianza 1 antes de que se estira, se movió y truncado. Esto es equivalente a una distribución normal con H media y desviación estándar r. Las unidades de r deben coincidir m, x y h.
RANDOM UNIFORM
ALEATORIO AL AZAR (m, x, s) proporciona una distribución uniforme entre m y x.
REINITIAL(X) REINITIAL es el mismo que INICIAL excepto cuando una simulación se reinicia desde otra simulación. En este caso REINITIAL se computará mientras que no lo hará INICIAL. SIN(X) Devuelve el seno de las veces útil para probar la respuesta dinámica de un sistema de X.. SIN es periódica en X en el rango de 0 a 2 pi radianes. Ejemplos sin (0.0) es igual a 0,0. sin (1.0) es igual a 0.84147. SMOOTH LISA (entrada, tiempo de retardo) exponencial LISO. SMOOTH I LISA I (entrada, tiempo de retardo, el valor inicial) exponencial LISO con inicial Devuelve una exponencial suave de la entrada. Equivalentes a las ecuaciones: LISO = INTEG ((input-SMOOTH) / tiempo de retardo, de entrada) Smoothi = INTEG ((input-Smoothi) / tiempo de retardo, el valor inicial)
Ejemplo
S = STEP (10,40) SS = LISA (S, 20) SSI = Smooth I (S, 20,5) SMOOTH3 SMOOTH3 (entrada, tiempo de retardo) tercera orden exponencial LISO SMOOTH3I LISA 3 I (entrada, tiempo de retardo, el valor inicial) tercera orden exponencial LISO con inicial
Devuelve una tercera orden exponencial lisa de la entrada. Equivalentes a las ecuaciones:
SMOOTH3 = INTEG ((LV2-SMOOTH3) / DL,de entrada)
LV2 = INTEG ((LV1-LV2) / DL, de entrada)
LV1 = INTEG (() / DL, la entrada IN-LV1)
DL = tiempo de retardo / 3
SMOOTH3I = INTEG ((LV2-SMOOTH3I) / DL, valor inicial)
LV2 = INTEG ((LV1-LV2) / DL, valor inicial)
LV1 = INTEG ((IN-LV1) / DL valor inicial)
DL = tiempo de retardo / 3
Las unidades de entrada coinciden con las unidades de salida. Las unidades de tiempo de retardo
deben coincidir con los de paso de tiempo. Para las unidades SMOOTH3I para el valor inicial debe
coincidir con las de la entrada.
Ejemplo
S = STEP (10,40)
SS = SMOOTH3 (S, 20)
SSI = SMOOTH3I (S, 20,5)
SQRT(X) Devuelve la raíz cuadrada de X. Si el argumento tiene unidades que son el cuadrado perfecto, el resultado será la raíz cuadrada de las unidades. Si el argumento es sin dimensiones, el resultado debe ser adimensional. Ejemplo: Sqrt (9.0) es igual a 3,0. STEP PASO (altura, el tiempo de paso)
Devuelve 0 hasta que el tiempo de paso y luego regresa altura. Es lo mismo que:
SI ENTONCES SINO (Hora plus> tiempo de paso, altura, 0) tiempo más = Tiempo + (PASO TIEMPO / 2,0) NOTA El valor devuelto por STEP no cambia excepto a intervalos paso de tiempo, independientemente del método de integración utilizado. Ejemplo STEP (10,20) es 0 hasta la hora 20, luego 10. XIDZ(A,B,X) XIDZ (A, B, X) Si X dividido por cero (de lo contrario A / B) Devuelve Un dividido por B. Si B es cero, entonces regresa X. XIDZ se utiliza normalmente para expresar algún límite de A / B, como B se aproxima a 0 (que normalmente sería definida para B = 0). Ejemplos XIDZ (3, 4, 1) es igual a 0,75. XIDZ (3, 0, 1) es igual a 1,0. ZIDZ(A,B) ZIDZ(A, B) SI CERO DIVIDIDO POR CERO (DE LO CONTRARIOA /B) Divide A por B. Si B es cero (en realidad menor que 1E-6), a continuación, volver 0.0. ZIDZ normalmente se utiliza para expresar el caso especial en que el límite de A / B, como B se acerca a 0, es 0. Ejemplos ZIDZ (3, 4) es igual a 0,75. ZIDZ (3, 0) es igual a 0. -DELAYP DELAYP (entrada, tiempo de retardo: tubería) 3er orden RETRASO exponencial con Pipeline Devuelve una tercera orden de retardo exponencial de la entrada y calcula la tubería en el progreso, la conservación de la entrada si los cambios de hora de retraso. Equivalentes a las
ecuaciones: DELAYP = LV3/DL pipeline = LV3 + + LV1 LV2 LV3 = INTEG (RT2-DELAYP, DL * IN) RT2 = LV2/DL LV2 = INTEG (RT1-RT2, LV3) RT1 = LV1/DL LV1 = INTEG (entrada-RT1, LV3) DL = tiempo de retardo / 3 Salida de las unidades de entrada y unidades de partido de la tubería. Las unidades de tiempo de retardo deben coincidir con los de paso de tiempo. Ejemplo terminaciones de productos = DELAYP (comienza producto, tiempo de producción: trabajo en progreso) (Tenga en cuenta que no hay ecuación para el trabajo en curso en el modelo) NOTA DELAYP se admite como una taquigrafía conveniente, pero no se recomienda para su uso generalizado. Las siguientes ecuaciones tienen el mismo efecto, y son más fáciles de entender: terminaciones de productos = Delay3 (arranques de productos, tiempo de producción) trabajo en progreso = INTEG (producto comienza - terminaciones de productos, comienza producto * El tiempo de producción) 34-FORECAST PRONÓSTICO (entrada, el tiempo promedio, horizonte) se prevé una tendencia extrapolando Devuelve una previsión del valor de la entrada asumirá en Time + Horizon. Equivalentes a las ecuaciones: PRONÓSTICO = entrada * (1 + * TRD horizonte) TRD = ZIDZ (entrada-AV, el tiempo medio * AV)
AV = INTEG ((entrada-AV) / tiempo promedio, ininput) La función PRONOSTICO proporciona un pronóstico extrapolación de tendencias muy simple del valor futuro de una variable en función de su comportamiento en el pasado. Como cualquier extrapolador tendencia que funciona muy mal en plazos de entrega. Ejemplo R = 10 + RAMP (1,10,60) RD = retardo fijo (R, 10, R) FR = PRONOSTICO (RD, 5,10) NPV NPV (corriente, tasa de descuento, val init, los factores) Devuelve el valor actual neto de la corriente calculada utilizando la tasa de descuento. El valor inicial se determina por Val init (generalmente 0) y el valor se informó después de multiplicar por el factor (por lo general 1). Equivalentes a las ecuaciones: MYNPV = (VAN Acum + TIEMPO PASO * stream * df) * factor de Npv Acum = INTEG (corriente * df, val init) df = INTEG (df * tasa de descuento, 1) Unidades: VNA (unidades, 1/tiempo, unidades * de tiempo, sin dimensión) -> unidades * El tiempo Ejemplos NPV (flujo de efectivo, tasa de descuento, 0,1) devuelve el valor actual neto con respecto al tiempo inicial para el flujo de caja para Time. NPV (flujo de efectivo, tasa de descuento, 0, exp (tasa de descuento * (TIME-Time INICIAL)) devuelve el valor actual neto en el tiempo para el flujo de caja para Time. Tenga en cuenta que el VAN no descuenta el valor del periodo actual de la secuencia. Si está acostumbrado a utilizar el VAN como calculado por Excel que se desea utilizar NPVE INSEAD. NPVE
NPVE (flujo, tasa de descuento, val init, los factores)Valor actual neto con Finalización del periodo de valoración Devuelve el valor actual neto de la corriente calculada utilizando la tasa de descuento. El cálculo hecho supone que la corriente es calculado al final del período, y que la tasa de descuento está pensado como una discreta tasa de período. Este es el mismo conjunto de supuestos que utiliza Excel y puede ser útil si usted está tratando de conseguir un poco de base para la comparación. Equivalentes a las ecuaciones: MYNPVE = (VAN Acum + TIEMPO PASO * stream * df) * factor de Npv Acum = INTEG (corriente * df, val init) df = INTEG (df-tasa de descuento * / (1 + tasa de descuento * El paso de tiempo),1 / (1 + tasa de descuento * PASO TIEMPO)) Unidades: NPVE (unidades, 1/tiempo, unidades * de tiempo, sin dimensión) -> unidades * El tiempo Ejemplos NPVE (flujo de efectivo, tasa de descuento, 0,1) devuelve el valor actual neto con respecto al tiempo inicial para el flujo de caja para Time. NPVE (flujo de efectivo, tasa de descuento, 0, (1 + tasa de descuento * El paso de tiempo) ^ ((TIME-tiempo inicial) / tiempo de paso)) devuelve el valor actual neto en el tiempo para el flujo de caja para Time. La diferencia entre el VAN y NPVE es bastante pequeño. Para los modelos que no tienen tiempo de paso> = 1 lo mejor es seguir con el VAN. TREND TENDENCIA (entrada, el tiempo medio, la tendencia inicial) Calcular la tendencia de la entrada Devuelve la tasa media de crecimiento fraccional (negativo para el descenso) en la entrada. Equivalentes a las ecuaciones: TENDENCIA = ZIDZ (entrada Avval, tiempo medio * ABS (Avval)) Avval = INTEG ((entrada Avval) / tiempo medio, de entrada / (1 + ini * Tiempo averate)) La función TENDENCIA proporciona una estimación muy simple tendencia de una variable. En realidad, sólo tiene sentido para los números que son siempre positivas y no se ponen muy cerca de cero. Si usted quiere a la tendencia un número que puede ser positiva o negativa la función TENDENCIA no es muy útil. En su lugar, debe utilizar la tendencia fraccional con respecto a una
cantidad que es siempre positiva (por ejemplo, el cambio en el resultado como una fracción de los ingresos brutos). Ejemplo R = 10 + RAMP (1,30,70) TR = TENDENCIA (R, 5, 0,08) ALLOC P ALLOC P (solicitud, la prioridad, el ancho, mp) Mismo propósito que allocate by priority sino que se utiliza en conjunción con la función marketp. Devuelve la cantidad de un pedido asignado a un sector con la solicitud y la prioridad dada. ALLOCATE AVAILABLE ASIGNAR DISPONIBLE (solicitud, pp, disponible)
Esta función se utiliza para asignar la cantidad disponible de un recurso escaso a los solicitantes
sobre la base de la prioridad de las solicitudes. Requiere que la variable izquierda y la solicitud
tendrá el mismo final, subíndice y que pp tener esa penúltima subíndice y un subíndice ppriority
pasado. Esta función es una generalización del ASIGNAR POR PRIORIDAD y se describe de forma
más completa en la sección Asignación.
solicitud debe ser una variable con subíndice, y su subíndice final debe coincidir con el de la mano
izquierda. Representa la (saciedad) la cantidad solicitada por los diferentes agentes.
PP es el perfil de prioridad. Se utiliza para definir la forma de la curva que define la cantidad de la
cantidad disponible una solicitud recibe en condiciones de escasez. Debe tener como subíndice
último subíndice pProfile como se discutió en la sección Asignación. Todos los elementos deben
ser positvive. Prioridades y anchos también deben ser del mismo orden de magnitud.
disponible es la cantidad total disponible para cumplir con todas las solicitudes. Si esta excede el
total de solicitudes, todas las solicitudes se llenan, pero ninguno se ha sobrecargado.
NOTEALLOCATE IMPORTANTE POR PRIORIDAD es sensible al orden de los subíndices! Si usted
tiene más de un rango subíndice en las variables que utiliza, los elementos de la petición debe ser
la última en el lado izquierdo y la solicitud, y la segunda a durar en las páginas
Tenga en cuenta que las prioridades y los anchos especificados deben ser todas del mismo orden
de magnitud. Por ejemplo, no tiene sentido tener una prioridad sea 20 y otro 2E6 si el ancho es de
100.
ASIGNAR DISPONIBLE puede utilizarse para devolver las asignaciones de números enteros
mediante la adición de 10 a la forma especificada en pp
Ejemplo
rama: Boston, Dayton, Fresno
pProfile: ptype, ppriority, pWidth, pextra
demanda [Rama] = 500300750
Unidades: Widget / Mes
prioridad [Boston, pProfile] = 1,5,2,0
prioridad [Dayton, pProfile] = 1,7,4,0
prioridad [Fresno, pProfile] = 1,3,4,0
Unidades: MDLN
Los envíos [rama] = ALLOCATE DISPONIBLE (demanda [rama],
prioridad [rama, ptype], la oferta disponible)
Unidades: Widget / Mes
ALLOCATE BY PRIORITY ASIGNAR POR PRIORIDAD (solicitud, prioridad, tamaño, anchura, alimentación) Esta función se utiliza para asignar una escasa oferta a un número o las solicitudes sobre la base de la prioridad de las solicitudes. Funciona sólo cuando la mano izquierda, la solicitud y la prioridad de todos tienen el mismo subíndice final. Si el suministro es más grande que la suma de solicitud a través de elementos de tamaño a continuación, se cumplen las peticiones (ninguno se llena en exceso). Si la oferta es más pequeña que se produce racionamiento. La forma en que funciona el racionamiento está determinada por las prioridades relativas y el parámetro de anchura. La sección de asignación en este manual detalla el algoritmo utilizado para esta función. Los dos primeros argumentos (solicitud, la prioridad) deben ser vectores (de tamaño de longitud). Es decir, el (último) subíndice de la solicitud y la prioridad debe variar a través de los diferentes elementos de la demanda. La variable lado izquierdo también debe tener su último subíndice variable a través de los diferentes elementos de la demanda. NOTEALLOCATE IMPORTANTE POR PRIORIDAD es sensible al orden de los subíndices! Si usted tiene más de un rango subíndice en las variables que utiliza, los elementos de la demanda deben ser el último subíndice para la variable izquierda, solicitud y prioridad. Tamaño es el número de elementos a través de la cual se efectúa la asignación. Normalmente esto se hace usando la función ELMCOUNT como en el ejemplo. También puede ser un número o una constante subíndice. Anchura especifica qué tan grande se requiere un vacío en la prioridad de tener la asignación de ir primero a una prioridad más alta, con sólo las sobras de ir a una prioridad menor. Cuando la distancia entre dos prioridades excede la anchura y la mayor prioridad no recibe su solicitud completa recibirá la prioridad más baja nada. La oferta es la oferta total disponible para satisfacer todas las solicitudes. Si la oferta supera la totalidad de las solicitudes, todas las solicitudes se llenan, pero ninguno se ha sobrecargado. Si desea conservar el material debe calcular de alimentación negativa total de asignaciones de manera explícita. Unidades: ASIGNAR POR PRIORIDAD (unidades, sin dimensiones, sin dimensiones, sin dimensiones, unidades) -> unidades Ejemplo País: EE.UU., China, Rusia Índice ~ ~ los países sobre los que un recurso escaso deberá asignarse | deseado [país] = 10, 2, 8 ~ Toneladas / mes
~ Cantidad deseada de escaso recurso | prioridad [país] = 10, 10, 10 ~ Adimensional ~ Prioridad para recibir el recurso; mayor número indica mayor prioridad | SUMINISTRO = 10 ~ Toneladas / mes ~ Oferta disponible de recurso | ANCHO = 1 ~ Adimensional ~ Ancho de cada rectángulo prioridad | entregado [país] = ASIGNAR POR PRIORIDAD (deseado [país], prioridad [país], ELMCOUNT (país), ANCHO, OFERTA) ~ Toneladas / mes ~ Cantidad de alimentación suministrada a un país específico | En este ejemplo, el suministro de 10 toneladas / mes se asigna a tres países que tienen una solicitud total de la oferta equivale a 20 toneladas / mes. Debido a la prioridad de cada uno es la misma, cada país recibe la misma fracción de su petición (50% en el ejemplo). Si la prioridad había sido más alta para un país específico que habría recibido una mayor que la parte proporcional de los recursos. ARCCOS(x) ARC (inverso) coseno de x Devuelve el arco coseno de X en el rango de 0 a π. Si X es mayor que 1 o menos de -1 se genera un error de punto flotante. Unidades: ARCCOS (sin dimensiones) -> adimensionales ARCSIN(x) ARC (inverso) seno de x Devuelve el arco seno de x en el intervalo-π / 2 a π / 2. Si X es mayor que 1 o menos de -1 se genera un error de punto flotante. Unidades: ARCSEN (adimensional) -> adimensional ARCTAN(X) ARC (inverso) tangente de X Devuelve el arco-tangente de X en el intervalo-π / 2 a π / 2. Unidades: ARCTAN (adimensional) -> adimensional Ejemplos ARCTAN (0.0) es igual a 0,0.
COS( X ) Coseno de x Devuelve el coseno de X. A veces útil para probar la respuesta dinámica de un sistema. COS es periódica en X en la gama de 0 a 2π radianes. Unidades: COS (adimensional) -> adimensional Ejemplos COS (0.0) es igual a 1,0. COS (p / 2) es igual a 0,0. COSH( X ) Coseno Hiperbólico de x Devuelve el coseno hiperbólico de X. Unidades: cosh (adimensional) -> adimensional ejemplo Cosh (0.0) es igual a 1,0. Cosh (1.0) es igual a 1,54. DEMANDAT PRICE DEMANDA EN PRECIO (q, pp, precio) Calcula la cantidad que se demanda a un precio determinado en base a la cantidad q demanda saciedad y el perfil de preferencias demanda pp El argumento del precio normalmente se calcula utilizando la función FIND PRECIO DE MERCADO. Tanto q y pp deben subindicadas las variables y los subíndices para pp deben ser los subíndices para q seguido por unos subíndices pProfile. Consulte la sección Asignación para más detalles. Ejemplo cantidad demandada [demandante] = DEMANDA EN PRECIO (exigir la saciedad [demandante], curva de demanda [demandante, ptype], precio de mercado) ELMCOUNT ELMCOUNT (Rango) “El elemento Count de Rango Subíndice”
ELMCOUNT devuelve el número de elementos en una gama subíndice. Sólo se necesita el nombre de una gama subíndice como argumento. Es lo mismo que usar el último elemento de la gama subíndice, pero se actualizará automáticamente si agrega elementos a la gama subíndice. Ejemplo lugar: boston, parís, londres ELMCOUNT (lugar) es igual al 3 48-FIND MARKET PRICE(dq,dp,sq,sp) ENCONTRAR PRECIO DE MERCADO (dc, dp, cuadrados, sp) Devuelve el precio por el que la oferta y la demanda del mercado son iguales. Esta función se puede utilizar en situaciones en las que tanto la demanda de un bien o servicio y el suministro de la misma puede variar. Esto está en contraste con la función disponible ASIGNAR que es apropiado cuando sólo uno de oferta o la demanda puede variar. Aunque la función tiene "precio" en su nombre puede ser aplicado en situaciones en que no es el precio, pero algún otro mecanismo de priorización que está activo. La función se pasa a la cantidad de la demanda la saciedad por los diferentes demandantes en dq y los perfiles de demanda en dp. Las capacidades de suministro están contenidos en sp con los perfiles asociados en sp. Los detalles sobre cómo se construyen las cantidades y los perfiles se encuentran en la sección Asignación. dq mosto tiene como último subíndice un rango para los demandantes y dp debe tener esta seguido por una serie pProfile como sus dos últimos subíndices. Del mismo modo, sq debe tener la lista de proveedores como su último subíndice y SQ esta seguido por una serie pProfile. El resultado no debe tener los proveedores, demandante o pProfile subíndices y los argumentos debe ser aprobada por el primer elemento en la Cordillera Subíndice en lugar del nombre de la Cordillera de subíndice. El resultado de esta función se transmite normalmente a la demanda en el precio y la oferta de AT funciones PRECIO para calcular las demandas y las ofertas actuales. Ejemplos proveedor: s1, s2 demandante: d1, d2, d3 pProfile: ptype, ppriority, pWidth, pextra demanda saciedad [demandante] = 500300 Unidades: Widget / Mes La capacidad de suministro [proveedor] = 200300450 Unidades: Widget / Mes
curva de demanda [d1, pProfile] = 3,5,2,0 curva de demanda [d2, pProfile] = 3,7,4,0 Unidades: $ / Widget curva de oferta [s1, pProfile] = 3,1,2,0 curva de oferta [s2, pProfile] = 3,3,4,0 curva de oferta [s3, pProfile] = 3,5,4,0 Unidades: $ / Widget de PRECIO DE MERCADO precio de mercado = FIND ( exigir la saciedad [d1], la curva de demanda [d1, ptype], capacidad de oferta [s1], la curva de oferta [s1, ptype]) Unidades: $ / Widget cantidad suministrada [proveedor] = SUMINISTRO EN PRECIO ( capacidad de suministro [proveedor], la curva de oferta [proveedor ptype], precio de mercado) Unidades: Widget / Mes cantidad demandada [demandante] = DEMANDA EN PRECIO ( demanda saciedad [demandante], la curva de demanda [demandante, ptype], precio de mercado) FIND ZERO ENCONTRAR CERO (xs, z, zs, xi, n, saltar, tol, iter max, método) Devuelve un vector de valores que hacen cero z. La función CERO FIND se utiliza para resolver ecuaciones algebraicas simultáneas no lineales. Está diseñado para ser utilizado en situaciones en las que la función simultánea no funcionará. FIND CERO resuelve para el valor del vector x que hará que cero Z (donde x es la variable en el lado izquierdo de la ecuación). Sólo se puede utilizar con las variables con subíndice.
NOTA La función FIND ZERO tiene realmente el control del último bucle subíndice. Debido a esto la variable en el lado izquierdo de la ecuación (x) puede ser pensado como un argumento oculto a la función. Si desea utilizar esta función con variables que tienen más de un subíndice la función de operar sólo en el subíndice final. Argumentos XS es un vector de escala para x. Después de multiplicar x por este vector de todos los valores de a continuación, el producto debe ser del orden de magnitud de 1. XS deben ser un vector de la misma longitud que x y será a menudo un vector de unos. z es el vector de los valores que se deben poner a cero mediante la selección apropiada de x. Si la forma funcional resolverse es y = f (y) entonces z se establece en y - f (y) en la otra ecuación. Z debe ser un vector de la misma longitud que x. ZS es un vector de escala para z. Después de multiplicar Z por este vector los resultados deben ser todas del orden de magnitud de 1. ZS deben ser un vector de la misma longitud que x y será a menudo un vector de unos. xi es el conjunto inicial de valores que x se iniciará con la búsqueda de la solución. Dependiendo del problema, una buena estimación inicial puede ser esencial para encontrar una solución. xi debe ser un vector de la misma longitud que x. En algunos casos, un vector de unos será suficiente. n es el número de elementos del vector en los vectores. Esta es casi siempre ELMCOUNT (Z), aunque un número menor se puede utilizar si es apropiado. Tenga en cuenta que de salto se debe utilizar para marcar los sistemas que son homogéneas de grado 0, no debe disminuir el valor de n. skip especifica cuántos elementos del vector debe ser omitido en la solución de x. Para los sistemas de ecuaciones que son homogéneas de grado 0, esto debe establecerse en 1 para saltar al primer elemento, o -1 para omitir el último elemento. Si es cero, se omitirá ningún elemento. Puede haber situaciones eran otros valores se podrían utilizar. Todos los elementos de x se inicializan usando XI si son para ser omitidos en el cálculo de x activo o no. tol especifica la tolerancia que debe ser logrado en la reducción a cero z. Si se pone demasiado pequeños problemas numéricos pueden evitar que sea alcanzado. En general, 001 es probablemente una opción razonable. max iter especifica se declarará el número máximo de iteraciones que se tomarán antes de la falla. Un valor de 100 es razonable para hacerlo. Con mayor frecuencia se traducirá fracaso cuando no es posible acercarse a 0 en una iteración. método determina el método que se utiliza para encontrar el cero. 0 indica el uso de una búsqueda Broydn. 1 es el mismo que cero, excepto que el valor de búsqueda inicial se restablece cada vez. Esto a
veces puede ayudar cuando hay problemas de convergencia aunque será, en general, lenta simulación considerablemente. Cualquier otro valor se trata igual que un 1. Restricciones: El hallazgo CERO función debe aparecer en primer lugar en el lado derecho y no ser seguido por cualquier otra cosa. No puede haber ningún bucle cerrado simultánea dentro del bucle de X a Z (dicho de otro modo, dado X debe ser posible calcular el valor de z en una cadena sencilla). Subíndice Nota: La FIND CERO función está diseñada para trabajar con un vector de valores, sino también trabajará con valores escalares. Ejemplos x = ENCONTRAR CERO (uno, z, uno, uno, 1,0,0.01,100,0) z = (x-objetivo) ^ 2 uno = 1 Solución de lo anterior el uso de FIND CERO resultará en x se fija igual al objetivo. productos básicos: c1, c2, c3 los [productos básicos] = 1 precio [commod] = ENCONTRAR CERO (los [productos básicos], exceso de demanda [commod], los [productos básicos], los [productos básicos], 3,0, .01,100,0) exceso de demanda [commod] = demanda [commod] - Fuente de [productos básicos] suministro [commod] = Precio [commod] demanda [commod] = 100 - Precio [commod] Solución de lo anterior dará lugar a un precio de 50 para cada producto. Disponibilidad: Profesional y DSS solamente. GAMMA LN(X) Devuelve el logaritmo natural de la función gamma de la función X. El GAMMA es una generalización de la función factorial que funciona en todos los valores positivos de X. Para un entero N el factorial de N es igual a la función GAMMA de N +1. La función gamma LN es muy útil para el cálculo de factores combinitorial.
Ejemplo EXP (gamma LN (4)) es igual a 6 o 3 factorial EXP (GAMMA LN (cosas a escoger de 1) - GAMMA LN (cosas para elegir, las cosas tomaron 1) - GAMMA LN (cosas recogieron 1)) es el número de combinaciones posibles GET TIME VALUE OBTENGA EL VALOR DEL TIEMPO(relativa a, compensar,measure)
Devuelve la medida de tiempo determinado en relación con la compensación en la cantidad
especificada de tiempo actual, inicial o un reloj. Esto le permite obtener valores para el mes del
año, el día del mes y el día de la semana, entre otros.
relativa a: 0 para el tiempo de simulación actual, 1 para el tiempo inicial de simulación y 2 para la
hora del reloj del ordenador actual.
desplazamiento es la diferencia en el tiempo, medido en unidades de tiempo para el modelo, para
mover antes de calcular el valor. desplazamiento se ignora cuando relativeTo es 2.
medida le permite elegir entre las distintas unidades y medidas de tiempo. Los valores son:
0 unidades de tiempo en el modelo (sólo para relativeTo 0 y 1)
1 año desde el 1 de BC (un número entero, igual que el año calendario normal)
2 trimestre del año (1-4)
3 meses del año (1-12)
4 días del mes (1-31)
5 días de la semana (0-6, donde 0 es el domingo)
6 días desde el 01 de enero., 1 aC (año 1 aC se trata como el año 0)
7 horas del día (0-23)
8 minutos de la hora (0-59)
9 segundos del minuto (0-59,99 - no es un entero)
10 segundos transcurridos modulo 500000 (0-499,999)
Medida 10 está concebido principalmente como un mecanismo conveniente para inicializar SEED
ruido cuando se desea que cada simulación generar un resultado diferente.
Debido a que las unidades correctas dependen del valor de las unidades finales de comprobación
no se lleva a cabo en esta función. Su uso es el mismo que el uso de un número en una ecuación
en la medida de como unidades están preocupados.
Notas: Esta función utiliza el etiquetado el tiempo establecido en el Modelo> Ajustes> Hora
límites. Si las unidades para este año son, trimestre o mes y luego días y las fechas se calculan
utilizando un año de 360 días. Si las unidades son semanas o días días y las fechas reales se
calculan acomodar los años bisiestos. Si las unidades son horas, minutos o segundos año, mes,
trimestre y día están todos ajustados a 0.
Ejemplo
Igual que el tiempo = OBTENER VALOR HORA (0,0,0) {retornos mismo valor que Tiempo}
SEMILLA DE RUIDO = INICIAL (GET VALOR HORA (2,0,10)) {semilla aleatoria diferente cada inicio}
TIEMPO INICIAL = INICIAL (GET VALOR HORA (2,0,6) -730484) {using esto y HORA FINAL = INICIAL
(LARGO TIEMPO INICIAL) comenzará simulaciones en la fecha actual.
52- INVERT MATRIX(mat,n)
Devuelve la inversa de la matriz MAT de nxn.
Esto devuelve la inversa de una matriz de dos dimensiones.
Restricciones: MATRIZ DE INVERTIR debe aparecer primero en el lado derecho de una ecuación y
no ser seguido por cualquier otra cosa. Tanto colchoneta y las variables del lado de la mano
izquierda hay que subindicadas las variables con las últimas dos subíndices cada uno con n
elementos.
Unidades: invertir una matriz (unidades, MDLN) -> unidades
Ejemplo
substitución: s1, s2
ssub <-> sub
un [s1, sub] = 1,2
un [s2, sub] = 3,4
ainverse [sub, ssub] = Invertir MATRIX (a [sub, ssub], 2)
Daría lugar a una inversa de:
-2, 1
1,5, - 0,5
LOG( x, y )
Devuelve el logaritmo de X para una base dada.
Unidades: LOG (sin dimensiones, dimensiones) -> adimensional (todos los términos deben ser
adimensional)
Ejemplos
LOG (4,2) es igual a 2,0, LOG (4,16) es igual a 0,5
LOG (0,5) es un ERROR (LOG de una serie <= 0 no está definido).
LOG (de encendido (A, 5), A) es igual a 5,0 (por definición).
LOOKUP AREA
ÁREA DE BUSCAR (búsqueda, inicio, fin)
Devuelve el área bajo una tabla de consulta entre el inicio y el final. Esto es útil para normalizar las
operaciones de búsqueda en problemas tales como la determinación de la intensidad del esfuerzo
en un proyecto determinado la fracción de trabajo que se ha completado.
Inicio y fin debe tener las mismas unidades y las unidades de los tiempos de búsqueda de las
unidades de la entrada se devuelven.
Ejemplo
Look ((0,1), (1,1), (2,2))
BUSCAR ÁREA (LOOK, 0,1) es igual a 1,0
BUSCAR ÁREA (LOOK, 2,4) es igual a 4,0
BUSCAR ÁREA (LOOK, .5,2.5) es igual a 3,0
LOOKUP BACKWARD
BUSCAR ATRÁS (lookup, x)
Permite controlar el modo de interpolación de una tabla de búsqueda para que el valor anterior y
se mantiene entre los valores de x en lugar de interpolada.
Así como para el uso normal de búsqueda se espera que el argumento x de ser adimensional. En
caso contrario, se emite una advertencia, pero no un error.
ejemplo
Look ((0,1), (1,1), (2,2))
BUSCAR ATRÁS (LOOK, -1) es igual a 1,0
BUSCAR ATRÁS (LOOK, 1.5) es igual a 1,0
BUSCAR ATRÁS (LOOK, 2.5) es igual a 2,0
LOOKUP EXTRAPOLATE
Extrapolar de consulta (BUSCAR, x)
Le permite especificar la extrapolación de los pares de búsqueda extremas cuando la entrada está fuera del rango de la búsqueda. Esto también suprime cualquier de los mensajes de advertencia rango que se puedan generar.
Así como para el uso normal de búsqueda se espera que el argumento x de ser adimensional. En caso contrario, se emite una advertencia, pero no un error. Ejemplo Look ((0,1), (1,1), (2,2)) BUSCAR extrapolar (LOOK, -1) es igual a 1,0 BUSCAR extrapolar (LOOK, 1.5) es igual a 1,5 BUSCAR extrapolar (LOOK, 2.5) es igual a 2,5 LOOKUP FORWARD
Búsqueda directa (búsqueda, x) Permite controlar el modo de interpolación de una tabla de búsqueda para que el siguiente valor y se utiliza entre los valores de x en lugar de interpolada. Así como para el uso normal de búsqueda se espera que el argumento x de ser adimensional. En caso contrario, se emite una advertencia, pero no un error. Ejemplo Look ((0,1), (1,1), (2,2)) Búsqueda directa (LOOK, -1) es igual a 1,0 Búsqueda directa (LOOK, 1.5) es igual a 2,0 Búsqueda directa (LOOK, 2.5) es igual a 2,0
LOOKUP INVERT
BUSCAR INVERT (lookup, y)
Busca la entrada que, cuando se utiliza en las operaciones de búsqueda de búsqueda regresaría y.
Es decir, si x = INVERTIDO de consulta (, y) entonces lookup (x) devolverá y.
INVERTIR BUSCAR encontrará el primer valor que satisface esta relación inversa. Si la búsqueda no
es monótona (siempre creciente o siempre decreciente) no puede ser en realidad más de un valor
que funcionaría como una inversa. Vensim devolverá el más pequeño tal valor. Si y es fuera de la
gama de búsqueda (más grande que el valor de y mayor o menor que el valor más pequeño y en
operaciones de búsqueda) la función devolverá: NA:. En general, es aconsejable probar para ver si
esto ha sucedido.
Ejemplo
MIRE ((0,0), (1,1), (3,2))
BUSCAR INVERT (LOOK, -1) es igual a: NA:
BUSCAR INVERT (LOOK, 0.5) es igual a 0,5
BUSCAR INVERT (LOOK, 1.5) es igual a 2,0
LOOKUP SLOPE
PENDIENTE BUSCAR (búsqueda, x, m)
Encuentra la pendiente en x en la búsqueda de búsqueda de acuerdo con el modo m. Entre los puntos en una búsqueda de la pendiente es sólo el cambio en y dividido por el cambio en x de un punto al siguiente. Si x es el mismo como un punto en operaciones de búsqueda se devuelve el promedio de la pendiente antes y después de x, a menos que haya más de un punto con dicho valor de x en cuyo caso: NA: se devuelve. Si el valor de x está fuera del dominio de búsqueda (más grande que el mayor punto x o menor que el punto x más pequeña) lo que se devuelve depende de m, si m es 0 entonces se devuelve 0, esto es análogo a una búsqueda normal. Si m es 1, entonces se utiliza la pendiente del segmento se cierra (esto es análogo a extrapolar de búsqueda). Si m es -1 entonces: NA: se devuelve. Ejemplo Look ((0,1), (1,1), (2,3)) PENDIENTE BUSCAR (LOOK, -1, -1) es igual a: NA: PENDIENTE BUSCAR (LOOK, -1,0) es igual a 0 PENDIENTE BUSCAR (LOOK, -1,1) es igual a 1 PENDIENTE BUSCAR (MIRE, 1,0) es igual a 0,75 BUSCAR LA CUESTA (LOOK, 0.5,0) es igual a 1 BUSCAR LA CUESTA (LOOK, 1.5,0) es igual a 0,5 MARKETP
Marketp (solicitud [PRIMERA], la prioridad [PRIMERA], el tamaño, la anchura, la oferta)
La función marketp se utiliza en un proceso de dos pasos con la función ALLOC p. Usted puede
conseguir el mismo efecto utilizando el ASIGNAR POR función PRIORITY y esto se recomienda.
Marketp vuelve una prioridad para pasar a ALLOC P de manera que el total de asignaciones de un
recurso escaso se adaptan exactamente a la oferta de este recurso. Una discusión más detallada
sobre este y ALLOC P están contenidos en la sección Asignación.
Para un análisis de los argumentos para marketp ver el ASIGNACIÓN POR función PRIORITY. Se
pasan los mismos argumentos, excepto que marketp requiere que Subíndice elementos en lugar
de rangos Subíndice pueden especificar para la petición y prioridad. Normalmente el primer
subíndice del elemento en el rango Subíndice se especifica.
Ejemplo
Usando el ejemplo de ASIGNAR POR PRIORIDAD que reemplazaría esa ecuación con las dos
ecuaciones siguientes:
pf = marketp (demanda [EE.UU.], la prioridad [EE.UU.], ELMCOUNT (país),
ANCHO, OFERTA)
~ Adimensional
~ Prioridad mercado |
entregado [counry] = alloc p (demanda [país], la prioridad [país], ANCHO, mp)
~ Toneladas / mes
~ Cantidad de alimentación suministrada a un país específico |
61-MESSAGE
MENSAJE ('msg', pantalla)
Devuelve 0 si la pantalla es menor que o igual a 0, 1 lo contrario.
'Msg' es el mensaje que se mostrará. Debe ser un literal entre comillas simples 'o una variable de
cadena.
La función de mensajes se utiliza para pasar un mensaje al usuario en respuesta a alguna condición
en el modelo. Puede, por ejemplo, puede utilizar para poner un cuadro de diálogo informando al
usuario de que una determinada condición se ha cumplido. La manera en la que se muestra el
mensaje depende del valor del parámetro de visualización. Si la pantalla es igual a 1, el mensaje irá
a la lista de desplazamiento de las advertencias. Si se trata de un cuadro de mensaje 2 vendrá con
un mensaje informativo, 3 con un mensaje de advertencia y 4 con el símbolo de parada.
Debido a que la función de mensajes es más útil para la colocación de un solo mensaje que se
suele utilizar en conjunción con la muestra, si la función TRUE para estar seguro de que el mensaje
sólo aparece una sola vez. El siguiente ejemplo muestra cómo hacer esto. La función de mensajes
está diseñado para trabajar con cualquier técnica de integración. Si está utilizando una técnica de
integración Runge-Kutta no va a poner un mensaje o devolver un valor distinto de cero dentro de
un paso de integración.
Ejemplo
msg = EJEMPLO SI TRUE (: NO: msg, IF THEN ELSE (: NO: msg: Y:
proyecto se pone en marcha> 0, MENSAJE ('proyecto comenzó', 5), 0), 0)
Esto pondrá un mensaje la primera vez que se inicie el proyecto variable toma un valor distinto de
cero.
POWER(BASE, X)
Devoluciones BASE a la potencia de X. Igual BASE ^ X La función de potencia y el operador de exponenciación tanto probar el exponente para ver si es un número entero. Si es un entero, se calcula el resultado exactamente. Si el exponente no es un entero, la función de potencia es equivalente a EXP (X * ln (BASE)). Si la potencia es 0,5, 1, 2, 3 o 4 las unidades se toman a la potencia (si es posible). Las demás que requieren unidades adimensionales. Ejemplos POWER (1100) es igual a 1,0. POTENCIA (-2,2) es igual a 4,0. POWER (2,3) es igual a 8,0. POWER (A, LOG (X, A)) es igual a X (por definición). PROD(x[i!])
Devuelve el producto de una matriz por encima del rango Subíndice (s) marcada con el signo de
exclamación! marca (s).
Ejemplos
PROD (x [i!]) Es igual a x [uno] * x [dos] * ... * x [n]
PROD (x [i, j!] * A [j!]) Es igual a
(X [i, uno] * A [uno]) *
(X [i, dos] * A [dos]) *
. . . *
(X [i, n] * A [n])
PROD (x [i!, J!] Es igual a
x [uno, uno] * x [uno, dos] * ... * x [1, m] *
x [dos, uno] * x [dos, dos] * ... * x [dos, m] *
. . .
x [n, uno] * x [n, dos] * ... * x [n, m]
PROD (x [i!, I!] Es igual a
x [uno, uno] *
x [dos, dos] *
* ...
x [n, n]
QUANTUM(A,B)
Trunca A a la múltiplo entero de B que se encuentra más cercano a cero. Para números positivos,
devuelve el número menor o igual a A, que es un múltiplo entero de B: (B * parte entera de (A /
B)). Un uso común de QUANTUM es eliminar la parte no entero de un valor (por ejemplo,
QUANTUM (3.456,1.0) es igual a 3,0). Si B es menor que o igual a cero, entonces A es devuelto.
Ejemplos
QUANTUM (1.9,1.0) es igual a 1,0.
QUANTUM (0.9,1.0) es igual a 0,0.
QUANTUM (-0.9,1.0) es igual a (comportamiento nota alrededor de 0.0) 0.0.
QUANTUM (-1.9,1.0) = -1,0.
QUANTUM (A, B) es igual a-QUANTUM (A, B) (la regla general).
QUANTUM (112.3,10.0) es igual a 110,0.
QUANTUM (50,12) es igual a 48.0.
QUANTUM (423, 63) es igual a 378 (378 = 6 * 63).
QUANTUM (X, 0) es igual a X.
QUEUE AGE AVERAGE
COLA DE EDAD MEDIA (cola, cuantitativo)
Devuelve el promedio de edad de los elementos cuantitativos más antiguos de cola. Esto es útil
para el rendimiento de seguimiento. Si Quant es menor que o igual a cero, o más grande que la
cantidad total en la cola de la media se toma sobre todos los elementos en la cola.
Restricciones: El argumento debe ser el nombre de una variable definida mediante cola FIFO o cola
FIFO ATTRIB. Si utiliza cualquier otra variable como un argumento EDAD MEDIA COLA volverá: NA:.
NOTA Para las colas de los atributos de esta función supone que paso de tiempo es constante y
devolverá un número incorrecto, si este no es el caso.
Ejemplo
Waiting = cola FIFO (Al llegar, Servicing, Init Profile, 100,20)
Las horas extraordinarias Mult = IF THEN ELSE (COLA DE EDAD MEDIA (en espera)> 25,1.25,1)
En este ejemplo, un tiempo extra de 25% se aplica cada vez que el tiempo de espera promedio
superó el 25.
QUEUE AGE IN RANGE
COLA DE EDAD EN RANGO (cola, minage, maxage)
Devuelve el número de elementos o en una cola de al menos tan antigua como minage y no
mayores de maxage. Usted puede utilizar: NA: en lugar de minage o maxage para devolver el
número de elementos no mayores de maxage o ningún menor de minage respectivamente.
NOTA Para evitar sorpresas numéricos es posible que desee aumentar el rango de un tanto, por
ejemplo, utilizando un mínimo de 4,95 en lugar de 5,0.
NOTA Para las colas de los atributos de esta función supone que paso de tiempo es constante y
devolverá un número incorrecto, si este no es el caso.
Restricciones: El primer argumento debe ser el nombre de una variable definida mediante cola
FIFO o cola FIFO ATTRIB. Si utiliza cualquier otra variable como un argumento COLA DE EDAD EN
RANGO devolverá: NA:.
Unidades: EDAD DE COLAS EN ESCALA (unidades de colas) -> unidades de cola (devuelve las
mismas unidades que la cola)
Ejemplo
Waiting = cola FIFO (Al llegar, Servicing, Init Profile, 100,20)
Las horas extraordinarias Mult = IF THEN ELSE (
EDAD DE COLAS EN ESCALA (en espera, 19.95,: NA :)> 50,1.25,1)
En este ejemplo, un tiempo extra de 25% se aplica cada vez que más de 50 personas han estado
esperando durante 20 minutos o más.
QUEUE AGE OLDEST
COLA DE EDAD ANTIGUA (cola)
Devuelve la edad máxima de elementos en la cola. Esto es útil para el rendimiento de seguimiento.
NOTA Para las colas de los atributos de esta función supone que paso de tiempo es constante y
devolverá un número incorrecto, si este no es el caso.
Restricciones: El argumento debe ser el nombre de una variable definida mediante cola FIFO o cola
FIFO ATTRIB. Si utiliza cualquier otra variable como un argumento COLA DE EDAD MÁS ANTIGUA
volverá: NA:.
Unidades: EDAD DE COLAS (unidades de cola) MÁS ANTIGUAS -> tiempo (devuelve las mismas
unidades que el principio)
ejemplo
Waiting = cola FIFO (Al llegar, Servicing, Init Profile, 100,20)
Las horas extraordinarias Mult = IF THEN ELSE (COLA DE EDAD ANTIGUA (en espera)> 25,1.25,1)
En este ejemplo, un tiempo extra 25% se aplicaría cualquier momento el tiempo de espera más
largo superó 25.
QUEUE ATTRIB AVERAGE
COLA ATTRIB PROMEDIO (cola, cuantitativo)
Devuelve los atributos promedio de elementos cuantitativos más antiguos de cola. Si Quant es
menor que o igual a 0, o si Quant es más grande que el número total de elementos en la cola se
devuelve la media de todos los elementos.
Restricciones: El primer argumento debe ser el nombre de una variable definida mediante cola
FIFO ATTRIB. Si utiliza cualquier otra variable como un argumento PROMEDIO ATTRIB COLA
volverá: NA:.
Ejemplo - ver cola FIFO ATTRIB
QUEUE ATTRIB IN RANGE
ATTRIB COLA EN RANGO (cola, min, max)
Devuelve la cantidad en la cola con el atributo entre mínimo y máximo.
Restricciones: El argumento debe ser el nombre de una variable definida mediante cola FIFO
ATTRIB. Si utiliza cualquier otra variable como un argumento PROMEDIO ATTRIB COLA volverá:
NA:.
Ejemplo - ver cola FIFO ATTRIB
QUEUE ATTRIB MAX
COLA ATTRIB MAX (cola)
Devuelve el valor máximo de atributos para elementos en cola.
Restricciones: El argumento debe ser el nombre de una variable definida mediante cola FIFO
ATTRIB. Si utiliza cualquier otra variable como un argumento PROMEDIO ATTRIB COLA volverá:
NA:.
Ejemplo - ver cola FIFO ATTRIB
QUEUE ATTRIB MIN
COLA ATTRIB MIN (cola)
Devuelve el valor mínimo de atributos para elementos en cola.
Restricciones: El argumento debe ser el nombre de una variable definida mediante cola FIFO
ATTRIB. Si utiliza cualquier otra variable como un argumento PROMEDIO ATTRIB COLA volverá: NA:
Ejemplo - ver cola FIFO ATTRIB
QUEUE ATTRIB QUANTITY
CANTIDAD ATTRIB COLA (cola, cuantitativo)
Devuelve los elementos más antiguos de la cola de forma que la suma de sus atributos en total
suman Quant. Por ejemplo, suponga que tiene una cola de órdenes (Orden) con un atributo de
tamaño de la orden (artículo / Orden). Se podría pasar a esta función, la capacidad de
procesamiento (Artículo / Día) veces paso de tiempo (día) para determinar cuántas órdenes podría
ser procesado hoy.
Restricciones: El primer argumento debe ser el nombre de una variable definida mediante cola
FIFO ATTRIB. Si utiliza cualquier otra variable como un argumento ATTRIB CANTIDAD DE COLAS
volverá: NA:.
Ejemplo
en proceso = cola FIFO ATTRIB (pedidos, terminaciones, tamaño del pedido, 0,
plana, plana, 100,1,10)
plana ((0,1), (1,1))
terminaciones = CANTIDAD ATTRIB COLA (en proceso, la capacidad * PASO TIEMPO) / TIEMPO DE
PASO
Aquí piso es simplemente una búsqueda plana de manera que la distribución por edades es
uniforme y la distribución atributo es constante a 1.
Cuando sea necesario, esta función será asignar una parte de la entrada de un momento posterior
para satisfacer la cantidad. Si no hay suficiente en la cola para cumplir con el objetivo cuantitativo
se devolverá el importe total de la cola.
RANDOM BETA
Aleatoria beta (m, X, A, B, H, r, s)
Proporciona una distribución beta con alfa que tiene el valor A y beta que tiene el valor B antes de
que se estira, se movió y truncada.
RANDOM BINOMIAL
Aleatoria binomial (m, x, P, N, h, r, s)
Proporciona una distribución binomial donde P es la probabilidad de selección subyacente y N es
el número de sorteos. Antes de estirar y cambiante, aleatoria binomial siempre devuelve un
entero entre 0 y N. Si N no es un número entero se redondeará al entero más cercano.
RANDOM EXPONENTIAL
Aleatoria exponencial (m, x, h, r, s)
Proporciona una distribución exponencial a partir de 0 con una media de 1 antes de ser estirado,
desplazan y truncada.
RANDOM GAMMA
GAMMA RANDOM (m, x, O, h, r, s)
Proporciona una distribución gamma de orden O antes de que se estira, se movió y truncado.
Cuando o es 1 RANDOM gamma es el mismo que aleatoria exponencial. Si S es menor que 1 se
genera una advertencia y 1 utiliza.
RANDOM LOOKUP
BUSCAR AL AZAR (buscar, m, x, h, r, s)
Proporciona una distribución arbitraria de una función de densidad de probabilidad especificada
por la mirada función de búsqueda. Antes de estiramiento o desplazamiento el número aleatorio
tendrá el mismo rango que el eje x en la búsqueda. Esto significa que la búsqueda es la misma que
la función de densidad de probabilidad (PDF), excepto que no es necesario para hacer que el área
bajo la búsqueda de 1,0, Vensim se ajustará automáticamente para eso. Las dimensiones de la
mirada deben coincidir m, x, y h. Después de que el número aleatorio se extrae de la PDF de
búsqueda suministrado que se multiplicará por r entonces tener h añade entonces probado contra
m y x.
RANDOM NEGATIVE BINOMIA
RANDOM binomial negativa (m, x, P, N, s)
Misma que binomial excepto N es el número de éxitos necesarios para que los retornos binomial
negativa al azar un entero del N a infinito.
RANDOM POISSON
Aleatoria de Poisson (m, x, M, h, r, s)
Proporciona una distribución de Poisson con media M. El valor devuelto es siempre un número
entero antes de que se estira y se movió. Las unidades de M deben coincidir m, x y h.
RANDOM TRIANGULAR
RANDOM triangular (m, x, S, P, T, s)
Proporciona una distribución triangular de S a T, con un pico en P. Puede cambiar y estirar la
distribución triangular mediante el ajuste de S, P y T. Las unidades para S, P y T, debe coincidir con
los de m y x.
RANDOM RANDOM WEIBULL
RANDOM WEIBULL (m, x, S, h, r, s)
Proporciona una distribución de Weibull con forma de S a partir de 0 y que tiene una media de 1
antes de que se estira, desplazan y truncada. Cuando S es 1 la distribución de Weibull es la misma
que la distribución exponencial.
SHIFT IF TRUE
IF SHIFT TRUE (var, cond, tamaño, acumuladores, Inval)
Cambios talla elementos de var cuando cond es cierto. Si Acum no es cero, entonces el segundo al
último elemento de var se añade el último elemento, de lo contrario el segundo al último
elemento reemplaza el último elemento. Shifting se produce en relación con el subíndice más a la
derecha de la var. Si se produce un cambio, entonces el primer elemento de la subíndice más a la
derecha de la var se sustituye con Inval. CAMBIO VERDADERO SI devuelve la cantidad que se ha
retirado del último elemento de la var. Si Acum es distinto de cero a continuación, MAYÚS SI
VERDAD siempre devuelve 0.
CAMBIO VERDADERO SI es útil para la gestión de cadenas de envejecimiento o cohortes. La
aplicación más común sería la de las poblaciones en las que el mantenimiento de una distribución
correcta de la edad es importante.
NOTA Tenga mucho cuidado cuando se especifica el argumento size para cambiar de posición si
TRUE. Si este argumento es demasiado grande, puede cambiar otras variables. En general, como IF
SHIFT VERDADERO modifica los valores de la variable que se llama con, que debe ser usado con
cuidado.
Ejemplo
edad: IN VITRO, (AGE 1-AGE 65) ~ ~ |
AGEH: (AGE 1-AGE 65) ~ ~ |
País: EE.UU., México ~ ~ |
género: masculino, femenino ~ ~ |
Población [país, género, IN VITRO] =
INTEG (concepciones [país]-muertes [país, género, IN VITRO],
POP INIT [país, género, IN VITRO]) ~ ~ |
Población [país, género, AGEH] = INTEG (muertes en [nombre del país, el género, AGEH],
POP INIT [país, género, AGEH]) ~ ~ Person |
un [país, género] = IF SHIFT TRUE (Población [país, género, IN VITRO],
MODULO (TIME, 1) = 0, ELMCOUNT (AGE), 1,0) ~ ~ ~ Persona: SUP |
Tenga en cuenta que para todos, pero IN VITRO, población tiene ninguna entrada. Población en
cohortes más allá de la primera se incrementa por el proceso de envejecimiento implícita en SHIFT
si es cierto.
SINH( X )
Devuelve el seno hiperbólico de X.
Ejemplos
senh (0.0) es igual a 0,0.
senh (1.0) es igual a 1,17
SUM(x[i!])
La suma de una serie sobre la Cordillera (s) Subíndice de exclamación! marca (s).
Ejemplos
SUM (x [i!]) Es igual a x [uno] + x [dos] + ... + x [n].
SUM (x [i, j!] * A [j!]) Es igual a (x [i, uno] * A [1]) +
(X [i, dos] * A [dos]) + ... +
(X [i, n] * A [n]).
SUM (x [i!, J!] Es igual a x [uno, uno] + x [uno, dos] + ... + x [uno, m] +
x [dos, uno] + x [dos, dos] + ... + x [dos, m] +
... + ... + ...
x [n, uno] + x [n, dos] + ... + x [n, m].
SUM (x [i!, J] * y [i!]) Es igual a x [uno, j] * y [un] + x [dos, j] * y [dos]
+ ... + X [n, j] * y [n].
SUPPLY AT PRICE
SUMINISTRO EN PRECIO (q, pp, precio)
Calcula la cantidad que se suministra a un precio determinado en base a la cantidad q de la
capacidad y el perfil de preferencias de alimentación pp El argumento del precio normalmente se
calcula utilizando la función FIND PRECIO DE MERCADO. Tanto q y pp deben subindicadas las
variables y los subíndices para pp deben ser los subíndices para q seguido por unos subíndices
pProfile. Consulte la sección Asignación para más detalles.
Ejemplo
cantidad suministrada [proveedor] = SUMINISTRO EN PRECIO (
capacidad de suministro [proveedor],
curva de oferta [proveedor ptype],
precio de mercado)
TABBED ARRAY
ARRAY con pestañas (row1. .. rown)
ARRAY pestañas se utiliza como un mecanismo conveniente para introducir vectores o matrices de
constantes en Vensim.
Restricciones: ARRAY TABBED debe seguir inmediatamente al igual signo = y no puede tener nada
que le sigue. En la matriz de Editor de ecuaciones con pestañas aparece como un subtipo de tipo
de variable constante.
La entrada a la función ARRAY TABBED es 1 o más filas de número separados por tabuladores con
cada fila de estar en su propia línea. Esta función está diseñada para hacer más fácil para pegar el
número de hojas de cálculo directamente en el editor de ecuaciones. Cada fila debe contener el
mismo número de valores como el último Range Subíndice tiene Elements. El número de filas debe
coincidir con el número de elementos en la primera Rango Subíndice que aparece. Pueden
aparecer no más de dos rangos de subíndice.
Ejemplo
país: MEXICO, EE.UU., CANADÁ
Tipo de sangre: A, B, O, AB ~ ~ |
población inicial [el país, el tipo de sangre] = array TABBED (
1 2 3 4
5 6 7 8
9 10 11 12) ~ persona ~ |
TAN( X )
Devuelve la tangente de X. periódico sobre 0 a 2 * π.
ejemplo
tan (0.0) es igual a 0,0.
TANH( X )
Devuelve la tangente hiperbólica de X. A veces útil para generar relaciones paramétricas de la
curva S cuando las funciones de búsqueda no son apropiados, por ejemplo, cuando los parámetros
de la forma deben ser estimados a partir de datos.
Unidades: TANH (adimensional) -> adimensional
Ejemplo
tanh (1.0) es igual a 0,76159.
tanh (0.0) es igual a 0,0.
tanh (6.4) es igual a 0,99999.
VECTOR ELM MAP
VECTOR ELM MAP (vec, offset)
La función de mapa vectorial ELM es una manera conveniente de moverse hacia atrás y adelante
entre los rangos subíndice dispares. En muchos casos es posible lograr lo mismo utilizando las
capacidades de mapeo de subíndices que pueden mejorar la comprobación de errores.
La función de mapa vectorial ELM devuelve el valor de la variable que está desplazado del vec en
la cantidad especificada. Por ejemplo, cuando el Sub: s1, s2, s3 es un subíndice, las dos ecuaciones
siguientes serían los mismos:
var2 [sub] = var1 [sub] ~ ~ |
var2 [sub] = VECTOR ELM MAP (var1 [s1], sub-1) ~ ~ |
Tenga en cuenta que en este caso usamos sub-1 porque el desplazamiento es efectivamente 0
sobre la base. Un uso obvio para esta función es en situaciones en las que desea tener una
variable con un mapa subíndice a una variable con un subíndice diferente. Por ejemplo:
tarea: excavar, construir, probar ~ ~ |
habilidad: queso de cerdo, cerebro ~ ~ |
habilidad tarea [tarea] = 0,1,1 ~ ~ MDLN |
habilidad promedio tarea [tarea] =
VECTOR ELM MAP (habilidad promedio de trabajo [Brawn], habilidad tarea [tarea]) ~ ~ Qua |
Debido a que usted puede hacer asignaciones arbitrarias de esta manera se trata de una función
muy flexible para la gestión del uso de subíndice no estándar.
La expresión desplazamiento debe ser adimensional.
Si intenta utilizar un desplazamiento que llevaría su mapeo fuera del rango de la variable se
emitirá un mensaje de error y: NA: será devuelto.
Tenga en cuenta que para las variables que tienen más de un subíndice la función de mapa
vectorial ELM se puede utilizar para moverse entre todos los subíndices pero requerirá
multiplicación. Por ejemplo, las dos expresiones siguientes son los mismos:
v2 [sub, bañera, gub] = v [sub, bañera, gub] ~ ~ |
v2 [sub, bañera, gub] = VECTOR ELM MAP (v [s1, t1, g1],
(Sub-1) * ELMCOUNT (bañera) * ELMCOUNT (GUB) +
(Bañera-1) * ELMCOUNT (GUB) + (GUB-1)) ~ ~ |
VECTOR LOOKUP
BUSCAR VECTOR (vec, x, xmin, xmax, modo) Permite la especificación de una función no lineal mediante la especificación de los valores de y en
vec, que debe ser una variable con subíndice, y dando el valor mínimo y máximo para x en xmin y
xmax. El rango especificado para x se divide en intervalos de n igual donde n es uno menos de la
longitud del vector VEC. Si VEC es una matriz multidimensional a continuación, la longitud que se
usa es el número de elementos en el último subíndice. Esta función siempre debe ser llamado con
el primer elemento de VEC como se muestra en el ejemplo.
La búsqueda de función vectorial abarca el comportamiento de toda la función de búsqueda
regular con los resultados de la utilización de la función determinada por el valor de modo de que
debe ser un número entero entre 0 y 9.
0 una función de búsqueda normal de la determinación y de x.
1 el equivalente de AREA BUSCAR
2 el equivalente de BUSCAR ATRÁS
3 el equivalente de BUSCAR extrapolar
4 el equivalente de búsqueda directa
5 el equivalente de BUSCAR INVERTIR
6 el equivalente de BUSCAR PENDIENTE
7 el equivalente de AREA BUSCAR con extrapolación
8 el equivalente INVERTIR BUSCAR con la extrapolación
9 el equivalente de SLOPE BUSCAR con la extrapolación
Tenga en cuenta que 7,8 y 9 no tienen funciones equivalentes mediante búsquedas regulares.
También tenga en cuenta que para la 1 y 7 de la zona devuelto es el área desde xmin. Si usted
desea conseguir el área entre dos valores de uso
Área de LV = VECTOR BUSCAR (LV [s1], xend, xmin, xmax, 1) -
VECTOR BUSCAR (LV [s1], xstart, xmin, xmax, 1)
También tenga en cuenta que en el modo 7 si x es menor que el xmin, asumiendo vec es todo
positivo, se devolverá un número negativo. Esto significa que la fórmula anterior para el área entre
dos puntos es todavía válida.
El vec variable puede ser constante o variable en el tiempo (por ejemplo, un nivel, auxiliar o
incluso datos), sino que debe ser indexada. Esto le permite crear búsquedas con formas que
cambian con el tiempo y permite una variedad de formas flexibles de la especificación de
funciones. Por ejemplo, puede especificar una función de búsqueda 2 dimensiones utilizando
Xdim: (X1-X3)
Ydim: (Y1-Y5)
xmin = 0
xmax = 10
ymin = 0
ymax = 100
vals de búsqueda [xdim, ydim] = 1.1,1.2,1.3,1.4,1.5;
2.1,2,2.2.3,2.4,2.5;
3.1,3.2,3.3,3.4,3.5;
salida = BUSCAR VECTOR (xslice [x1], x, xmin, xmax, 0)
xslice [xdim] = BUSCAR VECTOR (vals de búsqueda [xdim, y1], y, ymin, ymax, 0)
La expresión del modo debería ser adimensional y x, xmin y xmax debe tener las mismas unidades.
Esto es apropiado para los usos más comunes, pero es probable que cuando el modo es de 1, 5 7 u
8 que tendrá que utilizar unidades multiplicadores, o dejar todo sin dimensiones, para pasar las
unidades de cheques.
Si se llama a esta función con un vec escalar o con un elemento que no es el primer elemento en el
último subíndice del vector se producirá un error durante la simulación.
TENGA EN CUENTA que BUSCAR VECTOR no da ningún mensaje de advertencia cuando la entrada
está fuera del rango especificado.
VECTOR RANK
CLASIFICACIÓN DEL VECTOR (vec, dirección)
La función RANK VECTOR devuelve un nuevo vector que especifica el rango de los elementos en
vec. Si la dirección es mayor que 0 las entradas se clasifican de menor a mayor, de lo contrario del
más grande al más pequeño. El elemento primero clasificado tiene un rango de 1, el segundo de 2
y así sucesivamente. Si dos elementos son los mismos de la manera arbitraria se le asignará filas
contiguas. NO use el resultado de esta función con PEDIDOS VECTOR ya que esto proporcione
resultados sin sentido.
Ejemplo
la compañía: (c1-c5)
ingresos [de la compañía] = 5000,3000,8000
Rango de ingresos [de la compañía] = CLASIFICACIÓN VECTOR (ingresos [de la compañía], 1)
Will return 2,1,3 por rango de ingresos.
Unidades: VECTOR RANK (unidades, MDLN) -> MDLN
Restricciones: Debe aparecer primero en el derecho y no puede ser seguido por cualquier otra
cosa. Clasificación se realiza en el vector completo en relación con el último subíndice. Subrangos
no funcionarán.
VECTOR REORDER
PEDIDOS VECTOR (vec, svec)
La función PEDIDOS VECTOR devuelve un nuevo vector con los mismos valores que vec pero en el
orden especificado en svec. Normalmente svec será el resultado de una llamada a VECTOR
Modificar orden, pero también puede ser especificado por otro medio. Tenga en cuenta que svec
es basado en 0 no 1 con base (que es un valor de 0 corresponde al primer índice en el vec).
Ejemplo
Ver VECTOR Modificar orden.
Unidades: Reordenar VECTOR (unidades, MDLN) -> unidades
Restricciones: Debe aparecer primero en el derecho y no puede ser seguido por cualquier otra
cosa. La clasificación se realiza en el vector completo en relación con la última subíndice.
Subrangos no funcionarán.
VECTOR SELECT
La función VECTOR SELECT proporciona un mecanismo conveniente para la selección (obtener la suma, producto, mínimo, máximo o promedio) de un número relativamente pequeño de elementos de una matriz. sarray especifica una matriz de selección con, normalmente, un gran número de 0 y de un número relativamente pequeño de 1 o de otros valores distintos de cero. Vexp es la expresión de que los elementos están siendo seleccionados de. mVal es el valor a utilizar en el caso en el que sólo hay 0s en la selección. acto es la acción a tomar con suma 0 significado, 1 producto, mínimo 2, máximo 3 y 4 de la media. err indica cómo tratar demasiadas o muy pocas entradas en la selección. Si err es 0, entonces no hay errores se elevan; si se equivocan
es 1, entonces se produce un error de punto flotante si sarray no tiene elementos distintos de cero en el cómputo que se realiza (es decir una fila cero o una columna cero); si se equivocan es 2, entonces se produce un error es más que un elemento está incluido; si se equivocan es 3 entonces tanto no y más de un elemento provoca un error. La función vectorial SELECT es muy similar a las formulaciones tales como: result [fila] = SUMA (sarray [fila, col!] * expr [col!]) pero tiene dos diferencias importantes. El primero es que el rastreo de causalidad, en lugar de lo que indica que todos los elementos de expr es una causa de cada elemento de resultado mostrará sólo los elementos en los que hay un elemento distinto de cero en sarray. La segunda es que la expresión que aparece como segundo argumento sólo se evalúa cuando se contribuirá a la computación, y no para todos los registros posibles y la combinación de la columna. En relación con el segundo de ellos, ya que no se podrían utilizar algunos elementos de Vexp, Vensim no verifica que todos están realmente computados. Así, "utilizado no computan" mensajes de error no se generarán para las variables que intervienen en el argumento de la función Vexp VECTOR SELECT (el resto de argumentos, incluidos sarray se prueban). Si un elemento de matriz no se ha calculado que tiene el valor: NA: que normalmente conducir a un error de punto flotante o resultados visiblemente anómalas durante la simulación se debe utilizar. Sin embargo, la precaución adicional se pide que al hacer uso de la función VECTOR SELECT. Tenga en cuenta que el rastreo causal sólo se cambia para el Gráfico de Gaza y herramientas Tabla. Las herramientas estructurales no hacen referencia a los subíndices. Al rastrear las causas utilizando resultados de la simulación, si no hay cargadas carreras, o si las carreras cargadas no contienen valores para sarray, a continuación, se enumeran otras causas. Si sarray es diferente en diferentes carreras y luego se mostrará la unión de todas las causas posibles. En este caso, algunas de las causas no serán aplicables a algunas de las carreras, tendrá que comprobar los valores de sarray para ver que le son aplicables. VECTOR SELECT es muy útil para la cartografía requisito previo, así como la compresión y la expansión de tamaños de matriz como se muestra en los ejemplos. Para los dos primeros de estos err normalmente se le pone a 1, mientras que para el vector de expansión err normalmente se establece en 3. Si err es 0 ó 2 y no hay elementos que no son cero entonces la función devolverá mval. Si err es 1 o 3, entonces mval nunca serán utilizados y el valor: se recomienda: NA. Si sarray es una constante inmutable (que se define utilizando ==), entonces la causalidad de VECTOR SELECT utilizada para determinar el fin ecuación se basa sólo en los elementos no nulos de sarray. Esto proporciona un mecanismo conveniente para la propagación de las dependencias entre los elementos de subíndice. Un ejemplo de esto para un proyecto se incluye a continuación. Ejemplo Con el fin de determinar si todas las tareas de requisitos previos se han completado: tarea: t1, t2, t3, t4
prerrequisito <-> tarea mapa requisito previo [tarea, requisito previo] == 0,0,0,0; 1,0,0,0; 1,1,0,0; 0,0,1,0; prereqs están completos [tarea] = VECTOR SELECT ( mapa requisito previo [tarea, requisito previo!] tarea se ha completado [prerrequisito!], 1,2,0) Tenga en cuenta que la primera fila de la estera requisito previo es de todos 0s - así que por requisito previo t1 es completa utilizará la tercera argumento a la función o 1, que es lo que queremos desde t1 no tiene ningún requisito previo. Ejemplo La calidad depende tanto la calidad del trabajo y la calidad de los productos de trabajo de requisito previo. Utilizando las definiciones de tareas y requisitos previos anteriores: calidad de tarea [tarea] = calidad de trabajo [tarea] * Calidad requisito previo [tarea] la calidad del trabajo [tarea] = 0.8, 0.9, 0.7, 0.9 calidad de requisito previo [tarea] = VECTOR SELECT ( mapa requisito previo [tarea, requisito previo!] calidad de tarea [prerrequisito!], 1,1,0) Para que esto funcione dependemos mapa requisito previo que se define como una constante inmutable. Si no lo fuera, entonces no habría una ecuación simultánea implica la calidad del trabajo y la calidad de trabajo. Ejemplo Para moverse entre las agregaciones de cohortes y desagregaciones: Edad: A1, A2, A3, A4, A5, A6 Edad grupo: ag1, ag2, ag3
map Edad de agrupación [Edad grupo, Edad] = 1,1,0,0,0,0; 0,0,1,1,0,0; 0,0,0,0,1,1; población agrupada [Edad grupo] = VECTOR SELECT ( map Edad de agrupación [Edad grupo, Edad!] población [Edad!] : NA:, 0,1) muertes de contaminación efecto por edad [Edad] = VECTOR SELECT ( map Edad de agrupación [Edad grupo!, Edad], efecto muertes de contaminación por grupo de edad [Edad grupo!] : NA:, 0,3) Ejemplo Transferencia de calor simplificado en una superficie de dos dimensiones. Este utiliza dos subíndices para elegir y también sirve para tratar la determinación bordes utilizando VECTOR SELECT. La x: (X1-X3) y: (y1-y4) borde: izquierda, derecha, arriba, abajo xp <-> x yp <-> y promedio diff temporales adyacentes [x, y] = ( VECTOR SELECT (matriz de adyacencia [x, y, xp!, Yp!] temp [! xp, yp] temp [x, y],: NA:, 0,1) + VECTOR SELECT (matriz de bordes [x, y, borde!]
temp borde [borde!] temp [x, y], 0,0,0) ) / 4 matriz de adyacencia [x, y, xp, yp] = INICIAL ( IF THEN ELSE ((yp = y +1; Y: = xp x): O: (yp = y-1: Y: = xp x): O: (Xp = x 1: Y: yp = y): O: (= xp x-1: y: yp = y), 1,0)) matriz de bordes [x, y, borde] = INICIAL ( IF THEN ELSE ((y = 1: Y: = borde superior): O: (Y = elmcount (y): Y: = borde inferior): O: (X = 1: Y: = flanco izquierdo): O: (X = elmcount (x): Y: = flanco derecho), 1,0)) Tenga en cuenta que la función VECTOR SELECT no utiliza la media, pero las sumas para este cálculo. Dado que algunas de las 4 posiciones adyacentes podrían provenir de los bordes y algunos de otras células de la media se realiza fuera de la función (con simplemente / 4). Unidades: VECTOR SELECT (unit1, unit2, unidades, MDLN, MDLN) -> unidades = units1 * unidades2 Restricciones: Tanto sarr y vexpr deben tener por lo menos un subíndice con una!. Normalmente habrá un subíndice actuó con el! y que subíndice será que es la misma en tanto sarr y vexpr pero esto no es un requisito.
VECTOR SORT ORDER
Ordenar VECTOR (vec, dirección)
La función Ordenar VECTOR devuelve un nuevo vector que especifica el orden de los elementos en
vec. Si la dirección es mayor que 0 las entradas se ordenan de menor a mayor, de lo contrario del
más grande al más pequeño. El vector devuelta contiene el número de índice basado en cero para
los elementos ordenados (es 0 es el primer elemento, 1 el segundo y así sucesivamente).
Normalmente esto se utiliza en conjunción con PEDIDOS VECTOR pero también se puede utilizar
con el vector ELM mapa para encontrar Min, Max y valores de la mediana.
Ejemplo
la compañía: (company1-company5) -> scompany
scompany: (SORT1-sort5) -> empresa
por lo que [scompany] = VECTOR orden de clasificación (ingresos [de la compañía], 1)
MinRev = VECTOR ELM MAP (ingresos [company1], por lo que [SORT1])
maxrev = VECTOR ELM MAP (ingresos [company1], por lo que [sort5])
medrev = VECTOR ELM MAP (ingresos [company1], por lo que [sort3])
rev ordenados [scompany] = VECTOR PARA PEDIDOS (ingresos [la empresa], por lo que
[scompany])
Tenga en cuenta que en realidad no es necesario definir scompany en este ejemplo. Sin embargo,
el orden de los valores en rev ordenados ya no es por la compañía de manera que evita la posible
confusión de utilizar una gama subíndice diferente.
Restricciones: Debe aparecer primero en el derecho y no puede ser seguido por cualquier otra
cosa. La clasificación se realiza en el vector completo en relación con el último subíndice.
Subrangos no funcionarán.
VMAX(x[i!])
Devuelve el valor máximo de los elementos de una matriz sobre la Cordillera de subíndice (s)
marcada con signo de exclamación! marcas.
Ejemplo
VMAX (x [i!]) Es igual a
MAX (x [uno],
MAX (x [dos],
MAX ...,
x [n])) ...).
VMIN(x[i!])
Devuelve el valor mínimo de los elementos de una matriz sobre la Cordillera de subíndice (s)
marcada con signo de exclamación! marcas.
Ejemplo
VMIN (x [i!]) Es igual a
MIN (x [uno],
MIN (x [dos],
MIN ...,
x [n])) ...).