五节MATLAB的数值计算

合集下载

第三章 MATLAB数值计算

第三章 MATLAB数值计算
all any isempty isequal isreal find
功 能
如果所有的元素都是非零值,返回1;否则,返回0。 如果有一个元素为非零值,那么返回1;否则,返回0 判断是否空矩阵 判断两矩阵是否相同 判断是否是实矩阵 返回一个由非零元素的下标组成的向量
常用的矩阵函数
矩阵的行列式、矩阵的秩、特征值等在现代控制理论 中有广泛的应用,Matlab提供了相应的函数求其值 • det(A) 方阵A的行列式 • eig(A) 方阵A的特征值和特征向量 • rank(A) 矩阵A的秩 • trace(A) 矩阵A的迹 • expm(A) 矩阵的指数 • sqrtm(A) 求矩阵的平方根 • funm(A,’fun’) 求一般的方阵函数
矩阵的修改
• (1)直接修改 可用↑键找到所要修改的矩阵,用←键移动到要 修改的矩阵元素上即可修改。
• (2)指令修改 可以用A(﹡, ﹡)=﹡ 来修改。 • (3)由矩阵编辑器修改 由Matlab提供工具栏按钮来查看工作区变量,单 击变量,可以打开或删除变量
• 例: 修改矩阵A中元素的数值 >>A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]; >>A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0); 则矩阵变为: • A= 0 2 3 4 5 7 7 8 9 10 11 12 13 14、控制理论、物理学等领域中的很多 问题都可以归结到下面的线性方程组
矩阵行列式
• 如N阶矩阵A的行列式不等于0,即时,称矩阵 A非奇异,否则A奇异。当线性方程系数矩阵 非奇异,则线性方程有唯一解。对N阶方阵A, MATLAB中由函数得到行列式

1(III) 仿真软件MATLAB--数值计算和编程

1(III)  仿真软件MATLAB--数值计算和编程
12
2015-3-16
MATLAB程序的基本组成结构 %说明 清除命令:清除workspace中的变量和图形 (clear,close) 定义变量:包括全局变量的声明及参数值的设定 逐行执行命令:指MATLAB提供的运算指令或工具箱 … … … 提供的专用命令 控制循环 :包含for,if then,switch,while等语句 逐行执行命令 … … … end 绘图命令:将运算结果绘制出来 当然更复杂程序还需要调用子程序,或与simulink以 及其他应用程序结合起来。

p= 0.0051 -0.0074 1.0000
0.0715
0.1386
0.5124
0.9979
2015-3-16
8
小结:MATLAB中的多项式函数
r=roots(p) 计算多项式p的根 k=polyder(p) k=polyder(a,b) 计算多项式的微分 计算两个多项式乘 积的微分 p=poly(r),p=poly(A) 由根r创建多项式 p,或计算A的特 征多项式p
多项式运算

求多项式的值:

polyval(p,x);计算多项式在指定点值, polyvalm(p,x);可以接受二维 数组形式的输入参数,要求方阵


求多项式的根; r=roots(p) 多项式的乘除运算; c=conv(a,b), [q,r]=deconv(v,u), q是商多项式,r是余多项式 多项式的微积分; polyint(p),微分见下页 多项式的部分分式展开;见后页 多项式的拟合,见后页
9
r=deconv(a,b)
多项式相除
r=polyfit(x,y,n)
2015-3-16
将数据点x,y拟 合成n次多项式

MATLAB矩阵的数值运算

MATLAB矩阵的数值运算

例:
<< a=[1 2 0;3 0 5;7 8 9]
a =1 3 7 2 0 8 0 5 9
<< a(3,3)=0
还可以用subs函数修改,
a =1 3 7
2 0 8
0 5 0
matlab6.0还可用find函数修改。
二、矩阵运算
矩阵运算包括:矩阵的四则运算、特征根、奇异 解的求解等。
1. 矩阵加、减(+,-)运算
第二讲 MATLAB的数 值计算
—— matlab 具有出色的数值计 算能力,占据世界上数值计算软 件的主导地位
数值运算的功能



创建矩阵 矩阵运算 多项式运算 线性方程组 数值统计 线性插值 函数优化 微分方程的数值解
一、命令行的基本操作
1. 创建矩阵的方法
直接输入法
-3
2 -7
0
4 -8
1
-5 9
1
0 1
1
0 1
0
1 0
>> x=~a %等价于not(a),元素
为0时,结果为1,否则为0
>> x2=a>-2&a<4 x2 =
x= 0 0 1 0 0 0
0
1 0
1
0 0
1
0 0
0
0
0
9. 数组运算
数组运算指元素对元素的算术运算,与通常
意义上的由符号表示的线性代数矩阵运算不同。
规则:
相加、减的两矩阵必须有相同的行和列,两
矩阵对应元素相加减。
矩阵与标量的加减运算是标量与矩阵的所有
元素分别进行加减操作。
2. 矩阵乘()运算

