缺少变量时的Matlab梯度
Matlab gradient when missing variables
让函数f
依赖于长度为5的符号变量向量,x
。我想导出 f
.
的符号梯度
c=1
d=2
x=sym('x',[1 5]);
f=-0.5*log(x(1))+x(1)*0.5*(x(2+d)/x(1)-c)^2
gradient(f)
它给出了一个长度为 2 的向量,因为 f
中缺少一些变量。当函数中缺少变量时,是否可以有一个长度为 5 和 0 的向量?
就像告诉 gradient
哪些是符号变量一样简单:
gradient(f,x)
ans =
(x4/x1 - 1)^2/2 - 1/(2*x1) - (x4*(x4/x1 - 1))/x1
0
0
x4/x1 - 1
0
让函数f
依赖于长度为5的符号变量向量,x
。我想导出 f
.
c=1
d=2
x=sym('x',[1 5]);
f=-0.5*log(x(1))+x(1)*0.5*(x(2+d)/x(1)-c)^2
gradient(f)
它给出了一个长度为 2 的向量,因为 f
中缺少一些变量。当函数中缺少变量时,是否可以有一个长度为 5 和 0 的向量?
就像告诉 gradient
哪些是符号变量一样简单:
gradient(f,x)
ans = (x4/x1 - 1)^2/2 - 1/(2*x1) - (x4*(x4/x1 - 1))/x1 0 0 x4/x1 - 1 0