level 3
心之哀鸣
楼主
函数设计如下:
$Assumptions = A ∈ Matrices[{1, 2}, reals] && B ∈ Matrices[{1, 2}, reals]
x = {{x1}, {x2}};
MatrixForm[x]
f[x_] := A.(x x) - Log[B.x + C](*C为常数项*)
Grad[f[x], Transpose[x][[1]]]
结果输出是:
{A.{{{2 x1, 0}}, {{0, 2 x2}}} - B.{{{1, 0}}, {{0, 1}}}/(C + B.{{x1}, {x2}}),
A.{{{2 x1, 0}}, {{0, 2 x2}}} - B.{{{1, 0}}, {{0, 1}}}/(C + B.{{x1}, {x2}})}
这结果把我看呆了![[呼~]](/static/emoticons/u547c~.png)
。。。
之后我看了一下{{{2 x1, 0}}, {{0, 2 x2}}}的矩阵结构,如下:
MatrixForm[{{{2 x1, 0}}, {{0, 2 x2}}}]
之后,我设置:
A = {0.25, 1};
B = {-1, -0.2};
C为3,
x1 = 3;
x2 = 1;
结果是:
{{{-3.5, 1.}}, {{-3.5, 1.}}}
这结果也太邪门了吧?。。。![[呼~]](/static/emoticons/u547c~.png)
之后,我用D来对x1做单独求导:
D[f[x], x1]
结果:
A.{{2 x1}, {0}} - B.{{1}, {0}}/(C + B.{{x1}, {x2}})
再把数值设为上面用的。
最后结果为:
{1.1875}
我感觉这个还算合理。。。
我很奇怪,梯度和偏导难道不该是相等的吗?但是在这里,两者的结果为何不同?
2020年09月27日 10点09分
1
$Assumptions = A ∈ Matrices[{1, 2}, reals] && B ∈ Matrices[{1, 2}, reals]
x = {{x1}, {x2}};
MatrixForm[x]
f[x_] := A.(x x) - Log[B.x + C](*C为常数项*)
Grad[f[x], Transpose[x][[1]]]
结果输出是:
{A.{{{2 x1, 0}}, {{0, 2 x2}}} - B.{{{1, 0}}, {{0, 1}}}/(C + B.{{x1}, {x2}}),
A.{{{2 x1, 0}}, {{0, 2 x2}}} - B.{{{1, 0}}, {{0, 1}}}/(C + B.{{x1}, {x2}})}
这结果把我看呆了
之后我看了一下{{{2 x1, 0}}, {{0, 2 x2}}}的矩阵结构,如下:
MatrixForm[{{{2 x1, 0}}, {{0, 2 x2}}}]
之后,我设置:
A = {0.25, 1};
B = {-1, -0.2};
C为3,
x1 = 3;
x2 = 1;
结果是:
{{{-3.5, 1.}}, {{-3.5, 1.}}}
这结果也太邪门了吧?。。。
之后,我用D来对x1做单独求导:
D[f[x], x1]
结果:
A.{{2 x1}, {0}} - B.{{1}, {0}}/(C + B.{{x1}, {x2}})
再把数值设为上面用的。
最后结果为:
{1.1875}
我感觉这个还算合理。。。
我很奇怪,梯度和偏导难道不该是相等的吗?但是在这里,两者的结果为何不同?