第六章MATLAB数值计算

第六章MATLAB数值计算

第六章MATLAB数值计算 6-1多项式的运算 6 —1-1多项式的生成和表达 1. 多项式的表达 在MATLAB环境下多项式是用向量的形式表达的。 向量最右边的元素表示多项式的 0 阶,向左数依次表示多项式的第 1阶、第2阶、第3阶…。 例如多项式5x4 3x2 2x 1表示为:[5 0 3 2 1]。

2. 多项式的生成 语法:

P=ploy (MA) 说明: 1. 若MA为方阵,则生成的多项式 P为方阵MA的特征多项式。 若MA为向量,则向量和多项式满足这样一种关系 MA r1 r2 |||rn ,生成的多项式为: x r1 x r2 x r3 x rn a0xn a1xn 1

3. 直接输入的方式生成多项式。 例6-1 利用方阵M=[5 6 7;8 9 1;11 12 13 ]生成一个多项式(为方阵 M的特征多项式) 程序设计:

>> clear M=[5 6 7 ; 8 9 1;11 12 13]; P=poly(M ) ; %产生多项式的向量表达式 Px=poly2str ( P,'x') ; %生成常见的多项式表示形式 P,Px 运行结果: P = 1.0000 —27.0000 90。0000 54。0000 Px = xA3 - 27 xA2 + 90 x + 54

例6-2 利用向量A= : 2 3 4 5]生成一个多项式。 程序设计:

2. 呆 2 |||an 1x an 〉 >clear A=[2 3 4 5] ; P=poly(A); Px=poly2str (P, 'x') ; P,Px 运行结果 : P = 1 — 14 71 — 154 120 Px = xA4 — 14 xA3 + 71 xA2 — 154 x + 120

6—1-2 多项式的乘除 语法: A. c=conv ( a, b) B. [q,r ] =decony( c, a) 说明: 1. a、b 和 c 分别是多项式的向量表示形式。 个多项式的除法运算 .

3MATLAB数值计算

3MATLAB数值计算

第三节MATLAB数值计算数学计算分为数值计算和符号计算。

这两种计算的区别是:数值计算的表达式、变量中不得包含未定义的自由变量,而符号计算中则允许。

本节主要介绍MATLAB的数值计算。

一、多项式1.多项式的表达与创建MATLAB用行矢量表示多项式系数,其中各元素按降幂顺序排列,如果多项式表示为:p(x)=a0x n+ a1x n-1+…+ a n-1x+a n则系数矢量为:p=[a0 a1 …a n-1 a n] 。

例如:p(x)= x3-2x-5,其系数矢量为:p=[1 0 -2 -5]。

如果把根矢量表示为:ar=[ar1ar2…ar n],则根矢量与系数矢量之间满足下面的关系式:(x- ar1)(x- ar2) …(x- ar n)= a0x n+ a1x n-1+…+ a n-1x+a n多项式系数矢量通过调用函数p = poly(ar)产生。

例1将多项式(x-8)(x-3)(x-6)表示为系数形式(即求出系数矢量)。

a=[8 3 6];%写成根矢量pa=poly(a)%求出系数矢量ppa=poly2sym(pa) % 表示成符号形式ezplot(ppa,[-40,40]) % 绘图输出结果为:pa =1 -17 90 -144ppa =x^3-17*x^2+90*x-144图1说明:(1) n个元素的根矢量求出的多项式系数矢量的元素一定是n+1个。

(2) 函数poly2sym把多项式系数矢量表达成符号形式的多项式,缺省情况下自变量符号为x,可以指定其他自变量,如poly2sym(pa,’t’),则表达为t的多项式。

(3) 使用简单绘图函数ezplot可以直接绘制符号形式多项式的曲线,其中第二个输入参数是由方括号内的两个数值组成的,给定了绘图范围。

若省略该参数,系统将自动按缺省范围绘图。

例2求3阶方阵A的特征多项式。

A=[6 3 8;7 5 6;1 3 5];pa=poly(A)ppa=poly2sym(pa)输出结果为:pa =1.0000 -16.0000 38.0000 -83.0000ppa =x^3-16*x^2+38*x-83说明:n阶方阵的特征多项式系数矢量一定是n+1阶。

