我有一个线性子空间S = [v1 v2 v3 v4] = [1 1 1 2]t
,其中t是一些标量实数。
我想根据以下内容对S进行转换:[v1 v2 v3 v4] = [A 2A*B 3*C 10]
我最快的方法是定义一个新的子空间T = [A B C]
,它是上述规则对S的转换?
在此示例中,T
的值为T = [A B C] = [1 0 1/3]t + [0 1/2 0]
。我通过在上面的转换规则中根据v1,v2,v3和v4找到A,B和C来得到这个。 A = v1
以及B = v2/(2A) = v2/(2*v1)
和C = v3/3
。然后,我替换为上面S中的v1,v2和v3找到的值。在这种情况下,A = 1t
,B = (1/2)*(v2/v1) = 1/2
和C = (1/3)t
。
我想在Python中以编程方式确定。我不能真正追求基于变换的变换(http://en.wikipedia.org/wiki/Change_of_basis),因为变换不是严格线性的。
但是,我可以保证转换只包含标量和变量A,B和C作为第一个幂。
编辑:我希望解决方案不涉及符号数学工具包。
Edit2:除了最简单的方法之外,我还想要一个可以实际扩展到大型阵列(1000个组件)的解决方案。