第 2 章 matlab数值计算第二次课

合集下载

第二讲道客巴巴MATLAB的数值计算

第二讲道客巴巴MATLAB的数值计算

例 在区间[20,50]内均匀分布的5阶随机 矩阵。
命令如下:
x=20+(50-20)*rand(5) 此外,常用的函数还有reshape(A,m,n), 它在矩阵总元素保持不变的前提下,将 矩阵A重新排成m×n的二维矩阵。
也可用linspace函数产生行向量。其调用 格式为: linspace(a, b, n) 其中a和b是生成向量的第一个和最后一 个元素,n是元素总数。 例 》a=linspace(1 , 10 , 10)
当一个指令或矩阵太长时,可用••• 续行
冒号的作用 用于生成等间隔的向量,默认 间隔为1。 用于选出矩阵指定行、列及元 素。 循环语句
2.用matlab函数创建矩阵
空阵 [ ] — matlab允许输入空阵,当一 项操作无结果时,返回空阵。 rand —— 随机矩阵 eye —— 单位矩阵 zeros ——全部元素都为0的矩阵 ones ——全部元素都为1的矩阵 diag ——产生对角矩阵
a=[1,2,3;4,5,6;7,8,9];a^2 ans =30 36 42
66 81 96 102 126 150
※当一个方阵有复数特征值或负实 特征值时,非整数幂是复数阵。
a^0.5
ans =
0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -0.3487i 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717i
3.conv多项式乘运算(向量卷积)
例:a(x)=x2+2x+3; b(x)=4x2+5x+6; c = (x2+2x+3)(4x2+5x+6) a=[1 2 3];b=[4 5 6]; c=conv(a,b)或c=conv([1 2 3],[4 5 6]) c = 4.00 13.00 28.00 27.00 18.00 p=poly2str(c,‘x’) 其中x表示自变量 p = 4 x^4 + 13 x^3 + 28 x^2 + 27 x + 18

2 Matlab基础第二次课

2 Matlab基础第二次课

与 或 非 异或 先决与 先决或
& a&b | a|b ~ ~a xor(x,y) xor(a,b) && || a&&b a||b
逻辑运算优先级
括号 幂,点幂 正号,负号,逻辑非 乘,除,点乘,点除 加,减 冒号运算 关系运算 逻辑与& 逻辑或| 先决与&& 先决或||
数学建模专题一 -Matlab 基础
数学建模专题一 -Matlab 基础
表达式 expression 可以是行向量,也可以是矩阵
例: 已知
y 1
1 3

1 5

1 2n 1
,当 n=100 时,求 y 的值
clear; y=0; for k=1:100 y=y+1/(2*k-1); end
while 循环
while expression (条件) statement(循环体) end
解题步骤:
(x π ) , 2 e 例:计算分段函数的数值y?y ln (x ( 1 x 2 ) ) , 2
if 条件语句
数学建模专题一 -Matlab 基础
x 0
x 0
(1) 建立M文件fdfun.m; x=input('请输入x的值:'); (2) 输入右面代码;
解题步骤:
顺序结构
数学建模专题一 -Matlab 基础
顺序结构
3、程序暂停 暂停程序的执行可以使用pause函数,其调用 格式为: >> pause(延迟秒数) >> pause
直接使用pause,将暂停程序,按任一键后程序继续执行。
4、强制中止程序 Ctrl+C键

第2章 MATLAB矩阵及其运算第二次

第2章  MATLAB矩阵及其运算第二次

