最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實現(xiàn)矩陣對稱正交化的示例代碼

 更新時間:2021年09月14日 16:48:19   作者:岑小岑  
這篇文章主要介紹了C++實現(xiàn)矩陣對稱正交化,分為python代碼和C++的eigen庫實現(xiàn)代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1.python代碼

import numpy as np
import pandas as pd
df=pd.DataFrame()
df['fac_01']=(34, 45, 65)
df['fac_02']=(56, 25, 94)
print(df)
print('------------------矩陣的特征跟D、和特征向量U-----------------------')
D,U=np.linalg.eig(np.dot(df.T, df)) # 求矩陣的特征跟D、和特征向量U
print(D,U,sep='\n')
print('\n------------------對角矩陣-----------------------')
print(np.diag(D**(-0.5)))
print('\n------------------對稱正交后的矩陣-----------------------')
S = np.dot(np.dot(U, np.diag(D**(-0.5))), U.T) # 求過渡矩陣S = U* DEx *U'
F_hat = np.dot(df, S) # 求對稱正交后的矩陣
print(F_hat)

2.C++的Eigen庫實現(xiàn)

#include "Eigen/Dense"
using namespace Eigen;
int main()
{
    //初始化
    MatrixXf A(3, 2);
    A(0,0) = 34;A(0,1) = 56;
    A(1,0) = 45;A(1,1) = 25;
    A(2,0) = 65;A(2,1) = 94;
    //生成正交矩陣
    MatrixXf AEx = A.transpose() * A;
    int nRowSize = AEx.rows();
    int nColSize = AEx.cols();
    //求特征根、特征向量
    SelfAdjointEigenSolver<Matrix2f> eigensolver(AEx);
    MatrixXf D = eigensolver.eigenvalues();
    MatrixXf U = eigensolver.eigenvectors();
    std::cout<<"特征根如下:" <<std::endl;
    nRowSize = D.rows();
    nColSize = D.cols();
    for(size_t i=0; i<nRowSize; i++)
    {
        for(size_t j=0; j<nColSize; j++)
        {
            std::cout<<D(i,j)<<"    ";
        }
        std::cout<<std::endl;
    }
    std::cout<<"特征向量如下:" <<std::endl;
    nRowSize = U.rows();
    nColSize = U.cols();
    for(size_t i=0; i<nRowSize; i++)
    {
        for(size_t j=0; j<nColSize; j++)
        {
            std::cout<<U(i,j)<<"    ";
        }
        std::cout<<std::endl;
    }
    //生成np.diag(D**(-0.5)))對角線矩陣
    MatrixXf DEx(2,2);
    for(size_t i=0; i<2; i++)
    {
        for(size_t j=0; j<2; j++)
        {
            if(i == j)
            {
                DEx(i,j) = pow(D(i,0),-0.5);
            }
            else
            {
                DEx(i,j) = 0;
            }
        }
    }
    nRowSize = DEx.rows();
    nColSize = DEx.cols();
    std::cout<<"對角線矩陣如下:" <<std::endl;
    for(size_t i=0; i<nRowSize; i++)
    {
        for(size_t j=0; j<nColSize; j++)
        {
            std::cout<<DEx(i,j)<<"    ";
        }
        std::cout<<std::endl;
    }
    //生成過度矩陣S
    MatrixXf S = U * DEx * U.transpose();
    //生成正交化矩陣
    MatrixXf R = A * S;
    nRowSize = R.rows();
    nColSize = R.cols();
    std::cout<<"正交化結(jié)果如下:" <<std::endl;
    for(size_t i=0; i<nRowSize; i++)
    {
        for(size_t j=0; j<nColSize; j++)
        {
            std::cout<<R(i,j)<<"    ";
        }
        std::cout<<std::endl;
    }
	return 0;
}

3.結(jié)果對比

在這里插入圖片描述

