陣列和矩陣:

1、構造陣列的方法:增量發和linspace(first,last,num)first和last為起始和終止數,num為需要的陣列元素個數。

2、構造矩陣的方法:可以直接用[ ]來輸入陣列,也可以用以下提供的函式來生成矩陣。

ones( ) 建立一個所有元素都為1的矩陣,其中可以制定維數,1,2…。個變數

zeros() 建立一個所有元素都為0的矩陣

eye() 建立對角元素為1,其他元素為0的矩陣

diag() 根據向量建立對角矩陣,即以向量的元素為對角元素

magic() 建立魔方矩陣

rand() 建立隨機矩陣,服從均勻分佈

randn() 建立隨機矩陣,服從正態分佈

randperm() 建立隨機行向量

horcat C=[A,B],水平聚合矩陣,還可以用cat(1,A,B)

vercat C=[A;B],垂直聚合矩陣, 還可以用cat(2,A,B)

repmat(M,v,h) 將矩陣M在垂直方向上聚合v次,在水平方向上聚合h次

blkdiag(A,B) 以A,和B為塊建立塊對角矩陣

length 返回矩陣最長維的的長度

ndims 返回維數

numel 返回矩陣元素個數

size 返回每一維的長度,[rows,cols]=size(A)

reshape 重塑矩陣,reshape(A,2,6),將A變為2×6的矩陣,按列排列。

rot90 旋轉矩陣90度,逆時針方向

fliplr 沿垂軸翻轉矩陣

flipud 沿水平軸翻轉矩陣

transpose 沿主對角線翻轉矩陣

ctranspose 轉置矩陣,也可用A’或A。’,這僅當矩陣為複數矩陣時才有區別

inv 矩陣的逆

det 矩陣的行列式值

trace 矩陣對角元素的和

norm 矩陣或向量的範數,norm(a,1),norm(a,Inf)……。

normest 估計矩陣的最大範數向量

chol 矩陣的cholesky分解

cholinc 不完全cholesky分解

lu LU分解

luinc 不完全LU分解

qr 正交分解

kron(A,B) A為m×n,B為p×q,則生成mp×nq的矩陣,A的每一個元素都會乘上B,並佔據p×q大小的空間

rank 求出矩陣的刺

pinv 求偽逆矩陣

A^p 對A進行操作

A。^P 對A中的每一個元素進行操作

1.計算平面梁單元座標轉換矩陣的 MATLAB 程式:

1。 function T = TransformMatrix( ie )

2。 % 計算單元的座標轉換矩陣( 區域性座標 -> 整體座標 )

3。 % 輸入引數

4。 % ie ——- 結點號

5。 % 返回值

6。 % T ————- 從區域性座標到整體座標的座標轉換矩陣

7。 global gElement gNode

8。 xi = gNode( gElement( ie, 1 ), 1 ) ;

9。 yi = gNode( gElement( ie, 1 ), 2 ) ;

10。 xj = gNode( gElement( ie, 2 ), 1 ) ;

11。 yj = gNode( gElement( ie, 2 ), 2 ) ;

12。 L = sqrt( (xj-xi)^2 + (yj-yi)^2 ) ;

13。 c = (xj-xi)/L ;

14。 s = (yj-yi)/L ;

15。 T=[ c -s 0 0 0 0

16。 s c 0 0 0 0

17。 0 0 1 0 0 0

18。 0 0 0 c -s 0

19。 0 0 0 s c 0

20。 0 0 0 0 0 1] ;

21。 return

第 1 句定義一個名為 TransformMatrix 的函式,輸入的引數是 ie,返回值是 T。上面 2~6 行全部是註釋,用來說明該函式的主要功能以及輸入輸出引數的含義。第 7 行定義兩個全域性變數 gElement 和 gNode,它們的含義與前面計算等效結點力的函式中的一樣。只要得到梁單元兩個結點的座標,即可計算梁單元的座標轉換矩陣。第 8~11 行從 gNode 和 gElement 中得到兩個結點的座標。第 12~14 行得到了梁單元的長度及其傾斜角度的正弦和餘弦。第 15~20 生成了單元的座標轉換矩陣,並把它保存於變數 T中,在執行函式返回語句 return 後,就作為返回值傳遞給了呼叫該函式的程式段。

