Візьміть вектор невідомих і застосуйте якусь загальну диференційовану функцію . Якобіан потім задається матрицею , такі , що:
Наприклад, припустимо m=3
і n=2
. Потім (використовуючи індексацію на основі 0)
Якобієць f
тоді
Мета цього завдання - надрукувати цю матрицю Якобії.
Вхідні дані
Ваша програма / функція повинна приймати в якості вхідних два позитивних чисел m
і n
, які представляють собою ряд компонентів f
і u
відповідно. Вхід може надходити з будь-якого потрібного джерела (stdio, параметр функції тощо). Ви можете диктувати порядок їх отримання, і це повинно відповідати будь-якому вкладенню вашої відповіді (будь ласка, вкажіть у своїй відповіді).
Вихідні дані
Щось, що представляє якобіанську матрицю. Це представлення повинне чітко прописати всі елементи матриці Якобії, але точна форма кожного терміна є реалізацією, визначеною до тих пір, поки не буде однозначно те, що диференціюється і щодо чого, і кожен запис виводиться в логічному порядку. Приклад прийнятних форм для представлення матриці:
- Список списків, де кожен запис зовнішнього списку відповідає ряду якобійців, а кожен запис внутрішнього списку відповідає стовпцю якобійців.
- Рядок або текстовий вихід, де кожен рядок є рядом якобійського, а кожен розділений роздільником роздільник у рядку відповідає стовпцю якобі.
- Деякі графічні / візуальні подання матриці. Приклад: що показує Mathematica при використанні
MatrixForm
команди - Деякі інші об'єкти щільної матриці, де кожен запис вже зберігається в пам'яті, і його можна запитати (тобто ви не можете використовувати об'єкт генератора). Прикладом може бути те, як Mathematica внутрішньо представляє об'єкт Matrix
Приклади форматів запису:
- Рядок форми
d f_i/d u_j
, деi
іj
є цілі числа. Приклад:d f_1/d u_2
. Зауважте, що ці проміжки міжd
таf_1
абоx_2
є необов'язковими. Крім того, підкреслення також необов’язково. - Рядок форми
d f_i(u_1,...,u_n)/d u_j
абоd f_i(u)/d u_j
. Тобто вхідні параметри функціонального компонентаf_i
необов’язкові і можуть бути чітко прописані або залишені у компактному вигляді. - Відформатований графічний вихід. Наприклад: що друкує Mathematica, коли ви оцінюєте вираз
D[f_1[u_,u_2,...,u_n],u_1]
Ви можете вибрати те , що вихідний індекс u
і f
є (будь ласка , вкажіть у відповіді). Вихід може бути до будь-якої бажаної раковини (stdio, значення повернення, вихідний параметр тощо).
Тестові справи
У наступних тестових випадках використовується конвенція m,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]]
Оцінка балів
Це код гольфу; найкоротший код у байтах виграє. Стандартні лазівки заборонені. Вам дозволяється використовувати будь-які вбудовані модулі.
f=
, як це звичайна практика тут. R також повертає останнє, що оцінюється у функції, так що ви можете просто використовуватиv
замістьreturn(v)
.