第二章_MATLAB的数值运算

合集下载

第2章 MATLAB数值运算

第2章 MATLAB数值运算

第13页
(3)操作 ) cell:创建空的元胞数组 cellfun:为元胞数组的每个元胞执行指定的函数 celldisp:显示所有元胞的内容 cellplot:利用图形方式显示元胞数组 cell2mat:将元胞数组转变成为普通的矩阵 mat2cell:将数值矩阵转变成为元胞数组 num2cell:将数值数组转变成为元胞数组 deal:将输入参数赋值给输出 cell2struct:将元胞数组转变成为结构 struct2cell:将结构转变为元胞数组 iscell:判断输入是否为元胞数组
第1页
第2章 MATLAB数值运算 MATLAB数值运算
2.1 MATLAB运算对象 运算对象 2.2 矩阵 2.3 向量 2.4 数组 2.5 多项式 2.6 数据统计
第2页
2.1 MATLAB的运算对象 MATLAB的运算对象
2.1.1 MATLAB数据类型 数据类型
MATLAB所涉及的数据类型主要包括:数值、字符串、 逻辑、元胞、结构、类等。每一种类型的数据都是以矩阵 或数组的形式表现出来。
第18页
2.1.3 常量、变量和表达式
常量是指在程序执行过程中其值不发生变化的量。除 字面常量(常数)外,MATLAB中还有一些预定义的变 量称字符常量。除了用户自己定义的变量外,系统还定 义了一些特殊的变量和常数(见下表)。 【例2.2】 >>pi ans= 3.14159265358979 >>1/0 % 0/0 结果为Inf Warning:Divid by zero. ans= Inf
注意:format命令只影响数据输出格式,而不影响数据的计算 和存储。
第4页
2. 字符串类型
字符串是指包含在一对单引号中的字符集合,字符 字符串 串中的每个字符(含空格)都是字符数组的一个元素。 在MATLAB 中字符串和字符数组基本上是等价的。 >> s='hello, MATLAB' %定义字符串变量s s= hello, MATLAB >>s(2) ans = e s2=['hello, MATLAB'] s2= hello, MATLAB MATLAB中有关字符串操作的函数见下表,其帮助信 息可通过strings关键词查询。

第二章matlab02数值运算功能1

第二章matlab02数值运算功能1

范 例 3.1416 3.1416e+000
3.14159265358979
format long
15 位数字表示
format long e
15位科学记数表示
format rat 分数近似 format bank 两位小数
3.1415926535897 93e+000 355/113 3.14
MATLAB命令 format hex format +
realmax-系统所能表示的最大正实数: 系统所能表示的最大正实数: 系统所能表示的最大正实数 1.797693134862316e+308 realmin-系统所能表示的最小正实数: 系统所能表示的最小正实数: 系统所能表示的最小正实数 2.225073858507201e-308
7.变量查询和清除函数(变量操作) 变量查询和清除函数(变量操作)
可用load指令调用已生成的 指令调用已生成的mat文件 可用 指令调用已生成的 文件
load data
load data a b
即可恢复保 存过的所有 变量
load filename variables的使用说明 的使用说明
• 将以前用 将以前用save命令保存的变量 命令保存的变量variables从磁 命令保存的变量 从磁 盘文件中调入MATLAB工作空间。 工作空间。 盘文件中调入 工作空间 • 用load 命令调入的变量,其名称为用 命令调入的变量,其名称为用save命 命 令保存时的名称,取值也一样。 令保存时的名称,取值也一样。 • Variables所表示的变量列表中,不能用逗 所表示的变量列表中, 所表示的变量列表中 号,各个不同的变量之间只能用空格来分隔。 各个不同的变量之间只能用空格来分隔。 空格来分隔 • 未列出 未列出variables时,表示将磁盘文件中的 时 所有变量都调入工作空间。 所有变量都调入工作空间。

第二章 MATLAB数值计算

第二章 MATLAB数值计算

