取未知向量,并应用一些通用的微分函数。的雅可比然后通过矩阵给出,使得:
例如,假设m=3
和n=2
。然后(使用基于0的索引)
雅可比f
然后
这个挑战的目标是打印这个雅可比矩阵。
输入值
你的程序/功能应该采取作为输入两个正整数m
和n
,其代表的部件的数目f
和u
分别。输入可以来自任何所需的来源(stdio,功能参数等)。您可以指定接收顺序,对于输入的答案必须一致(请在答案中指定)。
输出量
代表雅可比矩阵的东西。此表示形式必须明确拼出Jacobian矩阵的所有元素,但是每个术语的确切形式都是实现定义的,只要明确区分什么以及关于什么进行区分,并且每个条目均以逻辑顺序输出。用于表示矩阵的示例可接受形式:
- 列表列表,其中外部列表的每个条目都对应于雅可比行的一行,内部列表的每个条目都对应于雅可比行的列。
- 字符串或文本输出,其中每行是Jacobian行,每行中由定界符分隔的条目对应于jacobian的列。
- 矩阵的一些图形/视觉表示。示例:使用
MatrixForm
命令时Mathematica显示的内容 - 其他每个条目都已存储在内存中并且可以查询的密集矩阵对象(即,您不能使用生成器对象)。例如,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)
。