我找到了一个链接,其中显示了一个示例,当线性方程组具有无限多个解时,Matlab mldivide运算符(\)给出"特殊"解.
例如:
A = [1 2 0; 0 4 3];
b = [8; 18];
c_mldivide = A \ b
c_pinv = pinv(A) * b
Run Code Online (Sandbox Code Playgroud)
给出输出:
c_mldivide =
0
4
0.66666666666667
c_pinv =
0.918032786885245
3.54098360655738
1.27868852459016
Run Code Online (Sandbox Code Playgroud)
在解决方案中非零条目的数量c_mldivide等于rank(A)(在这种情况下为2)的意义上,解决方案是"特殊的" .我在numpy中尝试了相同的东西numpy.linalg.lstsq,它给出了相同的结果c_pinv.
有没有c_mldivide办法在Python中实现解决方案?
还有一个非常类似的问题在这里,但我想这个词"特殊"的解释是不够清晰.
另一个问题是关于mldivide运营商的内部运作,但接受的答案似乎没有解决这种行为.
编辑1:numpy代码
In [149]: test_A = np.array([[1,2,0],[0,4,3]])
test_b = np.array([[8],[18]])
np.linalg.lstsq(test_A,test_b)
Out[149]:
(array([[ 0.918 ],
[ 3.541 ], …Run Code Online (Sandbox Code Playgroud) 我正在查看的文档matplotlib.animation.FuncAnimation
在http://matplotlib.org/api/animation_api.html。
有什么save_count作用?