【正文】
a[ii]=p。 q=q+g*a[kk]。 附 錄 33 q=e*a[ii]+y*a[jj]。 i=j。 a[ii]=p。 q=q+g*a[kk]。 q=e*a[ii]+y*a[jj]。 j=m1。 y=xf*r/(p+s)。 if (k!=l) { a[k*n+k1]=s。 r=a[kk]*a[(l+2)*n+l+1]。 kk=(l+1)*n+l。 附 錄 31 } } else { x=a[ii]+a[ll]。 k++) { if (k!=l) { p=a[k*n+k1]。 j=m1。 for (j=l+2。 it=0。 u[m2]=u[m1]。 u[m2]=c/u[m1]。 y=sqrt(fabs(w))。 it=0。 附 錄 29 ll=(m2)*n+m2。(fabs(a[l*n+l1])eps*(fabs(a[(l1)*n+l1])+fabs(a[l*n+l])))) { l=l1。 m=n。 *b=c。 return 1。jn。k) { if((j=js[k])!=k) for(i=0。in。i++) 附 錄 27 if(i!=k) for(j=0。jn。in。 } if((i=is[k])!=k) for(j=0。 } } if((fmax+)==) { free(is)。j++) { temp=fabs(*(p+i*n+j))。 for(i=k。 js=(int *)malloc(n*sizeof(int))。j++) printf(%f ,*(p+i*n+j))。\n39。 int *is,*js,i,j,k,l。 for(j=0。in。 ab=a[0]。從論文的立題到最終完成,他們都給予了極大的關懷和幫助,并提出了 寶貴的意見。隨著科學技術的發(fā)展,矩陣運算也在各領域中廣泛應用。 稀疏矩陣迭代法 對于由工程技術中產生的大型稀 疏矩陣,由于零元較多,使用一般方法不但占內存,還會使運算更復雜,在這兩方面,迭代法通常都可以利用矩陣中有大量零元的特點。 顯然,每一次左變換僅改變矩陣的兩行,而每一次右變換僅改變矩陣的兩列。 QR 方法是一種變換方法,是計算一般矩陣全部特征值 問題的最有效的方法之一。row_c,col_c step4 如果 col_a==row_b 則 row_a 值賦給 row_c, col_b 值賦給 col_c 否則 退出 step5 初始化矩陣 a,b step6 把矩陣 c 賦值為 0 矩陣 step7 循環(huán) i 從 0 到 row_c 并且 i 自加 循環(huán) j 從 0 到 col_c 并且 j 自加 循環(huán) k 從 0 到 col_a 并且 k 自加 c[i][j] += a[i][k]*b[k][j]。 算法設計分析 矩陣乘法 前面我們討論過矩陣乘法的一般算法,即第一個矩陣的每一行乘以第二個矩陣的每一列,并且第一個矩陣的列數要等于第二個矩陣的行數。若 ? 是方陣 A 的一個特征值,齊次線性方程組 0)( ?? xAE? 必有非零解,此方程組的所有非零解都是 A 的對應于特征值 ? 的全部特征向量。 值得注意的是,特征向量一定是非零向量,即零向量不能作為特征向量。 A=?????????? ?313012321 , B=???????? 12 34 , C= ??????????774753021 解 因 |A|=6? 0,故 A 可逆, |A|中各元的代數余子式分別為 11A =(1)1+13101=3 12A =(1)1+233 02=6 13A =(1)1+31312=1 21A =(1)2+1 31 32 ? =9 22A =(1)2+2 33 31 ? =12 23A =(1)2+3 13 21 =5 31A =(1)3+101 32 ?=3 32A =(1)3+2 02 31 ? =6 33A =(1)3+312 21=3 于是 ???????????????????3516126393611 *1 AAA |B|=2? 0,所以 B 可逆。 在 n 階行列式 | ija |中,劃去元 ija 所在的第 i 行和第 j 列元后,余下的元按原來的次序構成的 n1階行列式,稱為元 ija 的余子式,記作 ijM 。如果 A 為 n 階方陣,且滿足 AT=A,則 稱 A 為對稱矩陣。 解 AB= ????????? ?11 11 ???????? ??11 11= ???????? 00 00 BA= ???????? ??11 11 ????????? ?11 11= ???????? ??22 22 由以上兩個例子可以看出,矩陣乘法一般不滿足交換律,即在一般情況下,8 用 C 語言實現矩陣的運算 AB? BA。 設 A=??ija 是一個 m s 矩陣, B=??ijb 是一個 s n 矩陣,規(guī)定矩陣 A 與矩陣 B 第二章 矩陣的幾種運算 7 的乘積是 m n 矩陣 C=??ijc ,記為 C=AB,其中 ??????? sk kjiksjisjijiij babababac 12211 ? (i=1,2,… ,m; j=1,2,… ,n) 由此可知,兩個矩陣的乘積也是一個矩陣,它的第 i 行第 j 列元等于左矩陣的第 i 行元與右矩陣的第 j 列 對應元乘積之和。 解 2A3B=2 ???????? ?? 312 0213 ???????? ?213 102 = ???????? ?? 624 042+ ???????? ???? 639 3066 用 C 語言實現矩陣的運算 = ???????? ??? ?? 1215 344 矩陣的乘法 矩陣乘法是出于研究線性方程組以及線性變換的乘法的需要建立起來的。如可通過連接矩陣、屬性矩陣和標識站矩陣描述高速公路的物理結構,通過規(guī)則矩陣描述收費清分規(guī)則。如基酒及調配液的配比計算模塊中,按目標含量、實際含量、調配液密度、成品密度、調配比數 N 類參 數,依照質量守恒原理,建立起質量平衡線性方程組;且編制有行列式計算模塊,可對任意階行列式進行計算,從而改變了傳統的逐次迭代算法,可直接對線性方程組進行解的存在性的判定和求解計算;小到針對單一的酒精度勾兌的配比計算,大到同時針對 30種目標成分、 31種基酒及調配液的調配比進行計算。 主對角線上全為 1 的 n 階對角矩陣,即 ??????????????111? 稱為 n 階單位陣,記作 nE 或 IE, 。j=1,2,… ,n 如果 A 是 n 階 方陣,從左上角到右下角的對角線,稱為 A 的主對角線;從右上角到左下角的對角線,稱為 A 的次對角線。j=1,2,… ,n)排成一個 m行 n列的矩陣數表: ??????????????mnmmnnaaaaaaaaa??????212222111211 2 用 C 語言實現矩陣的運算 就是 m n 矩陣,元全為 0的矩陣稱為零矩陣,記為 0;只有一行的矩陣: A=? ?naaa ?21 稱為行矩陣,也稱為行向量;為了避免元間的混淆,行向量也記作: A=? ?naaa , 21 ? 只有一列的矩陣: B=??????????????nbbb?21 稱為列矩陣,也稱為列向量。j=1,2,… ,n)稱為矩陣的第 i 行第 j 列元或 (i,j)元。有許多實際問題和數學研究對象常??梢杂靡粡垟当肀硎?。 關鍵詞: C 語言 矩陣運算 算法功能 ABSTRACT ABSTRACT Matrix operations are increasingly used in all aspects of the project. The monly used engineering software to solve matrix operations is Matlab. This software packages a lot of ways to achieve matrix operations. However, in engineering applications, many algorithms will use many more matrix putation in their process, especially in the advanced program language. So, it is unable to use Matlab to do this plex putation. As a widely used international puter language, C language has many characters, such as simple, pact, flexible, diverse and so on. However, a matrix based on the theory of modern control theory is applied to actual control system, need to do a lot of matrix operations. Because C language does not have the basic matrix putation, subtraction, multiplication and inversion functions, and increase the workload of programming and execution time.