Bilinmeyenlerin vektörünü alın ve bazı genel türevlenebilir fonksiyonlar uygulayın . Daha sonra Jacobian bir matris tarafından şöyle verilir :
Örneğin, m=3
ve varsayalım n=2
. Sonra (0 tabanlı indeksleme kullanarak)
Arasında Jacobi f
daha sonra
Bu zorluğun amacı bu Jacobian matrisini basmaktır.
Giriş
Programınız / fonksiyon girişi iki pozitif tamsayı olarak almalı m
ve n
bileşenlerinin sayısını temsil, f
ve u
sırasıyla. Giriş istenen herhangi bir kaynaktan gelebilir (stdio, fonksiyon parametresi, vb.). Bunların alınma sırasını belirtebilirsiniz ve bu, cevabınıza herhangi bir girdi için tutarlı olmalıdır (lütfen cevabınızı belirtin).
Çıktı
Jacobian matrisini temsil eden bir şey. Bu temsil, Jacobian matrisinin tüm öğelerini açıkça belirtmelidir, ancak her bir terimin kesin formu, neyin farklılaştırıldığı ve neye göre açık olduğu ve her girdinin mantıksal bir sırayla çıktılandığı sürece tanımlanmış bir uygulamadır. Bir matrisi temsil etmek için kabul edilebilir formlara örnek:
- Dış listenin her girişinin Jacobian'ın bir satırına karşılık geldiği ve iç listenin her girişinin Jacobian'ın bir sütununa karşılık geldiği listelerin listesi.
- Her satırın Jacobian'ın bir satırı olduğu ve bir satırdaki her ayırıcıdan ayrı girişin jacobian sütununa karşılık gelen bir dize veya metin çıktısı.
- Bir matrisin grafik / görsel temsili. Örnek:
MatrixForm
Komutu kullanırken Mathematica tarafından gösterilenler - Her girişin zaten bellekte depolandığı ve sorgulanabildiği başka bir yoğun matris nesnesi (yani bir jeneratör nesnesi kullanamazsınız). Örnek olarak Mathematica'nın dahili olarak bir Matrix nesnesini nasıl temsil ettiği gösterilebilir
Örnek giriş biçimleri:
- Formun bir dize
d f_i/d u_j
,i
vej
tam sayılardır. Ör:d f_1/d u_2
.d
Vef_1
veya veya arasındaki bu boşluklarınx_2
isteğe bağlı olduğunu unutmayın. Ayrıca alt çizgiler de isteğe bağlıdır. - Formun bir dizesi
d f_i(u_1,...,u_n)/d u_j
veyad f_i(u)/d u_j
. Yani, işlev bileşeninin giriş parametrelerif_i
isteğe bağlıdır ve açıkça belirtilebilir veya kompakt biçimde bırakılabilir. - Biçimlendirilmiş bir grafik çıktı. Örn: ifadeyi değerlendirdiğinizde Mathematica'nın yazdıkları
D[f_1[u_,u_2,...,u_n],u_1]
Sen başlangıç endeksi neyi tercih edebilir u
ve f
(Cevabınız belirtiniz) vardır. Çıkış istenen herhangi bir lavaboya olabilir (stdio, dönüş değeri, çıkış parametresi, vb.).
Test senaryoları
Aşağıdaki test senaryoları sözleşmeyi kullanır m,n
. Dizinler 0 tabanlı olarak gösterilir.
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]]
puanlama
Bu kod golf; bayt cinsinden en kısa kod kazanır. Standart boşluklar yasaktır. İstediğiniz yerleşikleri kullanma izniniz var.
f=
burada yaygın bir uygulamadır. R ayrıca bir işlevde değerlendirilen son şeyi döndürür, böylecev
yerine kullanabilirsinizreturn(v)
.