x为标量。 A^3=A*A*A
2.点运算(重要)
在MATLAB中,有一种特殊的运算,其运算
符是在有关算术运算符前面加点,叫点运算。
点运算符有.*、./、.\和.^。 点运算运算规则:两矩阵对应元素进行相关运算, 要求两矩阵的维参数相同。 A=[2,2;2,2];
B=[2,2;1,1];
A.*B;A./B;B.\A; A.^B;
例2-9 建立矩阵A,然后找出大于4的元素的位置。
(1) 建立矩阵A。 A=[4,-65,-54,0,6;56,0,67,-45,0];
(2) 找出大于4的元素的位置。
k=find(A>4) %找元素序号 A(k)
2.4 矩阵分析
2.4.1 对角阵与三角阵 1.对角阵 只有对角线上有非0元素的矩阵称为对角矩阵,
revch=ch(end:-1:1) k=find(ch>=‘a’ &ch<=‘z’ ); ch(k)=ch(k)-(‘a’ -‘A’ ); 应的大写字母? char(ch)
运算。 运算规则:A和B矩阵内的相应位置(下标相同) 的元素相加减。注意:A和B矩阵的维数相同。 (如果A与B的维数不相同,则MATLAB将给出错
误信息,提示用户两个矩阵的维数不匹配。)
标量可以和矩阵进行加减运算,标量与矩阵内 每一元素相加减。A+b=b+A
(2) 矩阵乘法 两个矩阵A和B,矩阵相乘A*B。 运算规则:线性代数?
例2-13 建立一个字符串向量,然后对该向量做如下
处理: (1) 取第1~5个字符组成的子字符串。
(2) 将字符串倒过来重新排列。
(3) 将字符串中的小写字母变成相应的大写字母, 其余字符不变。 (4) 统计字符串中小写字母的个数。

第二讲 MATLAB基本运算

第二讲 MATLAB基本运算

g(1,:)=[]
%删除整个一行
2022/10/31
17
2.2 矩阵基础与操作(续)
矩阵连接(由小矩阵连接成大矩阵) 例如: ag=[a ones(size(a)); zeros(size(a)) -a]
ag1=[a;10 11 12], ag2=[a [10 11 12]']
2022/10/31
2022/10/31
19
2.2.2 向量(数组)的生成
向量是仅有一行或一列的矩阵,所以矩阵的创 建方法适用于向量 a=m:p:n %以m为起点n为终点生成步
长为p的均匀等分向量 a=m:n %p=1时可省略 linspace(m,n,s) %生成始于m终于n的s个线
性等分点 linspace(m,n) % s=100时可省略
第 2 章 MATLAB基本操作
2.1 MATLAB表达式 2.2 矩阵基础与操作 2.4 逻辑和关系运算 2.5 操作和特殊字符 2.6 基本矩阵和矩阵操作 2.7 基本数学函数
2022/10/31
1
2.1.1 变量
MATLAB 语言的变量名规则
以字母开头,后面可跟字母、数字、下划线 区分字母大小写 注:不需声明,不需指明类型
2022/10/31
3
2.1.3 数值
通过菜单可设置数值的输出格式 复数的产生
c=a+i*b %产生实部为a虚部为b的复数c real(c) %求复数c的实部 imag(c) %求复数c的虚部
2022/10/31
4
2.1.4 运算符
数学运算符 关系运算符 逻辑运算符 位运算符 集合运算符
2022/10/31
x1=a+b, x2=b*a, x3=a*c, x4=a*d, x5=a.*d y1=a-10, y2=diag(a), y3=diag([10 20 30]) z1=fliplr(e), z2=flipud(e), z3=reshape(e,4,2) z4=cat(1,e,f) z5=cat(2,e,f) z6=cat(3,e,f) z7=repmat(c,2,2), z8=fix(100*(10-20*rand(2,5)))/100

现代数值计算方法(MATLAB版)第2章(2)

现代数值计算方法(MATLAB版)第2章(2)
Back Close 6/12
福建师范大学
数计学院
if k==N, Warning(’ disp([’k=’,num2str(k)]) 2.1 Jacobi 0.76 −0.01 −0.01 0.88 −0.14 −0.03 −0.16 0.06
’); end
−0.14 −0.03 1.01 −0.12
:
福建师范大学
数计学院
11/12
1 2 − λ = 0, 4 3
−1 1/2
Back Close
λ1 = 0, λ2 = −
11 , λ3 = 12 11 < 1, 12
11 . 12
福建师范大学
数计学院
ρ(BJ ) = .
12/12
Back Close
Back Close
>> x=majacobi(A,b)
福建师范大学
k= 13 x = 1.27616261026619 1.29806392739565 0.48904201392258 1.30273287985933 §2.1.2 Jacobi , .
数计学院
8/12
Back Close
2.6 Jacobi (1) (2) (3) BJ BJ
A = (A − D) + D, Ax = b Dx = (D − A)x + b,
Back Close
x = D−1(D − A)x + D−1b.
福建师范大学
数计学院
x(k+1) = D−1(D − A)x(k) + D−1b
(2.12)
4/12
x(k+1) = BJ x(k) + fJ , BJ = D−1(D − A) = I − D−1A, fJ = D−1b. (2.13) Jacobi Jacobi 2.1 (Jacobi 1 2 (2.11) x(0), (2.12) ) ε, x(k+1) N, , (2.13) BJ Jacobi

第二讲Matlab的基本计算PPT课件

第二讲Matlab的基本计算PPT课件

元胞数组
特点:
1) 元胞数组的每一个基本组成部分成为一个元胞 (cell),元胞在数组中以下标来进行区分。
2) 元胞可以是任何类型、任意大小的数组(例如:数值 数组、字符串数组、符号对象等等)。
3) 一个元胞数组中各个元胞可以是不同类型的内容。 4) 元胞数组的维数不受限制。 注意:
圆括号对“( )”和花括号对“{ }”的不同作用。 A( 2,3 ):表示元胞数组A第 2 行第 3 列的元胞。 A{ 2,3 }:表示元胞数组A第 2 行第 3 列的元胞中的内容。
Str =Exm03_2.m is an example!
利用串转换函数创建字符串
常用的有:int2str , num2str , mat2str
int2str : 整数数组转换成字符串,非整数四舍五入。
num2str : 非整数数组转换成字符串。
mat2str : 数值数组转换成字符串。a1/a2/a3-均为字符串 区别:
数据类型
四种基本数组类型:数值、字符、元胞、结构数组。
数组类型
数值数组 (Numeric Array)
字符串数组 (Character String Array)
基本 组分
组分内容
双精度实数标量(MATLAB系统 默认) 双精度复数标量 字符
基本组分 占用字节
数 8
16 2
(Cell Array)
可以存放任意类型、任意大小的 不定 数据
❖ >> C = char( '这是', '元胞数组' );
%两行的字符串数组
❖ R = reshape( 1:9,3,3 );
% 3*3 的数值数组
❖ S = sym( 'sin(-3*t)*exp(-t)' ); %符号表达式

