标签: linear-algebra

如何计算垂直线段的终点?

我知道线段的终点和我想要创建的垂直端盖的距离/大小,但我需要计算垂直线的终点.我一直用45-45-90三角形和点状产品撞在墙上,但我似乎无法让它融合在一起.

我知道蓝色的点和红点的距离,我需要找到红色的点.

在标记为重复之前,我尝试了在这个问题中发布的答案,但结果总是垂直的.

http://rauros.net/files/caps.png http://rauros.net/files/caps.png

math geometry 2d vector linear-algebra

11
推荐指数
2
解决办法
5249
查看次数

Ruby数学宝石

有没有人知道数学/几何操作是否有好的宝石?我需要一些这样的东西:

  • 点产品
  • 交叉产品
  • 矢量之间的角度
  • 矩阵
  • 表面normale
  • 矢量计算(加,减......)
  • 奇异值分解

thx,tux

ruby math geometry linear-algebra

11
推荐指数
1
解决办法
3706
查看次数

线性代数在机器学习中的应用

我正在学习线性代数(最近开始),很想知道它在机器学习中的应用,我在哪里可以读到这个

谢谢

machine-learning linear-algebra

11
推荐指数
1
解决办法
5942
查看次数

线性代数的C库

请给我一些关于线性代数的高性能C库(矩阵代数,特征值,特征向量等)的技巧.可以是开源的也可以是闭源的.

c linear-algebra

11
推荐指数
2
解决办法
2万
查看次数

从四元数到OpenGL旋转

我有一个对象,我想通过键旋转.物体应偏航,俯仰和滚动.在尝试了很多之后,我发现它glRotate有其局限性并且不可能用这个函数实现类似的东西.

我研究了一下,发现了基于四元数的旋转.也可以通过旋转矩阵旋转,但几乎每个人都将四元数描述为有史以来最好的.

我已经阅读了关于四元数并且相当理解它们的内容,但是如何在我的OpenGL程序中实现它们仍然是一个谜.有谁知道一个小例子?不是如何实现四元数类,而是如何使用它.我不知道如何把事情放在一起.

c++ opengl linear-algebra quaternions

11
推荐指数
2
解决办法
4691
查看次数

寻找路径组合的算法?

想象一下,你有一个跳舞的机器人,n在起源于原点P_0=的欧洲空间(0,0,...,0).

机器人可以进行m各种舞蹈动作D_1, D_2, ..., D_m

D_i是一个n整数的向量(D_i_1, D_i_2, ..., D_i_n)

如果机器人使舞蹈移动而i不是其位置改变D_i:

P_{t+1} = P_t + D_i

机器人可以按照自己的意愿和任何顺序进行任何多次的舞蹈动作.

k-dance定义为k舞蹈动作的序列.

很明显,有m^k可能是k-dances.

我们有兴趣知道k-dance的可能终点位置的集合,并且对于每个终点位置,在该位置处有多少k-dances结束.

一种方法是这样做:

P0 = (0, 0, ..., 0);

S[0][P0] = 1

for I in 1 to k
    for J in 1 to m
        for P in S[I-1]
            S[I][P + D_J] += S[I][P]
Run Code Online (Sandbox Code Playgroud)

现在S[k][Q]将告诉你有多少k-dances在Q位置结束

假设n,m,|D_i| …

algorithm math graph linear-algebra

11
推荐指数
1
解决办法
329
查看次数

numpy矩阵欺骗 - 逆矩阵和的总和

我正在尝试执行以下操作,并重复直到收敛:

每个X i的位置n x p,并且r它们在一个r x n x p名为的数组中samples.Un x n,Vp x p.(我得到了矩阵正态分布的MLE .)大小都是潜在的大小; 我期待至少东西的顺序上 r = 200,n = 1000,p = 1000.

我目前的代码

V = np.einsum('aji,jk,akl->il', samples, np.linalg.inv(U) / (r*n), samples)
U = np.einsum('aij,jk,alk->il', samples, np.linalg.inv(V) / (r*p), samples)
Run Code Online (Sandbox Code Playgroud)

这没关系,但当然你永远不应该真正找到它的反向和乘法.如果我能以某种方式利用U和V是对称和正定的事实,那也是好的.我希望能够在迭代中计算出U和V的Cholesky因子,但由于总和,我不知道如何做到这一点.

做一些类似的东西,我可以避免逆转

V = sum(np.dot(x.T, scipy.linalg.solve(A, x)) for x in samples)
Run Code Online (Sandbox Code Playgroud)

(或类似于利用psd-ness的东西),但随后有一个Python循环,这使得那些笨拙的仙女哭了.

我还可以想象samples以这样一种方式重塑:我可以为每一个A^-1 x …

python numpy linear-algebra scipy

11
推荐指数
1
解决办法
1148
查看次数

我什么时候应该使用像Math.NET这样的线性代数库

我不确定这个问题有一个正确答案,但我们走了.虽然可以用线性代数形式陈述许多数值问题,但从我有限的经验来看,使用Math.NET而不是在原始数组上编写等效操作的简单操作存在性能开销.

作为测试用例,我编写了代码来计算向量与列表中最接近的向量之间的距离,有3个版本:在数组上运行,在密集向量上运行,以及使用MKL提供程序在密集向量上运行.在数组上运行比在向量上运行快4倍,比使用MKL提供程序快3倍.

缺点是我必须手动编写距离计算,而不是利用内置的Norm函数.好处是它更快.注意:我没有发布代码,如果需要我会很乐意这样做,我可能也会使用Math.NET不正确.

所以我的问题如下:在我看来,使用更高级别的抽象会带来性能成本.这是一般的情况,还是有情况(如实例的稀疏矩阵),使用Math.NET预期会超过阵列上的手动编写操作?

如果是这种情况,我倾向于认为使用Math.NET的线性代数部分对于涉及矩阵的"真实"代数非常有用,以避免重新实现更复杂的计算/算法,并可能用于代码可读性,但对于通过向量操作更简单的向量的操作,对原始数组进行处理可能是更好的主意.

任何关于使用图书馆的好主意和你应该自己动手的事情都会受到赞赏!

.net math performance linear-algebra math.net

11
推荐指数
1
解决办法
3400
查看次数

用javascript求解线性方程组

使用JavaScript解决线性方程组的最佳方法是什么?

我想找到一个矢量r的解决方案

M*r = b
Run Code Online (Sandbox Code Playgroud)

其中M是矩阵,b是矢量.

我知道JavaScript不是最好的计算语言,我只是希望在JS中实现我的算法以进行快速原型设计.

任何对其他问题或帮助的引用都会很棒!提前致谢.

javascript linear-algebra

11
推荐指数
0
解决办法
5825
查看次数

通过GF(q)求解稀疏系统

我有兴趣在有限域上n解析大(最多10 ^ 5甚至10 ^ 6)矩形(可能比行多10%的列)稀疏(每行<10非零)系统(可能是1000附近的素数或者所以).从文献来看,看起来块Lanczos方法可能是最合适的.Ax = bGF(q)q

我有Linbox应该有这样的方法,但是无法让BlockLanczos求解器在那里工作,并且有一份报告称自2003年以来已经破坏了.该SparseElimination方法确实有效,但似乎这不会很好n因为矩阵的填充而变大.

那么,有什么可用于解决这些问题呢?

linear-algebra sparse-matrix finite-field

11
推荐指数
1
解决办法
457
查看次数