第1章矩阵计算基本方法
本书基于MATLAB软件平台,以矩阵计算为主要特点,进行常用工程计算方法的介绍。MATLAB平台的特点是将矩阵运算作为核心。因此,本章首先介绍矩阵运算的基本原理、MATLAB平台下的矩阵运算方法以及数值计算、符号运算等基础知识。在后续的机械工程计算与分析的具体内容中,也将主要基于MATLAB平台的矩阵计算方式来加以说明。
1.1矩阵及其运算的基本方法
在数学中,矩阵(matrix)是一个按照长方阵列排列的实数或复数集合,昀早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;在计算机科学中,也需要用到矩阵。矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。对一些应用广泛而形式特殊的矩阵,例如稀疏矩阵和准对角矩阵,有特定的快速运算算法。关于矩阵相关理论的发展和应用,请参考《矩阵理论》。在天体物理、量子力学等领域,也会出现无穷维的矩阵,它是矩阵的一种推广。
下面以简单的机械臂运动学分析为例,说明矩阵在数值计算方法中的基本概念和基于MATLAB的矩阵运算方法。
某焊接机械臂的结构如图1-1所示。
图1-1焊接机械臂及其结构示意图
两个连杆的长度l1=0.5,l2=0.8,如图1-1(b)所示。机械臂的关节位置和连杆的位置之间的关系可以用简单的几何关系公式表达:
(1-1)
(1-2)
(1-3)
(1-4)
可以编写MATLAB程序加以计算,如下所述。
【例1-1】分别计算θ1=30°,θ2=45°以及θ1=110°,θ2=240°时,图1-1中机械臂关节位置和连杆位置之间的关系。MATLAB程序如下:
clear
clc
L1=0.5;
L2=0.8;
theda1=[30/180*pi110/180*pi];theda2=[45/180*pi(180+60)/180*pi];
x0=0;y0=0;
x1=L1.*cos(theda1);
y1=L1.*sin(theda1);
x2=L1.*cos(theda1)+L2.*cos(theda1+theda2);
y2=L1.*sin(theda1)+L2.*sin(theda1+theda2);
figure(1)
plot([x0,x1(1),x2(1)],[y0,y1(1),y2(1)],'-o')
figure(2)
plot([x0,x1(2),x2(2)],[y0,y1(2),y2(2)],'-o')
计算出的连杆位置如图1-2所示。
图1-2计算得到的连杆位置
【例1-2】已知焊接机械臂的结构如图1-1(b)所示,假设其关节的转动角度θ1=θ2=[0°5°10°15°20°25°30°],计算焊接机械臂的末端位置。
MATLAB程序如下:
clear
clc
theda1=[0:5:30]/180*pi
theda2=[0:5:30]/180*pi
L1=0.5;
L2=0.8;
xender=L1*cos(theda1)+L2*cos(theda1+theda2)
yender=L1*sin(theda1)+L2*sin(theda1+theda2)
plot(xender,yender,'o')
得到如图1-3所示的关节末端位置。
图1-3焊接机械臂的关节末端位置
所形成的关节角度和连杆末端位置均为矩阵表达,具体如下。
在上面的矩阵表达中,theda1为1行7列的矩阵。其他与此类似。
可以看出,在MATLAB中,矩阵可以定义为数值、向量或符号等多种形式的矩阵。矩阵的输入必须以方括号“[]”作为其开始与结束标志,矩阵的行与行之间要用分号“;”或“换行”分开,矩阵的元素之间要用逗号“,”或“空格”分隔。矩阵的大小可以不必预先定义,且矩阵元素的值可以用表达式表示。
注意,MATLAB语言的变量名称字符区分大小写,如字符a与A分别为独立的矩阵变量名。并且,MATLAB有很多自己的保留字,如pi等。在MATLAB语言命令行的昀后如果加上分号,则在命令窗口中不会显示输入命令所得到的结果。
1.2矩阵的定义与基本运算
由m×n个数组成的一个m行n列的矩形表格,称为m行n列矩阵,简称m×n矩阵。为表示它是一个整体,总是加上一个括号并用大写黑体字母表示它,记作
(1-5)
常见的多项式方程也可以用矩阵加以表达。例如:
【例1-3】将如下多项式方程用矩阵表达出来。
1x+2y+3z+20=0
4x+5y+6z+30=0
7x+8y+9z+40=0
编写MATLAB代码可以复现上述多项式方程,如下:
得到的结果具有一致性。系数矩阵、变量矩阵、常数矩阵分别如下:
下面介绍有关矩阵的8个方面的基础知识。
1.矩阵的加减法
定义两个m×n矩阵.()和B.b,矩阵A和B的和记作.,有
(1-6)
只有当两个矩阵是同型的矩阵时才能进行加法运算。矩阵的加法满足下列运算规律(A、B、C均为m×n矩阵):
(1)
(2)
矩阵的减法是
(1-7)
2.数与矩阵相乘
数.与矩阵A的乘积记作λA,即
(1-8)
数乘矩阵满足下列运算规律(A、B均为m×n矩阵,λ、μ为数):
(1)
(2)
(3)
3.矩阵与矩阵相乘
设矩阵A=(aij)ms为m×s矩阵,B=(bij)sn为s×n矩阵,矩阵A与矩阵B的乘积C是一个m×n矩阵,记作
矩阵乘法满足下列运算规律:
(1)
(2)
(3)
(4)
对于两个n阶方阵A、B,若AB=BA,则称方阵A与B是可交换的。
4.矩阵的转置
把m×n矩阵A=(aij)mn的行列互换得到一个新矩阵,称为A的转置矩阵,记作AT表示为
(1-10)
矩阵转置满足下列运算规律:
(1)
(2)
(3)
(4)
若A为n阶方阵(n×n矩阵),且满足AT=A,则A称为对称矩阵,它的元素以主对角线为对称轴对应相等。
5.方阵的行列式
由n阶方阵A的元素构成的行列式(各元素位置不变)称为方阵A的行列式,记作或detA。它是表示A按一定运算法则确定的一个数,表示为
(1-11)
展开