第二章matlab02数值运算功能2

第二章matlab02数值运算功能2
a*b ans = 25 55 85 a.*b 37 85 133 46 109 172 ans = 2 4 49 8 15 72 18 3应元素间的商 给出a,b对应元素间的商 对应元素间的商. a.\b=b./a a./b=b.\a — 都是 的元素除以 的对应元素 都是a的元素除以 的元素除以b的对应元素 a.\b=b./a — 都是 的元素除以 的对应元素 都是b的元素除以 的元素除以a的对应元素
2.4.3矩阵的关系和逻辑运算 矩阵的关系和逻辑运算
1.矩阵的关系运算符:<, >, <=, >=, = =, ~= 矩阵的关系运算符: 矩阵的关系运算符 • 矩阵之间的每个元素进行比较,运算结果 矩阵之间的每个元素进行比较, 为与原矩阵大小一样的由0 为与原矩阵大小一样的由0和1组成的矩阵 注意:1=<a<=2错误 注意: 错误 例: 1<=a<=2正确 = 正确
• •
§2.4 矩阵的运算
矩阵的数学运算 矩阵的点(数组 运算 矩阵的点 数组)运算 数组 矩阵的关系和逻辑运算
2.4.1矩阵的数学运算 矩阵的数学运算
矩阵运算符 含义 A’ 矩阵转置 A+B 矩阵相加 A-B 矩阵相减 A*B 矩阵相乘 A/B 矩阵相除(右除) 矩阵相除(右除) B\A 矩阵相除(左除) 矩阵相除(左除) A^n A阵的 n次幂 阵的 次幂
x X = y z
10 B = 5 −1
要解上述的联立方程式, 要解上述的联立方程式,可利用矩阵左除 \ 做运 时要求A、 的行数相等 相等。 算,即:X=A\B, 左除时要求 、B的行数相等。 , 左除时要求
如果将原方程式改写成 X*A=B,且令 X, A 和 B , 分别为

第二章 MATLAB的数值计算(修改版)

第二章 MATLAB的数值计算(修改版)

