linear-algebra相关内容

整数n×N矩阵的精确行列式

行列式定义只有加法、减法和乘法。因此,具有整数元素的矩阵的行列式必须是整数。 然而numpy.linalg.det()返回一个浮点数: >>> import numpy >>> M = [[-1 if i==j else 1 for j in range(7)] for i in range(7)] >>> numpy.linalg.det(M) 319.99999999999994 ..
发布时间:2022-04-12 11:01:29 Python

非负矩阵分解:交替最小二乘法

我正在尝试用交替最小二乘法实现NMF。我只是好奇这个问题的以下基本实现: 如果我理解正确的话,我们可以用封闭形式的解来求解这个伪代码中陈述的每个矩阵方程,没有非负性约束,并以一种蛮力的方式将负条目设置为0。这种理解正确吗?例如,在我们使用投影梯度下降的情况下,这是更复杂、更受约束的优化问题的基本替代方案吗?更重要的是,如果以这种基本的方式实现,算法还会有实用价值吗?我想使用NMF进行变量缩减 ..
发布时间:2022-04-12 10:55:55 其他开发

在Python3中从奇异值分解重构矩阵

好,基本上我的问题是,我有一个矩阵,我把它奇异值分解,然后把它放在变量u,s和v中,我对s矩阵做了一些修改,使它成为对角线,还修改了一些数字。现在我基本上是试着把它重建成一个正则矩阵,从这3个矩阵恢复到原来的矩阵。有谁知道有什么函数可以做到这一点吗?我似乎在NumPy中找不到任何这样的例子。 推荐答案 唯一稍微有点棘手的是s如果您已经安装了scipy它有scipy.linalg.dia ..
发布时间:2022-04-12 10:51:15 Python

在 Julia 中有效地求解一个特定的线性系统

我广泛使用 julia 的线性方程求解器 res = X\b.由于参数变化,我必须在我的程序中使用它数百万次.这工作正常,因为我使用的是小尺寸(最多 30).现在我想分析更大的系统,最多 1000,线性求解器不再有效. 我认为可以解决这个问题.但是我必须说,有时我的 X 矩阵是密集的,有时是稀疏的,所以我需要在这两种情况下都能正常工作的东西. b 向量是一个全为零的向量,除了一个始终为 ..
发布时间:2022-01-23 19:50:02 其他开发

Julia 的特征分解比 Mathematica 慢 5 倍?

我是 Julia 的新手,主要在 Mathematica 工作,所以我可能会遇到一些基本错误.我试图计算 Julia 计算随机矩阵的特征系统所花费的时间,发现它比 Mathematica 慢 5-6 倍. 在朱莉娅: D=1000*(rand(1000,1000)-0.5);@时间 (E,F)=eig(D);输出:经过时间:7.47950706 秒(已分配 79638920 个字节*) ..
发布时间:2022-01-23 19:27:30 其他开发

整数矩阵的确切整数零空间?

