首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C中对欧几里得(仅变换和旋转)矩阵求逆?

在C语言中,可以使用以下步骤来对欧几里得矩阵进行变换和旋转求逆:

  1. 定义矩阵:首先,定义一个二维数组来表示欧几里得矩阵。例如,使用float类型的二维数组matrix表示矩阵。
  2. 输入矩阵:通过用户输入或其他方式,将矩阵的值存储到定义的二维数组中。
  3. 计算行列式:使用行列式的计算公式,计算矩阵的行列式值。行列式的值用于判断矩阵是否可逆。
  4. 判断可逆性:如果行列式的值为0,则矩阵不可逆,无法求逆。如果行列式的值不为0,则矩阵可逆。
  5. 求伴随矩阵:根据欧几里得矩阵的特性,求出矩阵的伴随矩阵。伴随矩阵的每个元素是原矩阵的代数余子式。
  6. 计算逆矩阵:将伴随矩阵的每个元素除以矩阵的行列式值,得到矩阵的逆矩阵。

以下是一个示例代码,用于在C语言中对欧几里得矩阵进行变换和旋转求逆:

代码语言:txt
复制
#include <stdio.h>

#define N 3

// 计算行列式的值
float determinant(float matrix[N][N]) {
    float det = 0;
    // 计算三阶行列式的值
    det = matrix[0][0] * (matrix[1][1] * matrix[2][2] - matrix[1][2] * matrix[2][1])
        - matrix[0][1] * (matrix[1][0] * matrix[2][2] - matrix[1][2] * matrix[2][0])
        + matrix[0][2] * (matrix[1][0] * matrix[2][1] - matrix[1][1] * matrix[2][0]);
    return det;
}

// 求伴随矩阵
void adjoint(float matrix[N][N], float adj[N][N]) {
    adj[0][0] = matrix[1][1] * matrix[2][2] - matrix[1][2] * matrix[2][1];
    adj[0][1] = -(matrix[1][0] * matrix[2][2] - matrix[1][2] * matrix[2][0]);
    adj[0][2] = matrix[1][0] * matrix[2][1] - matrix[1][1] * matrix[2][0];
    adj[1][0] = -(matrix[0][1] * matrix[2][2] - matrix[0][2] * matrix[2][1]);
    adj[1][1] = matrix[0][0] * matrix[2][2] - matrix[0][2] * matrix[2][0];
    adj[1][2] = -(matrix[0][0] * matrix[2][1] - matrix[0][1] * matrix[2][0]);
    adj[2][0] = matrix[0][1] * matrix[1][2] - matrix[0][2] * matrix[1][1];
    adj[2][1] = -(matrix[0][0] * matrix[1][2] - matrix[0][2] * matrix[1][0]);
    adj[2][2] = matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];
}

// 求逆矩阵
void inverse(float matrix[N][N], float inv[N][N]) {
    float det = determinant(matrix);
    float adj[N][N];
    
    if (det == 0) {
        printf("矩阵不可逆。\n");
        return;
    }
    
    adjoint(matrix, adj);
    
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            inv[i][j] = adj[i][j] / det;
        }
    }
}

// 打印矩阵
void printMatrix(float matrix[N][N]) {
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            printf("%.2f ", matrix[i][j]);
        }
        printf("\n");
    }
}

int main() {
    float matrix[N][N];
    float inv[N][N];
    
    printf("请输入一个3x3的矩阵:\n");
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            scanf("%f", &matrix[i][j]);
        }
    }
    
    printf("输入的矩阵为:\n");
    printMatrix(matrix);
    
    inverse(matrix, inv);
    
    printf("逆矩阵为:\n");
    printMatrix(inv);
    
    return 0;
}

这段代码实现了对3x3矩阵的变换和旋转求逆。用户可以输入一个3x3的矩阵,程序会计算该矩阵的逆矩阵并输出。请注意,这段代码仅适用于3x3矩阵,如果需要处理其他维度的矩阵,需要进行相应的修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Free-form Flows比扩散模型提升两个数量级

