MATLAB教学第四章

合集下载

matlab入门经典教程--第四章数值计算

matlab入门经典教程--第四章数值计算

m a t l a b入门经典教程--第四章数值计算-CAL-FENGHAI.-(YICAI)-Company One1第四章数值计算4.1引言本章将花较大的篇幅讨论若干常见数值计算问题:线性分析、一元和多元函数分析、微积分、数据分析、以及常微分方程(初值和边值问题)求解等。

但与一般数值计算教科书不同,本章的讨论重点是:如何利用现有的世界顶级数值计算资源MATLAB。

至于数学描述,本章将遵循“最低限度自封闭”的原则处理,以最简明的方式阐述理论数学、数值数学和MATLAB计算指令之间的内在联系及区别。

对于那些熟悉其他高级语言(如FORTRAN,Pascal,C++)的读者来说,通过本章,MATLAB卓越的数组处理能力、浩瀚而灵活的M函数指令、丰富而友善的图形显示指令将使他们体验到解题视野的豁然开朗,感受到摆脱烦琐编程后的眉眼舒展。

对于那些经过大学基本数学教程的读者来说,通过本章,MATLAB精良完善的计算指令,自然易读的程序将使他们感悟“教程”数学的基础地位和局限性,看到从“理想化”简单算例通向科学研究和工程设计实际问题的一条途径。

对于那些熟悉MATLAB基本指令的读者来说,通过本章,围绕基本数值问题展开的内容将使他们体会到各别指令的运用场合和内在关系,获得综合运用不同指令解决具体问题的思路和借鉴。

由于MATLAB的基本运算单元是数组,所以本章内容将从矩阵分析、线性代数的数值计算开始。

然后再介绍函数零点、极值的求取,数值微积分,数理统计和分析,拟合和插值,Fourier分析,和一般常微分方程初值、边值问题。

本章的最后讨论稀疏矩阵的处理,因为这只有在大型问题中,才须特别处理。

从总体上讲,本章各节之间没有依从关系,即读者没有必要从头到尾系统阅读本章内容。

读者完全可以根据需要阅读有关节次。

除特别说明外,每节中的例题指令是独立完整的,因此读者可以很容易地在自己机器上实践。

MATLAB从版升级到版后,本章内容的变化如下:MATLAB从版起,其矩阵和特征值计算指令不再以LINPACK和EISPACK库为基础,而建筑在计算速度更快、运行更可靠的LAPACK和ARPACK程序库的新基础上。

MATLAB-第4章

MATLAB-第4章

v
i 1
n
2 i


max { vi } 。
1 ≤i ≤n
设 A 是一个 m ×n 的矩阵,矩阵的 3 种常用范数如下。 1-范数: A 1 max { aij } 。
1 ≤ j ≤n i 1 m
2-范数: A 2 1 ,其中 λ 1 为 A'A 最大特征值。 ∞-范数: A max { aij } 。
【例4.6】先建立5 × 5矩阵A,然后将A的第一行元素乘以1, 第二行乘以2,…,第五行乘以5。 用一个对角矩阵左乘一个矩阵时,相当于用对角阵的第一个 元素乘以该矩阵的第一行,用对角阵的第二个元素乘以该 矩阵的第二行……依此类推,因此,只需按要求构造一个 对角矩阵D,并用D左乘A即可。命令如下: A=[1:5;2:6;3:7;4:8;5:9] D=diag(1:5); D*A %用D左乘A,对A的每行乘以一个指定常数
(2)构造对角矩阵 设V为具有m个元素的向量,diag(V,k)的功能是产生一个 n × n(n = m + k|)对角阵,其第k条对角线的元素即为 向量V的元素。 例如: diag(1:3,-1) ans = 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 0 省略k时,相当于k为0,其主对角线元素即为向量V的元素。
2.矩阵的秩与迹 (1)矩阵的秩 rank(A) (2)矩阵的迹 矩阵的迹即矩阵的对角线元素之和。 trace(A)。
3.向量和矩阵的范数
设向量 V = (v1 ,v2 ,…,vn ),向量的 3 种常用范数如下。 1-范数: V 2-范数: V ? -范数: V
1
vi 。
i 1
n
2