数值
复数 z=a+b*i或z=a+b*j z=a+bi或z=a+bj(当b为标量时) z=r*exp(i*theta) 得出一个复数的实部、虚部、幅值和相角。 a=real(z) %计算实部 b=imag(z) %计算虚部 r=abs(z) %计算幅值 theta=angle(z) %计算相角
变量
矩阵和数组运算
diag(X)产生X矩阵的对角阵 [l,u]=lu(X)方阵分解为一个准下三角方阵和一个上三 角方阵的乘积。l为准下三角阵,必须交换两行才能成 为真的下三角阵。 [q,r]=qr(X) m×n阶矩阵X分解为一个正交方阵q和一个 与X同阶的上三角矩阵r的乘积。方阵q的边长为矩阵X的 n和m中较小者,且其行列式的值为1。 [u,s,v]=svd(X) m×n阶矩阵X分解为三个矩阵的乘积, 其中u,v为n×n阶和m×m阶正交方阵,s为m×n阶的对角 阵,对角线上的元素就是矩阵X的奇异值,其长度为n和 m中的较小者。
第二章
MATLAB数值计算
2.1 变量和数值
数据类型
数据类型包括:数值型、字符串型、元胞型、结构 型等 数值型=双精度型、单精度型和整数类 整数类=无符号类(uint8、uint16、uint32、uint64)和 符号类 (int8、int16、int32、int64)
数值
数据的表达方式 可以用带小数点的形式直接表示 用科学计数法 数值的表示范围是10-309~10309。 以下都是合法的数据表示: -2、5.67、2.56e-56(表示2.56×10^-56)、 4.68e204(表示4.68×10^204)
E1=tril(A) E2=tril(A,1) D=triu(A) E=triu(A,-1)

第2章 MATLAB数据及其运算.

第2章 MATLAB数据及其运算.

8 1 d 3 5
(2)利用空矩阵删除矩阵的元素 a=[ ] a的维数为0。 例:a( 2 , : )= [ ]; 8 1 6 得: 3 5 7 a a= 4 9 2 8 1 6 4 9 2
2.3.5

复数(Com part)和虚部(imaginary part)组 成。 虚数单位用i或j来表示。 6+5i = 6+5j
format bank format rat
2.3 MATLAB矩阵的表示
2.3.1 矩阵 MATLAB中最基本的数据结构是矩阵(matrix)。 1*1的矩阵----标量(scalar): [5] 只有一行或一列的矩阵-----向量(vector): [1 3 5 7]
2 4 6 8
2.4 Matlab数据的运算(Operators ) 运算符(Operators )
+ Addition
*
Subtraction
Multiplication
/
\
Division
Left division
^
Power
2.4.1 算术运算 (1)矩阵加减运算: 两个同维矩阵,才能进行加减运算,对应无素相加减。 一个标量与矩阵相加减时,结果为这个标量与矩阵的 每一个元素相加减。 x=[2,-1,0;3 2 -4]; y=ones(2,3); x-y=? [1,-2,-1;2,1,-5] x+1=? [3,0,1;4,3,-3]
在线性代数中,本没有矩阵除法,它是由逆 矩阵引申来的。 MATLAB中,矩阵求逆(Matrix inverse)的函 数为: Y = inv(X) 方程A*X=B的解为:X=inv(A)*B=A\B, A\B称为A左除B,左除时要求两矩阵行数相等。 方程X*A=B的解为:X=B*inv(A)=B/A, A/B称为A右除B,右除时要求两矩阵列数相等。

第2章 MATLAB的基本操作-数值运算

第2章 MATLAB的基本操作-数值运算
否则返回0isempty判断是否空矩阵isequal判断两矩阵是否相同isreal判断是否是实矩阵find返回一个由非零元素的下标组成的向量53det计算矩阵所对应的行列式的值diag抽取矩阵对角线元素eig求特征值和特征向量inv求矩阵的逆阵lu三角分解poly求特征多项式rank求矩阵的秩svd奇异值分解54四向量列向量55101516采用空格或逗号分隔构成行向量10
3
13
2 关系运算








