复矩阵(complex matrix)是指元素中含有复数的矩阵。
MAPDL的绝大多数运算都支持复矩阵和复向量运算,其运算方法与实矩阵相同。
复矩阵(行、列)可以看做是三维的实矩阵,即3D的“面1”表示复矩阵的实部元素,而“面2”表示复矩阵的虚部元素。复矩阵AC(m*n)看做AC(m*n*2)便可赋值或提取复矩阵的元素值,如AC(I,J,1)为复矩阵的元素(I,J)实部值,而AC(I,J,2)就是复矩阵的元素(I,J)虚部值。
下面以命令流方式给出复矩阵的各种运算及结果(图1)。
!定义AC_M为2*3的复矩阵
*DMAT,AC_M,Z,ALLOC,2,3
!对AC_M赋值,可用APDL方式
*DO,I,1,2
*DO,J,1,3
AC_M(I,J,1)=I J/10
AC_M(I,J,2)=I J/10 J/100 J/1000
*ENDDO
*ENDDO!
*PRINT,AC_M
!元素值类似第2行第1列的2.1 2.111I
!比例缩放(实、虚同缩放)
*SCAL,AC_M,10
!加减运算-乘常数
*AXPY,,,,0.1,,AC_M
!加减运算-乘复数
*AXPY,,,,1,1,AC_M
!复矩阵相乘
*DMAT,BC_M,Z,ALLOC,3,2
*INIT,BC_M,CONST,1,2
*MULT,AC_M,,BC_M,,CC_M
!复矩阵扩展与裁剪
*MERGE,CC_M,AC_M,3,COL
*REMOVE,CC_M,4,5,COL
!复矩阵范数计算
*NRM,CC_M,NRM1,PAR1
*NRM,CC_M,NRM2,PAR2
!PAR1=45.9119851
!PAR2=48.0678330
!复矩阵压缩
*COMP,CC_M,MGS
!重新对BC_M充值且分为两个实矩阵
!读取复矩阵的实部和虚部
*INIT,BC_M,CONST,1.123456789,2.987654321
*DMAT,BCR_M,D,COPY,BC_M,REAL
*DMAT,BCI_M,D,COPY,BC_M,IMAG
*EXPORT,BCR_M,APDL,BCR
*EXPORT,BCI_M,APDL,BCI
!复方程求解,此处仅为示例
*DMAT,AC_M,Z,ALLOC,3,3
AC_M(1,1,1)=3,2,0
AC_M(1,2,1)=0,5,2
AC_M(1,3,1)=1,1,6
AC_M(1,1,2)=4,1,1
AC_M(1,2,2)=1,8,0
AC_M(1,3,2)=0,-1,7
*DMAT,DC_M,Z,ALLOC,3,3
DC_M(1,1,1)=1,1,2
DC_M(1,2,1)=0,0,3
DC_M(1,3,1)=4,6,4
DC_M(1,1,2)=0,5,0
DC_M(1,2,2)=3,0,5
DC_M(1,3,2)=-1,7,0
*LSENGINE,,MYSOLVER,AC_M
*LSFACTOR,MYSOLVER
*LSBAC,MYSOLVER,DC_M,XC_M!
声明:原创文章,欢迎留言与我讨论,如需转载留言