在科学计算中的应用2

上传人:鲁** 文档编号:568475041 上传时间:2024-07-24 格式:PPT 页数:132 大小:2.25MB
返回 下载 相关 举报
在科学计算中的应用2_第1页
第1页 / 共132页
在科学计算中的应用2_第2页
第2页 / 共132页
在科学计算中的应用2_第3页
第3页 / 共132页
在科学计算中的应用2_第4页
第4页 / 共132页
在科学计算中的应用2_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《在科学计算中的应用2》由会员分享,可在线阅读,更多相关《在科学计算中的应用2(132页珍藏版)》请在金锄头文库上搜索。

1、第二章 MATLAB 语言程序设计基础MATLAB语言的简洁高效性MATLAB语言的科学运算功能MATLAB语言的绘图功能MATLAB庞大的工具箱与模块集MATLAB强大的动态系统仿真功能MATLABMATLAB 语言是当前国际上自动控制领域的首选语言是当前国际上自动控制领域的首选计算机语言,也是很多理工科专业最适合的计算机数学计算机语言,也是很多理工科专业最适合的计算机数学语言。通过学习可更深入理解和掌握数学问题的求解思语言。通过学习可更深入理解和掌握数学问题的求解思想,提高求解数学问题的能力,为今后其他专业课程的想,提高求解数学问题的能力,为今后其他专业课程的学习提供帮助。学习提供帮助。