大于
等于
>
==
小于
不等于
<
~=
大于等于
>=
小于等于
<=
14
关系运算的结果类型为逻辑量 (0, 1)
>> x=2; >> x>3 ans = 0 >> x<=2 ans = 1
15
3 逻辑运算

逻辑运算符用于将关系表达式或逻辑量连接起来, 构成较复杂的逻辑表达式。逻辑表达式的值也是 逻辑量。
27
3变换矩阵结构的命令
对已输入矩阵结构作某种变换,即不改变矩阵中元素的总 数和各元素的取值,仅使其位置发生变换。 flipud(A):矩阵A上下翻转 fliplr(A):矩阵A左右翻转 rot90(A,k):A沿逆时针旋转K个90° rot90(A): A沿逆时针旋转90° reshape(A,m,n):输出一个M*N的矩阵,它有矩阵A的 K个元素重新排列构成的矩阵,重排 前后各元素在矩阵中的序号不变。

29
5建立大矩阵

大矩阵可由方括号中的小矩阵或向量建立起来。 A=1 2 3 4 5 6 7 8 9 则A(7)=3, A(3,2)=8, A(2,:)=4 5 6第2行, A(:,2)第2列 [m,n]=size(A),m,n分别为行数和列数

MATLAB课件第二章数值运算

MATLAB课件第二章数值运算

m=
2
运算
加 乘 左除 右除 幂次方
基本算术运算符
符号 运算
+

*
数组相乘
\
数组左除
/
数组右除
^ 数组幂次方
符号
.* .\ ./ .^
例1-1 求解算术表达式的值
[12 2(74) ]33
>> (12+2*(7-4))/3^3 ans =
0.6667
format命令
MATLAB命令 含 义
format short
yx 1x1
8 double array
Grand total is 2 elements using 16 bytes
>> clear xy yx
%删除变量xy及yx
>> whos
>> xy
%这时变量xy已经不存在了
??? Undefined function or variable 'xy'.
2.3 数学函数
2.1.2 关系运算
运算 符号 运算 符号
大于
>
小于
<
等于
==
不等于
~=
大于等于 >=
小于等于
<=
关系运算的结果类型为逻辑量 (0, 1)
>> x=2; >> x>3 ans =
0 >> x<=2 ans =
1
2.1.3 逻辑运算
逻辑运算符用于将关系表达式或逻辑量连接起来,构成 较复杂的逻辑表达式。逻辑表达式的值也是逻辑量。
A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16] B=[1,sqrt(25),9,13;2,6,10,7*2 3+sin(pi),7,11,15;4,abs(-8),12,16]

第二次课 第二章 MATLAB数值运算

第二次课 第二章 MATLAB数值运算

第二章数值、矩阵运算第一节数组和矩阵的创建◆数组:是指由一组实数或复数排成的长方阵列(Array)。

◆数组运算:是指无论在数组上施加什么运算(+、-、×、÷或函数),总认为那种运算对被运算数组中的每个元素(Element)平等地实施同样的操作。

◆目的:–使计算程序简单、易读,使程序指令更接近于教科书上的数学计算公式;–提高程序的向量化程度,提高计算效率,节省计算机开销。

Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2008For Evaluation Only.【掌握】⏹二维数组的创建◆直接输入法对于较小数组,从键盘上直接输入最方便。

二维数组必须有以下三个要素:–整个输入数组必须以方括号“[ ]”为其首尾;–数组的行与行之间必须用分号“;”或回车键隔离;–数组元素必须由逗号“,”或空格分隔。

◆利用M文件创建和保存数组对于今后经常需要调用的数组,尤其是比较大而复杂的数组,为它专门建立一个M文件是值得的。

【掌握】第二节数组元素的标识⏹一维数组的标识⏹二维数组的标识全下标标识:行下标,列下标优点:几何概念清楚,引述简单。

