我正在编写一个程序,以评估向量值函数的导数,以作为检查我的手部计算的一种方式。向量值函数是这样的:
v = <f(x), h(x), g(x)>
我正在使用nDeriv函数:
nDeriv(function, variable, value[, precision])
nDeriv(A^2, A, 3) -> 6 # Because 2A = 2(3) = 6.
我想做的是这样的:
# Function list
Y1 = {X, X^2, X^3}
---
nDeriv(Y1, X, 2) # Doesn't work, which is unfortunate because L1^2 works.
# or . . .
FOR(X, 1, dim(Y1))
nDeriv(Y1(X), X, 2) # Also doesn't work.
第二种方法的问题在于,如果Y1是一个包含列表的函数,则Y1(val)对该值调用每个函数,这意味着:
Y1(2) = {X, X^2, X^3}(2) = {2, 4, 8}
但是以某种方式按索引访问列表中的每个函数也很不错。我猜这还有另一个问题,就是列表在被调用时必须将每个项目评估为标量。
当前,我的方法是存储三个函数Y1,Y2,Y3,然后在程序中创建一个列表,其中每个元素在每个函数上调用nDeriv。
2->N
{nDeriv(Y1, X, N), nDeriv(Y2, X, N), nDeriv(Y3, X, N)}
有更好的方法吗?