linear-algebra相关内容
行列式定义只有加法、减法和乘法。因此,具有整数元素的矩阵的行列式必须是整数。 然而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
..
我有一组(n*n)大小的稀疏矩阵,称为M1、M2...、Mj. 我想创建一个大的块对角线稀疏矩阵,如下所示: |M1 0 0 . . . | |0 M2 0 . . . | |. . . . . . | |. . . Mj-1 0| |0 0 0 ... Mj| 我尝试了以下操作: Eigen::SparseMa
..
我正在按照MIT course学习SVD。 矩阵构造为 C = np.matrix([[5,5],[-1,7]]) C matrix([[ 5, 5], [-1, 7]]) 讲师将V表示为 这接近 w, v = np.linalg.eig(C.T*C) matrix([[-0.9486833 , -0.31622777], [ 0.3
..
我正在尝试用交替最小二乘法实现NMF。我只是好奇这个问题的以下基本实现: 如果我理解正确的话,我们可以用封闭形式的解来求解这个伪代码中陈述的每个矩阵方程,没有非负性约束,并以一种蛮力的方式将负条目设置为0。这种理解正确吗?例如,在我们使用投影梯度下降的情况下,这是更复杂、更受约束的优化问题的基本替代方案吗?更重要的是,如果以这种基本的方式实现,算法还会有实用价值吗?我想使用NMF进行变量缩减
..
我正在使用scipy.Optimize.linprog库通过单纯形法计算最小化。我正在课本上解决这个问题,我希望有人能给我指明正确的方向,因为我没有得到我期望的结果。问题是: Minimize w = 10*y1 + 15*y2 + 25*y3 Subject to: y1 + y2 + y3 >= 1000 y1 - 2*y
..
好,基本上我的问题是,我有一个矩阵,我把它奇异值分解,然后把它放在变量u,s和v中,我对s矩阵做了一些修改,使它成为对角线,还修改了一些数字。现在我基本上是试着把它重建成一个正则矩阵,从这3个矩阵恢复到原来的矩阵。有谁知道有什么函数可以做到这一点吗?我似乎在NumPy中找不到任何这样的例子。 推荐答案 唯一稍微有点棘手的是s如果您已经安装了scipy它有scipy.linalg.dia
..
我广泛使用 julia 的线性方程求解器 res = X\b.由于参数变化,我必须在我的程序中使用它数百万次.这工作正常,因为我使用的是小尺寸(最多 30).现在我想分析更大的系统,最多 1000,线性求解器不再有效. 我认为可以解决这个问题.但是我必须说,有时我的 X 矩阵是密集的,有时是稀疏的,所以我需要在这两种情况下都能正常工作的东西. b 向量是一个全为零的向量,除了一个始终为
..
我是 Julia 的新手,主要在 Mathematica 工作,所以我可能会遇到一些基本错误.我试图计算 Julia 计算随机矩阵的特征系统所花费的时间,发现它比 Mathematica 慢 5-6 倍. 在朱莉娅: D=1000*(rand(1000,1000)-0.5);@时间 (E,F)=eig(D);输出:经过时间:7.47950706 秒(已分配 79638920 个字节*)
..
nullspace(A) 为矩阵 A 的空空间找到一个基.返回的向量具有浮点坐标.如果矩阵 A 是整数矩阵,则可以在整数坐标中找到基. 例如,在Mathematica中, NullSpace[RandomInteger[{-10, 10}, {3, 4}]] 总是返回整数向量. 有没有办法在 Julia 中计算整数矩阵的整数基? 更新: Nemo.jl 出现构建错误(请参阅
..
不久前我开始学习 Julia,我决定做一个简单的Julia 和 Matlab 在计算欧几里得的简单代码上的比较一组高维点的距离矩阵. 任务简单,可以分为两种情况: 案例 1: 给定两个 n x d 矩阵形式的数据集,例如 X1 和 X2,计算 X1 中每个点与 X2 中所有点之间的成对欧几里得距离.如果 X1 的大小为 n1 x d,而 X2 的大小为 n2 x d,则生成的欧几里德距
..
我目前正在 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 这应该会给你你想要的
..
我环顾四周,所有用于在单位球内/上生成均匀随机点的解决方案都是为 2 或 3 维设计的. 什么是(易于处理)在任意尺寸的球内部生成均匀随机点的方法?尤其是,不仅仅是在表面上球. 首先,在立方体中生成随机点并丢弃范数大于 1 的点在高维中不可行.单位球的体积与高维单位立方体的体积之比为0.即使在10维中,单位立方体中也只有约0.25%的随机点也在单位球内. 解决方案 在 d 维球
..
可能重复: 如何检测两条线段相交的位置? 判断两条线段是否相交? 给定两行 l1=((A0, B0), (A1, B1)) 和 l2=((A2, B2), (A3, B3));Ax, Bx 是整数,(Ax, Bx) 指定行的开始和结束. 是否有一种算法只使用整数运算来确定 l1 和 l2 是否相交?(只需要一个布尔答案.) 我自己的方法是用定点算法计算交点附近的一个点.然后将
..
我有一个 3D 点列表.我知道它们都是共面的.我有我想要对它们进行排序的中心以及点和中心所在平面的法线.如何测试一个点是否在另一点的右侧(或左侧)? 我了解如何在 2D 中进行操作.按顺时针顺序排序点? 解释了如何比较 2d 点.所以我认为我需要以某种方式将所有点和中心转换为局部二维平面坐标.我怎样才能做到这一点?这是解决这个问题最有效的方法吗? //来自链接://a 和 b 是点//ce
..
我在 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)] 我可以想到两种自动方式(
..
我正在尝试优化实时 3D 建模中的应用程序.应用程序的计算部分几乎完全在 CUDA 的 GPU 上运行.该应用程序需要每秒 500+ 次的小型 (6x6) 双精度对称正定线性系统 Ax = b 的求解.目前,这是通过使用 Cholesky 的基于 CPU 的高效线性代数库完成的,但需要每秒数百次从 CPU - GPU 复制数据并返回到 GPU 以及每次内核启动的开销等. 如何仅在 GPU 上
..
假设我有一个对象相对于相机的坐标 X、Y、Z 和方向 Rx、Ry、Rz.另外,我还有这个相机在世界上的坐标U、V、W和方向Ru、Rv、Rw. 如何将对象的位置(位置和旋转)转换为其在世界中的位置? 对我来说这听起来像是基础的改变,但我还没有找到明确的来源. 解决方案 我发现这个文档对这个主题很清楚.http://www.cse.psu.edu/~rcollins/CSE486/
..
我正在尝试实现 Hartley & 的(相对简单的)线性齐次 (DLT) 3D 三角测量方法Zisserman 的“多视图几何"(第 12.2 节),目的是在未来实现其完整的“最佳算法".现在,基于 this question,我正试图让它在 Matlab 中工作,稍后会将其移植到 C++ 和 OpenCV 中,并在此过程中进行一致性测试. 问题是我不确定如何使用我拥有的数据.我已经校准了我
..
我的场景由一个任意四边形组成.我需要能够将该四边形转换为矩形.每个四边形都在 2d 坐标中,因此它们有 4 个顶点 (x_i, y_i). 转换需要有一个逆,因为这个想法是在操纵矩形后回到原来的四边形. 执行此操作的最简单方法是什么?我听说这叫做透视变换,但我发现了一些小线索,让我觉得这很容易做到. 解决方案 你知道你想要的矩形的尺寸是多少吗?如果是这种情况,您可以使用透视变换
..