Matlab学习指导第四章 数值计算

Matlab学习指导第四章 数值计算

2x1-x2-x3=4
3x1+4x2-2x3=11 3x1-2x2+4x3=11
A=[ 2,-1,-1 ; 3,4,-2; 3,-2,4 ]; b=[4; 11; 11]; det(A), rank(A), rank([A,b]) x=A\b
方程组的解的三种情况:
对于方程Ax=b, A为Am×n矩阵,有三种情况: 当m=n时,此方程成为"恰定"方程,求解精确解 当m>n时,此方程成为“超定”方程,寻求最小二乘解 (直线拟
合)
1) 恰定方程组的解
当m<n时,此方程成为"欠定"方程,寻求基本解 matlab定义的除运算可以很方便地解上述三种方程 x = 方程组Ax=b (A非奇异),解为x=A\b 例4.2.1-2 求下列方程组的解 3.00 1.00 1.00
通俗地讲, 拟合就是由已知点得到一条曲线, 使该曲线 最能反映点所代表的规律.比如做欧姆定理的实验的时 候,由于实验中存在误差,最后拟合得到的曲线是一条 直线,而且肯定只有部分点落在拟合的直线上,但此时 该直线和测试点的方差最小.由拟合直线的斜率就可以 知道电阻的阻值.拟合是探测事物变化规律的办法. 插值就是根据函数上某些已知点(或实验数据),按一定 规律(插值方法)寻求未知的点,比如已知一个常用对数 y=log(x)表,是按照x=0.1:0.1:10制表的,如果按已知数 据求y=log(2.897)就可以用插值得到.表制得越密,插值 越准确.
16
对于方程组Ax=b, 采用x=A\b计算,如果方程组为yC=d, 要使用右除,即指令为y=d/C
Ax=bx'A'=b'yC=d x=A\bx'=b'/A'y=d/C 例4.2.1-1 解下列方程组 2x1+2x2+3x3=3

第二章 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)

第二章_Matlab软件的数值计算方法

第二章_Matlab软件的数值计算方法

§2-1-1数值
• 在Matlab中,数值多采用十进制表示法, 如数值3,-99,0.01,在Matlab的命令 窗口中或者编辑器窗口中可以直接输入它 们,这与其它高级软件没有两样,在 Matlab的命令窗口中或者编辑器窗口中需 要按照以下形式进行输入或者录入:1.9e-6、5.41e13。
§2-1-2语句与变量
多项式插值的命令函数
• 多项式插值所用命令有一维的interp1、二 维的interp2、三维的interp3。这些命令 分别有不同的方法(method),设计者可 以根据需要选择适当的方法,以满足系统 不同属性的要求。如需得到有关多项式插 值命令的更详细的帮助信息,请读者在 Matlab命令窗口中键入以下命令: • >> help interp1或者>> help interp2或 者>> help interp3
产生多项式系数向量的命令函数 poly
• 命令格式为:P=poly(A) • 说明:若A是方阵,则行向量P为A的特征 多项式的系数;若A是行向量,则将A的元 素作为多项式的根来构造多项式,其形式 为:f(x)=( x-a1)( x-a2)…(x-an),P为 构造的多项式的系数向量。
多项式拟合的命令函数
单引号
圆括号
''
()
其内容为字符串
用作数组标识;表示函数输入量列表时用
方括号
花括号 下划线 续行号
[]
{} _ …
输入数组时用;表示函数输出量列表时用
用作元胞数组标识 用在变量、函数和文件名中 将长命令行分成两行输入,保持两行的逻辑连续
§2-4 多项式的运算命令函数
• 多项式相乘的命令函数conv • 命令格式:p=conv(p1,p2) • 说明:它表示多项式p1和p2相乘。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