2.2.3 矩阵的基本运算
矩阵的乘(*)运算
规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。 例如: a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b c =14 32 23
2.2.3 矩阵的基本运算
矩阵的除运算 矩阵除的运算在线性代数中没有,有矩阵逆的运算,在matlab中有两种 矩阵除运算即左除和右除 左除‚\”: 相当于Ax=B的解,x=A-1B。 右除‚/”:相当于xA=B的解,x=BA-1 此外,矩阵也可和常数进行除运算,此时常数只能作为除数
方法二 冒号生成 基本格式:x=x1:step:x2 x=x1:x2 比如: D = 4:0.5:9 E = 5:9
2.1.3 向量的运算
与数的运算 比如: A = 0:9; B = A-1 C = A*2 点积运算 指两个向量在其中一个向量方向上的投影的乘积。 dot(a,b) a,b必须同维 比如: A = 0:3; B = 1:4; C = dot(A,B)
注意:MATLAB函数名必须小写
2.2.2 矩阵的修改
方法一:直接修改 可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即 可修改。 方法二: 指令修改 可以用A(,)= 来修改。 比如: 对于A=[1 2 3;4 9 6;7 8 9],若将其中的9修改为5,则可以通过上述的两 种方法: 法一不用介绍; 方法二可使用A(2,2)=5来修改
特征多项式的特点:
(1)特征多项式一定是n+1维的 (2)特征多项式第一个元素一定是1
根据多项式对应的全部根可建立其特征多项式: poly —— 产生特征多项式系数向量
已知一个多项式的全部根X求多项式系数的函数是poly(X),该函数返回以X为 全部根的一个多项式P,当X是一个长度为m的向量时,P是一个长度为m+1的 向量。

matlab2-数值计算new1

matlab2-数值计算new1
ascii文件
用load指令调用已生成的mat文件。
1. load —— 2. load data —— 3. load data a b —— 4. load data a b -ascii
即可恢复保存 过的所有变量
mat文件是标准的二进制文件,还
可以ASCII码形式保存。
5.矩阵运算

矩阵加、减(+,-)运算
a(:,3)=0 a=1 3 7 2 0 8 0 0 0
a =1 0 7
2 0 8
0 0 9
3) 删除行或列
将行或列指定为空数组,可以删除行或列 A=[16 2 2 13;5 3 11 8;9 4 7 12;4 5 14 1] X = A;删除第二列 X(:,2) = [ ] X= 16 2 5 9 11 7 13 8 12
5)矩阵的组合 C=[A B]
C=[A;B]
4.数据的保存与获取

把matlab工作空间中一些有用的数据长久保存下来的方法是生 成mat数据文件。 1. save —将工作空间中所有变量保存matlab.mat中
2. 3. 4. 5. 6.
save data—将工作空间中所有变量保存为data.mat
矩阵分析
1. 矩阵行列式det 通常用来判断矩阵是否奇异
>>A=magic(3) A= 8 1 6 3 5 7 4 9 2 >>det(A) ans=-360
2. 矩阵的逆inv 对于线性方程组A*X=b, 有X=inv(A)*b
>>A=magic(3) A= 8 1 6 3 5 7 4 9 2 >>B=inv(A) B= 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028

第2章 MATLAB数值计算

第2章  MATLAB数值计算

第2章 MATLAB数值计算MATLAB的数学计算=数值计算+符号计算其中符号计算是指使用未定义的符号变量进行运算,而数值计算不允许使用未定义的变量。

2.1 变量和数据2.1.1数据类型数据类型包括:数值型、字符串型、元胞型、结构型等数值型=双精度型、单精度型和整数类整数类=无符号类(uint8、uint16、uint32、uint64)和符号类整数(int8、int16、int32、int64)。

2.1.2数据1. 数据的表达方式▪可以用带小数点的形式直接表示▪用科学计数法▪数值的表示范围是10-309~10309。

以下都是合法的数据表示:-2、5.67、2.56e-56(表示2.56×10-56)、4.68e204(表示4.68×10204)2. 矩阵和数组的概念在MATLAB的运算中,经常要使用标量、向量、矩阵和数组,这几个名称的定义如下:▪标量:是指1×1的矩阵,即为只含一个数的矩阵。

▪向量:是指1×n或n×1的矩阵,即只有一行或者一列的矩阵。

▪矩阵:是一个矩形的数组,即二维数组,其中向量和标量都是矩阵的特例,0×0矩阵为空矩阵([])。

