Weź wektor niewiadomych i zastosuj ogólną funkcję różnicowalną . Jakobian jest następnie podawany przez matrycę tak że:
Załóżmy na przykład m=3
i n=2
. Następnie (przy użyciu indeksowania opartego na 0)
Jakobian f
jest wtedy
Celem tego wyzwania jest wydrukowanie tej jakobińskiej matrycy.
Wejście
Twój program / funkcja powinna przyjąć jako dane wejściowe dwie dodatnie liczby całkowite m
i n
, które reprezentują odpowiednio liczbę składników f
i u
. Dane wejściowe mogą pochodzić z dowolnego żądanego źródła (standard, parametr funkcji itp.). Możesz dyktować kolejność ich otrzymywania i musi to być spójne w przypadku wszelkich danych wejściowych do Twojej odpowiedzi (proszę podać w odpowiedzi).
Wynik
Coś, co reprezentuje matrycę jakobską. Reprezentacja ta musi wyraźnie określać wszystkie elementy macierzy jakobskiej, ale dokładna forma każdego terminu jest definiowana implementacyjnie, o ile jednoznaczne jest to, co się wyróżnia i co do tego, a każda pozycja jest wyprowadzana w logicznej kolejności. Przykładowe dopuszczalne formy reprezentowania macierzy:
- Lista list, w których każdy wpis na liście zewnętrznej odpowiada rzędowi jakobianu, a każdy wpis na liście wewnętrznej odpowiada kolumnie jakobianu.
- Ciąg lub wynik tekstowy, w którym każda linia jest rzędem jakobianu, a każdy separator oddzielony znakiem w linii odpowiada kolumnie jakobianu.
- Niektóre graficzne / wizualne przedstawienie matrycy. Przykład: co pokazuje Mathematica podczas używania
MatrixForm
polecenia - Jakiś inny gęsty obiekt macierzy, w którym każdy wpis jest już zapisany w pamięci i można go zapytać (tzn. Nie można użyć obiektu generatora). Przykładem może być to, jak Mathematica wewnętrznie reprezentuje obiekt Matrix
Przykładowe formaty wpisów:
- Ciąg formy
d f_i/d u_j
, gdziei
ij
są liczbami całkowitymi. Npd f_1/d u_2
. : Zauważ, że te przestrzenie pomiędzyd
if_1
czyx_2
są opcjonalne. Dodatkowo podkreślenia są również opcjonalne. - Ciąg formularza
d f_i(u_1,...,u_n)/d u_j
lubd f_i(u)/d u_j
. Oznacza to, że parametry wejściowe komponentu funkcjif_i
są opcjonalne i mogą być albo wyraźnie określone, albo pozostawione w zwartej formie. - Sformatowane wyjście graficzne. Np .: co drukuje Mathematica podczas oceny wyrażenia
D[f_1[u_,u_2,...,u_n],u_1]
Możesz wybrać indeks początkowy u
i f
to (proszę podać w odpowiedzi). Wyjście może być do dowolnego pożądanego ujścia (standard, wartość zwracana, parametr wyjściowy itp.).
Przypadki testowe
Następujące przypadki testowe wykorzystują konwencję m,n
. Indeksy są wyświetlane w oparciu o 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]]
Punktacja
To jest kod golfowy; najkrótszy kod w bajtach wygrywa. Standardowe luki są zabronione. Możesz używać dowolnych wbudowanych elementów.
f=
Jak to jest tutaj powszechną praktyką. R zwraca także ostatnią rzecz ocenianą w funkcji, więc możesz po prostu użyćv
zamiastreturn(v)
.