如何处理奇异(不可逆)旋转矩阵

计算科学 线性代数 矩阵
2021-12-13 03:42:58

我有一个正交各向异性材料,其应力向量在全局坐标系中已知,屈服面在局部坐标系中已知。到目前为止,我只需要从局部系统转换到全局系统,这已经以 C = GT*D*G 的标准方式完成,其中 C 是全局坐标中的刚度矩阵,G 是 6x6 变换矩阵,D是局部坐标系中的刚度矩阵。现在我需要将生活在全球系统中的压力转化为本地系统中的压力。我尝试这样做的方法是使用 Sl = GI*Sg,其中 Sl 是局部坐标中的应力向量,Sg 是全局坐标中的应力向量,GI 是 G 的倒数。但是我发现在某些情况下G 是单数的,即不可逆。

任何人都可以提出解决这个问题的方法,最好不要反转 G 吗?

2个回答

正交的旋转矩阵应始终保持可逆。但是在某些情况下(例如,从数据中估计它等等)你可能会得到不可逆或非正交矩阵。有一些方法可以解决这个问题:

1)如果您的问题是数字问题,您可能只是向该矩阵添加一些小的随机噪声 - 或其对角线以消除它。这不是一个理想的操作并且破坏了正交性。但是您现在可以继续执行第 2 步来恢复它。

2) 正交化旋转矩阵的一种方法是在 MATLAB 表示法中使用 SVD[U,S,V]=svd(G). 你应该检查奇异值S看看它们是否对应于单位矩阵。如果不是用单位矩阵替换它们并重组矩阵。这将等同于G=UV.

这样可以保证正交性,从而保证可逆性(对于正交矩阵,逆矩阵等于转置)。因此,您可能只使用转置操作来获得矩阵的逆。

如果你真的热衷于详细学习一些方法,这里有一个比较容易阅读的教程: http ://www.cis.upenn.edu/~cis610/invers.pdf

干杯,

如果 G 是奇异的,请使用近似值,例如伪逆。