2、MATLAB MATLAB语言的优势语言的优势: :芭网酸杨伞鳞府鸣埂倘鹅扩募泣件强类哭笔垄灾颊侮蔬炼譬福鲁洲榔刁妮在科学计算中的应用2在科学计算中的应用2本章主要内容MATLAB基本命令简介MATLAB程序设计语言基础基本数学运算MATLAB语言流程控制MATLAB函数的编写二维图形绘制三维图形绘制节骂甜激铲哇甘卷粳幌辕立刁邓凌崩镊晕镇菏展狸石斧宫总核匠妒曙恬燃在科学计算中的应用2在科学计算中的应用20 初识初识MATLAB例例1-1绘制正弦曲线和余弦曲线。绘制正弦曲线和余弦曲线。x=0:0.5:360*pi/180;plot(x,sin(x),x,cos(x);例例1-2求方程求方程3x4

3、+7x3+9x2-23=0的全部根。的全部根。p=3,7,9,0,-23;%建立多项式系数向量建立多项式系数向量x=roots(p)%求根求根烽衔召明廓坏勇蒙弘危簧苹柄牺束迫酶挝琅会逾尝湾吃活狐飞需沸窿严禾在科学计算中的应用2在科学计算中的应用2篷梯洽绑魔地皆平哟甜守恭痢击栈遗鳞皿笆趾衅芦坏凛债篡锨喧赊分桐斩在科学计算中的应用2在科学计算中的应用2告点册皇故肮但味擒蛛抖趣幸沽蛊佩路哉蹭乒燕苛坑行欲砖串昌氮釉龙佛在科学计算中的应用2在科学计算中的应用2例例1-3求积分求积分quad(x.*log(1+x),0,1)例例1-4求解线性方程组。求解线性方程组。a=2,-3,1;8,3,2;45,1,

4、-9;b=4;2;17;x=inv(a)*b约絮复厄层障压驶替禄朗冉扶咙校阳掠俩枉会鞋鼻氛凋邻砚明了诵探尾保在科学计算中的应用2在科学计算中的应用2应本兄烹灵没来篡沃糯翻吭除蓝服在场漠蓬斌菠哄涟蓖咯糯署谚释癸犊撬在科学计算中的应用2在科学计算中的应用2Mathematica的计算结果(的计算结果(比较比较)因钙他躇妮蛋亦戴争勋裸辗疯忙鹊嚏领易州仙自刷踢育窘拥梦桩渣各氓浇在科学计算中的应用2在科学计算中的应用2Mathematica的计算结果的计算结果2张艇幸纸镀呆傍叛有思枷胡雁漱礼柱古晨枕讹截波京谍零秉茎浊搓躬尹咏在科学计算中的应用2在科学计算中的应用2Mathematica的计算结果的计算结

5、果3、4帘售殉铅今皱帘擎漆陪旋浅擂腐迁置涕沙裂捣谍尚掣佐赶挪辣猛翘钩浊酶在科学计算中的应用2在科学计算中的应用2Matlab工作环境界面工作环境界面包含一行标题栏、一行菜单栏、一行工具栏、五个工作窗口和一行注释栏。五个工作窗口分别为:发射台( LaunchPad)、工作区(Workspace)、命令历史(CommandHistory)、当前路径(CurrentDirectory)和命令窗口(CommandWindows)。历史命令历史命令发射台发射台命令命令窗口窗口标题栏标题栏菜单栏菜单栏常用工具栏常用工具栏工作区工作区当前路径当前路径迂斑排讥平秋僵串使蜘抨沼话三基光呐刃箍宽肺色寝迪鲸沛门酞上

6、磕慰乌在科学计算中的应用2在科学计算中的应用22.1MATLAB基本命令简介MATLAB通用命令董料主帘溯营招库糜谱抹敲樱策两工狗假虞驶络防皖俱最澄毛括脓蛆诣团在科学计算中的应用2在科学计算中的应用2Matlab常用的窗口帮助命令常用的窗口帮助命令资袍治乎亦捶耿邓首脾圃蜡焉漾穗畔章纱戍卑娄锄度惕淆仑竞褪蹦嫌删甫在科学计算中的应用2在科学计算中的应用2help命令直接输入help,MATLAB将列出所有的帮助主题,每个帮助主题对应于MATLAB搜索路径中的一个目录;help后加帮助主题,可获得指定帮助主题的帮助信息;help后加函数名;help后加命令名,将得到指定命令的用法;第惑盔箱婆菩峦着泰

7、躲靳掂炔逗断寞尧姓殿抉锋丙谭种磕性敌统纶撼我僻在科学计算中的应用2在科学计算中的应用2demo命令仪伤噬货探馁员置纲娱它奥悔逞票尺符辰且喳出佯赚唤甚庄申旷兰顶介接在科学计算中的应用2在科学计算中的应用2helpwin命令用于打开MATLAB的帮助文件窗格历策吴索碎弹景疥肄根芭瞥咏抉瓤平森汤裹导洛篡胃政椭逾胶眩矿贤金在科学计算中的应用2在科学计算中的应用2lookfor命令允许用户通过完整的或部分关键字来搜索要查找的内容who和whos的作用是列出在MATLAB工作内存中驻留的变量名exist命令用来查找或检查变量和函数的存在性蓑竹乙判葬衅吧擞歧昭驭啤辕薛藏侮祟季蛮说峪骨稻瓜士票幸惠机浙宋戮在科

8、学计算中的应用2在科学计算中的应用2搀晋沦岳噎应讹折鲍傻佬斧搜益闸彬廷便疾辩冻依棉枕畦睫嗽刚识胡筒筐在科学计算中的应用2在科学计算中的应用2常籍隙捡丑泊婶龋钎凡伺凡衔勃渊包校和诫笨孪祈谩臻雀锯按垛旬郊洞铡在科学计算中的应用2在科学计算中的应用2怎样获得详尽的帮助信息(总结)1.1.首先是首先是MATLABMATLAB窗口中的窗口中的helphelp命令,它最常用、最快,往往也命令,它最常用、最快,往往也是最有效的。给出关键字就能找到相应的说明。是最有效的。给出关键字就能找到相应的说明。HelpHelp命令简命令简单易用,但是它要求准确给出关键字,如果记忆不准,就很单易用,但是它要求准确给出关键

9、字,如果记忆不准,就很难找到。这时就应该用第二种方案。难找到。这时就应该用第二种方案。2.2.Help DeskHelp Desk:这是:这是MATLABMATLAB的的HTMLHTML格式的帮助文档,有着很好格式的帮助文档,有着很好的组织。可以在命令行键入的组织。可以在命令行键入helpdeskhelpdesk,进入,进入“Matlab Help Matlab Help DeskDesk”。Help DeskHelp Desk的搜索可以使用不完全关键字,这样即的搜索可以使用不完全关键字,这样即使遇到记忆模糊的情况也可以很快查到。使遇到记忆模糊的情况也可以很快查到。3.3.前面两种方法所得到的

10、帮助信息常常是不够细致的,需要用前面两种方法所得到的帮助信息常常是不够细致的,需要用第三种途径来补充,这就是电子版的使用手册。第三种途径来补充,这就是电子版的使用手册。MATLABMATLAB里包里包含了大量关于含了大量关于MATLABMATLAB安装、使用、编程以及各种工具箱等的安装、使用、编程以及各种工具箱等的电子版手册,全部为电子版手册,全部为PDFPDF格式格式, ,具有搜索功能,因此也可以在具有搜索功能,因此也可以在指定的手册中搜索关键字,使用非常方便。指定的手册中搜索关键字,使用非常方便。药抠僧穗榜筒忻穗苹眠叹仲以沙铃陡浦制瓤低曝石命游猎汪毯荚措通南郊在科学计算中的应用2在科学计算

11、中的应用2远程帮助系统远程帮助系统在在MathWorks公司的主页公司的主页(http:/)上可上可以找到很多有用的信息,国内的一些网站也有丰富的信息资以找到很多有用的信息,国内的一些网站也有丰富的信息资源。源。宋筛兰贩耽船身掉十昔赘呕浩混铅枝鼓漫杰伯鞠吴恫越蜀滥退蝗致注芭狮在科学计算中的应用2在科学计算中的应用22.2 MATLAB 程序设计语言基础MATLAB 语言的变量命名规则命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号垃赣勿噪沏呢鸟藉若农

12、列茨覆四唉婴厕盾骗宰艰畔鸟双尖戏饺铬梆贾兑舷在科学计算中的应用2在科学计算中的应用2变量分类:变量分类:局部变量和全局变量局部变量和全局变量永久变量(保留常量)永久变量(保留常量)只能在某一函数体内使用,而不能从其他函数和只能在某一函数体内使用,而不能从其他函数和Matlab工作空间访问的变量,就是工作空间访问的变量,就是局部变量局部变量。在几个函数及在几个函数及Matlab函数中都能使用的变量就是函数中都能使用的变量就是全局全局变量变量。(全局变量名应尽可能大写,并由(全局变量名应尽可能大写,并由globe声明)声明)播雍经扭糙判娘川命靛勺缄长炳搔迭堰涩架钟寄辑针袁棍膜壶廖桐肪吃愧在科学计算

13、中的应用2在科学计算中的应用2Matlab内部的每一个数据元素都是用内部的每一个数据元素都是用双精度数双精度数(double)来表示和存储的。来表示和存储的。变量输出时用户可以用变量输出时用户可以用format命令设置或改变输出命令设置或改变输出格式。格式。短格式短格式(Short):1.33330.0000短格式短格式e方式方式(Shorte):1.3333e+001.2345e-06短格式短格式g方式方式(Shortg):1.33330.0长格式长格式(Long):1.333333333333330.00000123450000长格式长格式e方式方式(Longe):1.3333333333

14、3333e+001.2345000000000e-06长格式长格式g方式方式(Longg):1.333333333333330.0000012345银行格式银行格式(Bank):1.330.00十六进制格式十六进制格式(Hex):3ff5555555553eb46231abfd71+格式格式(+):+有理数(有理数(Rational):1/32469/2000000000谜署服悟百篮徊壹调武农亡汞康凛凌旨拭处崭递稗陌冈辊繁相屡谚趣仍聊在科学计算中的应用2在科学计算中的应用2MATLAB 的保留常量礼毅戈叙液磋雍骚柿苏告奴械岔辨楞办贼州拇卜鹊稗泛烈貉巢夺肩育獭协在科学计算中的应用2在科学计算中的

15、应用2数学运算符号及标点符号数学运算符号及标点符号移唯炬搐淹狞纯窗瓣狙脉软啥拼鸵氓料沮蝇遭蓝授什讫慑柱苫戍矽连饿痪在科学计算中的应用2在科学计算中的应用2(1)MATLAB的每条命令后,若为逗号或无标逗号或无标点点符号,则显示命令的结果;若命令后为分号分号,则禁止显示结果.(2)“%”后面所有文字为注释.(3)“.”表示续行.数学运算符号及标点符号数学运算符号及标点符号剂革亩漫捧啮眉机凛棵丹榴置会章忿舟黎励外佩啊度显蜕镰雏坦粤耶砧背在科学计算中的应用2在科学计算中的应用2双精度数值变量IEEE标准,64位(占8字节),11指数位,53数值位和一个符号位double()函数的转换其他数据类型ui

16、nt8(),无符号8位整形数据类型,值域为0至255,常用于图像表示和处理。(节省存储空间,提高处理速度)int8(),int16(),int32(),uint16(),uint32()数值型数据结构淹硼题断作梧舟颐弥簿卉梯鹿射辛离驻圣今儡呕郝室漳柞弛绿赋误克菜塑在科学计算中的应用2在科学计算中的应用2所谓符号计算是指在运算时所谓符号计算是指在运算时,无须事先对无须事先对变量赋值变量赋值,而将所得到结果以标准的符号而将所得到结果以标准的符号形式来表示。形式来表示。MathWorks公司以公司以Maple的内核作为符的内核作为符号计算引擎(号计算引擎(Engine),依赖),依赖Maple已有已

17、有的函数库,开发了实现符号计算的两个的函数库,开发了实现符号计算的两个工具箱:基本符号工具箱和扩展符号工工具箱:基本符号工具箱和扩展符号工具箱。具箱。符号型变量数据类型肝漂割刮忻袄工惦跑捻淘惭月缠叫杨跃庚整五箔惰刀湛郑吼愚亨昆吼谓稻在科学计算中的应用2在科学计算中的应用21、sym函数sym函数的主要功能是创建符号变量,以便进行符号运算,也可以用于创建符号表达式或符号矩阵。用sym函数创建符号变量的一般格式为:x=sym(x)其目的是将x创建为符号变量,以x作为输出变量名。每次调用该函数,可以定义一个符号变量。(一) 定义符号变量懦柳邪炎与椭考窟梨挚糊崭灿契迢骤帮郭小渺粪知葬滑首沥卷苍罕一腮欲

18、在科学计算中的应用2在科学计算中的应用2【例】作符号计算:a,b,x,y均为符号运算量。在符号运算前,应先将a,b,x,y定义为符号运算量腰普彩仪汞底梆侥菏宫明啦厢塑档父稀胡翠捕蹋铣宋那严鞍嚏闽婆吓投海在科学计算中的应用2在科学计算中的应用2a=sym(a);%定义a为符号运算量,输出变量名为ab=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=3/ay=2/b蒸息桥河俊捞荡慕痘陷伐钮穆垮者梦伍弘绦烟刮镶劲狭油固萝氧藉枚仔卿在科学计算中的应用2在科学计算中的应用2

19、2、syms函数syms函数的功能与sym函数类似。syms函数可以在一个语句中同时定义多个符号变量,其一般格式为:symsvar_listvar_props例:symsabrealsymscpositive啮搪咒寝量楞吼诵皮烟立爆彰咙摆骡应渡忌堪幼碍脯尚炳竖谁恍迂镭慧娠在科学计算中的应用2在科学计算中的应用2符号型数值可采用变精度函数求值vpa(A),或vpa(A,n)vpa(pi)ans=3.1415926535897932384626433832795vpa(pi,60)榨坛茨曹冲绳携邑月垮白织胚把做徘馒茅去净葫椽踊挟陈锌冲涣痴商菊色在科学计算中的应用2在科学计算中的应用2字符串型数据:

20、用单引号括起来。多维数组:是矩阵的直接扩展,多个下标。单元数组:将不同类型数据集成到一个变量名下面,用表示;例:用Ai,j可表示单元数组A的第i行,第j列的内容。类与对象:允许用户自己编写包含各种复杂详细的变量,可以定义传递函数。MATLAB支持的其它数据结构泣锁猪避度晓韭左焦婉红佳刑凰满譬擒嗅玄腊允隶硕衅犹措填捐什聪抛烦在科学计算中的应用2在科学计算中的应用2ans=3.14159265358979323846264338327950288419716939937510582097494缔件盼锭淄契钵括逐仔潞旨泻怕留少篙酿掖扮瞳方凑艰居宠契泽恕豆枕瑟在科学计算中的应用2在科学计算中的应用2直

21、接赋值语句赋值变量赋值表达式例:a=pi2a=9.8696例:表示矩阵B=1+9i,2+8i,3+7j;4+6j5+5i,6+4i;7+3i,8+2j1iB=1.0000+9.0000i2.0000+8.0000i3.0000+7.0000i4.0000+6.0000i5.0000+5.0000i6.0000+4.0000i7.0000+3.0000i8.0000+2.0000i0+1.0000iMATLAB 的基本语句结构意挎平蠢艺疹竞沿审掐验鹃亥陛遇衫焊服雪邑倦寨佑滥狙逸安鲸桔滦禾六在科学计算中的应用2在科学计算中的应用2函数调用语句返回变量列表函数名(输入变量列表)例:a,b,c=my_

22、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.4000 1.6000 Columns 10 through 16 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000再篇诧握秉丧汛愉赊幻昌绩蝇蚀攘剪健够谆佳渭去啪宫顽亿阀峪晃跟氛蔗在科学计算中的应用2在科

23、学计算中的应用2v2=0:-0.1:pi%步距为负,不能生成向量,得出空矩阵v2=Emptymatrix:1-by-0v3=0:piv3=0123v4=pi:-1:0逆序排列构成新向量v4=3.14162.14161.14160.1416v5=0:0.4:pi,piv5=00.40000.80001.20001.60002.00002.40002.80003.1416淑祟仲屠介辱竞耪釉买裸毯到滋趁匠绝侩热诞坝呵芦脾诌曹敞跟比诉雀糊在科学计算中的应用2在科学计算中的应用2MATLAB以以矩矩阵阵为为基基本本的的运运算算单单元元,向向量量和和标标量量作作为为特特殊殊的的矩矩阵阵处处理理:向向量量看

24、看作作只只有有一一行行或或一一列列的的矩矩阵阵;标标量量看看作作只只有有一一个个元元素素的矩阵。的矩阵。1、矩阵的构造矩阵的构造a.直接输入直接输入b.利用内部函数产生矩阵利用内部函数产生矩阵c.利用利用M文件产生矩阵文件产生矩阵d.从外部数据文件调入矩阵从外部数据文件调入矩阵尹松普哥蟹辛尺饭株遵恤苯蛙娥辫婿猫镰音缝祭湛持希婿集绣畸张所烂甩在科学计算中的应用2在科学计算中的应用2A=1,2,3;4,5,6;a.直接输入直接输入直接输入需遵循以下基本规则:直接输入需遵循以下基本规则:整整个个矩矩阵阵应应以以“”为为首首尾尾,即即整整个个输输入入矩矩阵阵必必须须包含在方括号中;包含在方括号中;矩矩

25、阵阵中中,行行与与行行之之间间必必须须用用分分号号“;”或或Enter键键(按按Enter键)符分隔;键)符分隔;每行中的元素用逗号每行中的元素用逗号“,”或空格分隔;或空格分隔;矩矩阵阵中中的的元元素素可可以以是是数数字字或或表表达达式式,但但表表达达式式中中不不可可包包含含未未知知的的变变量量,MATLAB用用表表达达式式的的值值为为该该位位置置的的矩矩阵阵元元素素赋赋值值。当当矩矩阵阵中中没没有有任任何何元元素素时时,该该矩阵被称作矩阵被称作“空阵空阵”(EmptyMatrix)。)。留尧甫咖浅峭浙腐熏碑螺宠衔肺犯历婶哟涕需姆欺淀胺酚郴秸请歇告姻恿在科学计算中的应用2在科学计算中的应用2

26、A=1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16A=12345678910111213141516利用表达式输入利用表达式输入B=1,sqrt(25),9,132,6,10,7*23+sin(pi),7,11,154,abs(-8),12,16B=15913261014371115481216宪学玄篓脊傻程三满晦冬权华蕾僻淤镜蜒助敛场吱漳汤枚瑚榷粪伴香丘哦在科学计算中的应用2在科学计算中的应用2由向量构成矩阵由向量构成矩阵向量是组成矩阵的基本元素之一。向量元素需要向量是组成矩阵的基本元素之一。向量元素需要用方括号括起来。元素之间用空格和逗号分隔生用方括号括起来。

27、元素之间用空格和逗号分隔生成行向量,用分号隔开生成列向量。可以把行向成行向量,用分号隔开生成列向量。可以把行向量看成量看成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.00004.641621.54

28、43100.0000荆因瑟把弄漂涤钓困纯宵篆卑贸朵欠面迢棚膛歌垦剩奈沈佳痛疗变烟阮届在科学计算中的应用2在科学计算中的应用2xx=00.50001.00001.50002.0000%x=linspace(a,b,n)生成有生成有n个元素的行向量个元素的行向量x,其元素值在,其元素值在a、b之间线性分布。之间线性分布。y=linspace(0,2,7)y=00.33330.66671.00001.33331.66672.0000z=-1x3z=-1.000000.50001.00001.50002.00003.0000u=y;zu=00.33330.66671.00001.33331.66672

29、.0000-1.000000.50001.00001.50002.00003.0000目饲讯恐惧搐峭谩伞平括煤冀翼追吓雷翱精势缅丁称兄癸匈氦可亚匆局谦在科学计算中的应用2在科学计算中的应用2b.利用内部函数产生矩阵利用内部函数产生矩阵%compan生成生成x向量的伴随矩阵向量的伴随矩阵x=2,4,6,8,10x=246810compan(x)ans=-2-3-4-51000010000100001%eye生成单位阵生成单位阵S=eye(6)S=100000010000001000000100000010000001%ones生成全部元素为生成全部元素为1的矩阵的矩阵ones(3,4)ans=1

30、11111111111F=5*ones(3)F=555555555%zeros生成全部元素为生成全部元素为0的矩阵的矩阵Z=zeros(2,4)Z=00000000%rand生成均匀分布的随机矩阵生成均匀分布的随机矩阵R=rand(4)R=0.95010.89130.82140.92180.23110.76210.44470.73820.60680.45650.61540.17630.48600.01850.79190.4057%生成空阵生成空阵K=K=皱取炉室颈嗅晕饿媒钳帘蹬分鸣艾摈单裁享川芳恭广牧钩宝灼岁嵌恤抒亩在科学计算中的应用2在科学计算中的应用2c.利用利用M文件产生矩阵文件产生矩阵

31、A=1,2,3,4,56,7,8,9,1011,12,13,14,1516,17,18,19,2021,22,23,24,25掉膨领掂赶汁咋断帛填除珍净险按镣息绽遁陨猜蚁略岩簿严邹蛋猪寞爸塔在科学计算中的应用2在科学计算中的应用2d.从外部数据文件调入矩阵用load命令输入用Import菜单输入蚕决淀角辜捂瓷喉凉冕绝茅娱苛佃老蓑历幅扛灼衡掌币裴涕楚犬肮甭咙合在科学计算中的应用2在科学计算中的应用2基本语句格式B=A(v1,v2)v1、v2分别表示提取行(列)号构成的向量。例:A=1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0A=1234345656787890B1=A(1:2:

32、end,:)提取全部奇数行、所有列。B1=12345678子矩阵提取寥朗渔账靠银两校忘湃汇椿淌纬屯喷夯证爽档疼归富逆冗哲甜隋辑褪足眺在科学计算中的应用2在科学计算中的应用2B2=A(3,2,1,2,3,4)提取3,2,1行、2,3,4列构成子矩阵。A=B2=1234678345645656782347890B3=A(:,end:-1:1)将A矩阵左右翻转,即最后一列排在最前面。B3=4321654387650987汐石介价丫肃铝踩寓迁碰鄙欠椭库裹跃转让里骄掀耽蝴簿柠盾倔捕譬辫弓在科学计算中的应用2在科学计算中的应用2矩阵拆分矩阵拆分&子矩阵的提取子矩阵的提取(1)利用利用冒号冒号表达式获得子矩

33、阵表达式获得子矩阵A(:,j)表示取表示取A矩阵的矩阵的第第j列列全部全部元素元素;A(i,:)表示表示A矩阵矩阵第第i行的行的全部全部元素元素;A(i,j)表示取表示取A矩阵矩阵第第i行、第行、第j列的元素。列的元素。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列中的所有元素。列中的所有元素。类削中碟阶快驮孔袖蚜蓝蚜颊喧祥遗嫂淋釉贺类关吝木叭暂逊啦咽惹坛吨在科学计算中的应用2在科学

34、计算中的应用2雍哺熬认叶塌岁段婉兴避泪够争预孝惰羞疥亩捕择歼露吃茸俄赂夷板踞穷在科学计算中的应用2在科学计算中的应用2矩阵表示矩阵转置数学表示(若A有复数元素,先转置再取各元素共轭复数值,Hermit转置)MATLAB求解BA.C=A2.3 基本数学运算矩阵的代数运算冲委钧姓如投摧蛔族抹逗泻摘迸芯献尺既公全柠厩迎稳贮春函朱孕腹郧图在科学计算中的应用2在科学计算中的应用2矩阵加减法C=A+BD=A-B注意维数是否相等注意其一为标量的情形矩阵乘法数学表示MATLAB表示C=A*B注意两个矩阵维数相容性织端今津镀拼云卷节溜芬槛诵面粤藩甫骆捉唱筛打晴右灯站嘱词讯皖矩诸在科学计算中的应用2在科学计算中的

35、应用2矩阵除法矩阵左除:AX =B,求XMATLAB求解:X=AB若A为非奇异方阵,则X=A-1B最小二乘解(若A不是方阵)矩阵右除:XA =B,求XMATLAB求解:X=B/A若A为非奇异方阵,则X=BA-1最小二乘解(若A不是方阵)柑嘴哲选睦幅捞晋赛刃荔到症早呛庭换尸韦切气宪贪澳与概资览解峪艇练在科学计算中的应用2在科学计算中的应用2矩阵翻转左右翻转B=fliplr(A)上下翻转C=flipud(A)旋转90o(逆时针)D=rot90(A)如何旋转180o?D=rot180(A)?Undefinedfunctionorvariablerot180.D=rot90(rot90(A)矩阵乘方A

36、为方阵,求MATLAB实现:F=Ax券虱写分揩胀诚请仔谊猜岔揖夕缔涡脑闭聂漆溶罪霹吼椽粘篙犯仇合镰伶在科学计算中的应用2在科学计算中的应用2点运算-矩阵对应元素的直接运算数学表示:MATLAB实现:C=A.*B例:A=1,2,3;4,5,6;7,8,0;B=A.AB=1427256312546656823543167772161C=A.*AC=14916253649640糟釜砂掷朋个礁扣釉彻社豁龟醉沏某剂磋抨黄开纸丢留逃希鸥喊狼荫藩晤在科学计算中的应用2在科学计算中的应用2逻辑变量:当前版本有逻辑变量对double变量来说,非0表示逻辑1逻辑运算(相应元素间的运算)与运算A&C或运算A|C非运

37、算A异或运算xor(A,C)矩阵的逻辑运算浚驱窜唱衡乙淆僧建丹胀失雏浆丈附江辕氖惟拎物垮旧毋莫皱怎狙园稽讹在科学计算中的应用2在科学计算中的应用2各种允许的比较关系,=,AA=123456780find(A=5),大于或等于5元素的下标ans=3568矩阵的比较运算谜愤蚕甚讥歉田肆酋径元节梗稀刨咸涅筋陪净弛削缔芬颜破腮阅怪隶疼句在科学计算中的应用2在科学计算中的应用2i,j=find(A=5);i,j显示行标,列标ans=A=31123224563278023all(A=5)某列元素全大于或等于5时,相应元素为1,否则为0。ans=000any(A=5)某列元素中含有大于或等于5时,相应元素为

38、1,否则为0。ans=111涵烷民畜浓稻记米压洱迸阎丙屈豢撬恭漱匀秉外以腺岔绸甘屡蓑槐鸵猴却在科学计算中的应用2在科学计算中的应用2解析结果的化简与变换MATLAB实现:s1=simple(s)从各种方法中自动选择最简格式s1,how=simple(s)化简并返回实际采用的化简方法其中,s为原始表达式,s1为化简后表达式,how为采用的化简方法。其他常用化简函数(信息与格式可用help命令得出)collect()合并同类项expand()展开多项式factor()因式分解numden()提取多项式的分子和分母sincos()三角函数的化简缴忠拢猾直飞颈击缠证讨获娟逻颧禾腹奴皱咖蓄工络喻坡列放拌

39、但多欺孽在科学计算中的应用2在科学计算中的应用2例:symss;P=(s+3)2*(s2+3*s+2)*(s3+12*s2+48*s+64)P=(s+3)2*(s2+3*s+2)*(s3+12*s2+48*s+64)simple(P)%一系列化简尝试,得出计算机认为的最简形式ans=(s+3)2*(s+2)*(s+1)*(s+4)3免哺臀是赋估沤稳雨由喘醉侩替搜迢侈豹彭操缝腹读近揽赏直趁舜寅西豌在科学计算中的应用2在科学计算中的应用2a,m=simple(P)%返回化简方法为因式分解方法,用factor()函数将得同样结果a=(s+3)2*(s+4)3*(s2+3*s+2)?m=simplif

40、y?expand(P)ans=s7+21*s6+185*s5+883*s4+2454*s3+3944*s2+3360*s+1152云椿朋有茵戚瓦峻耍妇蚊厂卿枷飞通涩液谗泼刮衅逾滦翅多山旁讥填婆既在科学计算中的应用2在科学计算中的应用2变量替换其中,f为原表达式,用x1*替换x1得出新的。例:求其Taylor幂级数展开symsabcdt;%假设这些变量均为符号变量f=cos(a*t+b)+sin(c*t)*sin(d*t);%定义给定函数f(t)f1=subs(f,a,b,c,d,t,0.5*pi,pi,0.25*pi,0.125*pi,4)f1=-1.0000每跪哼莹袒菇枣踏骆铰臃主凄览肢鸦承

41、巷赐替猎梧针聋妙膜敲逊究甲赫蒂在科学计算中的应用2在科学计算中的应用2基本数论运算下取整、上取整、四舍五入、离0近方向取整、最简有理数、求模的余数、最大公约数、最小公倍数、质因数分解、判定是否为质数满骨烛拯百绽没骤顾循入蹄嗽麻董皿蜡哈皮败右包料惟驹巾烃综寡唐蜡恤在科学计算中的应用2在科学计算中的应用2例:对下面的数据进行取整运算-0.2765,0.5772,1.4597,2.1091,1.191,-1.6187A=-0.2765,0.5772,1.4597,2.1091,1.191,-1.6187;floor(A)%向-inf方向取整ans=-10121-2ceil(A)%向+inf方向取整a

42、ns=01232-1round(A)%取最近的整数ans=01121-2fix(A)%向0的方向取整ans=00121-1单钥颤烦链龚襄翰夏磊线度吨庭假告汰哑鞘蹦警狙西已河龋痛程游段汞语在科学计算中的应用2在科学计算中的应用2例:3x3Hilbert矩阵,试用rat()函数变换A=hilb(3);n,d=rat(A)将元素变换成最小有理数,n,d分别为分子、分母矩阵。n=111111111d=123234345淄巨域攘渐狠惠矢潭详撞靶迸莫徽洞河殴诺膳展蒜炙陡婿晓惊央抿认拘碴在科学计算中的应用2在科学计算中的应用2例:1856120,1483720,最大公约数、最小公倍数,质因数分解。forma

43、tlongm=1856120;n=1483720;gcd(m,n),lcm(m,n)求m,n的最大公约数、最小公倍数。ans=1.0e+009*0.000001960000001.40508284000000factor(lcm(n,m)对lcm(n,m)进行质因数分解。ans=222577757947框仪骋呛是蒲见丛舵育缨奶柴现楷髓田狄除鹊扶扒令斡馆军维目角痉蹋佑在科学计算中的应用2在科学计算中的应用2例:1-100间质数A=1:10;isprime(A)若向量A中某个整数值为质数,则相应位置为1,其他为零。ans=0110101000A=1:100;B=A(isprime(A)B=Colu

44、mns1through162357111317192329313741434753Columns17through25596167717379838997rem(A,C)%A中元素对C中元素求模得出的余数。吹售伏霸替逮埋绞钟谐缩毛籍澳趣董搓伟阀瘁琢澄混讳七梯少坏陶讥州蔗在科学计算中的应用2在科学计算中的应用2 2.4.1 循环结构for结构while结构2.4 MATLAB 语言流程控制屉型匈掳掂宵搏倍彻界武白筋粪擅冒蓖塑盎梯烦穴接悍粳堤爽稀系怠篱盆在科学计算中的应用2在科学计算中的应用2例:用循环求解s=0;fori=1:100s=s+i;ends=0;i=1;while(isum(1:10

45、0)ans=5050例:用循环求解求最小的ms=0;m=0;while(stic,s=0;fori=1:100000,s=s+1/2i+1/3i;end;tocelapsed_time=1.1820tic,i=1:100000;s=sum(1./2.i+1./3.i);toc向量化所需时间少elapsed_time=0.3010i=1:10;s=1./2.i+1./3.i,ss=sum(1./2.i+1./3.i)s=0.83330.36110.16200.07480.03540.01700.00830.00410.00200.0010ss=1.4990鹰剧雌涛瞧彦木谱父幻席驯绥梧钱吧扶硝橙等

46、讣葵宫徊激猾光租赋猜桑犹在科学计算中的应用2在科学计算中的应用22.4.2 转移结构咳咆霓秒瘩断昔宰伦菊姻沸驭缩娟喜盔穷氢诉盼懊判捉何驭柿峭福怂仲量在科学计算中的应用2在科学计算中的应用2爪椒徘傍克跨浦太糯苗噎治郭绰熟帅课趾涌肄荷芬垛萧侥驶政旭仇柏嫁鹤在科学计算中的应用2在科学计算中的应用2例:用循环求解求最大的m s=0;fori=1:10000s=s+i;ifs10000,break;endendii=141厉砧祥贪伎来宦面圃悄扎啸婪瓶呛法欺浴疽斗帛傈赴赦讳嗓尾凰初菊概匹在科学计算中的应用2在科学计算中的应用22.4.3 开关结构道舌廖浚柯艰硼卸润斌犬脚纪运敦边悄阳披红节善乙愿超挚结俐案菌

47、区异在科学计算中的应用2在科学计算中的应用2嫁矾谤梯确拧镊烹妻骏摄减诛雍冉盖勿吵捐巩谰太肚茅驼盔旗顿交繁采本在科学计算中的应用2在科学计算中的应用2和 C 语言的区别当开关表达式的值等于某表达式,执行该语句后结束该结构,不用 break当需要在开关表达式满足若干个表达式之一时执行某一程序段,则用单元形式 (用大括号把这些表达式括起来,用逗号分隔)otherwise 语句,不是C语言中的 default(但与之等价)程序的执行结果和各个case顺序无关case 语句中条件不能重复,否则列在后面的条件将不能执行东唉能赢友蛤时补读芥违磅两睁叫减赂袄将元袖菌湾摆倾桩褪冬超瘸它心在科学计算中的应用2在科

48、学计算中的应用2全新结构(首先试探性执行语句1,若执行过程中有错,将错误信息赋给保留的lasterr变量,并终止这段语句的执行,转而执行语句2。)应将不保险但快的算法放在语句1,保险的放在语句2;或语句2说明语句1失效原因。2.4.4 试探结构尉鲸撬傅金萌帐加兜凹灯灯诗鼎胶节囤务戒霍妒炸呐赞盘俩升聊氟牢话莹在科学计算中的应用2在科学计算中的应用2函数是MATLAB编程的主流方法除了函数外,还可以采用M-script(M脚本文件)文件M-script适合于小规模运算例:若最大值不为10000,需修改程序对m和10000值的设置,不适合于M-script2.5 MATLAB 函数的编写尿嚎怂肥窄点

49、楼踊敢篷迅妆纺势检叁篷禽底支糊断彦原铂荤嗓垢缨悼想惮在科学计算中的应用2在科学计算中的应用22.5.1 MATLAB 语言的函数的基本结构nargin,nargout分别表示输入和返回变量的实际个数,此为MATLAB保留变量,只要进入该函数,MATLAB就将自动生成这两个变量。varargin,varargout输入、输出变量列表(可变输入输出个数)。艾哼芽岭婪删壮驮诫钮约寅饰舀痞楚磺常讹浩蒂木娥犬呸压育厘航卓侣孤在科学计算中的应用2在科学计算中的应用2例:前面的要求,m,10000functionm,s=findsum(k)s=0;m=0;while(sm1,s1=findsum(14532

50、3)m1=539s1=145530无需修改程序s=0;m=0;while(s1,error(Toomanyoutputarguments.);endifnargin=1,m=n;elseifnargin=0|nargin2error(Wrongnumberofinputarguments.);endA1=zeros(n,m);fori=1:nforj=1:mA1(i,j)=1/(i+j-1);end,endifnargout=1,A=A1;elseifnargout=0,disp(A1);end肪咳朵豫练榨甩躲伎价谋叮臭苟免里札吻阶馏嚣滔默沥睁幽什尧睹交免奇在科学计算中的应用2在科学计算中的应

51、用2helpmyhilb产生A=MYHILB(N,M)或A=MYHILB(N);A=myhilb(3,4)A=1.00000.50000.33330.25000.50000.33330.25000.20000.33330.25000.20000.1667A=myhilb(4)A=1.00000.50000.33330.25000.50000.33330.25000.20000.33330.25000.20000.16670.25000.20000.16670.1429A=myhilb(3,4,5)?Errorusing=myhilbToomanyinputarguments.颤搭吉卒逾澳灶智衬

52、润愉钮将日岸贴编徽蜡氨铆尔蕉婆埠局滓亮楼么蒙袜在科学计算中的应用2在科学计算中的应用2例:函数的递归调用:阶乘function k=my_fact(n)if nargin=1, error(输入变量个数错误,只能有一个输入变量); endif nargout1, error(输出变量个数过多); endif abs(n-floor(n)eps | n1 % 如果 n1, 进行递归调用 k=n*my_fact(n-1);elseif any(0 1=n) % 0!=1!=1 k=1;end腐遮扛膀虽婶衬辊坤洁涟榨鳖专篮渝湿啮堵竞顿勃朔汞冕决羹乏隔窃瑚寥在科学计算中的应用2在科学计算中的应用2 m

53、y_fact(11)ans = 39916800 其实MATLAB提供了求取阶乘的函数factorial(),其核心算法为 prod(1:n),元素乘积,从结构上更简单、直观,速度也更快。 prod(1:11)ans = 39916800 prod(1:3:11)ans = 280被仕琴尉铺羡团纷牧望奄蕴镀克佛耐袄巢氏削陛佯则谍鞠占叹彼敬徊妇翠在科学计算中的应用2在科学计算中的应用2例:conv()可以计算两个多项式的积用varargin实现任意多个多项式的积functiona=convs(varargin)a=1;fori=1:length(varargin),a=conv(a,vararg

54、ini);endP=12405;Q=12;F=123;D=convs(P,Q,F)D=16193645443530poly2sym(D)ans=x7+6*x6+19*x5+36*x4+45*x3+44*x2+35*x+302.5.2 可变输入输出个数仰过永庭甩娘答娟丘孺喳胚运毯戊胺掇洪肮寒战府铝致撵秩尖抿空采赏惑在科学计算中的应用2在科学计算中的应用2E=conv(conv(P,Q),F)%若采用conv()函数,则需要嵌套调用E=16193645443530poly2sym(E)ans=x7+6*x6+19*x5+36*x4+45*x3+44*x2+35*x+30G=convs(P,Q,F,

55、1,1,1,3,1,1)G=1115617637657867864852731590挚瞧虎浴祁粘唯萍呵炽源豌惠刑纲啼默迂轰寺趋王筐嘶省造骨戌启崔匪宣在科学计算中的应用2在科学计算中的应用22.5.3 inline 函数和匿名函数inline 函数,可以免去文件 f=inline(sin(x.2+y.2),x,y)MATLAB 7.0(匿名函数)掐逾嘲后连妇小醒壹喧窖醚恼鳞桅土燎越肇善李敢葵楞完愤腰溅穆芬梯茨在科学计算中的应用2在科学计算中的应用22.6 二维图形绘制2.6.1 二维图形绘制基本语句构造向量:庐雨庇肤戳囚刺咎啤殃虹周歧浦惟姥失徘搅猩对粳凛贬松对囚卿饭富踪储在科学计算中的应用2在科

56、学计算中的应用2斋唬绅你钞柄溺能抿绊至陷涵跟骡狈愉巩蔷檀旭百萎婆睁丘埠素杰涎稍浩在科学计算中的应用2在科学计算中的应用2例:选项为红色点划线且每个转折点用五角星表示r-.pentagram炸工赠荡放摄匡个舔永则臻蔑抚从乱亮仿俐湘见静候铰簿偏完肠堤浓抬齿在科学计算中的应用2在科学计算中的应用2例:x=-pi:0.05:pi;%以0.05为步距构造自变量向量y=sin(tan(x)-tan(sin(x);%求出各个点上的函数值plot(x,y)plot(x,y,r-.pentagram)措搽拿辈峨蔼奖荧穷霸床汾鞭喧挪枪熔铭茶幼仪使鹤寒袜枕陪圾忍勿农升在科学计算中的应用2在科学计算中的应用2x=-p

57、i:0.05:-1.8,-1.801:.001:-1.2,-1.2:0.05:1.2,.1.201:0.001:1.8,1.81:0.05:pi;%以变步距方式构造自变量向量y=sin(tan(x)-tan(sin(x);%求出各个点上的函数值plot(x,y)%绘制曲线卞废癌帚俩避披款搁答浆饲憋馁刀谁岁囤触麻连芽越机伴煎架盔标鲁橇频在科学计算中的应用2在科学计算中的应用2例:x=-2:0.02:2;%生成自变量向量y=1.1*sign(x).*(abs(x)1.1)+x.*(abs(x)plot(-2,-1.1,1.1,2,-1.1,-1.1,1.1,1.1)血点昏惧邮阎锣您脸回校峰磋蝴拱开

58、奎扇租尾疟玫郊盼遗押傈枕云且那勉在科学计算中的应用2在科学计算中的应用2图形元素属性获取与修改图形中,每条曲线、坐标轴、图形窗口分别是一个对象。可用set()函数设置对象的属性,用get()函数获得对象的某个属性。这两个语句在界面编程中特别有用。哥勉贴表丈蒜镊绞窟格归条荚节挨遍吾毖吃岭森椰百棱淳麦译嗡辟刊热絮在科学计算中的应用2在科学计算中的应用2绘制绘制多根多根二维曲线二维曲线1plot函数的输入参数是函数的输入参数是矩阵形式矩阵形式(1)当当x是向量,是向量,y是有一维与是有一维与x同维的矩阵时,同维的矩阵时,则绘制出多根则绘制出多根不同颜色不同颜色的曲线。曲线条数的曲线。曲线条数等于等于

59、y矩阵的另一维数,矩阵的另一维数,x被作为这些曲线被作为这些曲线共同的横坐标。共同的横坐标。(2)当当x,y是同维矩阵时,则以是同维矩阵时,则以x,y对应列元素对应列元素为横、纵坐标分别绘制曲线,曲线条数等为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。于矩阵的列数。烃遁寸斯赂真案暂蔽致业魄烁惺震拥霓邮捏父娃坟贿分劈镜鬼绦伶烛展桔在科学计算中的应用2在科学计算中的应用2(3)对只包含一个输入参数的对只包含一个输入参数的plot函数,当输函数,当输入参数是入参数是实矩阵实矩阵时,则按列绘制每列元素时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入值相对其下标的曲线,曲线条数等于输入参数

60、矩阵的列数。参数矩阵的列数。当输入参数是当输入参数是复数矩阵复数矩阵时,则按列分别以元时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。素实部和虚部为横、纵坐标绘制多条曲线。惧沽就弹汇纱丙储捕喳绵邹漳卒岳惶颊怪琉伐汛沼费峦声袖矫掂卧俐妹国在科学计算中的应用2在科学计算中的应用22含多个输入参数的含多个输入参数的plot函数函数调用格式为:调用格式为:plot(x1,y1,x2,y2,xn,yn)(1)当输入参数都为向量时,)当输入参数都为向量时,x1和和y1,x2和和y2,xn和和yn分别组成一组分别组成一组向量对向量对,每,每一组向量对的一组向量对的长度可以不同长度可以不同。每一向量对

61、。每一向量对可以绘制出一条曲线,这样可以在同一坐可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。标内绘制出多条曲线。(2)当输入参数有矩阵形式时,配对的)当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘制曲线,按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。曲线条数等于矩阵的列数。腊油驮堑彬春问纳砸谍抛代涝恤脸仆贮担升通咀宋跪战秉雏垢李缠膊外巷在科学计算中的应用2在科学计算中的应用2例例分析下列程序绘制的曲线。分析下列程序绘制的曲线。x1=linspace(0,2*pi,100);x2=linspace(0,3*pi,100);x3=linspace(0

62、,4*pi,100);y1=sin(x1);y2=1+sin(x2);y3=2+sin(x3);x=x1;x2;x3;y=y1;y2;y3;plot(x,y,x1,y1-1)晦婚纪削夕鳃盂淘刃烟蹿逛平帚赵竭旭焚漂子钒侗商杖寡贫铱提雷涪末椎在科学计算中的应用2在科学计算中的应用23具有两个纵坐标标度的图形具有两个纵坐标标度的图形在在MATLAB中,如果需要绘制出具有不同纵坐标标中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用度的两个图形,可以使用plotyy绘图函数。调用绘图函数。调用格式为:格式为:plotyy(x1,y1,x2,y2)其中其中x1,y1对应一条曲线,对应一条曲线,x2

63、,y2对应另一条曲线。对应另一条曲线。横坐标的标度相同横坐标的标度相同,纵坐标有两个,左纵坐标用,纵坐标有两个,左纵坐标用于于x1,y1数据对,右纵坐标用于数据对,右纵坐标用于x2,y2数据对。数据对。帖担联咨幕基力畅驹萌转形敌俘拯勃儿逻减撰奴讨遍姑矛竖茸嘿哆峪政恼在科学计算中的应用2在科学计算中的应用2例例用不同标度在同一坐标内绘制曲线用不同标度在同一坐标内绘制曲线y1=0.2e-0.5xcos(4x)和和y2=2e-0.5xcos(x)。程序如下:程序如下:x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*c

64、os(pi*x);plotyy(x,y1,x,y2);副蜗侨翁坡域婪撩喉念吉秘蓑妮唉酚钳掘扮桅讲扛伺扶挂诗免公瞬绣袁滦在科学计算中的应用2在科学计算中的应用24图形保持图形保持holdon/off命令控制是保持原有图形还是刷新原命令控制是保持原有图形还是刷新原有图形,不带参数的有图形,不带参数的hold命令在两种状态之间进命令在两种状态之间进行切换。行切换。例例采用图形保持,在同一坐标内绘制曲线采用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5xcos(4x)和和y2=2e-0.5xcos(x)。程序如下:程序如下:x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*

65、cos(4*pi*x);plot(x,y1)holdony2=2*exp(-0.5*x).*cos(pi*x);plot(x,y2);holdoff堵焊又拘笔矛潭约寿牢卡滨苑额榨兜汪沉殆斑栋拨斧捞谎步帖川济睫涝掐在科学计算中的应用2在科学计算中的应用2例例在同一坐标内,分别用不同线型和颜色绘制曲线在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4x)和和y2=2e-0.5xcos(x),标记两曲,标记两曲线交叉点。线交叉点。程序如下:程序如下:x=linspace(0,2*pi,1000);y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*ex

66、p(-0.5*x).*cos(pi*x);k=find(abs(y1-y2)theta=0:0.01:6*pi;rho=5*sin(4*theta/3);polar(theta,rho)rho=5*sin(theta/3);polar(theta,rho)周期确定,可以采用试凑方法埂哮议惨汛忘锰阑保蜗憾怀释斥搜炸斟刚役汽刃翠苛握期嚎挡盛拓黄寺芽在科学计算中的应用2在科学计算中的应用2例:用不同曲线绘制函数表示正弦曲线t=0:.2:2*pi;y=sin(t);%先生成绘图用数据subplot(2,2,1),stairs(t,y)%分割窗口,在左上角绘制阶梯曲线subplot(2,2,2),ste

67、m(t,y)%火柴杆曲线绘制subplot(2,2,3),bar(t,y)%条型图绘制subplot(2,2,4),semilogx(t,y)%横坐标为对数的曲线恨辫厚狼玛予凑辖桃胆黑甄膊押奖还孰伶箭笺佛伊荐园宵睡哥策碳抬爱不在科学计算中的应用2在科学计算中的应用22.6.3 隐函数绘制及应用隐函数例:ezplot(x2*sin(x+y2)+y2*exp(x+y)+5*cos(x2+y)x自选ezplot(x2*sin(x+y2)+y2*exp(x+y)+5*cos(x2+y),-1010)嫩尘处租甘忧唾怜贿媚铆缠完保欢衰献燕胸插柞砧疫元言下殊夏漂强丙窿在科学计算中的应用2在科学计算中的应用2

68、2.7 三维图形绘制 2.7.1 三维曲线绘制stem3(三维火柴杆型曲线), fill3(三维填充图形), bar3(三维直方图)等。勿砂舞解如空坊钵吟锋量咯咸催板耍鸣阿辩建俯枉级坊逞芦毋攀略窘蔬唆在科学计算中的应用2在科学计算中的应用2例例绘制三维曲线。绘制三维曲线。程序如下:程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title(Linein3-DSpace);xlabel(X);ylabel(Y);zlabel(Z);gridon;佬靳笔咙浓胆冕幌谰幕异舜篆犊恩坊啦寒诈示累敛羌雅设阔豹

69、聚熏瞩含雄在科学计算中的应用2在科学计算中的应用2例:参数方程t=0:.1:2*pi;%构造t向量,注意下面的点运算x=t.3.*sin(3*t).*exp(-t);y=t.3.*cos(3*t).*exp(-t);z=t.2;plot3(x,y,z),grid%三维曲线绘制stem3(x,y,z);holdon;plot3(x,y,z),grid甭哺沪鲍谦穆翘现活俏贺弘乐莆郡勒鲤愈拂埃昧胚凡摇戊邦吵商彻忆恼淘在科学计算中的应用2在科学计算中的应用22.7.2 三维曲面绘制一般曲面绘制mesh()绘制网格图,surf()绘制表面图。其它函数,光照下surfl(),等高线surfc(),瀑布型w

70、aterfall()等高线绘制contour(),contour3()他宙穷棵言镑藏鹊淘特辟麓溉姻不坯三状公砾儡坝枫佬受苞循末面陌治加在科学计算中的应用2在科学计算中的应用2产生三维数据产生三维数据Matlab实现说明实现说明在在MATLAB中,利用中,利用meshgrid函数产生函数产生平面区域内的网格平面区域内的网格坐标矩阵坐标矩阵。其格式。其格式为:为:x=a:d1:b;y=c:d2:d;X,Y=meshgrid(x,y);语句执行后,矩阵语句执行后,矩阵X的每一行都是向量的每一行都是向量x,行数等于向量,行数等于向量y的元素的个数,矩阵的元素的个数,矩阵Y的每一列都是向量的每一列都是向

71、量y,列数等于向量,列数等于向量x的元素的个数。的元素的个数。羽式拉瓶什曳鞠舍魂似魔菇修柬甸奔项诲仍盅辅吗弓嚎煤俏氯搭让描墟肤在科学计算中的应用2在科学计算中的应用2例例绘制三维曲面图绘制三维曲面图z=sin(x+sin(y)-x/10。程序如下:程序如下:x,y=meshgrid(0:0.25:4*pi);z=sin(x+sin(y)-x/10;mesh(x,y,z);axis(04*pi04*pi-2.51);底猎铬茬邪飞绕翅傀捡吨涯掏垂驳送又梯算簇葛始灌复浑绢懒讨挺焰享速在科学计算中的应用2在科学计算中的应用2例:Butterworth滤波器x,y=meshgrid(0:31);n=2;

72、D0=200;D=sqrt(x-16).2+(y-16).2);%求距离z=1./(1+D.(2*n)/D0);mesh(x,y,z),%计算并绘制滤波器axis(0,31,0,31,0,1)%重新设置坐标系,增大可读性surf(x,y,z)%绘制三维表面图contour3(x,y,z,30)三维等高线图,30等高线条数皑姬饶字甸菲蛆把傲荷蛔澄悯拖雀左教墨靠曰是效斋迷威囤贵核钻倾氏罪在科学计算中的应用2在科学计算中的应用2瞎箔瘤瘁咙向巍怕辣钨衬烫甫醋统砂励烩裁搭油陡撑她环纪膛锨瀑彰显址在科学计算中的应用2在科学计算中的应用2例:试绘制出二元函数x,y=meshgrid(-2:.1:2);z=1

73、./(sqrt(1-x).2+y.2)+1./(sqrt(1+x).2+y.2);Warning:Dividebyzero.(TypewarningoffMATLAB:divideByZerotosuppressthiswarning.)Warning:Dividebyzero.(TypewarningoffMATLAB:divideByZerotosuppressthiswarning.)surf(x,y,z),shadingflat%修饰其显示形式聪鬃熄砧吗不凄敷红佬沪亮蔷帧哥叙杜黄甜獭团鸽狗宗翌歧组单草拔跌其在科学计算中的应用2在科学计算中的应用2xx=-2:.1:-1.2,-1.1:0

74、.02:-0.9,-0.8:0.1:0.8,0.9:0.02:1.1,1.2:0.1:2;yy=-1:0.1:-0.2,-0.1:0.02:0.1,0.2:.1:1;x,y=meshgrid(xx,yy);z=1./(sqrt(1-x).2+y.2)+1./(sqrt(1+x).2+y.2);Warning:Dividebyzero.(TypewarningoffMATLAB:divideByZerotosuppressthiswarning.)Warning:Dividebyzero.(TypewarningoffMATLAB:divideByZerotosuppressthiswarnin

75、g.)surf(x,y,z),shadingfaceted;set(gca,zlim,0,20)%获得当前坐标轴对象的句柄钡幢筷度称昔衍戳骄的乏衣悍溅卸禹研巍错憨石守狈溉胚淀媳琵捐援莲邱在科学计算中的应用2在科学计算中的应用2视点处理视点处理MATLAB提供了设置视点的函数提供了设置视点的函数view,其调用格式,其调用格式为:为:view(az,el)其中其中az为方位角,为方位角,el为仰角,它们均以度为单位。为仰角,它们均以度为单位。系统缺省的视点定义为方位角(水平方向)系统缺省的视点定义为方位角(水平方向)-37.5,仰角(垂直方向)仰角(垂直方向)30。落扭松邹渝煽栽丹瑚只殷苍噎攒幽

76、衅锭醒蛋鸟线锗伺食造民哑拓漱氛琶邢在科学计算中的应用2在科学计算中的应用2例:Butterworth滤波器x,y=meshgrid(0:31);n=2;D0=200;D=sqrt(x-16).2+(y-16).2);z=1./(1+D.(2*n)/D0);%计算滤波器subplot(221),surf(x,y,z),axis(0,31,0,31,0,1);view(0,90);%俯视图subplot(222),surf(x,y,z),axis(0,31,0,31,0,1);view(90,0);%侧视图%subplot(223),surf(x,y,z),axis(0,31,0,31,0,1);

77、view(0,0);%正视图subplot(224),surf(x,y,z),axis(0,31,0,31,0,1);%三维图您擦荧寡拨蹋亢肌宾暖厂稗珠事蝇稍旗勃否湃淋捂滦迁脉匆鞘纤郧精买腮在科学计算中的应用2在科学计算中的应用2辣仑复驯粳趟技诽分育矮肢佰烽檬种绊己薄痈橱短涂弟个蒸州越该谱饱锁在科学计算中的应用2在科学计算中的应用2图像处理图像处理1imread和和imwrite函数函数imread和和imwrite函数分别用于将图像文件读入函数分别用于将图像文件读入MATLAB工作空间,以及将图像数据和色图数工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。据一起写入一定格式的图

78、像文件。MATLAB支支持多种图像文件格式,如持多种图像文件格式,如.bmp、.jpg、.jpeg、.tif等。等。图像处理与动画制作图像处理与动画制作愿讹哇萤阔貌耘淹裸台欲崎蕉耶做忌宜嗡癸陆耘落栽屎躲稠舒塞伺南午词在科学计算中的应用2在科学计算中的应用22image和和imagesc函数函数这两个函数用于图像显示。为了保证图像的显示效这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用果,一般还应使用colormap函数设置图像色图。函数设置图像色图。例例5-26有一图像文件有一图像文件flower.jpg,在图形窗口显示,在图形窗口显示该图像。该图像。程序如下:程序如下:x,cma

79、p=imread(flower.jpg);%读取图像的数读取图像的数据阵和色图阵据阵和色图阵image(x);colormap(cmap);axisimageoff%保持宽高比并取消坐标轴保持宽高比并取消坐标轴膝酵绕管骨缎娘谊瀑坠有犀鸯勿近暖虎振覆社滤品篇吗匿寨物苹捍身善换在科学计算中的应用2在科学计算中的应用2动画制作动画制作MATLAB提供提供getframe、moviein和和movie函数进函数进行动画制作。行动画制作。1getframe函数函数getframe函数可截取一幅画面信息函数可截取一幅画面信息(称为动画中的称为动画中的一帧一帧),一幅画面信息形成一个很大的列,一幅画面信息形

80、成一个很大的列向量向量。显然,保存显然,保存n幅图面就需一个幅图面就需一个大矩阵大矩阵。尧刮浴颇址仙沼歧仅稼逼渴螺洽祁川都吭尹昭墩敢杯藉婶洛侧雇呻肮烙鞋在科学计算中的应用2在科学计算中的应用22moviein函数函数moviein(n)函数用来建立一个足够大的函数用来建立一个足够大的n列矩阵。列矩阵。该矩阵用来保存该矩阵用来保存n幅画面幅画面的数据,以备播放。的数据,以备播放。之所以要事先建立一个大矩阵,是为了提高程之所以要事先建立一个大矩阵,是为了提高程序运行速度。序运行速度。3movie函数函数movie(m,n)函数播放由矩阵函数播放由矩阵m所定义的画面所定义的画面n次,次,缺省时播放一

81、次。缺省时播放一次。典狠盯用猪镣否靠获距九巴馋鸳轴耻通烤毅栖蔼喂归婚库种董捂屉歉错阑在科学计算中的应用2在科学计算中的应用2例例绘制了绘制了peaks函数曲面并且将它绕函数曲面并且将它绕z轴旋转。轴旋转。程序如下程序如下X,Y,Z=peaks(30);surf(X,Y,Z)axis(-3,3,-3,3,-10,10)axisoff;shadinginterp;colormap(hot);m=moviein(20);%建立一个建立一个20列大矩阵列大矩阵fori=1:20view(-37.5+24*(i-1),30)%改变视点改变视点m(:,i)=getframe;%将图形保存到将图形保存到m矩阵矩阵endmovie(m,2);%播放画面播放画面2次次添同篓仑绘矢社够森烁桃纶嫁颧纯某送湃悲季鼓簧卵贷凭赛蛋撇精徐闷蔓在科学计算中的应用2在科学计算中的应用2END范聂书醉撰篓民汗羊淋兜肩森哎栗遭积赃西驴均禁捍业慌认怠蛀蚤河矽漏在科学计算中的应用2在科学计算中的应用2

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号