Tome el vector de incógnitas
y aplique alguna función genérica diferenciable
. El jacobiano está dado por una matriz
tal que:
Por ejemplo, supongamos que m=3y n=2. Luego (usando indexación basada en 0)
El jacobiano de fes entonces
El objetivo de este desafío es imprimir esta matriz jacobiana.
Entrada
Su programa / función debe tomar como entrada dos enteros positivos my n, que representan el número de componentes de fy urespectivamente. La entrada puede provenir de cualquier fuente deseada (stdio, parámetro de función, etc.). Puede dictar el orden en que se reciben, y esto debe ser coherente para cualquier entrada a su respuesta (especifique en su respuesta).
Salida
Algo que representa la matriz jacobiana. Esta representación debe explicar explícitamente todos los elementos de la matriz jacobiana, pero la forma exacta de cada término es la implementación definida siempre que no sea ambigua lo que se diferencia y con respecto a qué, y cada entrada se emite en un orden lógico. Ejemplos de formas aceptables para representar una matriz:
- Una lista de listas donde cada entrada de la lista externa corresponde a una fila del jacobiano, y cada entrada de la lista interna corresponde a una columna del jacobiano.
- Una cadena o salida textual donde cada línea es una fila del jacobiano, y cada entrada separada por delimitador en una línea corresponde a una columna del jacobiano.
- Alguna representación gráfica / visual de una matriz. Ejemplo: lo que muestra Mathematica cuando usa el
MatrixFormcomando - Algún otro objeto de matriz denso donde cada entrada ya está almacenada en la memoria y puede consultarse (es decir, no puede usar un objeto generador). Un ejemplo sería cómo Mathematica representa internamente un objeto Matrix
Ejemplos de formatos de entrada:
- Una cadena de la forma
d f_i/d u_j, dondeiyjson enteros. Ej:d f_1/d u_2. Tenga en cuenta que estos espacios entredyf_1ox_2son opcionales. Además, los guiones bajos también son opcionales. - Una cadena de la forma
d f_i(u_1,...,u_n)/d u_jod f_i(u)/d u_j. Es decir, los parámetros de entrada del componente de funciónf_ison opcionales y pueden explicarse explícitamente o dejarse en forma compacta. - Una salida gráfica formateada. Ej .: qué imprime Mathematica cuando evalúa la expresión
D[f_1[u_,u_2,...,u_n],u_1]
Puede elegir para qué es el índice inicial uy para qué f(especifique en su respuesta). La salida puede ser a cualquier sumidero deseado (estándar, valor de retorno, parámetro de salida, etc.).
Casos de prueba
Los siguientes casos de prueba utilizan la convención m,n. Los índices se muestran basados en 0.
1,1
[[d f0/d u0]]
2,1
[[d f0/d u0],
[d f1/d u0]]
2 2
[[d f0/d u0, d f0/d u1],
[d f1/d u0, d f1/d u1]]
1,2
[[d f0/d u0, d f0/d u1]]
3,3
[[d f0/d u0, d f0/d u1, d f0/d u2],
[d f1/d u0, d f1/d u1, d f1/d u2],
[d f2/d u0, d f2/d u1, d f2/d u2]]
Puntuación
Este es el código de golf; el código más corto en bytes gana. Las lagunas estándar están prohibidas. Se le permite usar los complementos deseados.
fuente





f=, como es una práctica común aquí. R también devuelve lo último evaluado en una función, por lo que puede usarlo envlugar dereturn(v).Máximo, 68 bytes
Es una pena que no conozca a Maxima como si conociera a mis queridos C y Matlab. Pero lo intentaré de todos modos.
Ejemplo de sesión usando TeXmacs como intérprete de Maxima, principalmente para la representación matemática ordenada:
Puede haber mejores formas de hacer listas y cosas así en Maxima (especialmente me gustaría hacer que las funciones aparezcan sin los marcadores de lista, []), pero no conozco el idioma lo suficientemente bien.
fuente
Ruby, 53 bytes
festá indexado a 0,uestá indexado a 1. Pruébalo en línea!Cada fila ocupa una línea como una representación de matriz como se ve a continuación. Si no cumple con las especificaciones, avíseme y lo solucionaré.
fuente
Cheddar ,
7949 bytesAparentemente un tenedor de esta respuesta .
Para
3,2devoluciones:fuente
Jalea, 18 bytes
¡Pruébalo!
Dado (m, n) = (3, 2) , impresiones (con espacios marcados como
·:)fuente
C, 125 bytes:
Toma la entrada como 2 enteros separados por espacios
b y, y genera la matriz jacobiana comoycadenas separadas por comas en lasblíneas.¡C en línea! (Ideone) o Test Suite (Ideone)
fuente