Lấy vectơ của ẩn số , và áp dụng một số hàm phân biệt chung . Các Jacobian sau đó được đưa ra bởi một ma trận như vậy:
Ví dụ, giả sử m=3
và n=2
. Sau đó (sử dụng lập chỉ mục dựa trên 0)
Jacobian f
sau đó là
Mục tiêu của thử thách này là in ma trận Jacobian này.
Đầu vào
Chương trình / chức năng của bạn nên dùng như là đầu vào hai số nguyên dương m
và n
, trong đó đại diện cho số của các thành phần của f
và u
tương ứng. Đầu vào có thể đến từ bất kỳ nguồn nào mong muốn (stdio, tham số hàm, v.v.). Bạn có thể ra lệnh theo thứ tự nhận được những thứ này và điều này phải phù hợp với bất kỳ đầu vào nào cho câu trả lời của bạn (vui lòng ghi rõ trong câu trả lời của bạn).
Đầu ra
Một cái gì đó đại diện cho ma trận Jacobian. Biểu diễn này phải đánh vần rõ ràng tất cả các yếu tố của ma trận Jacobian, nhưng hình thức chính xác của mỗi thuật ngữ được triển khai được xác định miễn là không rõ ràng những gì đang được phân biệt và liên quan đến những gì, và mọi mục nhập được xuất ra theo thứ tự hợp lý. Ví dụ các hình thức có thể chấp nhận để biểu diễn một ma trận:
- Một danh sách các danh sách trong đó mỗi mục của danh sách bên ngoài tương ứng với một hàng của Jacobian và mỗi mục của danh sách bên trong tương ứng với một cột của Jacobian.
- Một chuỗi hoặc đầu ra văn bản trong đó mỗi dòng là một hàng của Jacobian và mỗi mục được phân tách bằng dấu phân cách trong một dòng tương ứng với một cột của jacobian.
- Một số đại diện đồ họa / hình ảnh của một ma trận. Ví dụ: những gì được hiển thị bởi Mathicala khi sử dụng
MatrixForm
lệnh - Một số đối tượng ma trận dày đặc khác trong đó mọi mục nhập đã được lưu trữ trong bộ nhớ và có thể được truy vấn (tức là bạn không thể sử dụng đối tượng trình tạo). Ví dụ sẽ là cách Mathicala thể hiện bên trong một đối tượng Ma trận
Các định dạng mục nhập ví dụ:
- Một chuỗi có dạng
d f_i/d u_j
, ở đâui
vàj
là số nguyên. Vd :d f_1/d u_2
. Lưu ý rằng những khoảng trắng giữad
vàf_1
hoặcx_2
là tùy chọn. Ngoài ra, dấu gạch dưới cũng là tùy chọn. - Một chuỗi có dạng
d f_i(u_1,...,u_n)/d u_j
hoặcd f_i(u)/d u_j
. Nghĩa là, các tham số đầu vào của thành phần chức năngf_i
là tùy chọn và có thể được viết rõ ràng hoặc để lại ở dạng rút gọn. - Một đầu ra đồ họa được định dạng. Ví dụ: những gì Mathicala in khi bạn đánh giá biểu thức
D[f_1[u_,u_2,...,u_n],u_1]
Bạn có thể chọn chỉ số bắt đầu cho u
và f
là gì (vui lòng ghi rõ trong câu trả lời của bạn). Đầu ra có thể là bất kỳ mức chìm nào mong muốn (stdio, giá trị trả về, tham số đầu ra, v.v.).
Các trường hợp thử nghiệm
Các trường hợp thử nghiệm sau đây sử dụng quy ước m,n
. Các chỉ mục được hiển thị dựa trên 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]]
Chấm điểm
Đây là mã golf; mã ngắn nhất trong byte thắng. Sơ hở tiêu chuẩn bị cấm. Bạn được phép sử dụng bất kỳ tích hợp nào mong muốn.
f=
, đó là cách làm phổ biến ở đây. R cũng trả về điều cuối cùng được đánh giá trong một hàm, vì vậy bạn chỉ có thể sử dụngv
thay vìreturn(v)
.