tformfwd和tforminv - 有什么区别?
-
20-09-2019 - |
题
假设我有任意的变换矩阵A,例如,
A =
0.9966 0.0007 -6.5625
0.0027 0.9938 1.0598
0 0 1.0000
和一组点,使得它们的x和y坐标通过X
和Y
分别表示。
和假设,
[Xf Yf] = tformfwd(maketform('projective',A),X,Y);
现在,
[Xff Yff] = tformfwd(maketform('projective',inv(A)),Xf,Yf);
[Xfi Yfi] = tforminv(maketform('projective',A),Xf,Yf);
和[Xff Yff]
[Xfi Yfi]
似乎是完全相同的(和它们应该)。
时tforminv
就在那里为方便起见,还是我失去了一些东西?
解决方案
我会说前言本是我的最好的猜测 ...
这有可能是 tforminv
可以在不实际形成执行变换逆矩阵。例如,可以求解线性方程组Ax = b
的系统在两个方面:
x = inv(A)*b;
x = A\b;
根据用于 inv
时,第二个选项(文档使用矩阵除法运算符)可以执行“从两个的执行时间和数值精度的角度来看”更好,因为它“产生使用高斯消去该溶液中,而不形成逆”。 tforminv
可以做同样的事情,从而表现出更好的整体性能与通过逆矩阵相比 tformfwd
。
如果你是这样的倾向,你很可能尝试一些不同的变换矩阵和测试两种方法(tforminv
或tformfwd
和inv
)看到的结果如何准确的速度有多快,他们是每一所计算的。
不隶属于 StackOverflow