nullspace(A) 为矩阵 A 的空空间找到一个基.返回的向量具有浮点坐标.如果矩阵 A 是整数矩阵,则可以在整数坐标中找到基. 例如,在Mathematica中, NullSpace[RandomInteger[{-10, 10}, {3, 4}]] 总是返回整数向量. 有没有办法在 Julia 中计算整数矩阵的整数基? 更新: Nemo.jl 出现构建错误(请参阅 ..
发布时间:2022-01-23 19:16:34 其他开发

Julia vs. MATLAB - 距离矩阵 - 运行时测试

不久前我开始学习 Julia,我决定做一个简单的Julia 和 Matlab 在计算欧几里得的简单代码上的比较一组高维点的距离矩阵. 任务简单,可以分为两种情况: 案例 1: 给定两个 n x d 矩阵形式的数据集,例如 X1 和 X2,计算 X1 中每个点与 X2 中所有点之间的成对欧几里得距离.如果 X1 的大小为 n1 x d,而 X2 的大小为 n2 x d,则生成的欧几里德距 ..
发布时间:2022-01-23 19:06:24 其他开发

Cocos2d - 如何检查不同层中对象之间的交集

我目前正在 Cocos2d 中为 iPhone 开发一个涂鸦跳跃风格的游戏,并设置了一个包含两个不同层的场景 - 游戏对象(平台、收藏品等)和玩家(角色,由玩家控制). 我将它们放在单独的层中,因为我想在玩家跳跃时向下滚动整个游戏对象层 - 给它一种垂直的、涂鸦跳跃风格的感觉. 问题在于玩家和平台之间不会发生交集,因为它们位于不同的层. 有谁知道如何解决这个问题?有些人提到了 c ..

数学 - 映射数字

如何将 a 和 b 之间的数字线性映射到 c 和 d 之间. 也就是说,我希望 2 到 6 之间的数字映射到 10 到 20 之间的数字...但我需要广义的情况. 我的大脑被炸了. 解决方案 如果你的数字 X 落在 A 和 B 之间,并且你希望 Y 落在 C 和 D 之间,你可以应用以下线性变换: Y = (X-A)/(B-A) * (D-C) + C 这应该会给你你想要的 ..
发布时间:2022-01-17 09:20:48 其他开发

如何在 d 维球/球内生成均匀的随机点?

我环顾四周,所有用于在单位球内/上生成均匀随机点的解决方案都是为 2 或 3 维设计的. 什么是(易于处理)在任意尺寸的球内部生成均匀随机点的方法?尤其是,不仅仅是在表面上球. 首先,在立方体中生成随机点并丢弃范数大于 1 的点在高维中不可行.单位球的体积与高维单位立方体的体积之比为0.即使在10维中,单位立方体中也只有约0.25%的随机点也在单位球内. 解决方案 在 d 维球 ..

找出两条线是否相交

可能重复: 如何检测两条线段相交的位置? 判断两条线段是否相交? 给定两行 l1=((A0, B0), (A1, B1)) 和 l2=((A2, B2), (A3, B3));Ax, Bx 是整数,(Ax, Bx) 指定行的开始和结束. 是否有一种算法只使用整数运算来确定 l1 和 l2 是否相交?(只需要一个布尔答案.) 我自己的方法是用定点算法计算交点附近的一个点.然后将 ..
发布时间:2022-01-14 15:32:14 C/C++开发

将 3d 共面点列表排序为顺时针或逆时针

我有一个 3D 点列表.我知道它们都是共面的.我有我想要对它们进行排序的中心以及点和中心所在平面的法线.如何测试一个点是否在另一点的右侧(或左侧)? 我了解如何在 2D 中进行操作.按顺时针顺序排序点? 解释了如何比较 2d 点.所以我认为我需要以某种方式将所有点和中心转换为局部二维平面坐标.我怎样才能做到这一点?这是解决这个问题最有效的方法吗? //来自链接://a 和 b 是点//ce ..
发布时间:2022-01-14 15:26:16 其他开发

高效计算 data.table 列的线性组合

我在 data.table 中有 nc 列,在向量中有 nc 标量.我想对列进行 线性组合,但我不知道我将使用哪些列.最有效的方法是什么? 设置 require(data.table)set.seed(1)n 方法 假设我想使用前四列.我可以手动写: DT[,list(cf['A']*A+cf['B']*B+cf['C']*C+cf['D']*D)] 我可以想到两种自动方式( ..
发布时间:2022-01-13 18:51:59 其他开发

仅在 GPU 上求解小型对称正定 Ax = b

我正在尝试优化实时 3D 建模中的应用程序.应用程序的计算部分几乎完全在 CUDA 的 GPU 上运行.该应用程序需要每秒 500+ 次的小型 (6x6) 双精度对称正定线性系统 Ax = b 的求解.目前,这是通过使用 Cholesky 的基于 CPU 的高效线性代数库完成的,但需要每秒数百次从 CPU - GPU 复制数据并返回到 GPU 以及每次内核启动的开销等. 如何仅在 GPU 上 ..
发布时间:2022-01-10 15:53:54 其他开发

3D相机坐标到世界坐标(改变基础?)

假设我有一个对象相对于相机的坐标 X、Y、Z 和方向 Rx、Ry、Rz.另外,我还有这个相机在世界上的坐标U、V、W和方向Ru、Rv、Rw. 如何将对象的位置(位置和旋转)转换为其在世界中的位置? 对我来说这听起来像是基础的改变,但我还没有找到明确的来源. 解决方案 我发现这个文档对这个主题很清楚.http://www.cse.psu.edu/~rcollins/CSE486/ ..

在校准的立体视觉装备中,如何获得“相机矩阵"?需要实现 3D 三角测量算法?

我正在尝试实现 Hartley & 的(相对简单的)线性齐次 (DLT) 3D 三角测量方法Zisserman 的“多视图几何"(第 12.2 节),目的是在未来实现其完整的“最佳算法".现在,基于 this question,我正试图让它在 Matlab 中工作,稍后会将其移植到 C++ 和 OpenCV 中,并在此过程中进行一致性测试. 问题是我不确定如何使用我拥有的数据.我已经校准了我 ..

把四边形变成长方形?

我的场景由一个任意四边形组成.我需要能够将该四边形转换为矩形.每个四边形都在 2d 坐标中,因此它们有 4 个顶点 (x_i, y_i). 转换需要有一个逆,因为这个想法是在操纵矩形后回到原来的四边形. 执行此操作的最简单方法是什么?我听说这叫做透视变换,但我发现了一些小线索,让我觉得这很容易做到. 解决方案 你知道你想要的矩形的尺寸是多少吗?如果是这种情况,您可以使用透视变换 ..
发布时间:2022-01-09 18:33:41 其他开发