a*b
ans =
25
37
46
55
85 109
85 133 172
a./b=b.\a
—— 给出a,b对应元素间的商.
a.\b=b./a a./b=b.\a — 都是a的元素被b的对应元
素除 a.\b=b./a — 都是b的元素被a的对应元
素除
例: a=[1 2 3];b=[4 5 6]; c1=a.\b; c2=b./a c1 = 4.0000 2.5000 2.0000 c2 = 4.0000 2.5000 2.0000
save data a b ——将工作空间 中a和b变量存到data.mat文件中。 下次运行matlab时即可用load指 令调用已生成的mat文件。
load —— load data —— load data a b ——
即可恢复保 存过的所有 变量
mat文件是标准的二进制文件, 还可以ASCII码形式保存。
triu:抽取主上三角
关系运算
关系符号
< <= > >= == ~=
意义
小于 小于或等于
大于 大于或等于
等于 不等于
5. 矩阵的数组运算
数组运算指元素对元素的算术运算, 与通常意义上的由符号表示的线性代数 矩阵运算不同 1. 数组加减(.+,.-)
a.+b a.- b 对应元素相加减(与矩阵加
减等效)
4. 矩阵的其它运算
det —— 方阵行列式的值 inv ——方阵求逆 [v,d]=eig —— 矩阵的特征值和特征向量 diag —— 对角矩阵
’ —— 矩阵转置 sqrt —— 矩阵开方
5.矩阵的一些特殊操作
矩阵的变维
a=[1:12];b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:) 矩阵的变向 rot90:旋转; fliplr:左右翻; flipud:上下翻 矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角;
2. 数组乘除(,./,.\)
ab —— a,b两数组必须有相同的行
和列两数组相应元素相乘。
a=[1 2 3;4 5 6;7 8 9];
b=[2 4 6;1 3 5;7 9 10];
a.*b
ans =
2
8
18
4
15
30
49
72
90
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10];
[x1 x2] [x1;x2]
矩阵连接
[x1(1:2,:) x2([3 4],:)] 矩阵连接
二、数据的保存与获取
把matlab工作空间中一些有用的数 据长久保存下来的方法是生成mat数 据文件。 save —— 将工作空间中所有的变 量存到matlab.mat文件中。
默认文件名
save data——将工作空间中所 有的变量存到data.mat文件中。
a ^ p —— a 自乘p次幂
方阵 >1的整数
对于p的其它值,计算将涉及特征值 和特征向量,如果p是矩阵,a是标量 a^p使用特征值和特征向量自乘到p次 幂;如a,p都是矩阵,a^p则无意义。
a=[1,2,3;4,5,6;7,8,9];a^2 ans =30 36 42
66 81 96 102 126 150
3. 数组乘方(.^) — 元素对元素的幂
例:
a=[1 2 3];b=[4 5 6];
z=a.^2
z=
1.00
4.00
9.00
z=a.^b
z=
1.00 32.00 729.00
四、代数方程组求解
matlab中有两种除运算左除和右除。 对于方程ax=b,a 为am×n矩阵,有三种情 况: 当n=m时,此方程成为“恰定”方程 当n<m时,此方程成为“超定”方程 当n>m时,此方程成为“欠定”方程
32 23
在matlab中有两种矩阵除运算 x=A\b 是 方程A*x=b的解 x=A-1 b
x、b为n维列向量 A为n维方阵或m*n维矩阵 x=b/A 是 方程x*A=b的解 x= b A-1 x、 b为n维行向量 A为n维方阵或m*n维矩阵 可知:(A\b)’=b’/A
3. 矩阵乘方—— a^n,a^p,p^a
三、矩阵运算
1. 矩阵加、减(+,-)运算
规则: 相加、减的两矩阵必须有相同的行和
列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。
标量与矩阵的所有元素分别进行加 减操作。
2. 矩阵乘()运算
规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。
a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b c =14
※当一个方阵有复数特征值或负实 特征值时,非整数幂是复数阵。
a^0.5
ans =
0.4498 + 0.7623i 0.5526 + 0.2068i0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717i
3. 矩阵元素与访问
全下标方式 x(2,4)=5 x(1:2,1:3)=[1 2 3;4 5 6]
单下标方式 x(4)=6 x(5:6)=[2 3]
全元素方式 x(:)=b
3. 矩阵元素的删除与扩充
x(:,3)=[]
删除一列元素
x(4)=[]
删除一个元素,变为行向量
x=[]
删除所有元素
x(7,8)=10 自动扩充
matlab定义的除运算可以很方便地解上 述三种方程
1.恰定方程组的解
方程ax=b(a为非奇异) x=a-1 b 矩阵逆
两种解: x=inv(a)b — 采用求逆运算解方程 x=a\b — 采用左除运算解方程
例: x1+2x2=8 2x1+3x2=13
方程ax=b
1 2
2 3
x1 x2
8
= 13
a x=b
冒号的作用 用于生成等间隔的向量,默认 间隔为1。例如:t=1:2:9 用于选出矩阵指定行、列及元 素。例如: a(2:end,[2 5])、a(:) 循环语句
2.用matlab函数创建矩阵
空阵 [ ] — matlab允许输入空阵,当一 项操作无结果时,返回空阵。 rand —— 随机矩阵 eye —— 单位矩阵 zeros ——全部元素都为0的矩阵 ones ——全部元素都为1的矩阵
相关文档
最新文档