第2章 matlab数值计算功能
- 格式:ppt
- 大小:751.50 KB
- 文档页数:73
MATLAB数值计算功能
MATLAB是一种非常强大的数值计算软件,被广泛应用于科学计算、
工程计算和数据分析等领域。
它提供了丰富的数值计算功能,包括基本的
数学运算、线性代数、数值积分、微分方程求解、优化算法等。
下面将详
细介绍一些常见的数值计算功能。
1.数学运算:
MATLAB提供了丰富的数学函数,可以进行各种基本的算术运算,如
加减乘除、幂运算、取模运算等。
同时,它还提供了一些高级的数学函数,如三角函数、指数函数、对数函数等。
通过这些函数,用户可以进行各种
复杂的数学运算。
2.线性代数:
3.数值积分:
4.微分方程求解:
5.优化算法:
MATLAB提供了各种优化算法,如线性规划、非线性规划、整数规划、二次规划等。
用户可以通过设定目标函数和约束条件,利用MATLAB的优
化函数寻找最佳的解。
这对于优化问题的求解非常有用,如工程设计、生
产调度等。
6.统计分析:
7.数据可视化:
总之,MATLAB的数值计算功能非常丰富,可以满足各种数学计算和数据分析的需求。
它不仅提供了各种基本的数学运算功能,还提供了高级的线性代数、数值积分、微分方程求解、优化算法和统计分析等功能。
同时,其强大的数据可视化功能也是很多用户选择MATLAB作为数值计算工具的重要原因之一。
学习使用MATLAB进行数值计算和数据分析---第一章:MATLAB的基本介绍MATLAB是一种强大的数值计算和数据分析软件,广泛应用于科学研究、工程设计等领域。
它的主要特点是简洁直观的用户界面和丰富的数学函数库。
在本章中,我们将介绍MATLAB的基本特性和使用方法。
1.1 MATLAB的历史与发展MATLAB是由MathWorks公司于1984年首次推出的。
起初,它作为一个用于矩阵计算的工具被广泛使用。
随着时间的推移,MATLAB逐渐拓展了功能,加入了许多其他数学和工程计算的功能,如符号计算、数据统计和可视化。
如今,MATLAB已经成为一种非常受欢迎的工具。
1.2 MATLAB的安装和环境设置要开始使用MATLAB,首先需要从MathWorks官网下载并安装MATLAB软件。
安装完成后,打开MATLAB并设置工作目录和默认工作文件夹。
工作目录是指存储MATLAB代码和数据文件的文件夹,而默认工作文件夹是指MATLAB打开时默认选择的文件夹。
1.3 MATLAB的基本语法和命令MATLAB的基本语法和命令非常简单易懂。
它采用类似于其他编程语言的命令行交互方式,用户可以直接在命令行输入MATLAB语句并执行。
例如,可以输入"2+2"并按回车键得到结果4。
此外,MATLAB还具有许多内置的数学函数和运算符,可以进行各种数值计算和数据分析。
1.4 MATLAB脚本和函数在MATLAB中,可以使用脚本和函数来组织和执行一系列MATLAB命令。
脚本是一系列命令的集合,可以一次性运行。
函数是一段可以重复使用的代码,可以接受输入参数并返回输出结果。
通过编写脚本和函数,可以提高MATLAB代码的可重复性和可维护性。
第二章:数值计算MATLAB作为一种数值计算工具,提供了丰富的数学函数和算法,可以用于解决各种数值计算问题。
在本章中,我们将介绍MATLAB在数值计算方面的一些常用功能和技巧。
2.1 数值计算方法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),以弧度为单位。
MATLAB2009从入门到精通课程主要内容•第1章MATLAB简介•第2章数值运算•第3章单元数组和结构•第4章字符串•第5章符号运算•第6章MATLAB绘图基础•第7章程序设计•第8章计算方法的MATLAB实现•第9章优化设计•第10章SIMULINK仿真初探第2章数值运算•本章将介绍MATLAB2009的数值计算功能,首先讲述MATLAB中的运算符,然后讲述包括MATLAB的向量、矩阵和数组,并介绍他们之间的运算。
此外,还介绍了一些特殊的矩阵数据结构。
另外,还对MATLAB中的多项式的运算以及多项式拟合作了详细介绍。
2.1 MATLAB中的变量•MATLAB中的变量必须以字母打头,之后可以是任意字母、数字或下划线,变量名区分字母大小写,变量名不超过19个字符,默认变量名为ans。
除此之外还包含一些特殊的变量。
•who命令能够显示变量的信息;•whos命令能够显示变量的详细信息。
•matlab中同样支持复数变量,表示方法为a=m+ni(j)。
当n是表达式时,n与i(j)之间必须要加乘号。
另外也可以用complex(x,y)来产生复数。
•在循环程序段中一般不把i和j作为变量名称,以免生成数据时发生误解。
•>> a=1+2i• a =• 1.0000 + 2.0000i •>> b=1+3*i• b =• 1.0000 + 3.0000i•>> 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.•>> x=sin(2);•>> y=cos(3);•>> a=complex(x,y)• a =•0.9093 -0.9900i•>> b=complex(x)• b =•0.9093•>> a=i+2i• a =•0 + 3.0000i •>> b=i+2*i • b =•0 + 3.0000i•>> i=5;•>> a=i+2i• a =• 5.0000 + 2.0000i •>> b=i+2*i• b =•15•>> i=5;•>> a=5+i • a =•10•>> b=5+1*i • b =•10•>> i=5;•>> a=5+2i• a =• 5.0000 + 2.0000i •>> a=5+2*i• a =•152.2 MATLAB的数值运算基础2.3 数组及向量运算•由数学知识可知,数组和矩阵有着不同的概念。
实验二第2章MATLAB数值计算功能MATLAB强大的数值计算功能使其在诸多数学计算软件中傲视群雄,是MATLAB的基础.本章将简要介绍MATLAB的数据类型、矩阵的建立及运算.第一节MATLAB 的数据类型MATLAB 的数据类型主要包括:数字、字符串、矩阵、单元型数据及结构型数据等,此处仅介绍几个常用类型.一、MAT L A B中的变量与常量不需要对所使用的变量进行事先声明,也不需要指定其类型,它会自动根据所赋予变量的值或所进行的操作来确定变量的类型.如果变量重新赋值将会用新值代替旧值并以新值类型代替旧值类型.⏹例1 a=1;b=0.5;c=a*b,c=‘a*b’⏹变量的命名规则是:(1)变量名可以有63个字符.字母A~Z、a~z、数字和下划线‘_’都可以作为变量名,但第一个字符必须是一个字母;(2)变量名区分大小写,如矩阵a和A是不一样的;(3)变量名中不允许使用标点符号、空格、运算符;(4)预定义变量名也可以像一个变量名那样使用,但只有在变量由命令clear删除后才能恢复原意,所以,不主张这样使用;(5)MATLAB提供的标准函数及命令通常是用小写字母书写.例2 命令abs (A)给出了A 的绝对值,但ABS(A)会导致在屏幕上显示错误信息.二、 算术表达式及显示格式在MATLAB 中对十进制数,使用科学记数法可以书写十分大和十分小的数.例如1.23e -6,代表1.23×10-6 .MATLAB 有算术运算符的扩展集,它们是:1) ^ 幂;2) * 乘; / 右除(正常除); \ 左除;3) + 加;- 减这是按序给出的运算,1)是最高优先级.在带相同优先级的运算符表达式中,按从左到右的顺序执行.圆括号( )能够用于改变优先级次序.两种不同的除法:对于数量右除 2 / 5得0 . 4与左除5 \ 2是相同的,斜线号“靠着”的表达式或数字是分母.如a/(b+c)即为,而a\(b+c)即为 .ab c +b c a+命令集4 显示格式format defformat 将输出格式改为由defformat 定义的格式,这类格式可以是如下之一:short 、long 、short e 、long e 、hex 、+、bank 、rat也有compact 或loose ,它给出了一个较紧缩或较宽松的输出格式,但并不影响数值输出格式.■例3设 b = 1 + 1/3,先定义格式,然后在屏幕上显示b:format short 得1.3333 4位小数format long 得1.33333333333333 14位小数format short e 得1.3333e + 000 4位小数format long e 得1.333333333333333e + 000 15位小数format hex 得3ff5555555555555 16进制数format + 得+ 正:+ format bank 得1.33 美元和美分format rat 得4/3 作为一个有理数三、数学函数命令集5数学函数abs(x) 求x的绝对值,即|x| .sign(x)求x的符号,如果是正的得1;负的得-1;零得0 .sqrt(x)求x.exp(x)求x的指数函数,即.x elog(x)求x的自然对数,即lnx .log10(x)求x以10为底的对数,即.log x10sin(x)求正弦x,x为弧度.cos(x)求余弦x,x为弧度.tan(x)求正切x,x为弧度.cot(x)求余切x,即1 / ( tanx),x为弧度.asin(x)求反正弦,即.1-sin xacos(x)求反余弦,即.1-cos xsec(x)求正割x,即1/(cosx) .csc(x)求余割x,即1/(sinx) .命令集6取整命令round(x)求最接近x的整数.如果x是一个向量,则适用于所有元素.fix(x)求0方向最接近x的整数.即负x向上四舍五入,正x向下四舍五入.floor(x)求小于或等于x的最接近的整数.ceil(x)求大于或等于x的最接近的整数.rem(x, y)求整除x/y的余数.gcd(x, y)求整数x和y的最大公因子.lcm(x,y)求正整数x和y的最小公倍数,也能用于决定最小公因子.第二节MATLAB的矩阵的建立与运算矩阵是MATLAB 数据存储的基本单元,而矩阵的运算是MATLAB 语言的核心,几乎一切运算均是以对矩阵的操作为基础的.一、矩阵的建立1. 直接输入法从键盘上输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵.规则如下:⏹输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在中括号内.⏹矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔.⏹矩阵大小不需要预先定义.⏹矩阵元素可以是运算表达式.⏹若"[ ]"中无元素表示空矩阵.⏹例4 >> A=[1 2 3;4 5 6;7 8 9]A=1 2 34 5 67 8 92. 利用“:”生成矩阵(1)生成等距的行向量,如>> a=1:0.5:4a=Columns 1 through 71 1.52 2.53 3.5 4(2)截取指定矩阵中的部分生成新矩阵,如>> B=A (1:2, : )B=1 2 34 5 6即矩阵B是例4中A矩阵的前两行生成.3. 外部文件读入法以文件的形式存储,适合大型矩阵输入.读入形式>> Load+文件名Load 函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为matlab.mat 文件为操作对象,如果该文件在MATLAB 搜索路径中不存在时,系统将会报错.4. 特殊矩阵的生成命令集71矩阵、零矩阵、单位矩阵和随机矩阵ones (n)建立一个n×n的1矩阵.ones (m , n)建立一个m×n的1矩阵.ones (size(A))建立一个和矩阵A同样大小的1矩阵.zeros(n)建立一个n×n的0矩阵.zeros(m , n)建立一个m×n的0矩阵.zeros(size(A))建立一个和矩阵A同样大小的0矩阵.eye(n) 建立一个n×n 的单位矩阵.eye(m, n)建立一个m×n 的单位矩阵.eye(size(A))建立一个和矩阵A同样大小的单位矩阵.rand 产生在0~1之间均匀分布的随机数;每调用一次给一个新的数值.rand + i*rand产生一个复数随机数.rand(n) 产生一个n ×n 的矩阵,其元素为0~1之间均匀分布的随机数.rand(m , n) 产生一个m ×n 的矩阵,其元素为0~1之间均匀分布的随机数.二、矩阵的运算MATLAB 中的大多数运算可以直接对矩阵应用.除了算术运算+、-、*、^、/、\外,还有用于转置和共轭的运算符(撇号 ’:实数时为转置,复数时为共轭转置,复数时转置为 .’)、关系运算符和逻辑运算符.1. 除法 在MATLAB 中,有两个矩阵除法的符号,左除 \和右除/ .如果A 是一个非奇异方阵,那么A \ B 和B / A 对应A 的逆与B 的左乘和右乘,即分别等价于命令 i n v ( A ) 1A B -1BA -*B 和B* i n v ( A ).2. 元素操作算术运算算术运算也可以元素与元素逐次进行.参与运算的矩阵维数要相同.如果运算是由一点进行的,那么这个运算实行的是元素方式,称为数组运算或点运算.对于加法和减法,数组运算(点运算)和矩阵运算没有差别.数组运算(点运算)符是:+ - . * . /. \ . ^例5 >> A=[1 2 3;4 5 6;7 8 9];B=ones(3); C=A.*BC=1 2 34 5 67 8 93. 关系运算符MATLAB有用于比较矩阵的六个关系运算符,也可以对矩阵与一个标量进行比较,即矩阵中的每个元素与标量进行比较.关系运算符如下:< 小于< = 小于等于> 大于> = 大于等于= = 等于~ = 不等于关系运算符比较对应的元素,产生一个仅包含1和0的具有相同维数的矩阵.其元素是:1 比较结果是真0 比较结果是假在一个表达式中,算术运算符优先级最高,其次是关系运算符,最低级别是逻辑运算符.圆括号可以改变其顺序.4. 逻辑运算符在MATLAB中有四种逻辑运算符:& 与;| 或;~ 非;xor 异或;逻辑运算符的运算优先级最低.在一个表达式中,关系运算符和算术运算符的运算级别要高于逻辑运算符.x o r和o r之间的差别在于:表达式中至少有一个是真,那么o r是真;x o r是表达式中有一个是真但不能两者均为真时才为真.运算符&和|比较两个相同维数的矩阵,它也能使一个标量与一个矩阵进行比较.逻辑运算符是按元素比较的.零元素表示逻辑值假,任何其他值的元素表示逻辑值真.其结果是一个包含1和0的矩阵.命令集8逻辑运算符A & B返回一个与A和B相同维数的矩阵.在这个矩阵中,A和B对应元素都为非零时,则对应项为1;有一个为零的项则为0.A | B返回一个与A和B相同维数的矩阵.在这个矩阵中,A和B对应元素只要有一个为非零,则对应项为1;两个矩阵对应元素均为零时,则对应项为0.~A返回一个与A和B相同维数的矩阵.在这个矩阵中,A对应元素是零时,则对应项为1;A 对应元素是非零时,则对应项为0.xor(A, B) 返回一个与A 和B 相同维数的矩阵.在这个矩阵中,如果 A 和B 均为零或均为非零时,则对应项为 0;如果A 或B 是非零但不是两者同时为非零时,则对应项为1.练习题1. 在计算机上,求下列表达式的值.①;6(10.3424510)w -=+⨯② ,其中;2(2)/[tan()]b c x a e b c a abc ππ+=+-+++ 3.5,5,9.8a b c ===-③ , 其中;22[(1)(0.8333)]44y a b a πππ=--- 3.32,7.9a b ==-④ ,其中;21(2t z e ln t =+2t =⑤ ,其中 .cos sin 78x y u x y +-=+12,3x i y =+=-2. 完成下列操作,观察结果:① a=1:5,b=(1:5)’② y=0:pi/4:pi③ x=(0:0.2:3)’,y=exp(-x).* sin(x)④ A=[1 2 3;4 5 6;7 8 9]B=[1,2,3;4,5,6;7,8,9]C=[1 2 34 5 67 8 9]⑤ [sin(),2*cos(/3);5*,exp(2)]A pi pi pi =-3. 已知 , 求 11112111,1312AB ⎡⎤⎡⎤⎢⎥⎢⎥=- 1 = -⎢⎥⎢⎥⎢⎥⎢⎥ 1 -1 1 1 4⎣⎦⎣⎦① AB-2A , ② AB-BA,A.*B,B.*A , ③ .11A B B A ---4. ,求.21350.65i x ⎡⎤⎢⎥⎣⎦- =-21ln(2x y e x =+5.,求 .23100.7780414565532503269.5454 3.14D - ⎛⎫⎪- ⎪= ⎪⎪ - ⎝⎭2,.*,.^2D D D D 6.x = (1,1,1,1),y = (2,3,4,5)’ ,求 .,xy yx 7.完成下列操作并观察结果①(6),(5,6),(6,5)ones ones ones ② (4),(3,4),(4,3)zeros zeros zeros ③ (5),(4,5),(5,4)eye eye eye ④ ,(3),(3,4)x rand i rand A rand B rand =+* = =⑤(3),(4),(3)hilb hilb invhilb ⑥ [12345],[54321],(,),()x y T toeplitz x y S toeplitz x = = = =⑦(),()A compan x B compan y = =⑧ (),()vander x vander y ⑨ C=[ones(4),zeros(4);eye(4),rand(4)]⑩ C=[ones(4),zeros(4);eye(4),rand(5)]8. 建立向量①(1:3),(1:0.5:3),(4:0.5:0)x y z = = =-② (/4,/4),(1,3,5)w linspace v linspace ππ=- =9. 完成下列命令,观察结果① a=[1:3;4:6;7:9],x=5;xa=x<=a② b=[0 4 1;1 0 8;2 0 0];ab=a &b③n_b=~b10. 计算P 265x=1;y(1)=x ;for k=1:15x=1/(x+1); y(k)=x;end y 11. 计算P 266x=1;y(1)=x ; w=7/25;for k=1:10x=w*x+(1-w)/(x+1); y(k)=x;endy12. 练习format 命令:对第1题练习各种输出格式.。