基本上我试图找到矩阵的特征值,大约需要12个小时.当它完成时,它说它找不到所有的特征向量(实际上几乎没有),而且我对它找到的那些特征向量持怀疑态度.我所能做的就是发布我的代码,我希望有人可以向我提出一些建议.我对mathematica不太熟悉,也许运行时间慢,结果不好与我有关,而不是mathematica的能力.感谢任何回复的人,我真的很感激.
cutoff = 500; (* set a cutoff for the infinite series *)
numStates = cutoff + 1; (* set the number of excited states to be printed *)
If[numStates > 10, numStates = 10];
$RecursionLimit = cutoff + 256; (* Increase the recursion limit to allow for the specified cutoff *)
(* set the mass of the constituent quarks *)
m1 := mS; (* just supposed to be a constant *)
m2 := 0;
(* construct the hamiltonian *) …Run Code Online (Sandbox Code Playgroud) 我正在尝试将2D高斯拟合到图像中.噪音非常低,所以我的尝试是旋转图像,使两个主轴不共同变化,找出最大值并计算两个维度的标准偏差.选择的武器是python.

然而,我一直在寻找图像的特征向量 - numpy.linalg.py假定离散数据点.我想过将这个图像作为一个概率分布,对几千个点进行采样,然后根据该分布计算特征向量,但我确信必须有一种找到特征向量的方法(即,半主和半 - 直接来自该图像的高斯椭圆的短轴.有任何想法吗?
非常感谢 :)
我正在研究用于光谱聚类的并行算法,我需要计算K个最大特征值.我正在使用Jacket插件进行Matlab,但遗憾的是它不支持matlab中的EIGS函数(它无法计算K个特征值)并行)任何人都可以建议一些其他工具/库在GPU上完成这项任务吗?或者我还可以在GPU辅助的Matlab中做到这一点吗?
我想获得稀疏对称矩阵的特征向量,在给定时间内具有最佳精度。
目前我使用以下内容scipy.sparse.eigsh:
evals, evecs = eigsh(MyMatrix, 2,which='LM' ,tol=1.e-15, maxiter=1000000)
Run Code Online (Sandbox Code Playgroud)
如果它没有tol通过迭代收敛到精度maxiter,则会产生一个ArpackNoConvergence错误,其中包含已收敛的特征向量/值,但不包含未收敛的特征向量/值。然而,我更喜欢拥有精确的向量,1.e-14而1.e-15不是根本没有向量。有没有办法强制返回尚未收敛的特征向量(也许使用另一个库)?
就像在 Matlab 中一样,eigs函数无论如何都会返回特征向量,如果未达到所需的精度,则只会发出额外的警告。
谢谢 !
我一直在做一些几何数据分析(GDA),例如主成分分析(PCA)。我想绘制一个相关圆......这些看起来有点像这样:
![1]](https://i.stack.imgur.com/2pjd8.png)
基本上,它允许测量变量的特征值/特征向量与数据集的主成分(维度)相关的扩展。
任何人都知道是否有绘制此类数据可视化的python包?
我正在尝试使用networkx来计算我的图的特征向量中心性:
import networkx as nx
import pandas as pd
import numpy as np
a = nx.eigenvector_centrality(my_graph)
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
NetworkXError: eigenvector_centrality():
power iteration failed to converge in %d iterations."%(i+1))
Run Code Online (Sandbox Code Playgroud)
我的图表有什么问题?

我想基于本征的一般特征值求解器(本征3.3.3)来编译以下示例:
#include <iostream>
#include <Eigen/Eigenvalues>
int main()
{
Eigen::Matrix4f A;
A << -0.75, 0, -1.5, -1,
-1.25, 0, -1.5, -1,
-0.75, 0, -1, -1,
-0.25, 0, -1.5, -1;
Eigen::Matrix4f G;
G << 1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 0;
std::cout << "A = " << A << std::endl;
std::cout << "G = " << G << std::endl;
Eigen::GeneralizedEigenSolver<Eigen::Matrix4f> sol;
sol.compute(A.transpose()*A, G); // compute generalized eigenvalues
std::cout << "alphas = " << …Run Code Online (Sandbox Code Playgroud) 据我了解,有经典的特征向量中心性,也有诸如 Katz 中心性或 PageRank 之类的变体。我想知道后者是否是特征向量中心性演化的“最新阶段”,因此总是优越的?或者是否存在某些条件,具体取决于哪个人应该使用其中之一。如果可以的话,那需要什么条件呢?
我在 Tensorflow 中使用特征分解,发现它非常慢。下面的代码显示了 Tensorflow 的速度与 numpy 和 scipy 的比较:
import numpy as np
import scipy as sp
import tensorflow as tf
from time import time
A = np.random.randn(400, 400)
A_tf = tf.constant(A)
cur = time()
d, v = sp.linalg.eig(A)
print(f'sp: {time() - cur:4.2f} s')
cur = time()
d, v = np.linalg.eig(A)
print(f'np: {time() - cur:4.2f} s')
cur = time()
d, v = tf.linalg.eig(A_tf)
print(f'tf: {time() - cur:4.2f} s')
Run Code Online (Sandbox Code Playgroud)
这给出了以下输出:
sp: 0.09 s
np: 0.08 s
tf: 5.04 s
Run Code Online (Sandbox Code Playgroud)
对这里有什么想法吗?
我正在寻找在 Matlab 中解决广义特征向量和特征值问题。为此,我测试了2种方法。
然后,我们可以在每一边乘以 B^(-1),例如:
所以,从理论角度来看,这是一个简单而经典的特征值问题。
最后,在 Matlab 中,我简单地使用A=FISH_sp和进行了操作B=FISH_xc:
[Phi, Lambda] = eig(inv(FISH_xc)*FISH_sp);
Run Code Online (Sandbox Code Playgroud)
但是,当我在简单的费舍尔综合之后得到的结果不正确(约束太糟糕,而且还出现了nan值。我不知道为什么我没有得到与下面第二个相同的结果。
总而言之,所使用的算法在第 7 页进行了描述。我已经遵循了该算法的所有步骤,当我进行 Fisher 综合时,它似乎给出了更好的结果。
这里是感兴趣的部分(抱歉,我认为 Stakoverflow 上没有 Latex):
这是我的这个方法的小 Matlab 脚本:
% Diagonalize A = FISH_sp and B = Fish_xc
[V1,D1] = eig(FISH_sp);
[V2,D2] = eig(FISH_xc);
% Applying each step of algorithm 1 on page 7
phiB_bar = V2*(D2.^(0.5)+1e-10*eye(7))^(-1);
barA = inv(phiB_bar)*FISH_sp*phiB_bar;
[phiA, vA] = eig(barA);
Phi = phiB_bar*phiA;
Run Code Online (Sandbox Code Playgroud)
所以最后,我找到了 phi 特征向量矩阵 (phi) 和 lambda …
eigenvector ×10
eigenvalue ×6
python ×5
arpack ×1
correlation ×1
cuda ×1
diagonal ×1
eigen ×1
eigen3 ×1
graph ×1
jacket ×1
matlab ×1
mingw-w64 ×1
networkx ×1
numpy ×1
pagerank ×1
pca ×1
scipy ×1
tensorflow ×1