Возьмите вектор неизвестных
и примените некоторую обобщенную дифференцируемую функцию
. Затем якобиан задается такой матрицей
, что:
Например, предположим, 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. Индексы показаны с нуля.
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).