例:矩阵A=[ 1 2 3 4 56 7 8 9 1011 12 13 14 15 ]则A(2,3)= 8 , A(3,2)= 12A(3,5)= 15 , A(1,5)= 5单下标标识:就是“只用一个下标来指明元素在数组中的位置”。

一维编号:设想把二维数组的所有列,按先左后右的次序、首尾相接排成“一维长列”;然后,自上往下对元素位置进行编号。

例:矩阵A=[ 1 2 3 4 56 7 8 9 1011 12 13 14 15 ]①②则A(2)=6, A(5)=7, A(8)= 8 ,A(12)= 14【掌握】【掌握】◆单下标与全下标的转换关系:–以(m×n)的二维数组A为例,若“全下标”元素位置是“第r行,第c列”,那么相应的“单下标”为l=(c-1) ×m+r◆MATLAB有两个指令可实现以上表示方法间的转换:–Sub2ind 据全下标换算出单下标。

数学实验 第2章 MATLAB数值运算

数学实验 第2章 MATLAB数值运算




数学实验

例2.5 向量的点积和叉积运算.
>> A = [4 -2 1];
>> B = [1 -1 3];
>> C=dot(A,B)
%向量A和B的点积
C=
9
>> D = cross(A,B) %向量A和B的叉积
D=
-5 -11 -2


澡身浴德 修业及时
澡身浴德 修业及时
2.2 矩阵及其运算
① x(n)
表示向量中的第n个元素
② x(n1:n2)
表示向量中的第n1至n2个元素
例2.3 向量元素的引用、修改和扩展.
>> x=1:2:5
x=
1
3
5


数学实验

>> x(2)=6
%修改第2个元素为6
x=
1
6

>> x(5)=7
%增加第5个分量,第4个分量没有赋值,自动设为0
x=
1
6
5
0
7
>> x([1,end])
2
.
= ( , , . . . , )

1 2

.
.

叫做 n 维向量,向量的第 i 个分量称为 .


数学实验

