ãã使ç¨æ¹æ³ï¼
ããEigenæ¯å¯ä»¥ç¨æ¥è¿è¡çº¿æ§ä»£æ°ãç©éµãåéæä½çè¿ç®çC++åºï¼å®éé¢å
å«äºå¾å¤ç®æ³ãå®çLicenseæ¯MPL2ãå®æ¯æå¤å¹³å°ã
ããEigenéç¨æºç çæ¹å¼æä¾ç»ç¨æ·ä½¿ç¨ï¼å¨ä½¿ç¨æ¶åªéè¦å
å«Eigenç头æ件å³å¯è¿è¡ä½¿ç¨ãä¹æ以éç¨è¿ç§æ¹å¼ï¼æ¯å 为Eigenéç¨æ¨¡æ¿æ¹å¼å®ç°ï¼ç±äºæ¨¡æ¿å½æ°ä¸æ¯æå离ç¼è¯ï¼æ以åªè½æä¾æºç èä¸æ¯å¨æåºçæ¹å¼ä¾ç¨æ·ä½¿ç¨ã
ããç©éµçå®ä¹ï¼Eigenä¸å
³äºç©éµç±»ç模æ¿å½æ°ä¸ï¼å
±æå
个模æ¿åæ°ï¼å¸¸ç¨çåªæåä¸ä¸ªãå
¶åä¸ä¸ªåæ°åå«è¡¨ç¤ºç©éµå
ç´ çç±»åãè¡æ°ååæ°ã
ããç©éµå®ä¹æ¶å¯ä»¥ä½¿ç¨Dynamicæ¥è¡¨ç¤ºç©éµçè¡åæ°ä¸ºæªç¥ã
ããEigenä¸æ 论æ¯ç©éµè¿æ¯æ°ç»ãåéï¼æ 论æ¯éæç©éµè¿æ¯å¨æç©éµé½æä¾é»è®¤æé å½æ°ï¼ä¹å°±æ¯å®ä¹è¿äºæ°æ®ç»ææ¶é½å¯ä»¥ä¸ç¨æä¾ä»»ä½åæ°ï¼å
¶å¤§å°åç±è¿è¡æ¶æ¥ç¡®å®ãç©éµçæé å½æ°ä¸åªæä¾è¡åæ°ãå
ç´ ç±»åçæé åæ°ï¼èä¸æä¾å
ç´ å¼çæé ï¼å¯¹äºæ¯è¾å°çãåºå®é¿åº¦çåéæä¾åå§åå
ç´ çå®ä¹ã
ããç©éµç±»åï¼Eigenä¸çç©éµç±»åä¸è¬é½æ¯ç¨ç±»ä¼¼MatrixXXXæ¥è¡¨ç¤ºï¼å¯ä»¥æ ¹æ®è¯¥ååæ¥å¤æå
¶æ°æ®ç±»åï¼æ¯å¦âdâ表示doubleç±»åï¼âfâ表示floatç±»åï¼âiâ表示æ´æ°ï¼âcâ表示å¤æ°ï¼Matrix2fï¼è¡¨ç¤ºçæ¯ä¸ä¸ª2*2ç»´çï¼å
¶æ¯ä¸ªå
ç´ é½æ¯floatç±»åã
ããæ°æ®åå¨ï¼Matrixå建çç©éµé»è®¤æ¯æååå¨ï¼Eigenå¨å¤çæååå¨çç©éµæ¶ä¼æ´å é«æãå¦ææ³ä¿®æ¹å¯ä»¥å¨å建ç©éµçæ¶åå å
¥åæ°ï¼å¦:
ããMatrix Acolmajor;
ããMatrix Arowmajor;
ããå¨æç©éµåéæç©éµï¼å¨æç©éµæ¯æå
¶å¤§å°å¨è¿è¡æ¶ç¡®å®ï¼éæç©éµæ¯æå
¶å¤§å°å¨ç¼è¯æ¶ç¡®å®ã
ããMatrixXdï¼è¡¨ç¤ºä»»æ大å°çå
ç´ ç±»å为doubleçç©éµåéï¼å
¶å¤§å°åªæå¨è¿è¡æ¶è¢«èµå¼ä¹åæè½ç¥éã
ããMatrix3dï¼è¡¨ç¤ºå
ç´ ç±»å为double大å°ä¸º3*3çç©éµåéï¼å
¶å¤§å°å¨ç¼è¯æ¶å°±ç¥éã
ããå¨Eigenä¸è¡ä¼å
çç©éµä¼å¨å
¶ååä¸å
å«ærowï¼å¦åå°±æ¯åä¼å
ã
ããEigenä¸çåéåªæ¯ä¸ä¸ªç¹æ®çç©éµï¼å
¶ç»´åº¦ä¸º1èå·²ã
ããç©éµå
ç´ ç访é®ï¼å¨ç©éµç访é®ä¸ï¼è¡ç´¢å¼æ»æ¯ä½ä¸ºç¬¬ä¸ä¸ªåæ°ï¼Eigenä¸ç©éµãæ°ç»ãåéçä¸æ é½æ¯ä»0å¼å§ãç©éµå
ç´ ç访é®å¯ä»¥éè¿â()âæä½ç¬¦å®æãä¾å¦m(2, 3)æ¢æ¯è·åç©éµmç第2è¡ç¬¬3åå
ç´ ã
ããé对åéè¿æä¾â[]âæä½ç¬¦ï¼æ³¨æç©éµåä¸å¯å¦æ¤ä½¿ç¨ã
ãã设置ç©éµçå
ç´ ï¼å¨Eigenä¸éè½½äºâ<<âæä½ç¬¦ï¼éè¿è¯¥æä½ç¬¦å³å¯ä»¥ä¸ä¸ªä¸ä¸ªå
ç´ çè¿è¡èµå¼ï¼ä¹å¯ä»¥ä¸åä¸åçèµå¼ãå¦å¤ä¹å¯ä»¥ä½¿ç¨ä¸æ è¿è¡èµå¼ã
ããéç½®ç©éµå¤§å°ï¼å½åç©éµçè¡æ°ãåæ°ã大å°å¯ä»¥éè¿rows()ãcols()åsize()æ¥è·åï¼å¯¹äºå¨æç©éµå¯ä»¥éè¿resize()å½æ°æ¥å¨æä¿®æ¹ç©éµç大å°ã注æï¼(1)ãåºå®å¤§å°çç©éµæ¯ä¸è½ä½¿ç¨resize()æ¥ä¿®æ¹ç©éµç大å°ï¼(2)ãresize()å½æ°ä¼æææåæ¥çæ°æ®ï¼å æ¤è°ç¨resize()å½æ°ä¹åå°ä¸è½ä¿è¯å
ç´ çå¼ä¸æ¹åï¼(3)ã使ç¨â=âæä½ç¬¦æä½å¨æç©éµæ¶ï¼å¦æå·¦å³ä¸¤è¾¹çç©éµå¤§å°ä¸çï¼å左边çå¨æç©éµç大å°ä¼è¢«ä¿®æ¹ä¸ºå³è¾¹ç大å°ã
ããå¦ä½éæ©å¨æç©éµåéæç©éµï¼å¯¹äºå°ç©éµ(ä¸è¬å¤§å°å°äº16)使ç¨åºå®å¤§å°çéæç©éµï¼å®å¯ä»¥å¸¦æ¥æ¯è¾é«çæçï¼å¯¹äºå¤§ç©éµ(ä¸è¬å¤§å°å¤§äº32)建议使ç¨å¨æç©éµã注æï¼å¦æç¹å«å¤§çç©éµä½¿ç¨äºåºå®å¤§å°çéæç©éµåå¯è½ä¼é ææ 溢åºçé®é¢ã
ããç©éµååéçç®æ¯è¿ç®ï¼å¨Eigenä¸ç®æ¯è¿ç®éè½½äºC++ç+ã-ã*
ãã(1)ãç©éµçè¿ç®ï¼æä¾+ã-ãä¸å
æä½ç¬¦â-âã+=ã-=ï¼äºå
æä½ç¬¦+/-ï¼è¡¨ç¤ºä¸¤ç©éµç¸å (ç©éµä¸å¯¹åºå
ç´ ç¸å /åï¼è¿åä¸ä¸ªä¸´æ¶ç©éµ)ï¼ä¸å
æä½ç¬¦-表示对ç©éµåè´(ç©éµä¸å¯¹åºå
ç´ åè´ï¼è¿åä¸ä¸ªä¸´æ¶ç©éµ)ï¼ç»åæä½æ³+=æè
-=表示(对åºæ¯ä¸ªå
ç´ é½åç¸åºæä½)ï¼ç©éµè¿æä¾ä¸æ é(åä¸æ°å)çä¹é¤æä½ï¼è¡¨ç¤ºæ¯ä¸ªå
ç´ é½ä¸è¯¥æ éè¿è¡ä¹é¤æä½ï¼
ãã(2)ãæ±ç©éµç转置ãå
±è½ç©éµãä¼´éç©éµï¼å¯ä»¥éè¿æåå½æ°transpose()ãconjugate()ãadjoint()æ¥å®æã注æï¼è¿äºå½æ°è¿åæä½åçç»æï¼èä¸ä¼å¯¹åç©éµçå
ç´ è¿è¡ç´æ¥æä½ï¼å¦æè¦è®©åç©éµè¿è¡è½¬æ¢ï¼åéè¦ä½¿ç¨ååºçInPlaceå½æ°ï¼å¦transpoceInPlace()çï¼
ãã(3)ãç©éµç¸ä¹ãç©éµåéç¸ä¹ï¼ä½¿ç¨æä½ç¬¦*ï¼å
±æ*å*=两ç§æä½ç¬¦ï¼
ãã(4)ãç©éµçåæä½ï¼æ两ç§ä½¿ç¨æ¹æ³ï¼
ããmatrix.block(i,j, p, q) : 表示è¿åä»ç©éµ(i, j)å¼å§ï¼æ¯è¡åp个å
ç´ ï¼æ¯ååq个å
ç´ æç»æç临æ¶æ°ç©éµå¯¹è±¡ï¼åç©éµçå
ç´ ä¸åï¼
ããmatrix.block(i, j) :å¯ç解为ä¸ä¸ªpè¡qåçåç©éµï¼è¯¥å®ä¹è¡¨ç¤ºä»åç©éµä¸ç¬¬(i, j)å¼å§ï¼è·åä¸ä¸ªpè¡qåçåç©éµï¼è¿å该åç©éµç»æç临æ¶ç©éµå¯¹è±¡ï¼åç©éµçå
ç´ ä¸åï¼
ãã(5)ãåéçåæä½ï¼
ããè·ååéçån个å
ç´ ï¼vector.head(n);
ããè·ååéå°¾é¨çn个å
ç´ ï¼vector.tail(n);
ããè·åä»åéç第i个å
ç´ å¼å§çn个å
ç´ ï¼vector.segment(i,n);
ããMapç±»ï¼å¨å·²ç»åå¨çç©éµæåéä¸ï¼ä¸å¿
æ·è´å¯¹è±¡ï¼èæ¯ç´æ¥å¨è¯¥å¯¹è±¡çå
åä¸è¿è¡è¿ç®æä½ã
温馨提示:答案为网友推荐,仅供参考