通过函数矩阵矩阵 Matrix inverse via function inverse 为了计算J−1 θ v,我们注意到,当fθ是可逆的时,fθ的雅可比矩阵矩阵是逆函数f−1 θ的雅可比矩阵...在附录B.4,我们提供了如何在实践中选择β的指导。 图2提供了一个启发性的例子。在这里,数据潜在空间是一维的,fg是每个只有一个参数的简单线性函数。因此,我们可以在2D图中可视化梯度景观。...我们在附录C.1提供了所有数据集更多的训练细节。 5.2 分子生成 自由形态正规化流(FFF)底层网络fθgϕ不做任何假设,除了它们保持维度。...例如,对于 欧几里得群: 这意味着我们可以通过使正规化流NFs欧几里得群等变来构造一个欧几里得群不变的分布,等式(9)所示。...网络作用于坐标xi ∈ R^3的部分对旋转、反射和平移(欧几里得群E(3))是等变的。网络在这些操作下保持原子属性h不变。 我们在图1展示了我们模型的样本。

11510

【笔记】《计算机图形学》(6)——变换矩阵

6.4 变换矩阵 在图形学我们常常要用到线性变换的逆变换,将转换后的物体转换回去。...这个操作在数学上通常通过求变换矩阵来实现,但是由于图形学矩阵的特殊性,我们有很多种方法来避免真正地以加快运算的速度。...对角矩阵就是将对角线上的元素取倒数 旋转矩阵是反向度数的旋转矩阵 移动矩阵是反向的移动矩阵 一系列合成的变换矩阵是每个矩阵后以相反的顺序再作用一次 正交矩阵矩阵的转置 底部是[...0,0,0,1]的矩阵例如仿射变换矩阵后底部依然是[0,0,0,1] 有时候对于一个复杂的线性变换我们可以用SVD分解为基本的变换然后用上面的方法 6.5 坐标系变换 想要移动世界的目标点...而如果我们需要将坐标再转回到原来的坐标系,方法之前的各种变换一样,最简单最数学化的处理就是其应用之前变换的逆变换即可。

