matlab在科学计算中的应用姜志鹏.ppt
《matlab在科学计算中的应用姜志鹏.ppt》由会员分享,可在线阅读,更多相关《matlab在科学计算中的应用姜志鹏.ppt(122页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 0 初识初识MATLAB例例1-1 绘制正弦曲线和余弦曲线。绘制正弦曲线和余弦曲线。x=0:0.5:360*pi/180;plot(x,sin(x),x,cos(x); 例例1-2 求方程求方程 3x4+7x3 +9x2-23=0的全部根。的全部根。p=3,7,9,0,-23; %建立多项式系数向量建立多项式系数向量x=roots(p) %求根求根432379230 xxx 例例1-3 求积分求积分 quad(x.*log(1+x),0,1) 例例1-4 求解线性方程组。求解线性方程组。a=2,-3,1;8,3,2;45,1,-9; b=4;2;17; x=inv(a)*b 10log(1)
2、xx dx123123123234832245917xxxxxxxxx2.1 MATLAB 基本命令简介 MATLAB 通用命令 Matlab常用的窗口帮助命令常用的窗口帮助命令 help 命令直接输入 help, MATLAB 将列出所有的帮助主题,每个帮助主题对应于 MATLAB搜索路径中的一个目录;help 后加帮助主题,可获得指定帮助主题的帮助信息;help 后加函数名; help 后加命令名,将得到指定命令的用法; helpwin 命令用于打开 MATLAB 的帮助文件窗 lookfor 命令允许用户通过完整的或部分关键字来搜索要查找的内容 who 和 whos 的作用是列出在 MA
3、TLAB 工作内存中驻留的变量名 exist 命令用来查找或检查变量和函数的存在性怎样获得详尽的帮助信息(总结) 首先是首先是MATLABMATLAB窗口中的窗口中的helphelp命令,它最常用、最快,往往命令,它最常用、最快,往往也是最有效的。给出关键字就能找到相应的说明。也是最有效的。给出关键字就能找到相应的说明。HelpHelp命命令简单易用,但是它要求准确给出关键字,如果记忆不准,令简单易用,但是它要求准确给出关键字,如果记忆不准,就很难找到。这时就应该用第二种方案。就很难找到。这时就应该用第二种方案。 Help DeskHelp Desk:这是:这是MATLABMATLAB的的HT
4、MLHTML格式的帮助文档,有着很好格式的帮助文档,有着很好的组织。可以在命令行键入的组织。可以在命令行键入helpdeskhelpdesk,进入,进入“Matlab Help Matlab Help DeskDesk”。Help DeskHelp Desk的搜索可以使用不完全关键字,这样即的搜索可以使用不完全关键字,这样即使遇到记忆模糊的情况也可以很快查到。使遇到记忆模糊的情况也可以很快查到。 前面两种方法所得到的帮助信息常常是不够细致的,需要前面两种方法所得到的帮助信息常常是不够细致的,需要用第三种途径来补充,这就是电子版的使用手册。用第三种途径来补充,这就是电子版的使用手册。MATLAB
5、MATLAB里包含了大量关于里包含了大量关于MATLABMATLAB安装、使用、编程以及各种工具安装、使用、编程以及各种工具箱等的电子版手册,全部为箱等的电子版手册,全部为PDFPDF格式格式, ,具有搜索功能,因此具有搜索功能,因此也可以在指定的手册中搜索关键字,使用非常方便。也可以在指定的手册中搜索关键字,使用非常方便。 远程帮助系统远程帮助系统 在在MathWorks公司的主页公司的主页(http:/)上可上可以找到很多有用的信息,国内的一些网站也有丰富的信息资以找到很多有用的信息,国内的一些网站也有丰富的信息资源。源。2.2 MATLAB 程序设计语言基础 MATLAB 语言的变量命名
6、规则命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名不能特别长;(4)变量名必须以字母打头,之后可以是 任意字母、数字或下划线,变量名中 不允许使用标点符号变量分类:变量分类: 局部变量和全局变量局部变量和全局变量 永久变量(保留常量)永久变量(保留常量)只能在某一函数体内使用,而不能从其他函数和只能在某一函数体内使用,而不能从其他函数和 Matlab工作空间访问的变量,就是局部变量。工作空间访问的变量,就是局部变量。在几个函数及在几个函数及Matlab函数中都能使用的变量就是全局函数中都能使用的变量就是全局变量。变量。 (全局变量名应尽可能大写,并由(全局
7、变量名应尽可能大写,并由globe声明)声明)Matlab内部的每一个数据元素都是用双精度数内部的每一个数据元素都是用双精度数(double)来表示和存储的。)来表示和存储的。变量输出时用户可以用变量输出时用户可以用format命令设置或改变输出命令设置或改变输出格式。格式。短格式短格式(Short):1.3333 0.0000短格式短格式e方式方式(Short e):1.3333e+00 1.2345e-06短格式短格式g方式方式(Short g):1.3333 0.0长格式长格式(Long):1.33333333333333 0.00000123450000长格式长格式e方式方式(Long
8、 e):1.33333333333333e+00 1.2345000000000e-06长格式长格式g方式方式(Long g):1.33333333333333 0.0000012345银行格式银行格式(Bank):1.33 0.00十六进制格式十六进制格式(Hex):3ff555555555 3eb46231abfd71+格式格式(+):+有理数(有理数(Rational):1/3 2469/2000000000MATLAB 的保留常量1ij数学运算符号及标点符号数学运算符号及标点符号数学运算符号及标点符号数学运算符号及标点符号(1)MATLAB的每条命令后,若为逗号或无标点逗号或无标点符号
9、,则显示命令的结果;若命令后为分号分号,则禁止显示结果. (2)“%” 后面所有文字为注释. (3) “.”表示续行. 所谓符号计算是指在运算时所谓符号计算是指在运算时,无须事先对无须事先对变量赋值变量赋值,而将所得到结果以标准的符号而将所得到结果以标准的符号形式来表示。形式来表示。 MathWorks公司以公司以Maple的内核作为符号的内核作为符号计算引擎(计算引擎(Engine),依赖),依赖Maple已有的已有的函数库,开发了实现符号计算的两个工函数库,开发了实现符号计算的两个工具箱:基本符号工具箱和扩展符号工具具箱:基本符号工具箱和扩展符号工具箱。箱。 1、sym函数 sym函数的主
10、要功能是创建符号变量,以便进行符号运算,也可以用于创建符号表达式或符号矩阵。用sym函数创建符号变量的一般格式为: x = sym(x) 其目的是将x创建为符号变量,以x作为输出变量名。每次调用该函数,可以定义一个符号变量。(一) 定义符号变量 【例】作符号计算: a,b,x,y均为符号运算量。在符号运算前,应先将a,b,x,y定义为符号运算量 a=sym(a); %定义a为符号运算量,输出变量名为a b=sym(b); x=sym(x); y=sym(y); x,y=solve(a*x-b*y-1,a*x+b*y-5,x,y) %以a,b为符号常数,x,y为符号变量即可得到方程组的解: x
11、=3/a y =2/b2、syms函数syms函数的功能与sym函数类似。syms函数可以在一个语句中同时定义多个符号变量,其一般格式为: syms var_list var_props 例:syms a b real syms c positive 符号型数值可采用变精度函数求值 vpa(A), 或 vpa (A,n) vpa(pi)ans = 3.1415926535897932384626433832795 vpa(pi,60) ans =3.14159265358979323846264338327950288419716939937510582097494 字符串型数据:用单引号括起
12、来 。 多维数组:是矩阵的直接扩展,多个下标。 单元数组:将不同类型数据集成到一个变量名下面,用表示;例:用Ai,j可表示单元数组A的第i行,第j列的内容。 类与对象:允许用户自己编写包含各种复杂详细的变量,可以定义传递函数。MATLAB支持的其它数据结构 直接赋值语句 赋值变量赋值表达式 例: a=pi2 a = 9.8696 例:表示矩阵 B=1+9i,2+8i,3+7j;4+6j 5+5i,6+4i;7+3i,8+2j 1iB = 1.0000 + 9.0000i 2.0000 + 8.0000i 3.0000 + 7.0000i 4.0000 + 6.0000i 5.0000 + 5.
13、0000i 6.0000 + 4.0000i 7.0000 + 3.0000i 8.0000 + 2.0000i 0 + 1.0000iMATLAB 的基本语句结构 函数调用语句返回变量列表函数名(输入变量列表) 例:a,b,c=my_fun(d,e,f,c) 冒号表达式 v=s1:s2:s3 该函数生成一个行向量v,其中s1是起始值, s2是步长(若省略步长为1), s3是最大值。 例:用不同的步距生成 (0,p) 间向量。 v1=0:0.2:piv1 = Columns 1 through 9 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.40
14、00 1.6000 Columns 10 through 16 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000 v2=0:-0.1:pi %步距为负,不能生成向量,得出空矩阵v2 = Empty matrix: 1-by-0 v3=0:piv3 = 0 1 2 3 v4=pi:-1:0 逆序排列构成新向量v4 = 3.1416 2.1416 1.1416 0.1416 v5=0:0.4:pi,piv5 = 0 0.4000 0.8000 1.2000 1.6000 2.0000 2.4000 2.8000 3.1416MATLAB 以矩阵为基本
15、的运算单元,向量以矩阵为基本的运算单元,向量和标量作为特殊的矩阵处理:向量看作只有和标量作为特殊的矩阵处理:向量看作只有一行或一列的矩阵;标量看作只有一个元素一行或一列的矩阵;标量看作只有一个元素的矩阵。的矩阵。1、 矩阵的构造矩阵的构造a.直接输入直接输入b.利用内部函数产生矩阵利用内部函数产生矩阵c.利用利用M文件产生矩阵文件产生矩阵d.从外部数据文件调入矩阵从外部数据文件调入矩阵A=1,2,3;4,5,6;a. 直接输入直接输入直接输入需遵循以下基本规则:直接输入需遵循以下基本规则:整个矩阵应以整个矩阵应以“ ”为首尾,即整个输入矩阵必须包为首尾,即整个输入矩阵必须包含在方括号中;含在方
16、括号中; 矩阵中,矩阵中,行与行之间必须用分号行与行之间必须用分号“ ;”或或 Enter 键键( 按按 Enter 键)符分隔;键)符分隔; 每行中的元素用每行中的元素用逗号逗号“ ,”或空格或空格分隔;分隔; 矩阵中的元素可以是数字或表达式,但表达式中不矩阵中的元素可以是数字或表达式,但表达式中不可包含未知的变量,可包含未知的变量,MATLAB用表达式的值为该位用表达式的值为该位置的矩阵元素赋值。当矩阵中没有任何元素时,该置的矩阵元素赋值。当矩阵中没有任何元素时,该矩阵被称作矩阵被称作“ 空阵空阵”( Empty Matrix)。)。 A=1,2,3,4;5,6,7,8;9,10,11,1
17、2;13,14,15,16 A = 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16利用表达式输入利用表达式输入 B=1,sqrt(25),9,132,6,10,7*23+sin(pi),7,11,154,abs(-8),12,16B = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16由向量构成矩阵由向量构成矩阵向量是组成矩阵的基本元素之一。向量元素需要向量是组成矩阵的基本元素之一。向量元素需要用方括号括起来。元素之间用空格和逗号分隔生用方括号括起来。元素之间用空格和逗号分隔生成行向量,用分号隔开生成列向量。可以把行向成行向量,用分号隔开
18、生成列向量。可以把行向量看成量看成1 n 阶矩阵,阶矩阵,把列向量看成把列向量看成n 1 阶矩阵。阶矩阵。向量的构造方法:向量的构造方法: 直接输入向量直接输入向量 利用冒号生成向量利用冒号生成向量 利用利用 linspace/logspace 生成向量生成向量 a=1,2,3,4; x=0:0.5:2;% x=logspace(a,b,n) 生成有生成有 n 个元素的行向量个元素的行向量 x,其元素,其元素起点起点 x(1)=10a,终点,终点 x(n)=10b。 b=logspace(0,2,4)b = 1.0000 4.6416 21.5443 100.0000 x x = 0 0.50
19、00 1.0000 1.5000 2.0000% x=linspace(a,b,n) 生成有生成有 n 个元素的行向个元素的行向量量 x,其元素值在,其元素值在 a、b 之间线性分布。之间线性分布。 y=linspace(0,2,7) y = 0 0.3333 0.6667 1.0000 1.3333 1.6667 2.0000 z=-1 x 3z = -1.0000 0 0.5000 1.0000 1.5000 2.0000 3.0000 u=y;zu = 0 0.3333 0.6667 1.0000 1.3333 1.6667 2.0000 -1.0000 0 0.5000 1.0000
20、1.5000 2.0000 3.0000b.利用内部函数产生矩阵利用内部函数产生矩阵%compan生成生成x向量的向量的伴随矩阵伴随矩阵 x=2,4,6,8,10 x = 2 4 6 8 10 compan(x)ans = -2 -3 -4 -5 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 % eye 生成生成单位阵单位阵 S=eye(6) S = 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1% ones 生成全部元素为生成全部元素为 1 的矩阵的矩阵 ones(3,4) an
21、s = 1 1 1 1 1 1 1 1 1 1 1 1 F=5*ones(3)F = 5 5 5 5 5 5 5 5 5% zeros 生成全部元素为生成全部元素为0的矩阵的矩阵 Z=zeros(2,4)Z = 0 0 0 0 0 0 0 0% rand 生成生成均匀分布均匀分布的随机矩阵的随机矩阵 R=rand(4) R = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057%生成空阵生成空阵 K= K = c.利用利用M
22、文件产生矩阵文件产生矩阵A=1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,2021,22,23,24,25d.从外部数据文件调入矩阵 用load命令输入 用Import 菜单输入 基本语句格式 B=A(v1,v2) v1、 v2分别表示提取行(列)号构成的向量。例: A=1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0A = 1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 0 B1=A(1:2:end,:) 提取全部奇数行、所有列。B1 = 1 2 3 4 5 6 7 8子矩阵提取 B2=A(3,2,1,2,3,4)
23、提取3,2,1行、2,3,4列构成子矩阵。 A =B2 = 1 2 3 4 6 7 8 3 4 5 6 4 5 6 5 6 7 8 2 3 4 7 8 9 0 B3=A(:,end:-1:1) 将A矩阵左右翻转,即最后一列排在最前面。B3 = 4 3 2 1 6 5 4 3 8 7 6 5 0 9 8 7矩阵拆分矩阵拆分&子矩阵的提取子矩阵的提取 (1) 利用冒号表达式获得子矩阵利用冒号表达式获得子矩阵 A(:,j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素;A(i,:)表示表示A矩阵第矩阵第i行的全部元素;行的全部元素;A(i,j)表示取表示取A矩阵矩阵第第i行、第行、第j列的元
24、素。列的元素。 A(i:i+m,:)表示取表示取A矩阵第矩阵第ii+m行的全部元行的全部元素;素;A(:,k:k+m)表示取表示取A矩阵第矩阵第kk+m列的全部列的全部元素,元素,A(i:i+m,k:k+m)表示取表示取A矩阵第矩阵第ii+m行内,行内,并在第并在第kk+m列中的所有元素。列中的所有元素。 矩阵表示 矩阵转置 数学表示 (若A有复数元素,先转置再取各元素共轭复数值,Hermit转置) MATLAB 求解 BA. C=A2.3 基本数学运算矩阵的代数运算 矩阵加减法 C=A+B D=A-B 注意维数是否相等 注意其一为标量的情形 矩阵乘法 数学表示 MATLAB 表示 C=A*B
25、 注意两个矩阵维数相容性 矩阵除法矩阵左除:AX = B,求 XMATLAB 求解:X=AB 若A为非奇异方阵,则 X=A-1B 最小二乘解(若A不是方阵)矩阵右除:XA = B,求 X MATLAB求解:X=B/A 若A为非奇异方阵,则 X=BA-1 最小二乘解(若A不是方阵) 矩阵翻转 左右翻转 B=fliplr(A) 上下翻转 C=flipud(A) 旋转 90o (逆时针) D=rot90(A) 如何旋转180o? D=rot180(A) ? Undefined function or variable rot180. D=rot90(rot90(A)矩阵乘方 A 为方阵,求 MATL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 科学 计算 中的 应用 姜志鹏
限制150内