2.計算單元剛度矩陣的 MATLAB 程式

1。 function k = StiffnessMatrix( ie, icoord )

2。 % 計算單元剛度矩陣

3。 % 輸入引數:

4。 % ie ————- 單元號

5。 % icoord ——- 座標系引數,可以是下面兩個之一

6。 % 1 —— 整體座標系

7。 % 2 —— 區域性座標系

8。 % 返回值:

9。 % k ———— 根據 icoord 的值,相應座標系下的剛度矩陣

10。 global gNode gElement gMaterial

11。 k = zeros( 6, 6 ) ;

12。 E = gMaterial( gElement(ie, 3), 1 ) ;

13。 I = gMaterial( gElement(ie, 3), 2 ) ;

14。 A = gMaterial( gElement(ie, 3), 3 ) ;

15。 xi = gNode( gElement( ie, 1 ), 1 ) ;

16。 yi = gNode( gElement( ie, 1 ), 2 ) ;

17。 xj = gNode( gElement( ie, 2 ), 1 ) ;

18。 yj = gNode( gElement( ie, 2 ), 2 ) ;

19。 L = ( (xj-xi)^2 + (yj-yi)^2 )^(1/2) ;

20。 k = [ E*A/L 0 0 -E*A/L 0 0

21。 0 12*E*I/L^3 6*E*I/L^2 0 -12*E*I/L^3 6*E*I/L^2

22。 0 6*E*I/L^2 4*E*I/L 0 -6*E*I/L^2 2*E*I/L

23。 -E*A/L 0 0 E*A/L 0 0

24。 0 -12*E*I/L^3 -6*E*I/L^2 0 12*E*I/L^3 -6*E*I/L^2

25。 0 6*E*I/L^2 2*E*I/L 0 -6*E*I/L^2 4*E*I/L] ;

26。 if icoord == 1

27。 T = TransformMatrix( ie ) ;

28。 k = T*k*transpose(T) ;

29。 end

30。 return

第一行定義了計算單元剛度矩陣的函式 StiffnessMatrix,輸入引數是 ie 和 icoord,返回值是 k。它們的 含義見第 2~9 行的註釋。第 10 行定義了三個全域性變數 gNode,gElement 和 gMaterial。前面兩個已經作過 說明,gMaterial 是材料矩陣。每一行表示一種材料,它包括彈性模量 E,抗彎慣性矩 I 和截面積 A。第 15~19 行計算了單元的長度。第 20~25 行是構造區域性座標系下單元剛度矩陣。第 26~29 行是根 據輸入引數 icoord 的值,對單元剛度矩陣進行座標轉換。並把它儲存到返回值變數 k 中。

3.出整合單元剛度矩陣到整體剛度矩陣的 MATLAB 函式為

1。 function AssembleStiffnessMatrix( ie, k )

2。 % 把單元剛度矩陣整合到整體剛度矩陣

3。 % 輸入引數:

4。 % ie ——- 單元號

5。 % k ——- 單元剛度矩陣

6。 % 返回值:

7。 % 無

8。 global gElement gK

9。 for i=1:1:2

10。 for j=1:1:2

11。 for p=1:1:3

12。 for q =1:1:3

13。 m = (i-1)*3+p ;

14。 n = (j-1)*3+q ;

15。 M = (gElement(ie,i)-1)*3+p ;

16。 N = (gElement(ie,j)-1)*3+q ;

17。 gK(M,N) = gK(M,N) + k(m,n) ;

18。 end

19。 end

20。 end

21。 end

22。 return

很感謝大家看到了這,碼字不易,請點個贊和喜歡再走吧,謝謝啦~

如果覺得有幫助,點個收藏也是可以的呀~嘻嘻~~

關注我,我會更新更多土木相關的內容的!!點點關注不迷路!

有問題可以留言評論哦!持續更新!!!!!