▪数组:是指n维的数组,为矩阵的延伸,其中矩阵和向量都是数组的特例。

3. 复数复数由实部和虚部组成,MATLAB用特殊变量“i”和“j”表示虚数的单位。

复数运算不需要特殊处理,可以直接进行。

复数可以有几种表示:z=a+b*i或z=a+b*jz=a+bi 或z=a+bj(当b 为标量时) z=r*exp(i*theta)● 得出一个复数的实部、虚部、幅值和相角。

a=real(z) %计算实部 b=imag(z) %计算虚部 r=abs(z) %计算幅值 theta=angle(z) %计算相角 说明:复数z 的实部a=r*cos(θ); 复数z 的虚部b=r*sin(θ); 复数z 的幅值22b a r +=;复数z 的相角theta=arctg(b/a),以弧度为单位。

MATLAB课件第二章 MATLAB语言的数值计算

MATLAB课件第二章 MATLAB语言的数值计算

2.1.3 变量精度
在matlab中,变量的精度问题不需要设 定,一律使用双精度,但是我们可以通过 format命令或者更改preferences中的 Numericformat项来更改数据的显示格式. 命令格式为:format short
2.1.4 永久变量
Matlab语言设置了一些永久变量 eps,pi,Inf,NaN,i,j,nargin,nargout, realmax,realmin (1)这些变量不能被clear清除; (2)这些变量不响应who和whos; (3)nargin,nargout为函数变量; (4)pi,i,j,realmax,realmin为机器常数变 量; (5)Inf 为无穷变量,NaN为非数变量.
2、矩阵乘()运算规则:
A矩阵的列数必须等于B矩阵的行数;
标量可与任何矩阵相乘。
除算) .^ 点乘方(用于矩阵点运算) ./ 点除(用于矩阵点运算) kron 张量积 ‘ 矩阵转置 inv 矩阵求逆 fliplr 矩阵左右翻转 flipud 矩阵上下翻转 rot90 矩阵逆时针方向旋转90度
线性代数方程组的表达式为AX = B或者 XA = B,由于矩阵维数的不同,方程组解 的形式也不同,设解向量X为n×1维的,系 数矩阵A的维数为m×n维的,系数矩阵B 的维数为n×1维的;那么方程组的解可以 分为以下三类: m=n,为恰定方程,可求得唯一解; m>n,为超定方程,求最小二乘解,多 于一组解; m<n,为欠定方程,解无实际意义,解 中至多有m个非零元素。
例2.27 已知矩阵a,求特征多项式与特征根。
3、多项式计算 我们可以利用polyval函数来计算出多项 式在指定点处的值,例如:
4、卷积和反卷积(多项式乘法与除法) 例如:求a(x)=x^3+2x^2+3x+4和 b(x)=x^3+4x^2+9x+16的乘积c(x);

MATLAB_第2讲_数值计算

MATLAB_第2讲_数值计算
7
MATLAB函数应用示例
8
MATLAB函数应用示例
9
MATLAB函数应用示例
10
对 方向取整数
对 方向取整数 对零方向取整数
11
自然对数(以e为底)
常用对数(以10为底)
12
2.2 矩阵和数组
2.2.1 矩阵的赋值 2.2.2 向量的生成 2.2.3 矩阵元素
2.2.4 复数表示
57
1
2.3.1 矩阵与数组的算术运算 矩阵的转置用A’表示 若矩阵为复数矩阵,求转置时首先对矩阵元 素进行转置,然后再逐项求取其共轭数值。 矩阵的转置还可用A.’表示 对于实矩阵用(A')或(A.’)求转置结果是一 样的;然而对于含复数的矩阵,则(A')将同 时对复数进行共轭处理,而 (A.’)则只是将其 排列形式进行转置。
>>A(1:2,1:3)=[1 1 1;1 1 1]
A=
1
1
1
1 7 4 6
6
4 1 5 0
2
7 5 4 3
31
1 1 7 5 0 3 23 13
2.2.3 矩阵的元素
单下标方式:A(s)=b, b为向量,元素个数必须 等于A矩阵的元素个数。
>> A(5:6)=[2 3]
A=
1 3 1 1 7 5 0 3 2 13
(2). 利用函数linspace()和logspace()生成向量 linspace(m,n) %生成从m到n之间的100个 线性等分点的行向量。
linspace(m,n,s) %生成从m到n之间的s个线性 等分点的行向量。 logspace(m,n) %生成从10m到10n之间50个按 对数等分点的行向量。

