Ambil vektor yang tidak diketahui , dan terapkan beberapa fungsi generik yang dapat dibedakan . The Jacobian kemudian diberikan oleh matriks sehingga:
Misalnya, anggap m=3
dan n=2
. Kemudian (menggunakan pengindeksan berbasis 0)
Jacobian dari f
saat itu
Tujuan dari tantangan ini adalah untuk mencetak matriks Jacobian ini.
Memasukkan
Program / fungsi Anda harus mengambil sebagai input dua bilangan bulat positif m
dan n
, yang mewakili jumlah komponen f
dan u
masing - masing. Input dapat berasal dari sumber yang diinginkan (stdio, parameter fungsi, dll.). Anda dapat menentukan urutan penerimaannya, dan ini harus konsisten untuk setiap masukan untuk jawaban Anda (sebutkan dalam jawaban Anda).
Keluaran
Sesuatu yang mewakili matriks Jacobian. Representasi ini harus secara eksplisit menjabarkan semua elemen dari matriks Jacobian, tetapi bentuk persis dari setiap istilah implementasi didefinisikan selama tidak jelas apa yang dibedakan dan sehubungan dengan apa, dan setiap entri dihasilkan dalam urutan logis. Contoh formulir yang dapat diterima untuk merepresentasikan matriks:
- Daftar daftar di mana setiap entri daftar luar sesuai dengan deretan Jacobian, dan setiap entri daftar batin sesuai dengan kolom Jacobian.
- String atau output tekstual di mana setiap baris adalah deretan Jacobian, dan setiap pembatas memisahkan entri dalam satu baris sesuai dengan kolom jacobian.
- Beberapa representasi grafis / visual dari suatu matriks. Contoh: apa yang ditunjukkan oleh Mathematica saat menggunakan
MatrixForm
perintah - Beberapa objek matriks padat lainnya di mana setiap entri sudah disimpan dalam memori dan dapat ditanyakan (yaitu Anda tidak dapat menggunakan objek generator). Contohnya adalah bagaimana Mathematica secara internal merepresentasikan objek Matrix
Contoh format entri:
- String bentuk
d f_i/d u_j
, di manai
danj
bilangan bulat. Ex:d f_1/d u_2
. Perhatikan bahwa ruang-ruang ini antarad
danf_1
ataux_2
opsional. Selain itu, garis bawah juga opsional. - String bentuk
d f_i(u_1,...,u_n)/d u_j
ataud f_i(u)/d u_j
. Yaitu, parameter input dari komponen fungsif_i
adalah opsional, dan dapat dieja secara eksplisit atau dibiarkan dalam bentuk padat. - Output grafis terformat. Mis .: apa yang dicetak Mathematica saat Anda mengevaluasi ekspresi
D[f_1[u_,u_2,...,u_n],u_1]
Anda dapat memilih untuk apa indeks awal u
dan f
(tentukan dalam jawaban Anda). Outputnya bisa ke setiap sink yang diinginkan (stdio, nilai balik, parameter output, dll.).
Uji kasus
Kasus uji berikut menggunakan konvensi m,n
. Indeks ditampilkan berbasis 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]]
Mencetak gol
Ini adalah kode golf; kode terpendek dalam byte menang. Celah standar dilarang. Anda diizinkan menggunakan bawaan apa pun yang diinginkan.
sumber
f=
, seperti yang biasa dilakukan di sini. R juga mengembalikan hal terakhir yang dievaluasi dalam suatu fungsi, jadi Anda bisa menggunakanv
sajareturn(v)
.Maxima, 68 byte
Sayang aku tidak kenal Maxima seperti aku tahu C dan Matlab tersayang. Tapi aku akan mencoba tanpa usaha.
Contoh sesi menggunakan TeXmacs sebagai juru bahasa Maxima, sebagian besar untuk rendering matematika yang rapi:
Mungkin ada cara yang lebih baik dalam melakukan daftar dan semacamnya di Maxima (saya terutama ingin membuat fungsi muncul tanpa penanda daftar, []), tapi saya tidak tahu bahasanya dengan cukup baik.
sumber
Ruby, 53 byte
f
adalah 0-diindeks,u
adalah 1-diindeks. Cobalah online!Setiap baris menempati satu baris sebagai representasi array seperti yang terlihat di bawah ini. Jika tidak sesuai dengan spesifikasi, beri tahu saya dan saya akan memperbaikinya.
sumber
Cheddar ,
7949 byteRupanya garpu jawaban ini .
Untuk
3,2
pengembalian:sumber
Jelly, 18 byte
Cobalah!
Diberikan (m, n) = (3, 2) , cetakan (dengan spasi ditandai sebagai
·
:)sumber
C, 125 byte:
Mengambil input sebagai 2 integer yang dipisahkan dengan spasi
b y
,, dan mengeluarkan Matriks Jacobian sebagaiy
string yang dipisahkan koma padab
garis.C Online! (Ideone) atau Test Suite (Ideone)
sumber