第二章 MATLAB的数值计算

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多项式p(x)=x3-6x2-72x-27的matlab描 述方法,我们可用: p1=poly2str(p,‘x’) — 函数文件,显示 数学多项式的形式 p1 =x^3 - 6 x^2 - 72 x - 27
(2)多项式的运算 •相乘conv a=[1 2 3] ; b=[1 2] c=conv(a,b)=1 4 7 6 conv指令可以嵌套使用,如conv(conv(a,b),c) •相除deconv [q,r]=deconv(c,b) q=1 2 3 %商多项式 r=0 0 0 %余多项式 •求多项式的微分多项式polyder polyder(a)=2 2 •求多项式函数值polyval(p,n):将值n代入多项式 求解。polyval(a,2)=11
》a=[1:2:10] a= 1 3 5 7 9
语句生成
(2)a=linspace(n1,n2,n) 在线性空间上,行矢量的值从n1到n2,数 据个数为n,缺省n为100。 》a=linspace(1,10,10) a= 1 2 3 4 5 6 7 8 9 10
语句生成
(3)a=logspace(n1,n2,n) 在对数空间上,行矢量的值从10n1到10n2, 数据个数为n,缺省n为50。这个指令为 建立对数频域轴坐标提供了方便。 》a=logspace(1,3,3) a= 10 100 1000
》a=[1 2 3;4 5 6]' a= 1 2 3 4 5 6 》a=[1 2 3;4 5 6].' a= 1 2 3 4 5 6 b= 1.0000 - 2.0000i 2.0000 + 7.0000i 》b=[1+2i 2-7i].' b= 1.0000 + 2.0000i
4. 矩阵的其它运算
关系运算
关系符号
< <= > >= == ~=
意义
小于 小于或等于 大于 大于或等于 等于 不等于
5. 矩阵的数组运算
数组运算指元素对元素的算术运算, 与通常意义上的由符号表示的线性
代数矩阵运算不同
1.
数组加减(.+,.-)
a.+b
对应元素相加减(与矩阵加 a.- b 减等效)
2. 数组乘除(,./,.\) ab —— a,b两数组必须有相同的行 和列两数组相应元素相乘。
46 109 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
例如 a=[1 2 0;3 0 5;7 8 9] a =1 2 0 3 0 5 7 8 9 a(3,3)=0 a =1 2 0 3 0 5 7 8 0
二、数据的保存与获取
把matlab工作空间中一些有用的数 据长久保存下来的方法是生成mat数 据文件。 save —— 将工作空间中所有的变 量存到matlab.mat文件中。 默认文件名
如果已知A为方阵,则V=diag(A) 可以提取A的对角元素构成向量V。
还有伴随矩阵、稀疏矩阵、魔方 矩阵、范德蒙等矩阵的创建,就不一 一介绍了。
注意:matlab严格区分大小写字母,因
此a与A是两个不同的变量。 matlab函数名必须小写。
3. 矩阵的修改
直接修改 可用键找到所要修改的矩阵,用键 移动到要修改的矩阵元素上即可修改。 指令修改 可以用A(,)= 来修改。
>> a=[1 2 3;4 5 6;7 8 9]
>> a(:)
>> a(4,1)=10
a=
1 4 7 2 5 8 3 6 9
ans =
1 4 7 2 5 8 3 6 9
a=
1 4 7 10 2 5 8 0 3 6 9 0
>> a(2:3,1:2) ans = 4 7 5 8
>> a(2,:)=[ ] a= 1 2 3 7 8 9 10 0 0
》length(a) ans = 3 》max(size(a)) ans = 3
》rank(a) ans = 2
2.用matlab函数创建矩阵
空阵 [ ] — matlab允许输入空阵,当一 项操作无结果时,返回空阵。 单位矩阵:eye(m,n); eye(m) 零矩阵:zeros(m,n); zeros(m) 一矩阵:ones(m,n); ones(m) 对角矩阵:对角元素向量 V=[a1,a2,…,an] A=diag(V) 随机矩阵:rand(m,n)产生一个m×n的均 匀分别的随机矩阵
注意:只要是赋过值的变量,不管是
否在屏幕上显示过,都存储在工作空
间中,以后可随时显示或调用。变量
名尽可能不要重复,否则会覆盖 。
当一个指令或矩阵太长时,可用••• 续行
冒号的作用
用于生成等间隔的向量,默认
间隔为1。
用于选出矩阵指定行、列及元 素。
循环语句
语句生成
(1)用线性等间距生成向量矩 阵(start:step:end)
4. 矩阵的其它运算
inv —— 矩阵求逆
det —— 行列式的值
eig —— 矩阵的特征值
diag —— 对角矩阵
’ —— 矩阵转置
sqrt —— 矩阵开方
4. 矩阵的其它运算
转置:对于实矩阵用(’)符号或(.’)求 转置结果是一样的;然而对于含复数的 矩阵,则(’)将同时对复数进行共轭 处理,而 (.’)则只是将其排列形式进行 转置。 》b=[1+2i 2-7i]'
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
逆矩阵Байду номын сангаас行列式计算 求逆:inv(A); 求行列式:det(A) 要求矩阵必须为方阵
》a=[1 2 3; 4 5 6; 2 3 5]; 》b=inv(a) b=
-2.3333 0.3333 1.0000
2.6667 0.3333 -2.0000 -0.6667 -0.3333 1.0000
》det(a)
可用行向量 p=[an an-1 …… a1 +a0]表示
1. poly —— 产生特征多项式系数向量
特征多项式一定是n+1维的 特征多项式第一个元素一定是1
(1)多项式的建立与表示方法
在MATLAB中,多项式使用降幂系数的行向量表示, 如:多项式 x 4 12x 3 0 x 2 25x 116
矩阵元素
矩阵元素可以是任何matlab表达 式 ,可以是实数 ,也可以是复
数,复数可用特殊函数I,j 输入
a=[1 2 3;4 5 6]
x=[2 pi/2;sqrt(3) 3+5i]
符号的作用
逗号和分号的作用 逗号和分号可作为指令间 的分隔符,matlab允许多条语句 在同一行出现。 分号如果出现在指令后, 屏幕上将不显示结果。
矩阵的大小 [m,n]=size(A,x):返回矩阵的行列数m与 n,当x=1,则只返回行数m,当x=2,则 只返回列数n。 length(A)=max(size(A)):返回行数或列 数的最大值。 rank(A):求矩阵的秩
》a=[1 2 3;3 4 5]; 》[m,n]=size(a) m= 2 n= 3
save data——将工作空间中所
有的变量存到data.mat文件中。
save data a b ——将工作空间 中a和b变量存到data.mat文件中。
下次运行matlab时即可用load指
令调用已生成的mat文件。
load —— load data —— load data a b ——
ans = -3
5.矩阵的一些特殊操作
矩阵的变维 a=[1:12];b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:) 矩阵的变向 rot90:旋转; fliplr:上翻; flipud:下翻 矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角; triu:抽取主上三角 矩阵的扩展
种矩阵除运算
3. 矩阵乘方—— a^n,a^p,p^a
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 66 36 81 42 96
2.用matlab函数创建矩阵
》eye(2,3) ans= 100 010 》zeros(2,3) ans= 000 000 》ones(2,3) ans= 111 111 》V=[5 7 2]; A=diag(V) A= 500 070 002 》eye(2) ans= 10 01 》zeros(2) ans= 00 00 》ones(2) ans= 11 11
第二讲 MATLAB的数值计算
—— matlab 具有出色的数值计 算能力,占据世界上数值计算软 件的主导地位
数值运算的功能
创建矩阵 矩阵运算 多项式运算 线性方程组 数值统计 线性插值 函数优化 微分方程的数值解
一、命令行的基本操作
1. 创建矩阵的方法
直接输入法 规则: 矩阵元素必须用[ ]括住 矩阵元素必须用逗号或空格分隔 在[ ]内矩阵的行与行之间必须 用分号分隔
矩阵下标 MATLAB通过确认矩阵下标,可以对矩阵进行插 入子块,提取子块和重排子块的操作。 A(m,n):提取第m行,第n列元素 A(:,n):提取第n列元素 A(m,:):提取第m行元素 A(m1:m2,n1:n2):提取第m1行到第m2行和第 n1列到第n2列的所有元素(提取子块)。 A(:):得到一个长列矢量,该矢量的元素按矩 阵的列进行排列。 矩阵扩展:如果在原矩阵中一个不存在的地址 位置上设定一个数(赋值),则该矩阵会自动 扩展行列数,并在该位置上添加这个数,而且 在其他没有指定的位置补零。 消除子块:如果将矩阵的子块赋值为空矩阵[ ], 则相当于消除了相应的矩阵子块。
表示为:p=[1 -12 0 25 116],使用函数roots可以求 出多项式等于0的根,根用列向量表示。若已知多项 式等于0的根,函数poly可以求出相应多项式。 r=roots(p) r= 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i p=poly(r) p= 1 -12 -0 25 116
3. 数组乘方(.^) — 元素对元素的幂
例: a=[1 2 3];b=[4 5 6]; z=a.^2 z= 1.00 4.00 z=a.^b z= 1.00 32.00
9.00
729.00
四、 多项式运算
matlab语言把多项式表达成一个行向量, 该向量中的元素是按多项式降幂排 列的。
f(x)=anxn+an-1xn-1+……+a0
规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。 a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b
c =14
32
23
d=[-1;0;2];f=pi*d f = -3.1416 0 6.2832 矩阵除的运算在线性代数中没有,
有矩阵逆的运算,在matlab中有两
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];
a*b ans = 25 55 85
37 85 133
即可恢复保 存过的所有 变量
mat文件是标准的二进制文件,
还可以ASCII码形式保存。
三、矩阵运算
1. 矩阵加、减(+,-)运算
规则:
相加、减的两矩阵必须有相同的行和 列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。 标量与矩阵的所有元素分别进行加 减操作。
2. 矩阵乘()运算
相关文档
最新文档