数组与矩阵之间的关系是什么
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河南大学数学与统计学院2016~2017学年第一学期
MATLAB 基础A
实验论文
数组与矩阵之间的关系是什么?在数值计算和符号计算中怎样使
用?
摘要:通过本学期对MATLAB的学习,让我意识到MATLAB在我们生活中有着十分重要的作用,它强大的数学运算功能以及二维和三维图形的功能为我们的计算提供许多便捷之处,在以后的学习中时常运用MATLAB,定能让我更加深层次的了解MATLAB给我们带来的好处。今天我将简单介绍一下数组和矩阵的关系以及怎样在数组计算和符号计算中使用数组和矩阵。
关键词:数组矩阵数值计算符号计算
矩阵和数组的概念
在MATLAB的运算中,经常要使用标量、向量、矩阵和数组,这几个名称的定义如下:标量:是指1×1的矩阵,即为只含一个数的矩阵。
向量:是指1×n或n×1的矩阵,即只有一行或者一列的矩阵。
矩阵:是一个矩形的数组,即二维数组,其中向量和标量都是矩阵的特例,0×0矩阵为空矩阵([])。
数组:是指n维的数组,为矩阵的延伸,其中矩阵和向量都是数组的特例。
数组和矩阵的关系
数组和矩阵是MATLAB中基本的数据存在形式。一方面,数组是数据结构中的概念,有利于计算机实现层次上的计算;另一方面,矩阵是线性代数中的概念,有利于数学层次上的计算。
数组和矩阵的区别
数组是计算机中存储信息的一个概念,数组中的元素可以是数字,也可以是数值。
矩阵是计算科学当中的一个概念,矩阵中的元素只能是数值。
另外在运算方面也有区别:
对于乘法、乘方和除法等运算,矩阵运算与数组运算的运算符及含义都不同,
矩阵运算按线性变换定义,使用通常符号;
数组运算按对应元素运算定义,使用点运算符,对应元素进行运算。
矩阵和数组的算术运算
(1)矩阵和数组的加+、减运算-
(2)A和B矩阵必须大小相同才可以进行加减运算。
如果A、B中有一个是标量,则该标量与矩阵的每个元素进行运算。
(2) 矩阵和数组的乘法*运算
矩阵A的列数必须等于矩阵B的行数,除非其中有一个是标量。
数组的乘法运算符为“.*”,表示数组A和B中的对应元素相乘。A和B数组必须大小相同,除非其中有一个是标量。
(3) 矩阵和数组的除法
矩阵运算符为“\”和“/”分别表示左除和右除。
A\B=A-1*B
B/A =B*A-1
A/B=A*B-1
其中:A-1是矩阵的逆,也可用inv(A)求逆矩阵。
数组的除法运算表达式
“A.\B”和“A./B”,分别为数组的左除和右除,表示数组相应元素相除。 A和B数组必须大小相同,除非其中有一个是标量。
数值计算
MATLAB具有强大的数值计算功能,可完成矩阵分析、线性代数、多元函数分析、数值微积分、方程求解、边值问题求解、数理统计等常见的数值计算。
数值计算的常用运算单元是数值数组。MATLAB给出了大量的数值计算函数,基本上与理论数学、数值数学的数学描述式表达方式相同,便于编程和掌握。相对于具体的应用环境,需要根据实际情况查阅MATLAB函数列表,选择合适的函数和参数进行处理。
符号计算
和数值计算一样,算法也是符号计算的核心。符号计算比数值计算可以继承的数学遗产更为丰富。符号计算和数值计算是两种不同的解决科学和技术发展中问题的计算方法。符号计算可以得到问题精确地完备解,但是计算量大且表达形式庞大;数值计算可以快速的处理很多实际应用中的问题,但是一般只能得到近似的局部解。数值计算在处理病态问题时,收敛往往较慢容易出错。符号计算能给出精确结果,这一特点为用户提供了良好的使用环境,可避免由舍入误差引起的“病态问题”。
两种计算的特点
数值计算特点:
1)以数值数组作为运算对象,给出数值解;
2)计算过程中产生误差累积问题,影响计算结果的精确性;
3)计算速度快,占用资源少。
符号计算特点:
1)以符号对象和符号表达式作为运算对象,给出解析解;
2)运算不受计算误差累积问题的影响;
3)计算指令简单;
4)占用资源多,计算耗时长。
矩阵分解在数值计算中的应用
矩阵分解是将一个矩阵分解为比较简单的或具有某种特性的若干矩阵的和
或乘积。由于矩阵的这些特殊的分解形式,一方面反映了原矩阵的某些数值特性,如矩阵的秩、特征值、奇异值等;另一方面矩阵的分解方法与过程也为数值计算提供了重要的依据。
矩阵的三角分解
矩阵的三角分解法是一种有效而应用广泛的分解法,它是将矩阵分解为酉矩阵(或正交矩阵)与一个三角矩阵的乘积或三角矩阵与三角矩阵的乘积。
C nxn n,则A可唯一地分解为
设A∈
A=UR
其中U是酉矩阵,R是正线上三角矩阵,或A可唯一地分解为
A=LU
其中U是酉矩阵,L是正线下三角矩阵。
若矩阵A是满秩的n阶实方阵,就可以将此定理推广到实数域上,于是可得一下结论:推论1 设A∈R nxn n,则A可唯一地分解为
A=QR
其中Q是正交矩阵,R是正线上三角实矩阵,或A可唯一地分解为
A=LQ
其中U是正交矩阵,L是正线下三角实矩阵。
若A是实对称正定矩阵,则存在唯一的正线上三角实矩阵R,使
A=R T R
符号计算中的矩阵和数组
符号计算基础
定义符号变量
参与符号运算的对象可以是符号变量、符号表达式或符号矩阵。符号变量要先定义,后引用。可以用sym函数、syms函数将运算量定义为符号型数据。引用符号运算函数时,用户可以指定函数执行过程中的变量参数;若用户没有指定变量参数,则使用默认的变量作为函数的变量参数。
1 sym函数
sym函数的主要功能是创建符号变量,以便进行符号运算,也可以用于创建符号表达式或符号矩阵。用sym函数创建符号变量的一般格式为:
x = sym(‘x’)
其目的是将’x’创建为符号变量,以x作为输出变量名。每次调用该函数,可以定义一个符号变量。
2 syms函数
syms函数的功能与sym函数类似。syms函数可以在一个语句中同时定义多个符号变量,其一般格式为:
syms arg1 arg2 …argN
用于将rg1, arg2,…,argN等符号创建为符号型数据。
(二)默认符号变量
在数学表达式中,一般习惯于使用排在字母表中前面的字母作为变量的系数,而用排在后面的字母表示变量。例如:
f=ax2+bx+c
表达式中的a,b,c通常被认为是常数,用作变量的系数;而将x看作自变量。
例如,数学表达式
f=xn
g=sin(at+b)
根据数学式中表示自变量的习惯,默认a,b,c为符号常数,x为符号变量。
若在MATLAB中表示上述表达式,首先用syms 函数定义a,b,n,t,x为符号对象。在进行导数运算时,由于没有指定符号变量,则系统采用数学习惯来确定表达式中的自变量,默认a,b,c为符号常数,x,t为符号变量。
即:对函数f求导为:df/dx
对函数g求导为:dg/dt