3.矩阵的转置 所谓转置,即把源矩阵的第一行变成目标矩阵第一列,第二 行变成第二列……依此类推。显然,一个m行n列的矩阵 经过转置运算后,变成一个n行m列的矩阵。MATLAB中, 转置运算符是单撇号(')。

MATLAB讲稿——第四章.ppt

MATLAB讲稿——第四章.ppt

P [an an1 a1 a0 ]
二、 多项式行向量的生成方法 1、直接输入法
将多项式的各项系数依降幂次序排放在行 向量的元素位置上。
缺项系数输为0。
2、利用指令生成法 指令 P=poly(AR)
说明:(1)若AR是方阵,则多项式P就是该方阵的 特征多项式;
(2)若AR是行向量,即
AR [ar1 ar2
再例:
>> R=[-0.5 -0.3+0.4i -0.3-0.4i] %根向量
R=
-0.5000
-0.3000 + 0.4000i -0.3000 - 0.4000i
>> P=poly(R) % R的特征多项式
P=
1.0000 1.1000 0.5500 0.1250
>> PPR=poly2str(P,'x') %用习惯的方式显示多项式
例:
>> A=[1 4 7;3 11 6;5 32 68]; >> PA=poly(A) %A的特征多项式
PA =
1.0000 -80.0000 588.0000 -147.0000 >> PPA=poly2str(PA,'s') %用习惯的方式显示多项式
PPA =
s^3 - 80 s^2 + 588 s - 147
PPR =
x^3 + 1.1 x^2 + 0.55 x + 0.125
4.2 多项式运算函数及调用格式
举例
(s2 2)(s 4)(s 1)
例:求
s3 s 1
的“商”和“余”多项式。
>> p1=conv([1 0 2],conv([1 4],[1 1])); %计算分子多

MATLAB-第四章

MATLAB-第四章
三、函数相关知识
3 变量的作用域
tips:尽量不使用全局变量! tips
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递
按值传递机制
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递
按值传递机制:当一个函数调用发生时, 按值传递机制:当一个函数调用发生时, MATLAB 将会复制实参生成一个副本,然后 将会复制实参生成一个副本, 把它们传递给函数。这次复制是非常重要的, 把它们传递给函数。这次复制是非常重要的, 因为它意味着虽然函数修改了输入参数, 因为它意味着虽然函数修改了输入参数,但 它并没有影响到调用者的原值。 它并没有影响到调用者的原值。 防止了因函数修改变量而导致的严重错误。 防止了因函数修改变量而导致的严重错误。
while 表达式 循环体 end
例:使用while循环计算1+2+3+…+100 使用while循环计算1+2+3+…+100 while循环计算
第四章 MATLAB的编程基础
一、MATLAB的三种控制结构
clear sum=0; i=0; while i<100 i=i+1; sum=sum+i; end sum
第四章 MATLAB的编程基础
三、函数相关知识
4 函数的参数传递 sample.m function out = sample(a, b)
fprintf('In Sample,before compute: a = %f, b = %f \n',a,b);
第四章 MATLAB的编程基础
二、其他流程控制语句 1 . break 和 continue语句 * break语句用于立即跳出含该 语句用于立即跳出含该break语 语句用于立即跳出含该 语 句的循环语句。 句的循环语句。 * continue语句用于提前结束当前循环。 语句用于提前结束当前循环。 语句用于提前结束当前循环

matlab讲义第四章

matlab讲义第四章

图4.11 函数PEAKS的带洞孔曲面图
MATLAB的surf也有两个同种函数:surfc,它画出具有 基本等值线的曲面图。surfl,它画出一个有亮度的曲面 图。例如:
» [X,Y,Z]=peaks(30); » surfc(X,Y,Z) % surf plot with contour plot » grid,xlabel('x-axis'),ylabel('yaxis'),zlabel('z-axis') » title('SURFC of PEAKS')
图4.3 正弦曲线图
利用在x-y平面的矩形网格点上的z轴坐标值,MATLAB 定义了一个网格曲面。MATLAB通过将邻接的点用直线连接起 来形成网状曲面 ,其结果好象在数据点有结点的鱼网。例 如,用MATLAB的函数peaks可以画一个简单的曲面。 » [X,Y,Z]=peaks(30); » mesh(X,Y,Z) » grid on » xlabel('x-axis'),ylabel('y-axis'),zlabel('zaxis') » title('MESH of PEAKS')
图4.4 函数PEAKS的网格图
在显示器上要注意到线的颜色与网格的高度有关。一般情况下, 函数mesh有可选的参量来控制绘图中所用的颜色。关于MATLAB如何 使用、改变颜色在下面讨论。在任何情况下,由于颜色用于增加图 形有效的第四维,这样使用的颜色被称做伪彩色。 上图所示,网格线条之间的区域是不透明的。MATLAB命令 hidden控制网格图的这个特性。例如,用MATLAB的函数sphere产生 两个球面如下: » [X,Y,Z]=sphere(12); » subplot(1,2,1) » mesh(X,Y,Z),title('Opaque') » hidden on; » axis off; » subplot(1,2,2),title('Transparent'); » mesh(X,Y,Z); » hidden off; » axis off;

MATLAB第四章

MATLAB第四章

‘unreal’
非“实”符号变量。
调用格式4:syms(‘a1’,’a2’,’a3’) 功能:把字符串a定义为基本符号对象。 另外,格式4的简洁形式如下:syms a1 a2 a3 例1:比较符号常数形成的差异 >> a=[6,1/6,sqrt(2),pi/3-1] a= %为数值常数
6.0000 0.1667 1.4142 0.0472
第四章 符号计算目录
§4-1 在线帮助和系统演示 §4-2 创建和使用符号对象 §4-3 运算符 §4-4 微积分 §4-5线性代数 §4-6符号计算在控制理论中的应用 §4-7微分方程求解 §4-8约当标准型
第四章 符号计算
前一章介绍了数值计算,它的操作对象都有确定的数值,如果 未对某个变量赋值而执行命令,MATLAB则会给出错误信息。 如: >> clear >> A=[1 1 1;x 3 4] %在数值计算中,x没赋值 ??? Undefined function or variable 'x'. 如果把它们看作符号计算,则不会出现错误信息。 如: >> A=sym('[1 1 1;x 3 4]') A= [ 1, 1, 1] [ x, 3, 4]
end
end
使用M文件来创建符号函数是比较方便的。 >> genhilb(5)
ans = [ 1/(2-t), [ 1/(3-t), [ 1/(4-t), [ 1/(5-t), [ 1/(6-t),
1/(3-t), 1/(4-t), 1/(5-t), 1/(6-t), 1/(7-t),
1/(4-t), 1/(5-t), 1/(6-t), 1/(7-t), 1/(8-t),

MATLAB 培训 第4章 MATLAB文件操作ppt课件

MATLAB 培训 第4章  MATLAB文件操作ppt课件
COUNT=fwrite (fid, A, precision) 其中COUNT前往所写的数据元素个数,fid为文 件句柄,A用来存放写入文件的数据,precision 用于控制所写数据的类型,其方式与fread函数一 样。
例4-1 建立一数据文件magic5.dat,用于存放5 阶魔方阵。 程序如下: fid=fopen('magic5.dat','w'); cnt=fwrite(fid,magic(5),'int32'); fclose(fid);
fid=fopen('magic5.dat', 'r'); [B,cnt]=fread(fid,[5,inf], 'int32'); fclose(fid);
4.2.2 文本文件的读写操作 1.读文本文件 fscanf 函数的调用格式为:
[A,COUNT]= fscanf (fid, format, size) 其中A用以存放读取的数据,COUNT前往所读取 的数据元素个数。fid为文件句柄。format用以控 制读取的数据格式,由%加上格式符组成,常见 的格式符有d,f,c,s。 size为可选项,决议矩阵A中数据的陈列方式。
fid用于存储文件句柄值,句柄值用来标识该数据
文件,其他函数可以利用它对该数据文件进展操 作。
文件数据格式有两种方式,一是二进制文件,二是 文本文件。在翻开文件时需求进一步指定文件格 式类型,即指定是二进制文件还是文本文件。
4.1.2 文件的封锁 文件在进展完读、写等操作后,应及时封锁。封 锁文件用fclose函数,调用格式为: sta=fclose(fid) 该函数封锁fid所表示的文件。sta表示封锁文件操 作的前往代码,假设封锁胜利,前往0,否那么前 往–1。

控制系统仿真及MATLAB语言--第四章 连续系统的离散化方法

控制系统仿真及MATLAB语言--第四章 连续系统的离散化方法

t2 0.2, y2 y1 1 0.1y1 0.9 0.91 0.819 t10 1.0, y10 y9 1 0.1y9 0.4628
t3 0.3, y3 y2 1 0.1y2 0.8191 0.1 0.819 0.7519
状态方程的四阶龙格-库塔公式如下:
h xk +1 xk (K 1 2K 2 2K 3 K 4 ) 6 K 1 Axk Bu (tk ) K 2 A(xk h K 1 ) Bu (tk h ) 2 2 K A (x h K ) Bu (t h ) k 2 k 3 2 2 K A(x hK ) Bu (t h) k 3 k 4 y k +1 Cxk +1
41常微分方程的数值解法数值求解的基本概念设微分方程为则求解方程中函数xt问题的常微分方程初值问题所谓数值求解就是要在时间区间ab中取若干离散点求出微分方程在这些时刻的近似值这种方法的几何意义就是把ftx在区间tk1内的曲边面积用矩形面积近似代替
第四章 连续系统的离散化方法
4.1
常微分方程的数值解法
h xk 1 xk h f k ( ftk ' f xk ' f k ) 2!
f 'tk f 'xk 等各阶导数不易计算,用下式中 ki的线性组合代替
xk 1 xk h ai ki
i 1
r
线性组合
r为精度阶次,ai为待定系数,由精度确定;ki用下 式表示 i 1
ki f (tk b1h, xk hb2 k j ) , i 2,3
将 f tk b1h,xk hb2k1 在点 tk , xk 展成Taylor级数
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 求矩阵最小值的函数是min,其用法和max完全相同。 求矩阵最小值的函数是min 其用法和max完全相同。 min, max完全相同
• 例 4-2

分别求三阶魔方矩阵中 各列和各行元 分别 求三阶魔方矩阵中各列和各行元 求三阶魔方矩阵中 中的最大值,并求整个矩阵的最大值和 中的最大值, 最小值。 最小值。
5 标准方差
• 对 于 向 量 x , std(x , flag) 返 回 一 个 标 准 方 差 。
flag取 flag取0或1。 • 对于矩阵 A , std(A) 返回一个行向量 , 它的各个元 对于矩阵A std(A)返回一个行向量 返回一个行向量, 素便是矩阵A各列或各行的标准方差。 素便是矩阵A各列或各行的标准方差。 Y=std(A,flag,dim) 其中dim dim取 dim=1 其中dim取1或2。当dim=1时,求各列元素的标准方 dim=2 则求各行元素的标准方差。 差 ; 当 dim=2 时 , 则求各行元素的标准方差 。 flag 缺省flag= flag=0 dim=1 取0或1。缺省flag=0,dim=1。
3)同型的向量或矩阵比较
• U=max(A,B)
A,B是两个同型的向量或矩阵,结果U是与A,B A,B是两个同型的向量或矩阵,结果U是与A,B 是两个同型的向量或矩阵 同型的向量或矩阵, 的每个元素等于A,B A,B对 同型的向量或矩阵 , U 的每个元素等于 A,B 对 应元素的较大者。 应元素的较大者。 • U=max(A,n) 是一个标量,结果U是与A同型的向量或矩阵, n是一个标量,结果U是与A同型的向量或矩阵, 的每个元素等于A对应元素和n中的较大者。 U的每个元素等于A对应元素和n中的较大者。 • min函数的用法和max完全相同。 min函数的用法和max完全相同 函数的用法和max完全相同。
4.2 数据分析
4.2.1统计分析 统计分析 1 最大值和最小值 1)求向量的最大和最小值 ) • y=max(X) 返回向量X的最大值存入y,如果X中 返回向量X的最大值存入y 如果X 包含复数元素,则按模取最大值。 包含复数元素,则按模取最大值。 • [y,I]=max(X) 返回向量X的最大值存入y,最大 返回向量X的最大值存入y 值的序号存入I 如果X中包含复数元素, 值的序号存入I,如果X中包含复数元素,则按 模取最大值。 模取最大值。 • 求向量X的最小值的函数是min(X),用法和 求向量X的最小值的函数是min(X) min(X), max(X)完全相同 完全相同。 max(X)完全相同。
第4章 数值计算 (1)
主要内容: 主要内容:
①数据分析; 数据分析; ②矩阵分析; 矩阵分析; 多项式运算; ③多项式运算; 数值插值和拟合; ④数值插值和拟合; ⑤数值积分和微分 。
4.1 概述
数值计算的特点: 数值计算的特点: 1)数值计算是定义在数值数组的基础上,在计 )数值计算是定义在数值数组的基础上, 算之前必须定义变量并赋值。 算之前必须定义变量并赋值。 2)数值计算有误差。 )数值计算有误差。 3)数值计算的计算速度较快。 )数值计算的计算速度较快。 4)数值计算除定义了算术运算、关系运算和逻 )数值计算除定义了算术运算、 辑运算三种,还提供了许多运算函数。 辑运算三种,还提供了许多运算函数。
• median(x,2) median(x,2 • mean(x)
mean(x,1)
• mean(x,2)
3 求和与求积
• sum(X)
返回向量X各元素的和。 返回向量X各元素的和。
• prod(X)
返回向量X各元素的乘积。 返回向量X各元素的乘积。 设A是一个矩阵,函数的调用格式为: 是一个矩阵,函数的调用格式为:
%按列方向求矩阵a的标准方差 按列方向求矩阵a 按列方向求矩阵a %按列方向求矩阵a的标准方差 按行方向求矩阵a %按行方向求矩阵a的标准方差 按列方向求矩阵a %按列方向求矩阵a的标准方差
6 排序
sort(X) 返回一个对向量X中的元素按升序排列的新向量。 返回一个对向量X中的元素按升序排列的新向量。 [Y,I]=sort(A,dim,MODE) Y,I]=sort(A,dim, 对矩阵A的各列或各行重新排序, 对矩阵A的各列或各行重新排序, 是排序后的矩阵; Y 是排序后的矩阵; 记录Y中的元素在排序前A中位置; I 记录Y中的元素在排序前A中位置; 指明对A的列还是行进行排序; dim 指明对A的列还是行进行排序; MODE为排序的方式 为排序的方式。 MODE为排序的方式。
• sum(A)
返回一个行向量,其第i个元素是A的第i列的元素和。 返回一个行向量,其第i个元素是A的第i列的元素和。
• prod(A)
返回一个行向量,其第i个元素是A的第i列的元素乘积。 返回一个行向量,其第i个元素是A的第i列的元素乘积。
• sum(A,dim)
dim为 该函数等同于sum(A) sum(A); dim为 当 dim 为 1 时 , 该函数等同于 sum(A) ; 当 dim 为 2 返回一个列向量,其第i个元素是A的第i 时,返回一个列向量,其第i个元素是A的第i行 的各元素之和。 的各元素之和。
prod(x) prod(x,1 prod(x,1) %求数组各列元素的乘积 prod(x,2 prod(x,2) %求数组各行元素的乘积 prod(prod(x)) %求数组所有元素的乘积
4
累加和与累乘积
• cumsum(X)
返回向量X累加和向量。 返回向量X累加和向量。 • cumprod(X) 返回向量X累乘积向量。 返回向量X累乘积向量。 • cumsum(A) 返回一个矩阵,其第i列是A的第i 返回一个矩阵,其第i列是A的第i列的累加 和向量。 和向量。
按升序排列行函数sortrows的调用格式: 按升序排列行函数sortrows的调用格式: sortrows的调用格式 B = sortrows(A) 按升序排列A 的列,其中A为矩阵或行向量。 按升序排列A 的列,其中A为矩阵或行向量。 B = sortrows(A,column) 以指定的列向量排序矩阵 [B,index] = sortrows(A) 排序时返回向量的序号。 排序时返回向量的序号。 如果A 为列向量, A(index); 如果A 为列向量,B = A(index); 如果A by- 矩阵, A(index,: 如果A 为m-by-n 矩阵,B = A(index,:)。
例 4-7 已知 a = [1 2 3; 3 9 6; 4 10 8;4 0 已知a 从不同维方向求出其标准方差。 7],从不同维方向求出其标准方差。 std(a) std(a,0 std(a,0,1) std(a,1 std(a,1,1) std(a,0,2) std(a,1 std(a,1,2)
• cumprod(A)
返回一个矩阵,其第i列是A的第i 返回一个矩阵,其第i列是A的第i列的累乘积向 量。
• cumsum(A,dim)
dim为 该函数等同于cumsum(A) cumsum(A); 当 dim 为 1 时 , 该函数等同于 cumsum(A) ; dim为 返回一个矩阵 其第i行是A 矩阵, 当dim为2时,返回一个矩阵,其第i行是A 的第i行的累加和向量。 累加和向量 的第i行的累加和向量。 • cumprod(A,dim) dim为 该函数等同于cumprod(A) cumprod(A); 当 dim 为 1 时 , 该函数等同于 cumprod(A) ; dim为 返回一个向量,其第i行是A 当dim为2时,返回一个向量,其第i行是A 的第i行的累乘积向量。 累乘积向量 的第i行的累乘积向量。
• prod(A,dim)
dim为 该函数等同于prod(A) prod(A); dim为 当dim为1时,该函数等同于prod(A);当dim为2 返回一个列向量,其第i个元素是A的第i 时,返回一个列向量,其第i个元素是A的第i行 的各元素乘积。 的各元素乘积。
例 4 -5
已知x=[ 已知x=[4 5 6;1 4 8],分析矩阵x x=[4 分析矩阵x 的每行、 的每行、每列元素的乘积和全部元 素的乘积。 素的乘积。 sum(x) sum(x,1) %求数组各列元素的和 sum(x, (x,2 sum(x,2) %求数组各行元素的和 sum(sum(x)) %求数组所有元素的和
例 4-1 已 知 x=[-43,72,9,16,23,47] , x=[-43,72, 16,23,47] 求向量x的最大值和最小值。 求向量x的最大值和最小值。 求向量x y=max(x) %求向量x中的最大值 求向量x [y,l]=max(x) %求向量x中的最大值及其该元 素的位置 求向量x z=min(x) %求向量x中的最小值 求向量x [z,m]=min(x) %求向量x中的最小值及其该元 素的位置
2)求矩阵A的最大值和最小值 求矩阵A
ቤተ መጻሕፍቲ ባይዱ
• max(A)
返回一个行向量, 向量的第i 个元素是矩阵A 的第i 返回一个行向量 , 向量的第 i 个元素是矩阵 A 的第 i 列上的最大值。 列上的最大值。 [Y,U]=max(A) 返回行向量Y 向量记录A的每列的最大值, 返回行向量Y和U,Y向量记录A的每列的最大值,U 向量记录每列最大值的行号。 向量记录每列最大值的行号。 • max(A,[],dim) dim取1或2。dim取1时,该函数和max(A)完全相同; dim取 dim取 该函数和max(A)完全相同; max(A)完全相同 dim取 该函数返回一个列向量,其第i dim取2时,该函数返回一个列向量,其第i个元素 矩阵的第i行上的最大值。 是A矩阵的第i行上的最大值。
• mean(A)
返回一个行向量,其第i个元素是A的第i 返回一个行向量,其第i个元素是A的第i列的 算术平均值。 算术平均值。
• median(A)
相关文档
最新文档