我有等式:
S = C.(BSQ)+(1-C)I其中S,B,Q是nXn dim的平方矩阵,C是常数,I是单位矩阵.S初始化为单位矩阵 我想解决方程式以找到S.Can我这样做而不对两边都进行任何反转然后简化等等?(我正在使用反向的大型数据集可能非常慢)通过使用上面的等式我得到了一些结果,但我不确定它是否正确,因为你不能同时进行三次矩阵乘法。我可以做什么来解决S?
the answer I am getting after plugging in all the matrices with values
答案 0 :(得分:0)
根据您的矩阵,您可能只需迭代该公式并希望它收敛。即从int
开始,重新计算S=I
,直到它不再变化为止。当然,这不能保证收敛,但你可能想尝试。
如果您想直接解决这个问题,可以派生出一个线性系统。只需将RHS考虑在内(使得得到结果矩阵中每个条目的表达式)并为每个条目设置方程式。例如。对于第一个条目,这将是这样的:
S
解决s11 = 1 - c + c * (q11 * (b11 * s11 + b12 * s21 + b13 * s31 + ...) +
q21 * (b11 * s12 + b12 * s22 + b13 * s32 + ...) +
q31 * (b11 * s13 + b12 * s23 + b13 * s33 + ...) +
...)
并完成您的工作。当然,如果系统允许解决方案。否则,您可能想要求解最小二乘解。
答案 1 :(得分:0)
for t in range(100):
s=c*(sc.dot(sc.dot(Qin.T,s),Qin))+ (1-c)*I
这递归地求解方程100次。你可以做一个收敛测试,即Si-Si-1 =一些小值来检查收敛。