精华内容
下载资源
问答
  • 文章目录层次分析法计算特征向量归一化前为负的解决方案 层次分析法计算特征向量归一化前为负的解决方案 在进行层次分析法AHP的过程中,我们可能会遇到负特征向量的情况,查了好久,解决方案就是归一化 v=max_x./sum...

    层次分析法计算特征向量归一化前为负的解决方案

    在进行层次分析法AHP的过程中,我们可能会遇到负特征向量的情况,查了好久,解决方案就是归一化

    v=max_x./sum(max_x)
    

    既可以解决

    展开全文
  • 最近因为课题需要,使用欧式距离来计算多个特征向量间的距离。开始的想法是使用循环来解决,发现计算复杂度高,时间长 在博客中看到作者GoHowz 和其引用frankzd博客,通过矩阵的方法来代替之前循环计算方法,速度...

    最近因为课题需要,使用欧式距离来计算多个特征向量间的距离。开始的想法是使用循环来解决,发现计算复杂度高,时间长

    在博客中看到作者GoHowz 和其引用frankzd博客,通过矩阵的方法来代替之前循环计算方法,速度提升很多!!!

    作者原文:https://blog.csdn.net/IT_forlearn/article/details/100022244


    为了方便后面查询,粘贴了GoHowz 博客中的计算方法如下:

    def euclidean_dist(x, y):
            """
            Args:
              x: pytorch Variable, with shape [m, d]
              y: pytorch Variable, with shape [n, d]
            Returns:
              dist: pytorch Variable, with shape [m, n]
            """
     
            m, n = x.size(0), y.size(0)
            # xx经过pow()方法对每单个数据进行二次方操作后,在axis=1 方向(横向,就是第一列向最后一列的方向)加和,此时xx的shape为(m, 1),经过expand()方法,扩展n-1次,此时xx的shape为(m, n)
            xx = torch.pow(x, 2).sum(1, keepdim=True).expand(m, n)
            # yy会在最后进行转置的操作
            yy = torch.pow(y, 2).sum(1, keepdim=True).expand(n, m).t()
            dist = xx + yy
            # torch.addmm(beta=1, input, alpha=1, mat1, mat2, out=None),这行表示的意思是dist - 2 * x * yT 
            dist.addmm_(1, -2, x, y.t())
            # clamp()函数可以限定dist内元素的最大最小范围,dist最后开方,得到样本之间的距离矩阵
            dist = dist.clamp(min=1e-12).sqrt()  # for numerical stability
            return dist

     

    展开全文
  • 一个用雅可比过关法计算实对称矩阵的c语言程序
  • //计算节点的特征向量 private double[] normalize(double[][] matrix) { int row = matrix.Length; int column = matrix[0].Length; double[] Sum_column = new double[colu...
    //计算节点的特征向量
            private double[] normalize(double[][] matrix)
            {
                int row = matrix.Length;
                int column = matrix[0].Length;
                double[] Sum_column = new double[column];
                double[] w = new double[row];

                if (normalizeType == "和法")
                {                
                    for (int i = 0; i < column; i++)
                    {
                        Sum_column[i] = 0;
                        for (int j = 0; j < row; j++)
                        {
                            Sum_column[i] += matrix[j][i];
                        }
                    }

                    //进行归一化,计算特征向量W
                    
                    for (int i = 0; i < row; i++)
                    {
                        w[i] = 0;
                        for (int j = 0; j < column; j++)
                        {
                            w[i] += matrix[i][j] / Sum_column[j];
                        }
                        w[i] /= row;
                    }
                }

                if (normalizeType == "根法")
                {
                    for (int i = 0; i < column; i++)
                    {
                        Sum_column[i] = 0;
                        for (int j = 0; j < row; j++)
                        {
                            Sum_column[i] += matrix[j][i];
                        }
                    }

                    //进行归一化,计算特征向量W
                    double sum = 0;
                    for (int i = 0; i < row; i++)
                    {
                        w[i] = 1;
                        for (int j = 0; j < column; j++)
                        {
                            w[i] *= matrix[i][j] / Sum_column[j];
                        }
                        
                        w[i]=Math.Pow(w[i],1.0/row);                    
                        sum += w[i];
                    }

                    for (int i = 0; i < row; i++)
                    {
                        w[i] /= sum;
                    }
                }

                if (normalizeType == "幂法")
                {
                    double[] w0 = new double[row];
                    for (int i = 0; i < row; i++) 
                    {
                        w0[i] = 1.0/row;
                    }

                    //一般向量W(k+1)
                    double[] w1 = new double[row];
                    //W(k+1)的归一化向量                
                    double sum = 1.0;
                    double d = 1.0;
                    double delt = 0.00001;
                    while (d > delt) 
                    {
                        d=0.0;
                        sum = 0;

                        //获取向量
                        for (int j = 0; j < row; j++) 
                        {
                            w1[j] = 0;
                            for (int k = 0; k < row; k++)
                            {
                                w1[j] += matrix[j][k] * w0[k];
                            }
                            sum += w1[j];
                        }

                        //向量归一化 
                        for (int k = 0; k < row; k++) 
                        {
                            w[k] = w1[k] / sum; 
                            d = Math.Max(Math.Abs(w[k] - w0[k]), d);//最大差值
                            w0[k] = w[k];//用于下次迭代使用 
                        }
                    }                
                }
                return w;
            }
    展开全文
  • 特征向量的公式特征向量的公式特征向量的公式特征向量的公式
  • C语言计算特征值和特征向量

    热门讨论 2013-03-05 22:51:00
    本代码用C语言进行编程,可以计算矩阵的特征值和相应的特征向量
  • 在使用AHP(层次分析法)时,需要计算特征值,使用pyhon读取Excel数据处理 此程序使用python读excel数据计算特征值和特征向量; 使用了numpy、xlrd、xlwt库;
  • 矩阵特征值和特征向量详细计算过程

    万次阅读 多人点赞 2018-05-07 12:22:13
    1.矩阵特征值和特征向量定义 A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特征值λ的特征向量。式Ax=λx也可写成( A-λ... 计算:A的特征值和特征向量计算行列式得化简...

    1.矩阵特征值和特征向量定义

            A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特征值λ的特征向量。式Ax=λx也可写成( A-λE)x=0,并且|λE-A|叫做A 的特征多项式。当特征多项式等于0的时候,称为A的特征方程,特征方程是一个齐次线性方程组,求解特征值的过程其实就是求解特征方程的解。

     

    计算:A的特征值和特征向量。

    计算行列式得

    化简得:

    得到特征值:

    化简得:

     

    得到特征矩阵:

    同理,当得:

    得到特征矩阵:






       

    展开全文
  • matlab计算纹理特征向量计算距离,适合初学者学习
  • 雅可比(Jacobi)计算特征值和特征向量

    万次阅读 多人点赞 2018-12-15 12:50:53
    编程时一般都是用数值分析的方法来计算,这里介绍一下雅可比迭代法求解特征值和特征向量。雅可比迭代法的原理,网上资料很多,详细可见参考资料1。这里我们简单介绍求解矩阵S特征值和特征向量的步骤: 初始化特征...
  • python — numpy计算矩阵特征值,特征向量

    千次阅读 多人点赞 2020-04-21 11:10:01
    文章目录numpy计算矩阵特征值,特征向量一、示例:二、numpy实现: numpy计算矩阵特征值,特征向量 一、示例: 首先借参考百度demo的来看一下矩阵的特征值和特征向量的解题过程及结果。 可知矩阵A:特征值为1对应的...
  • 计算矩阵特征值,计算矩阵特征值和特征向量,matlab源码
  • 主要为大家详细介绍了C++ Eigen库计算矩阵特征值及特征向量,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 计算 桁架结构的特征值与特征向量,并设计一个简单的GUI界面供用户交互。
  • python计算特征根以及特征向量

    千次阅读 2020-08-11 09:30:53
    A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特征值λ的特征向量。 式Ax=λx也可写成( A-λE)x=0,并且|λE-A|叫做A 的特征多项式。当特征多项式等于0的时候,称为A的特征...
  • Jacobi 方法计算特征特征向量

    千次阅读 2015-12-12 15:56:42
    在求解协方差矩阵的特征值和特征向量时用到了Jacobi方法原理设A是n阶实对称矩阵,则必有正交矩阵P,使PTAP=⎡⎣⎢⎢λ1⋮0⋯⋱⋯0⋮λn⎤⎦⎥⎥=∧; P^TAP= \begin{bmatrix} \lambda_1 &\cdots &0 \\ \vdots &\ddots...
  • 采用雅克比矩阵进行对称矩阵特征值和特征向量计算
  • AHP层次分析法计算权重、特征值、特征向量,第一作者刘兴,其他地方下载需要47个币 【 尚有疑问,欢迎沟通!! 1.CSDN上有人说可用; 2.亲自试验,代码流畅,但个人感觉特征值、特征向量存疑; 3.用java求出的特征...
  • 矩阵特征值与特征向量计算方法.doc
  • c++实现计算特征值和特征向量

    千次阅读 2019-06-19 23:06:20
    今天实现了一下特征值和特征向量,参考https://blog.csdn.net/webzhuce/article/details/85013301 bool My_Jacobi(const vector<vector<double>>& matrix, vector<vector<double>>&...
  • (1)特征值和特征向量计算时间过长,虽然可以运行出来,但是需要处理大约50分钟,这里使用matlab自带的eig函数运算,请问有无高效的求全部特征值所组成的对角阵和全部特征向量所组成的矩阵的运算方法? (2)在求得...
  • 矩阵特征值和特征向量详细计算过程(转载)

    万次阅读 多人点赞 2018-09-02 09:43:47
    1.矩阵特征值和特征向量定义&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特...
  • 本代码主要利用MATLAB工具实现MATLAB——生成计算矩阵特征向量的独立外部应用程序,简单明了,易于理解
  • 一.试验目的:练习用数值方法计算矩阵特征值与特征向量。 二.实验内容:计算矩阵 的全部特征根与相应的特征向量
  • 矩阵特征值与特征向量计算报告.pdf
  • 广义特征向量计算方法

    千次阅读 2020-10-06 14:49:12
    代数重数与几何重数(对于单个特征值而言) 代数重数:相同特征值的个数。 几何重数:特征子空间的维数为...广义特征向量计算 rank(λI−A)=n−αrank(λI-A)=n-αrank(λI−A)=n−α,代数重数为kkk,则对于λλλ这个
  • jacobi方法计算对称矩阵的特征值和特征向量,使用旋转矩阵的方法
  • 计算矩阵R的特征向量和特征矩阵 c = np.linalg.eig(R) 其中特征值为c[0] 特征向量为c[1] import numpy as np # w1为列向量 x11 = np.array([[-3 / 4, -1 / 4, -1 / 8]]).T x12 = np.array([[5 / 4, -1 / 4, -1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 203,499
精华内容 81,399
关键字:

如何计算特征向量