MATLAB第二次

MATLAB第二次
例:A=[1 0 3; 4 13 6;7 4 9] B=[1,2,3; 4,5,6; 7,8,9] 求:X1=A.^2 X2=A.^B
5 矩阵的转置
运算符: ‘ 运算规则: (1)若矩阵A的元素为实数、则A’返回A的转置; (2)若矩阵A为复数矩阵,则A’中的元素由A对应 元素的共轭复数构成。
例:A=[1 0 3; 4 13 6;7 4 9]; B=[1 2 3; 4 5 6;7 8 9+9i] 求:X1=A’ X2=B’
函数调用格式
(1) zeros (n): 生成 n×n阶0矩阵。 (2) zeros (m,n): 生成 m×n阶0矩阵。 (3) zeros (size (a)): 生成与a阶数相同的0矩阵。 (4) eye (n):生成 n阶单位矩阵。 (5) eye (m,n):生成 m×n阶单位矩阵。 (6) eye (size (a)):生成与a阶数相同的单位矩阵。 (7) ones (n):生成 n阶全1矩阵。 (8) ones (m,n):生成 m×n阶全1矩阵。 (9) ones (size (a)):生成与a阶数相同的全1矩阵。 (10) rand (n):生成 n×n阶随机矩阵,其元素值在0和1之间。 (11) rand (m,n):生成 m×n阶随机矩阵。 (12) rand:生成一个随机数。 (13) rand (size (a)):生成与a阶数相同的随机矩阵。
MATLAB 语言与应用
主讲:冯栋彦 机械学院412
第二次 MATLAB 数值计算
教学目标:
1 矩阵的定义与建立
2 矩阵运算 3 多项式运算
一、矩阵创建 1 矩阵是线性代数的基本运算单元。 2 矩阵含有M行N列数值。 3 矩阵中的元素可以是实数或复数。 4 矩阵相关的基本运算:加,减,内积, 逆矩阵,转置,线性方程式,特征值, 特征向量,矩阵分解。

第二章(2) MATLAB课件

