MATLAB数值计算 (matlab全课件教程)
- 格式:ppt
- 大小:156.50 KB
- 文档页数:82


第六章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 分别是多项式的向量表示形式。 个多项式的除法运算 .
MATLAB2009从入门到精通2013-7-222课程主要内容•第1章MATLAB简介•第2章数值运算•第3章单元数组和结构•第4章字符串•第5章符号运算•第6章MATLAB绘图基础•第7章程序设计•第8章计算方法的MATLAB实现•第9章优化设计•第10章SIMULINK仿真初探2013-7-223第2章数值运算•本章将介绍MATLAB2009的数值计算功能,首先讲述MATLAB中的运算符,然后讲述包括MATLAB的向量、矩阵和数组,并介绍他们之间的运算。此外,还介绍了一些特殊的矩阵数据结构。另外,还对MATLAB中的多项式的运算以及多项式拟合作了详细介绍。2013-7-2242.1 MATLAB中的变量•MATLAB中的变量必须以字母打头,之后可以是任意字母、数字或下划线,变量名区分字母大小写,变量名不超过19个字符,默认变量名为ans。除此之外还包含一些特殊的变量。•who命令能够显示变量的信息;•whos命令能够显示变量的详细信息。2013-7-2252013-7-226•matlab中同样支持复数变量,表示方法为a=m+ni(j)。当n是表达式时,n与i(j)之间必须要加乘号。另外也可以用complex(x,y)来产生复数。•在循环程序段中一般不把i和j作为变量名称,以免生成数据时发生误解。2013-7-227程序实例•>> a=1+2i•a =•1.0000 + 2.0000i•>> b=1+3*i•b =•1.0000 + 3.0000i2013-7-228程序实例•>> a=sin(2)+cos(2)*i•a =•0.9093 -0.4161i•>> b=sin(2)+cos(3)i•??? b=sin(2)+cos(3)i•|•Error: Unexpected MATLAB expression.2013-7-229程序实例•>> x=sin(2);•>> y=cos(3);•>> a=complex(x,y)•a =•0.9093 -0.9900i•>> b=complex(x)•b =•0.90932013-7-2210程序实例•>> a=i+2i•a =•0 + 3.0000i•>> b=i+2*i•b =•0 + 3.0000i2013-7-2211程序实例•>> i=5;•>> a=i+2i•a =•5.0000 + 2.0000i•>> b=i+2*i•b =•152013-7-2212程序实例•>> i=5;•>> a=5+i•a =•10•>> b=5+1*i•b =•102013-7-2213程序实例•>> i=5;•>> a=5+2i•a =•5.0000 + 2.0000i•>> a=5+2*i•a =•152013-7-22142.2 MATLAB的数值运算基础2013-7-22152013-7-22162013-7-22172013-7-22182.3 数组及向量运算•由数学知识可知,数组和矩阵有着不同的概念。在MATLAB2009中,数组和矩阵在形式上有很多一致性,但是实际上它们遵循不同的运算规则。•数组运算主要是针对多个数执行同样的计算而运用的。在MATLAB中,以一种非常直观的方式来处理数组。2013-7-22192.3.1 数组构造•在MATLAB中数组表示,用户只需以左方括号开始,以空格或逗号为间隔输入元素值,最后以右方括号结束。以分号分隔不同行的元素。•>> a=[1 2 3;2 3 4]•a =•1 2 3•2 3 42013-7-22201、利用first:increment:last来创建数组•first:increment:last表示创建一个从first开始,到last结束,数据元素的增量为increment的等差数组。•冒号表示直接定义数据元素之间的增量,而不是数据元素个数。若增量为1,上面创建数组的方式可简写为:first:last。2013-7-2221程序实例•>> a=(1:2:9)•a =•1 3 5 7 9•>> b=1:2:9•b =•1 3 5 7 92013-7-22222、利用MATLAB函数linspace来创建数组•linspace通过直接定义数据元素个数,而不是数据元素之间的增量来创建数组。此函数的调用格式如下:•linspace(firstvalue,lastvalue,number)•该调用格式表示创建一个从firstvalue开始,到lastvalue结束,包含number个数据元素的等差数组。2013-7-2223程序实例•>> a=linspace(0,2,4)•a =•0 0.6667 1.3333 2.0000•>> b=linspace(0,2,5)•b =•0 0.5000 1.0000 1.5000 2.00002013-7-22243、利用logspace函数来创建对数分隔的数组•与linspace一样,logspace函数也通过直接定义数据元素个数,而不是数据元素之间的增量来创建数组。•logspace函数的调用格式为:•logspace(firstvalue,lastvalue,number)•此函数表示创建一个从10的firstvalue次幂开始,到10的lastvalue次幂结束,包含有number个数据元素的等比数组。2013-7-2225程序实例•>> a=logspace(0,2,2)•a =•1 100•>> b=logspace(0,2,3)•b =•1 10 1002013-7-22262.3.2 数组运算•数组与标量的四则运算是指数组中的每个元素与标量进行加、减、乘、除运算。•数组的指数运算为exp,以2为底的指数运算为pow2;•数组自然对数运算为log,常用对数运算为log10,以2为底的对数运算为log2,开方运算sqrt。•数组与数组之间进行运算时,每个数组必须具有相同的维数,且必须用点乘或点除。•这些运算都是数组中每个元素进行相对应的运算。2013-7-2227程序实例•>> a=[1 2]+1•a =•2 3•>> b=[1 2]-2•b =•-1 02013-7-2228程序实例•>> c=[1 2]*2•c =•2 4•>> d=[1 2].*2•d =•2 42013-7-2229程序实例•>> e=[1 2]/2•e =•0.5000 1.0000•>> f=[1 2]./2•f =•0.5000 1.00002013-7-2230程序实例•>> a=exp([1 2])•a =•2.7183 7.3891•>> b=pow2([1 2])•b =•2 42013-7-2231程序实例•>> c=log([1 10])•c =•0 2.3026•>> d=log10([1 10])•d =•0 12013-7-2232程序实例•>> e=log2([1 8])•e =•0 3•>> f=sqrt([1 9])•f =•1 32013-7-2233程序实例•>> a=[1 2]+[3 4]•a =•4 6•>> b=[1 2]-[3 4]•b =•-2 -22013-7-2234程序实例•>> c=[1 2].*[3 4]•c =•3 8•>> d=[1 2]*[3 4]•??? Error using ==> mtimes•Inner matrix dimensions must agree.2013-7-2235程序实例•>> e=[3 4]./[1 2]•e =•3 22013-7-22362.3.3 数组查询•查询x数组的第n个元素,x(n);•查询x数组的第2到4个元素,x(2:4);•查询x数组的第4到最后1个元素,x(4:end);•查询x数组的第3、2、1个元素,x(3:-1:1);•查询x数组的小于n元素,x(find(x> x=[1 2 3 4 5 6 7 8 9];•>> x(4)•ans =•4•>> x(3:5)•ans =•3 4 5•>> x(6:end)•ans =•6 7 8 92013-7-2238程序实例•>> x(5:-1:2)•ans =•5 4 3 2•>> x(find(x<4))•ans =•1 2 3•>> x([4 2 7])•ans =•4 2 72013-7-22392.3.4 数组排序•sort(x)命令将数组x中的元素按升序排列。•当x是多维数组时,命令是将x中各列元素按升序排列;•当x是一个字符型单元数组,命令是将x中的元素按ASCп码升序排列;•当x数据类型是复数,命令将按各元素的模升序排列;•y=sort(x,mode)中,mode决定排序方式,选择ascend将按升序排列,选择descend将按降序排列,y与x保持相同大小。2013-7-2240程序实例•>> x=[4 1 2;2 3 1;5 2 1];•>> a=sort(x)•a =•2 1 1•4 2 1•5 3 2•>> b=sort(x,'descend')•b =•5 3 2•4 2 1•2 1 12013-7-2241程序实例•>> x={'c','t','g','h'};•>> a=sort(x)•a = •'c' 'g' 'h' 't'•>> b=sort(x,'descend')•??? Error using ==> cell.sort at 52•DIM argument not supported for cell arrays.2013-7-2242程序实例•>> x=[3+i,2+i,4+2i,2-i];•>> a=sort(x)•a =•2.0000 -1.0000i 2.0000 + 1.0000i 3.0000 + 1.0000i 4.0000 + 2.0000i•>> b=sort(x,'descend')•b =•4.0000 + 2.0000i 3.0000 + 1.0000i 2.0000 + 1.0000i 2.0000 -1.0000i2013-7-22432.4 向量运算•向量点积运算:在高等数学中,向量的点积是指两个向量在其中某一向量方向上的投影的乘积,它通常来定义向量的长度,是个数值。c=dot(a,b)表示向量a与b的点积放在c中,a与b长度必须相同。•向量叉积运算:在高等数学中,向量的叉积是过两个向量的交点并且与这两个向量所在平面相垂直的向量,是个向量。c=cross(a,b)表示向量a与b的叉积放在c中,a与b必须是三个元素的向量,生成的仍然是一个三维的向量。2013-7-2244程序实例•>> a=[1 2 3 4];•>> b=[2 3 4 5];•>> c=dot(a,b)•c =•40•>> d=cross(a,b)•??? Error using ==> cross at 37•A and B must have at least one dimension of length 3. •>> d=cross([1 2 3],[2 1 3])•d =•3 3 -32013-7-22452.5 矩阵及其运算•MATLAB语言是由早期专门用于矩阵运算的计算机语言发展而来的,其名称就是“矩阵实验室”(Matrix Laboratory)的缩写。MATLAB语言组基本、最重要的功能就是进行实数矩阵或是复数矩阵的运算,其所有的数值功能都以矩阵为基本单元来实现。
2024/1/261matlab教程(完整版)
2024/1/262目录•MATLAB概述与基础•矩阵运算与数组操作•数值计算与数据分析•程序设计基础•图形绘制与可视化技术•Simulink仿真技术
2024/1/26301MATLAB概述与基础Chapter
2024/1/264MATLAB简介MATLAB是一种高级编程语言和环境,主要用于数值计算、数据分析、信号处理、图像处理等多种应用领域。MATLAB具有简单易学、高效灵活、可视化强等特点,被广泛应用于科研、工程、教育等领域。MATLAB提供了丰富的函数库和工具箱,方便用户进行各种复杂的数学计算和数据分析。
2024/1/265安装MATLAB需要先下载对应版本的安装包,然后按照安装向导的提示进行安装。安装过程中需要选择安装路径、设置环境变量等。安装完成后,可以通过双击桌面图标或在命令行中输入matlab命令来启动MATLAB。MATLAB安装与启动
2024/1/266MATLAB界面介绍MATLAB界面主要包括命令窗口、工作空间、命令历史、当前文件夹等部分。命令窗口用于输入命令和显示输出结果。工作空间用于显示当前定义的所有变量及其值。命令历史记录了用户输入过的命令及其输出结果。当前文件夹显示了当前工作目录中的文件和文件夹。
2024/1/267基本运算与数据类型MATLAB支持基本的数学运算,如加、减、乘、除等。数值型数据可以是整数或浮点数,支持复数运算。字符型数据用单引号括起来,支持字符串连接和比较等操作。MATLAB中的数据类型包括数值型、字符型、逻辑型等。
2024/1/26802矩阵运算与数组操作Chapter
2024/1/26901020304使用`[]`或`zeros`、`ones`等函数创建矩阵创建矩阵使用`size`函数获取矩阵大小矩阵大小通过下标访问矩阵元素,如`A(i,j)`矩阵元素访问使用`disp`或`fprintf`函数显示矩阵信息矩阵信息矩阵创建与基本操作
2024/2/21MATLAB基础教程(第五版)全套教学课件
2024/2/22目录•MATLAB概述与基础•数值计算与符号运算•图形绘制与可视化技术•程序设计思想及实践案例分析
2024/2/23目录•Simulink建模与仿真分析•MATLAB扩展功能及应用领域探讨
2024/2/24MATLAB概述与基础01
2024/2/2501MATLAB是MathWorks公司开发的一款商业数学软件02主要应用于算法开发、数据可视化、数据分析以及数值计算等领域03在科学计算、工程设计、图像处理、信号处理等领域有广泛应用MATLAB简介及应用领域
2024/2/26MATLAB工作环境与界面介绍01MATLAB工作环境包括命令窗口、工作空间、编辑器、路径管理器等02界面简洁直观,易于上手,支持多种操作系统提供丰富的帮助文档和示例代码,方便用户学习和使用03
2024/2/27MATLAB支持多种数据类型,包括数值型、字符型、逻辑型等变量命名规则灵活,但建议遵循一定的命名规范运算符包括算术运算符、关系运算符、逻辑运算符等变量、数据类型和运算符
2024/2/28010203MATLAB以矩阵作为基本数据单位,支持多维数组提供丰富的矩阵运算函数,如矩阵乘法、矩阵转置、矩阵求逆等支持数组元素的索引和切片操作,方便进行数据处理矩阵与数组操作
2024/2/29流程控制语句01MATLAB提供多种流程控制语句,如if语句、for循环、while循环等02支持条件判断、循环控制、中断和继续等操作03流程控制语句的语法简洁明了,易于理解和使用
2024/2/210数值计算与符号运算02
2024/2/21103介绍数值计算的定义、特点、误差分析等基本概念。数值计算基本概念详细讲解MATLAB中的数值类型,包括整数、浮点数、复数等。MATLAB数据类型介绍数组和矩阵的基本概念和运算规则,包括数组的创建、索引、操作等,以及矩阵的加减、乘除、转置等运算。数组与矩阵运算数值计算基础2024/2/2