2.9K20
  • 基础渲染系列(一)图形学的基石——矩阵

    1 空间可视化 你已经知道什么是Mesh网格以及如何在场景其进行定位了。但是这种定位实际上是如何完成的呢?着色器如何知道在哪里绘制?...也把该组件添加到我们的网格对象。现在我们也可以缩放网格。请注意,我们调整网格点的位置,因此缩放不会更改其可视化效果的大小。 ? ? (调整缩放) 一次操作尝试执行定位缩放。...(3个轴任意旋转) 4 矩阵转换 如果我们可以能够将三个旋转方向组合到一个矩阵,是否还可以将缩放,旋转重新定位也组合到一个矩阵?如果我们可以将缩放重新定位表示为矩阵乘法,那么答案是肯定的。...将一个抽象的只读属性添加到Transformation以检索转换矩阵。 ? 它的Apply方法不再需要抽象。将获取矩阵并执行乘法。...旋转缩放也是如此。 因此,尽管有点尴尬,但我们可以使用现有的转换来移动相机。Unity使用矩阵来做同样的事情。 5.2 透视摄像机 正交摄影机很好,但不能像我们看到的那样显示世界。

    4.9K23

    第4章-变换-4.1-基础变换

    这也适用于任意数量的这些变换的级联。旋转矩阵还有另一种的方法: ,即绕同一轴向相反方向旋转。 示例:围绕一个点旋转。假设我们要围绕z轴将对象旋转 弧度,旋转中心是某个点 。...这种由平移旋转级联组成的变换称为刚体变换。它具有保留长度、角度偏手性的特性。 任何刚体矩阵 都可以写成平移矩阵 旋转矩阵 的串联。...当 也应用相同的想法时,我们得出基矩阵的变化如上。 4.1.7 法向量变换 单个矩阵可用于一致地变换点、线、三角形其他几何图形。相同的矩阵也可以变换沿着这些线或三角形表面上的切向量。...综上所述,在这些情况下,原始变换本身也可以直接用于变换法线。 最后,完全重新规范化产生的法线并不总是必要的。如果将平移旋转级联在一起,则法线在矩阵转换时不会改变长度,因此不需要重新归一化。...有关如何使用伴随来反转变换法线,请参见第4.1.7节。 优化时也可以考虑逆向计算的目的。例如,如果是用于变换向量,那么通常只需要在矩阵的 左上部分(见上一节)

    4K110

    【笔记】《计算机图形学》(5)——线性代数

    矩阵有分配律 ? 矩阵对应的矩阵相乘结果是单位矩阵,相乘的矩阵得到的结果内外都会相反 ? 矩阵的转置会使得矩阵的行列反转 ? 类似矩阵矩阵相乘的转置也会转置且顺序反转 ?...矩阵同样需要用到代数余子式。...矩阵在几何意义上是目标向量的线性变换,也就是旋转,缩放,投影三种变换的组合,而矩阵求出来的矩阵的意义是目标进行一次逆变换,也就是其进行反向的对应变换 5.4 特征值矩阵对角化 这部分主要是特征值分解...我们知道矩阵变换的几何意义就是目标向量进行线性变换,线性变换本质就是缩放与旋转的组合,特征值分解是那些应用后在某个方向上只会发生缩放的变换矩阵,将矩阵拆解为【旋转-缩放-反旋转】的三个矩阵连乘状态;...这里我们其实并不需要对Q进行,要知道旋转矩阵Q是由矩阵的特征向量组成的,而矩阵的特征向量都是相互正交的,对于正交矩阵我们有一个特性就是正交矩阵矩阵其转置矩阵是相同的,所以反旋转矩阵就是Q^T。

    1.9K30

    3D图形学线代基础

    标题所言都是些很基础但是异常重要的数学知识,如果不能彻底掌握它们,在 3D 的世界你将寸步难行。...向量叉乘适用于三维向量,点乘不一样,向量叉乘的结果也是一个向量,其大小等于叉乘向量组成的平行四边形面积大小,方向同时垂直于叉乘向量且满足右手定则;根据其性质向量叉乘常用于三维坐标系平面法向量、以及判断两个向量的左右关系等...图中 OA 以 OA 上的某点 C 为基准点顺时针旋转 α 得到 BD,此时这个旋转变换会改变坐标系的原点,因此不属于线性变换;而当 OA 以原点为基准点顺时针 β 得到 OE,此时原点并没有发生变换,...正交矩阵 对于某个矩阵 A,如果其转置换矩阵等于其矩阵,则称该矩阵 A 为正交矩阵: ? 已知某个矩阵为正交矩阵,那么就可以根据上述性质快速求出其矩阵;以旋转变换为例(旋转矩阵为正交矩阵): ?...逆转置矩阵 某一矩阵 M 先计算其矩阵,再计算其矩阵的转置矩阵,最后得到的矩阵即为矩阵 M 的逆转置矩阵。 逆转置矩阵法向量变换有关: ?

    2K31

    距离相似性度量在机器学习的使用统计

    最常见的是数据分析的相关分析,数据挖掘的分类聚类算法, K 最近邻(KNN) K 均值(K-Means)等等。根据数据特性的不同,可以采用不同的度量方法。...消除不同维度之间的相关性尺度不同,只需要对样本点 x 做如下处理: 。处理之后的欧几里得距离就是原样本的马氏距离:为了书写方便,这里马氏距离的平方): ?...最恰当的方法是原始数据进行 Cholesky 变换,即马氏距离(可以看到,右边的红星离原点较近): ?...马氏距离的变换 PCA 分解的白化处理颇有异曲同工之妙,不同之处在于:就二维来看,PCA 是将数据主成分旋转到 x 轴(正交矩阵的酉变换),再在尺度上缩放(对角矩阵),实现尺度相同。...而马氏距离的 L矩阵是一个下三角,先在 x y 方向进行缩放,再在 y 方向进行错切(想象矩形变平行四边形),总体来说是一个没有旋转的仿射变换。 3.

    2.5K30

    已解决:`java.awt.geom.NoninvertibleTransformException:在Java2D无法逆转的转换`

    在Java2D编程,图形变换旋转、缩放翻译)是常见的操作。然而,在某些情况下,这些变换可能会导致java.awt.geom.NoninvertibleTransformException异常。...AffineTransform是Java2D中用于进行几何变换的类,它支持缩放、旋转、平移错切等操作。...然而,当某些变换导致矩阵不可逆时,例如缩放因子为零,程序试图矩阵时,就会抛出NoninvertibleTransformException。...变换矩阵的行列式为零:行列式为零的矩阵没有矩阵,这通常发生在某些特殊的几何变换操作后。 不正确的变换顺序:在进行多次变换时,操作的顺序可能导致最终的变换矩阵不可逆。...transform.scale(0, 1); try { // 尝试不可逆的变换矩阵 g2d.setTransform(transform.createInverse

    7210

    透析矩阵,由浅入深娓娓道来—高数-线性代数-矩阵

    伴随矩阵矩阵A的伴随矩阵就是其余子矩阵的转置矩阵,记做: 用伴随矩阵矩阵 这个是我自己想飞算法: 矩阵:设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B...MTM=I 在矩阵我们知道,矩阵矩阵的乘积为单位矩阵I,由此推理,我们可以知道,如果该矩阵为正交矩阵,那么矩阵转置矩阵是相等的. MT=M-1 那么正交矩阵存在的意义是什么呢?...2.相乘的位置不能互换.A × B ≠ B × A 3.相乘的次序不影响结果( A × B ) × C = A × ( B × C ) 矩阵的本质就是线性方程式,两者是一一应关系。...在矩阵M.向量p从[1 0 0]变换到[2 1 0],q从[0 1 0]变换到[-1 2 0],r未发生变化.然后我们图形的右上点会再次发生缩放旋转变换. 得到效果图如下所示....平移矩阵 在3D图形:矩阵与线性变换我说过几种线性变换,比如旋转,缩放,镜像等等,唯独没有平移,但是在日常开发过程,平移应该算的上我们很常用的一种仿射变换了.那么这是为什么呢?

    7.2K151

    深度学习系列笔记(二)

    广播(broadcasting) 在深度学习,我们允许矩阵向量相加,产生另一个矩阵C=A+b ,其中 C_{i,j}=A_{i,j}+b_j 。也就是说,向量 b 矩阵 A 的每一行相加。...平方 L^2 范数 x 每个元素的导数只取决于对应的元素, 而 L^2 范数每个元素的导数整个向量相关。 平方 L^2 范数在原点附近增长得十分缓慢。...diag(v)x=v\odot x 假设对角方阵的矩阵存在,当且当对角元素都是非零值,在这种情况下, 。 并非所有的对角矩阵都是方阵,长方形的矩阵也有可能是对角矩阵。...SVD最有用的性质可能是拓展矩阵到非方矩阵上。...当行数多于列数时,可能没有解,此时通过得到的x​​使得Ax​​y​​​的欧几里得距离\begin{Vmatrix} Ax-y\end{Vmatrix}_2最小.

    1.3K20

    4_机械臂位姿理论及代码计算

    有时为了得到{A}相对于{B}的描述,即 ,需要求该矩阵。一个直接的方式是将4×4齐次变换。但是,这样做就不能充分利用变换的性质。容易看出比较简单的方法是利用变换的性质。...为了 ,必须由 求出 。...首先,回顾一下关于旋转矩阵的结论: 之后利用2-13将 转变成在{B}的描述: 式2-43的左边应为0,由此可得: 由2-422-44可写出: 注意,使用符号: 式2-45是齐次逆变换一般且非常有用的方法...3、eigen库位姿的 直接代码: Eigen::Vector3d euler_angle(2.288083, 0.035207, 1.550335); // 使用Eigen库将欧拉角转换为旋转矩阵...double, 3, 1> m3x1; m3x1 = -R*current_pos; cout << "m3x1 is :\n" << m3x1 << std::endl; 旋转是其转置矩阵

    12410

    【GAMES101】观测变换

    我们可以先平移在旋转,平移这个简单,直接就能写出变换矩阵旋转呢?...如果直接考虑从g旋转到-z,t旋转到y,以及g×t旋转到x,这个比较复杂,但是反过来旋转就比较简单的可以写出变换矩阵,所以我们需要的变换矩阵就是这个简单变换矩阵矩阵,又因为旋转矩阵是正交矩阵,正交矩阵矩阵就是其本身的转置矩阵...,所以这个简单的旋转矩阵转置就是我们需要的旋转矩阵 投影变换 投影变换就是为了实现将三维的事物展示在二维上 这个透视投影呢就是近大远小,而正交投影就是相当于这个摄像机放在无限远处,那么这样近处远处的大小看起来也是一样的了...这是因为我们的摄像机是看向-z方向的 因此对于一个场景,我们通过平移缩放两种变换就可以把它限制在这个标准的正方体里面去 透视投影变换 透视投影比较常见,欧几里得说过,在一个平面,永不相交的两条直线是平行线...,但是透视投影却使得平行线可以看起来是相交的 在我们开始之前,我们再回顾一下,在齐次坐标系,对于一个点而言,如果我们直接每个维度都乘以某个不为0的系数,那么这个点是不变的,这个点还是这个点吧 那我们怎么来做这个投影变换

    17910

    视觉进阶 | NumpyOpenCV的图像几何变换

    人工生成更多数据的一种方法是输入数据随机应用仿射变换(增强)。 在本文中,我将向你介绍一些变换,以及如何在NumpyOpenCV执行这些变换。特别是,我将关注二维仿射变换。...这包括旋转、平移缩放矩阵,如下图所示。 上述仿射变换的一个非常有用的性质是它们是线性函数。它们保留了乘法和加法运算,并遵循叠加原理。...欧氏空间中的公共变换 在我们图像进行变换实验之前,让我们看看如何在点坐标上进行变换。因为它们本质上与图像是网格的二维坐标数组相同。...OpenCV变换 现在你已经几何变换有了更好的理解,大多数开发人员研究人员通常省去了编写所有这些变换的麻烦,而只需依赖优化的库来执行任务。在OpenCV中进行仿射变换非常简单。...许多先进的计算机视觉,使用视觉里程计多视图合成的slam,都依赖于最初的理解变换。我希望你能更好地理解这些公式是如何在编写使用的。

    2.2K20

    【陆勤践行】机器学习中距离相似性度量方法

    最常见的是数据分析的相关分析,数据挖掘的分类聚类算法, K 最近邻(KNN) K 均值(K-Means)等等。根据数据特性的不同,可以采用不同的度量方法。...消除不同维度之间的相关性尺度不同,只需要对样本点 x 做如下处理: ? 。处理之后的欧几里得距离就是原样本的马氏距离:为了书写方便,这里马氏距离的平方): ?...最恰当的方法是原始数据进行 Cholesky 变换,即马氏距离(可以看到,右边的红星离原点较近): ?...,不同之处在于:就二维来看,PCA 是将数据主成分旋转到 x 轴 (正交矩阵的酉变换),再在尺度上缩放(对角矩阵),实现尺度相同。...而马氏距离的 L矩阵是一个下三角,先在 x y 方向进行缩放,再在 y 方向进行错切(想象矩形变平行四边形),总体来说是一个没有旋转的仿射变换。 3.

    1.3K80

    掌握机器学习数学基础之线代(二)

    在机器学习,我们也经常使用被称为范数(norm) 的函数衡量矩阵大小 (为什么是这样的,不要管了,要扯就扯偏了,记得是衡量向量或者矩阵大小的就行了) 这些知识在各大算法(SVM)亦有涉及,而且在距离量度的欧式距离...特征值及特征向量的几何意义物理意义: 在空间中,一个变换而言,特征向量指明的方向才是很重要的,特征值不那么重要。虽然我们这两个量时先求出特征值,但特征向量才是更本质的东西!...特征向量是指经过指定变换(与特定矩阵相乘)后不发生方向改变的那些向量,特征值是指在经过这些变换后特征向量的伸缩的倍数,也就是说矩阵某一个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量...做法:把数据集赋给一个178行13列的矩阵R,减掉均值并归一化,它的协方差矩阵C是13行13列的矩阵C进行特征分解,对角化,其中U是特征向量组成的矩阵,D是特征值组成的对角矩阵,并按由大到小排列。...注意,这里的伪也是应用奇异值分解来求得的,这就很好体现知识是联系的啦,伪的应用在机器学习也是大量存在的,比如最简单的线性回归中广义矩阵,也就是伪

    75280

    MuRP | 双曲空间下知识图谱链路预测新方法

    其中‖∙‖表示欧几里得范数,⊕c表示莫比乌斯加法。而莫比乌斯加法运算式2所示: ? 其中表示欧几里得内积。莫比乌斯矩阵向量乘法运算式3所示: ?...而类比与多关系图中的关系有很多相似之处,因此该研究使用以前的启发式转换方法关系建模是可行的。多关系图嵌入的得分函数式4所示: ?...知道了多关系图嵌入得分函数,将得分函数与双曲几何庞加莱球相结合,从而应用到MuRP模型,需要做一个适当的变换变换后的MuRP模型得分函数式5所示: ?...在这里作者为了计算黎曼梯度∇RL,将欧几里得梯度∇EL乘以庞加莱度量张量的,即∇RL=1/(λθc)2∇EL。...该分数针对有向网络定义,并且测量其中存在有向路径x→y而不存在y→x的节点。对于所有有向非循环图,该分数取值为1,对于圈环,该分数取值为0。

    2K60

    矩阵可逆-我们能不能回到当初第一次见面的模样

    其实真正还原的过程是:伴随矩阵,登场了, 一个看起来很怪异的公式,一个矩阵矩阵,可以通过计算它的伴随矩阵行列式来实现。...在线性代数里面:线性变换可以看作是向量空间中的一个“拉伸”、“旋转”或者“扭曲”的过程,并且这些变换保持了原空间的直线和平行性。操作不会改变图形的本质(比如直线还是曲线),只会改变它的形状位置。...坐标变换矩阵的每一列告诉我们,原来的坐标系的一个单位向量在新的坐标系的表示。 在变化过程,我们不免的要研究,这个过程,信息到底有没有损失。信号与系统里面还有无损传输呢。...矩阵是对于一个可逆矩阵 A 而言的,它是一个满足 AB = BA = I 的矩阵 B。可以将矩阵看作是矩阵的“倒数”,在矩阵运算起到类似于数的倒数的作用。...初等变换法: 矩阵进行初等变换,若能变换为单位矩阵,则原矩阵可逆。 秩法: 若矩阵的秩等于其阶数,则矩阵可逆。 矩阵的求法 伴随矩阵法: 利用伴随矩阵矩阵

    13210

    SLAM知识点整理

    SO(3)与SE(3)加法是不封闭的,也就是说两个旋转矩阵相加不再是一个旋转矩阵;两个变换矩阵相加也不再是一个变换矩阵。...SO(3)与SE(3)乘法是封闭的,也就是说两个旋转矩阵相乘依然是一个旋转矩阵,相当于做了两次旋转;两个变换矩阵相乘也依然是一个变换矩阵,相当于做了两次位置的变换。...一般线性群GL(n),指n*n的可逆矩阵,它们矩阵乘法成群。特殊正交群SO(n),也就是所谓的旋转矩阵群,SO(2)SO(3)。...特殊欧式群SE(n),也就是所谓的变换矩阵群,SE(2)SE(3)。 李群 具有连续(光滑)性质的群,这里的连续性保证了群可以求导;李群既是群也是流形。...假设某一个旋转R,它对应的李代数为ø,当我们给它左乘一个微小的旋转∆R,那么对应的李代数就会对应一个微小的变换∆ø,在李群上对应的就是∆R*R,在李代数上就是 即为加法上相差左雅可比的

    1.1K30

    《Unity Shader入门精要》笔记(三)

    左手坐标系右手坐标系分别对应左手法则右手法则,用来在坐标系定义旋转的正方向,下图4个手指指向的方向即为正方向: Unity使用的坐标系 Unity的模型空间世界空间使用的是左手坐标系,注意观看下图红...矩阵乘法的表达式: 假设有rxn的矩阵Anxc的矩阵B,相乘后得到一个rxc的矩阵C = AB,那么C的每个元素Cij等于A的第i行所对应的矢量B的第j列所对应的矢量进行点乘的结果,即: 简单解释为...(AB)-1 = B-1A-1 (ABCD)-1 = D-1C-1B-1A-1 矩阵的几何意义是变换矩阵表示还原这个变换,或这个变换的反向变换。...使用变化矩阵M矢量v进行一次变换,然后再使用矩阵M-1进行一次变换,会得到原来的矢量v。 M-1(Mv) = (M-1M)v = Iv = v 正交矩阵 正交矩阵是特殊的方阵。...例如: CBAv = (C(B(Av))) 表示先v进行A矩阵变换,再进行B矩阵变换,最后进行C矩阵变换

    1.2K10

    详解Winograd变换矩阵生成原理

    有了多项式除法的概念之后,用一个例子来说明多项式欧几里得算法[18], 的最大公因式,同样利用性质 。...说明了任何整数 、 ,关于未知数 的方程: 有整数解时当且当 是 的最大公约数 的倍数,也就是要求 。...3.2、Winograd F(2,3)变换矩阵推导 现在来看下具体到F(2,3)的变换矩阵是如何得到的。...然后看下如何提取出变换矩阵,首先对公式作一些改动,把除2操作移动到 的计算里面: 通过观察上面的式子就能抽取出序列 , 各自的变换矩阵 ,还有最后输出变换矩阵 :...[17] 多项式长除法 [18] 用辗转相除法多项式的最大公因式 [19] 维基百科--裴蜀定理 [20] 数论小结 [21] 扩展欧几里得算法 有限域上多项式 [22] 维基百科--模逆元 [23

    4.4K20
    领券