到此這篇關(guān)于C++實現(xiàn)矩陣對稱正交化的文章就介紹到這了,更多相關(guān)C++矩陣對稱正交化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何尋找數(shù)組中的第二大數(shù)

    如何尋找數(shù)組中的第二大數(shù)

    本篇文章是對如何尋找數(shù)組中的第二大數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++萬能庫頭文件在vs中的安裝步驟(圖文)

    C++萬能庫頭文件在vs中的安裝步驟(圖文)

    這篇文章主要介紹了C++萬能庫頭文件在vs中的安裝步驟(圖文),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Qt實現(xiàn)指針式時鐘 Qt實現(xiàn)動態(tài)時鐘

    Qt實現(xiàn)指針式時鐘 Qt實現(xiàn)動態(tài)時鐘

    這篇文章主要為大家詳細(xì)介紹了Qt實現(xiàn)指針式時鐘,Qt實現(xiàn)動態(tài)時鐘,兩者相互切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C語言中的浮點數(shù)據(jù)類型

    C語言中的浮點數(shù)據(jù)類型

    這篇文章主要介紹了C語言中的浮點數(shù)據(jù)類型,文章會從處理帶小數(shù)的數(shù)值的相關(guān)資料開始介紹,感興趣的小伙伴的可以參考下面 文章的具體內(nèi)容
    2021-10-10
  • VC實現(xiàn)對話框窗口任意分割

    VC實現(xiàn)對話框窗口任意分割

    最近寫MFC的程序,想在對話框里實現(xiàn)窗口的任意分割?,F(xiàn)在網(wǎng)絡(luò)資料一大抄,找個東西實在麻煩。總算這個很簡單,很快就搞定了,寫下來做個筆記。
    2015-06-06
  • 淺析c語言中的內(nèi)存

    淺析c語言中的內(nèi)存

    在c++中,內(nèi)存分為5個區(qū),分別是棧區(qū),堆區(qū),自由存儲區(qū),全局/靜態(tài)存儲區(qū)和常量存儲區(qū).
    2017-09-09
  • C++超詳細(xì)講解稀疏矩陣

    C++超詳細(xì)講解稀疏矩陣

    今天小編就為大家分享一篇關(guān)于C++稀疏矩陣的轉(zhuǎn)置思路并實現(xiàn)乘法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2022-05-05
  • C++使用遞歸函數(shù)和棧操作逆序一個棧的算法示例

    C++使用遞歸函數(shù)和棧操作逆序一個棧的算法示例

    這篇文章主要介紹了C++使用遞歸函數(shù)和棧操作逆序一個棧的算法,結(jié)合實例形式分析了C++遞歸函數(shù)與逆序棧的相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • VSCode插件開發(fā)全攻略之跳轉(zhuǎn)到定義、自動補全、懸停提示功能

    VSCode插件開發(fā)全攻略之跳轉(zhuǎn)到定義、自動補全、懸停提示功能

    這篇文章主要介紹了VSCode插件開發(fā)全攻略之跳轉(zhuǎn)到定義、自動補全、懸停提示,需要的朋友可以參考下
    2020-05-05
  • 淺談C++中的string 類型占幾個字節(jié)

    淺談C++中的string 類型占幾個字節(jié)

    本篇文章小編并不是為大家講解string類型的用法,而是講解我個人比較好奇的問題,就是string 類型占幾個字節(jié)
    2013-08-08

最新評論

静安区| 西盟| 兰考县| 南川市| 金平| 东山县| 阿拉善右旗| 临夏县| 且末县| 建水县| 舞阳县| 海原县| 西峡县| 蒲江县| 区。| 桐梓县| 嵊泗县| 西峡县| 大渡口区| 侯马市| 泌阳县| 巴塘县| 卢龙县| 延长县| 桦甸市| 仁寿县| 广元市| 永平县| 泸州市| 古丈县| 太和县| 林口县| 黔江区| 石河子市| 屏东县| 庄河市| 江门市| 广宗县| 南郑县| 新宾| 益阳市|