2010年12月3日 星期五

線性人生

有道是:無可奈何花落去,似曾相似燕歸來。

在一個古老的倉房中,隱蔽著一個不為人知的秘密。

 

2010年10月7日 星期四

線性代數 - Eigenvalue的真實義

在線性代數中,eigenvalue一定是一大重點

就讓我們來看看究竟是什麼吧~

所謂『eigen 』有特性、特徵的意思

所以常常會看到中文翻成特徵方程式或是英文以characteristic equation 表示

其實身邊常常會遇到eigenvalue相關的問題,只是不曉得罷了

比如說像吉他的調音就是一種。

讓我們來看看eigenvalue的定義吧~

                       AX=λ
A為一個 nxn  matrix 且 x 為n x 1 的 vector
其中 λ 為scalar,當此方程式有解時
 λ 則稱為 A 的eigenvalue , X 則稱為 A的eigen vector(X須不為0)


* 注意當一個A可以有好幾個eigenvalue以及無數個eigenvector
  而eigenvalue的數目最多有n個(其實應該說有n個,但可能有重複值)

讓我們來看接下來這個例子
       
     
A = [4 -2]
       [1  1]   


AX=λX  => (A-λI)X=0

由於定義上X須不為0,也就是det(x)!=0

這代表 det(A-λI)=0

所以計算結果 λ=3 or 2
eigenvector就很多了,先不在這篇提
要先學會怎麼打矩陣才行

晚安~



2010年8月11日 星期三

C語言中for的運作

相信有寫過C語言的人,一定有使用過for。

但也許對於for裡面的實際運行情形不是很了解,

我覺得對於一個寫程式的人還是有必要知道。

以下面這個例子為例
   for (i=0 ; i<5; i++){
         ....
   }//end for

對於編譯器而言,會先執行 i=0

然後判斷 i是否小於5

最後執行完...的內容後,才會做i++

然後再做i<5的比較

也許這樣講大家不太清楚

下面這個範例會比較好

#include<stdio.h>
#include<stdlib.h>
int main(){
    int k=0;
    int i=0;
    for(i=0;k++,i<5;i++){
       printf("%d\n",i);       
    }//end for
    printf("i=%d k=%d",i,k);
system("pause");
}//end main

執行結果:
0
1
2
3
4
i=5 k=6請按任意鍵繼續 . . .

也就是for迴圈中以分號隔開的三個部份

最前面執行了1次,中間部份執行了6次 , 後面執行了5次

不知道這樣講解大家聽懂了嗎?