第二章(2) MATLAB课件
16
>> flipdim(c,2)
>> flipdim(c,3) ans = 1 2 3 3 4 5 4 5 7 3 5 8
4 6 9 0
3. 矩阵的抽取 对角元素抽取函数diag diag(X,k) 抽取矩阵X的第k条对角线的元素向量。k为0时抽取 主对角线,k 为正值时为上方第k条对角线,k 为负 值时为下方第k条对角线。 diag(X) 相当于diag(X,0),即抽取主对角线元素。 此函数还可以用来建立对角矩阵,其形式如下: diag(v,k) 使得向量v为所得矩阵的第k条对角线元素。 diag(v) 使得向量v为矩阵的对角线元素。 例如:矩阵抽取示例。 >> a=pascal(4) %4阶pascal矩阵
>> x=linspace(1,6,7) %创建一维数组 %创建一维数组 x= 1.0000 1.8333 2.6667 3.5000 4.3333 >> x(5) %索引访问数组元素 %索引访问数组元素 ans = 4.3333 >> x(1:5) %访问一块数据 %访问一块数据 ans = 1.0000 1.8333 2.6667 3.5000 4.3333
7
>>[v,d]=eig(a) v= 0.3162 -0.4041 -0.1391 -0.9487 0.9091 0.9740 -0.0000 0.1010 -0.1789 d= 1.0000 0 0 0 2.0000 0 0 0 3.0000 2. 其它分解 (自看)
>>[v,d]=eig(a,b) v= -1.0000 -0.3305 -0.0202 0.4204 1.0000 -1.0000 0.5536 -0.0046 0.3485 d= 12.9030 0 0 0 -0.0045 0 0 0 0.0706
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 0 0
0 1 0
河南理工大学测绘学院
§2.4 矩阵分解 2.4
>> lu=L*U lu = 5 -4 3 2 1 1 1 -1 1 >> inv(p)*L*u ??? Undefined function or variable 'p'. >> inv(P)*L*U ans = 1 -1 1 5 -4 3 2 1 1
§2.4 矩阵分解 2.4
clear A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4]; b=[13,-9,6,0]'; tic x2=A\b; %用左除运算求解 toc tic x1=inv(A)*b; %用求逆运算求解 toc 其中tic和toc两个函数配合使用用于计 tic 算程序的执行时间,tic记录当前时间, [L,U]=lu(A); %LU分解 toc记录或显示使用tic函数以来所花费 x3=U\(L\b); %用LU分解求解 的时间.运行结果说明,x1,x2,x3 的值相同,通过LU分解求值所花运行 toc 时间最少. x1=x1' x2=x2' x3=x3'
2.4.1 矩阵的LU分解 矩阵的LU分解 LU
矩阵的LU分解又称Gauss消去分解或三角分解,就是将 一个方阵表示为一个行交换下三角矩阵和一个上三角矩阵的 乘积形式.方阵A是非奇异的,LU分解总是可以进行的.LU 分解主要用于简化一个大矩阵的行列式值的计算过程,求反 矩阵和求解联立方程组.
河南理工大学测绘学院
河南理工大学测绘学院
§2.4 矩阵分解
1 1 1 【例2.11】 设A= ,对矩阵A 进行LU分解. 5 4 3 2 1 1
>> a=[1 -1 1;5 -4 3;2 1 1]; >> [L,U]=lu(a) L = 0.2000 -0.0769 1.0000 1.0000 0 0 0.4000 1.0000 0
河南理工大学测绘学院
§2.4 矩阵分解 2.4
【2.13】设
1 4 2 1 A = 1 2 1 2 1 1 3 3
对矩阵A进行QR分解. A=[2,1,1,4;1,2,-1,2;1,-1,3,3]; [Q,R]=qr(A)
河南理工大学测绘学院
§2.4 矩阵分解 2.4
Q = -0.8165 -0.4082 -0.4082 R = -2.4495 0 0 0 -0.7071 0.7071 -1.2247 -2.1213 0 -0.5774 0.5774 0.5774 -1.6330 2.8284 0.5774 -5.3072 0.7071 0.5774
>> QR=Q*R QR = 2.0000 1.0000 1.0000
1.0000 2.0000 -1.0000
1.0000 -1.0000 3.0000
4.0000 2.0000 3.0000
河南理工大学测绘学院
§2.4 矩阵分解 2.4
[Q,R,E]=qr(A) Q = -0.7428 -0.1980 -0.3714 -0.6730 -0.5571 0.7126 R = -5.3852 -2.0426 0 2.6130 0 0 E = 0 0 0 0 0 1 0 1 0 1 0 0
解法2:将两个线性方程 组连在一起求解. A=[1,-1,1;5,4,3;2,1,1]; b=[2,3;-3,4;1,-5]; xy=A\b xy = -3.8000 1.4000 7.2000 -3.6000 -2.2000 4.4000
河南理工大学测绘学院
§2.4 矩阵分解
矩阵分解是指根据一定的原理用某种算法将一个矩阵分 解成若干个矩阵的乘积.常见的矩阵分解有LU分解,QR分 解,Cholesky分解以及Schur分解,Hessenberg分解,奇 异分解等.
§2.4 矩阵分解 2.4
2.4.4 矩阵的QZ分解 矩阵的QZ分解 QZ 在MATLAB中,QZ分解可由函数qz来实现.qz函数常用的 调用格式: [AA,BB,Q,Z,V]=qz(A,B):要求矩阵A,B是方阵.产生的矩 阵AA,BB是上三角矩阵,Q,Z是正交矩阵,矩阵V是特征 矢量矩阵.其中,满足Q*A*Z=AA与Q*B*Z=BB. [AA,BB,Q,Z,V]=qz(A,B,flag):对于方阵A,B的QZ分解取 决于参数flag.参数flag可以取'complex'与'real' 其中,'complex'表示复分解产生三角矩阵AA,'real' 表示实分解产生三角矩阵AA.
河南理工大学测绘学院
§2.4 矩阵分解 2.4
2.4.2 矩阵的QR分解 矩阵的QR分解 QR
对矩阵X进行QR分解,就是把X分解为一个正交矩阵Q 和一个上三角矩阵R的乘积形式.MATLAB的函数qr可用于 对矩阵进行QR分解,其调用格式如下. ● [Q,R] = qr(X):产生一个一个正交矩阵Q和一个上三角 矩阵R,使之满足X = QR. ● [Q,R,E] = qr(X):产生一个一个正交矩阵Q,一个上三 角矩阵R以及一个置换矩阵E,使之满足XE = QR.
河南理工大学测绘学院
§2.4 矩阵分解 2.4
U = 5.0000 -4.0000 0 2.6000 0 0 3.0000 -0.2000 0.3846
>> lu=L*U lu = 1 -1 5 -4 2 1
1 3 1
河南理工大学测绘学院
§2.4 矩阵分解 2.4
>> [L U P]=lu(a) L= 1.0000 0 0 0.4000 1.0000 0 0.2000 -0.0769 1.0000 U= 5.0000 -4.0000 3.0000 0 2.6000 -0.2000 0 0 0.3846 P= 0 0 1
河南理工大学测绘学院
2.4 矩阵的分解
【例2.15】 b=[3 -2 -0.9 2*eps;-2 4 -1 -eps;-eps/4 eps/2 -1 0;-0.5 -.5 .1 1]; [b,p]=chol(b) b= 1.7321 0 p= 3 -1.1547 1.6330
河南理工大学测绘学院
河南理工大学测绘学院
§2.4 矩阵分解 2.4
【例4.12】分别用左除运算,求逆运算,LU分解方法求解下列线性方程组. 2x1 + x2 5x3 + x4 =13 x 5x + 7x = 9 1 2 4 2x2 + x3 x4 = 6 x1 + 6x2 x3 4x4 = 0
河南理工大学测绘学院
x1 2 x2 + 3x3 = 1 3x1 x2 + 5 x3 = 2 2 x + x + 5 x = 3 3 1 2
河南理工大学测绘学院
§2.3 线性方程组求解
2.3.2 利用左除运算符求解线性方程组
对于线性方程组Ax = b,可以利用左除运算符"\"求解: x = A\b 【例2.10 2.10】用左除运算符求解下列相同系数矩阵的两个线 2.10 性代数方程组的解.
§2.3 线性方程组求解
2.3.1 矩阵求逆及线性代数方程组求解
1.矩阵求逆 inv(A)函数用于计算方阵的逆矩阵.
【例2.8】 求方阵A的逆矩阵并赋值给B,且验证A与B是互逆的. .8】 A=[1 -1 1;5 -4 3;2 1 1]; B=inv(A)
B= -1.4000 0.4000 0.2000 -0.2000 2.6000 -0.6000
0.2000 0.4000 0.2000
河南理工大学测绘学院
§2.3 线性方程组求解
>> A*B ans = 1.0000 -0.0000 -0.0000 >> B*A ans = 1.0000 -0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000
2.4 矩阵的分解
b=[3 -2 -0.9 2*eps;-2 4 -1 -eps;-eps/4 eps/2 -1 0;0.5 -.5 .1 1]; x=chol(b) ??? Error using ==> chol Matrix must be positive definite.
河南理工大学测绘学院
-0.6396 0.6396 0.4264 -0.9285 -2.2567 0.2132 1 0 0 0 -2.4140 -0.356 -0.2132
河南理工大学测绘学院
§2.4 矩阵分解 2.4
Q*R/E ans = 2.0000 1.0000 1.0000 1.0000 2.0000 -1.0000 1.0000 -1.0000 3.0000 4.0000 2.0000 3.0000 %验证A=Q*R*inv(E)
河南理工大学测绘学院
§2.4 矩阵分解 2.4
A=[2,1,1;1,2,-1;1,>> A=[2,1,1;1,2,-1;1,-1,3]; >> R=chol(A) R = 1.4142 0.7071 0.7071 0 1.2247 -1.2247 0 0 1.0000 >> R'*R ans = 2.0000 1.0000 1.0000 1.0000 2.0000 -1.0000 1.0000 -1.0000 3.0000 >> [R,p]=chol(A) R = 1.4142 0.7071 0.7071 0 1.2247 -1.2247 0 0 1.0000 p = 0
1 1 1 ( 5 4 3 i 1) 2 1 1 x1 2 x = 3 2 x3 1 1 1 1 (2) 5 4 3 i 2 1 1 y1 3 y = 4 2 y3 5
相关文档
最新文档