2.1.1 向量的创建
MATLAB中向量可以由以下方法创建:
(1)元素输入法
在命令行窗口中直接输入,向量元素用“[ ]”括起来,元素之间用空格、逗号或分
号分隔.用空格和逗号分隔生成行向量,用分号分隔生成列向量.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0.4057 0.9355 0.9169
0.4103 0.8936 0.0579
0.3529 0.8132 0.0099
2.2.1 矩阵变量赋值方法
已知控制系统的3个特征根 构造系统的伴随矩阵。 个特征根, 例2.9 已知控制系统的 个特征根,构造系统的伴随矩阵。 sysroot=[-1 –2 –3];%3个特征根 个特征根 a=poly(sysroot); %得到特征方程的系数向量 得到特征方程的系数向量 b=[a(4),a(3),a(2)]; comp=[zeros(2,1),eye(2);-b]; comp = %控制系统的伴随矩阵为 控制系统的伴随矩阵为 0 1 0 % |0 1 | 0 0 1 % |: …. | -6 -11 -6 % |0 ………. 1 | % |-a(n) –a(n-1)… -a(2)|
2.1 基本语法结构
2.1.2 函数语句 MATLAB中除赋值语句外的其他语句 中除赋值语句外的其他语句 a=[1 2 3];b=[4 ;5 ;6]; %赋值语句 赋值语句 c=a*b %乘运算 乘运算 x=0.9; y=sin(x); 2.1.3 结构变量 1.结构变量的创建 1)直接创建 ='hello‘; patient.bill=50; patient.home='jinan‘;
u= 4.0000 0 0 6.0000 7.0000
1.0000 -2.5000 0 2.5000
2.2.4 矩阵分解运算
3.QR分解 分解 [Q,R]=qr(A) 做矩阵的正交三角形分解 >>a=[1 1 1;2 -1 -1;2 -4 5]; >>[q,r]=qr(a) q= -0.3333 -0.6667 -0.6667 r= -3 0 0 3 -3 0 -0.6667 -0.6667 -0.3333 0.6667 0.6667 -0.3333
2.1.5 永久变量
matlab中预定义的一些特殊的量。 中预定义的一些特殊的量。 中预定义的一些特殊的量 i,j 虚数单位 Realmin 最小的正浮点数, 最小的正浮点数, pi 圆周率 Realmax 最大的浮点数, 最大的浮点数, eps 浮点运算的相对精度 Inf 无穷大 NaN not a number ,不定值
2.2.4 矩阵分解运算
2.LU分解 分解 [L,U]=lu(A) 又称三角分解,目的是分解成一个下三角阵 和 又称三角分解,目的是分解成一个下三角阵L和 一个上三角阵U的乘积 的乘积, 一个上三角阵 的乘积,即A=L×U = × >> a=[1 2 3;2 4 1;4 6 7]; >> [l,u]=lu(a) l= 0.2500 0.5000 1.0000 0.5000 1.0000 0 1.0000 0 0
第二章 MATLAB的数值运算 的数值运算
MATLAB具有强大的数值运算能力,它是基于矩阵的 具有强大的数值运算能力, 具有强大的数值运算能力 运算工具。 运算工具。 2.1 基本语法结构 MATLAB语言的所有运算都是基于矩阵运算来完成的 语言的所有运算都是基于矩阵 语言的所有运算都是基于矩阵运算来完成的 所有变量都定义为矩阵 所有变量都定义为矩阵 所有的运算都是关于矩阵的运算。 矩阵的运算 所有的运算都是关于矩阵的运算。 对于传统的标量运算, 中单独定义了点运算。 对于传统的标量运算,在MATLAB中单独定义了点运算。 中单独定义了点运算 2.1.1变量与赋值语句 变量与赋值语句 (1)变量名称:字母+数字,以字母开头,长度最大为63个 )变量名称:字母 数字,以字母开头,长度最大为 个 数字 字母, 字母,区分大小写 函数。 (2)变量性质:全为矩阵,size()函数。 )变量性质:全为矩阵, 函数
>> a=[1 2;3 4] >> b=[2 3]; >> c=a/b c = 0.6154 1.3846
2.2.3 矩阵特征运算
特征值函数 eig() 奇异值函数 svd() () Ax || A || = max | x | 范数函数 norm() () ∀ x 秩函数 rank 迹函数:矩阵所有对角线上元素的和称为矩阵的迹。 迹函数:矩阵所有对角线上元素的和称为矩阵的迹。trace() () 条件数函数:判断矩阵的“病态”程度。 条件数函数:判断矩阵的“病态”程度。 cond() || A−1 || • || A || () K= 矩阵的行列式运算函数 det() () 例:计算矩阵的特征值与奇异值 >> svd(a) ans = >> a=[1 2;3 4] ans = -0.3723 >> eig(a) 5.4650 5.3723 0.3660
2.1 基本语法结构
(3)变量赋值 ) 常数赋值:如上例中矩阵A的赋值 的赋值, 常数赋值:如上例中矩阵 的赋值,x=9; 字符串赋值: 字符串赋值:f1=‘This is a string’; 表达式赋值: 表达式赋值:f2=‘exp(-2*x)*sin(x/5)’; (4)变量查询 变量查询 (A) 变量值的查询:直接键入变量名 变量值的查询: (B)变量信息:who,whos命令 )变量信息: 命令 >> whos A Name Size Bytes Class A 3x2 48 double array Grand total is 6 elements using 48 bytes
-3 3 -3
将矩阵A做正交 化分解,使得 Q*R=A , 其 中 Q 为正交矩阵(其 范数为1,指令 norm(Q)=1) , R 为对角化的上三 角矩阵。
2.3 基本数学函数
MATLAB的基本数学函数十分丰富,包括: 的基本数学函数十分丰富,包括: 的基本数学函数十分丰富 三角函数: 双曲正弦), 反正弦), 三角函数:sin,sinh(双曲正弦), 双曲正弦),asin(反正弦), 反正弦),asinh, cos,cosh,acos,acosh, atan2( 四象限反正切) …… 四象限反正切) , 指数函数: 平方根) 指数函数:exp,log,log10,sqrt(平方根) 平方根 复数函数: 共轭复数), 复数函数:abs,angle,congj(共轭复数), 共轭复数),image,real 数值运算: ( 取整), 向负无穷取整), 数值运算:fix(向0取整), 取整),floor(向负无穷取整), 向负无穷取整 ceil(向正无穷取整), 向正无穷取整), 向最近整数圆整) 向正无穷取整),round(向最近整数圆整) 向最近整数圆整 rem(求余), 求余), 根据符号取值) 求余),sign(根据符号取值) 根据符号取值 矩阵函数: 矩阵函数:expm,logm,… >> log(8) 例:>> sin(2) ans = ans = 2.0794 0.9093
2.1 基本语法结构
>> A=[1 2;3 4;5 6]; >> size(A) ans = 3 2 矩阵用“ 作为标识符 作为标识符, 矩阵可省略“ 。 矩阵用“[]”作为标识符,1*1矩阵可省略“[]”。矩阵 矩阵可省略 的 行元素之间用空格或“ 分隔,各行之间用“ 分隔。 行元素之间用空格或“,”分隔,各行之间用“;”分隔。 如: >> A=[1 2;3 4;5 6] %或A=[1,2;3,4;5,6] 或 A= 1 3 5 2 4 6
>>1/0 Warning: Divide by zero. ans = Inf >>0/0 Warning: Divide by zero. ans = NaN
2.2 矩阵运算
2.2.1 矩阵变量赋值方法 1.直接赋值 直接赋值 >> a=[1 1+2i;2+i exp(1)] a= 1.0000 1.0000 + 2.0000i 2.0000 + 1.0000i 2.7183 2.增量赋值 增量赋值 格式: 初值 增值: 初值: 格式:x=初值:增值:终值 >> x=1:0.1:1.2 x= 1.0000 1.1000 1.2000 增量缺省时默认赋值 初等矩阵赋值 zeros(m,n) ones(m,n) eyes(m,n) rand(m,n) randn(m,n) rand(3,4) ans = 0.9218 0.7382 0.1763
m*n全0矩阵 全 矩阵 m*n全1矩阵 全 矩阵 m*n单位矩阵 单位矩阵 m*n随机矩阵,0~1之间均匀分布 随机矩阵, 随机矩阵 之间均匀分布 m*n随机矩阵,正态分布,期望值 随机矩阵, 随机矩阵 正态分布,期望值0
2.2.2 矩阵常规运算
矩阵的常规运算应符合矩阵维数的要求,其常规运算符有: 矩阵的常规运算应符合矩阵维数的要求,其常规运算符有: +; - ; *; .*; ^; .^; \; / ; ./ ; ; ; a’ ; inv(a) 矩阵翻转 矩阵翻转fliplr,flipud,rot90 关于除法
左除“ 相当于Ax=B的解,x=A-1B。 的解, 左除“\”: 相当于 的解 。 右除“ :相当于xA=B的解,x=BA-1 的解, 右除“/”:相当于 的解
2.2.4 矩阵分解运算
1.奇异值分解 对任意矩阵 ,存在酉阵 、V,使得 奇异值分解:对任意矩阵 奇异值分解 对任意矩阵A,存在酉阵U、 , U*S*V=A,其中 其中S=diag(s1,s2,…sp),si非负,且 非负, 其中 非负 s 1 ≥ s 2 ≥ ... ≥ s p ≥ 0 为矩阵A的第 称si为矩阵 的第 个奇异值 为矩阵 的第i个奇异值 [U,S,V]=svd(X) 其中 =U×S×V’ 其中X= × × >>a=[1;1]; >>[U,S,V]=svd(a) U = -0.7071 -0.7071 -0.7071 0.7071 S = 1.4142 0 V = -1
相关文档
最新文档