Matlab入门(3).ppt_第1页
Matlab入门(3).ppt_第2页
Matlab入门(3).ppt_第3页
Matlab入门(3).ppt_第4页
Matlab入门(3).ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matlab入门 2010数学建模培训华侨大学数学学院 二 MATLAB基本使用 1 Matlab的进入与运行2 Matlab程序设计语言基础3 Matlab的基本数学运算4 Matlab的程序设计5 Matlab的绘图 Matlab程序设计 为了便于应用 MATLAB提供了一些流程控制的命令 这些命令对脚本编写带来了一些方便 但是需要注意的是 同样的功能如果可以用已有函数实现 就尽量不要使用这些流程控制命令 尤其是循环控制命令 但是在数学建模中 我们更多需要的是自编的函数 Matlab程序设计 for循环 允许一组命令以固定的次数重复 它的一般形式是fori V 循环结构体endV为一个向量 循环变量i每次从V中取一个数值 执行一次循环体的内容 直至执行完V中所有分量 与for循环以固定的次数求一组指令相反 while循环以不定的次数求一组语句的值 While循环的一般形式为 while 条件式 循环结构体 end只要条件式的值为真 就自动执行循环体的结构 Matlab程序设计 用循环结构求解 s1 0 fori 1 100 s1 s1 i end s1s1 5050 s2 0 i 1 while i s3 sum 1 100 s3 5050 例求解级数求和 tic s 0 fori 1 100000 s s 1 2 i 1 3 i end tocelapsed time 0 7030 tic i 1 100000 s sum 1 2 i 1 3 i tocelapsed time 0 1880自写循环结构未优化 效率较差 if else end结构 很多情况下 命令的序列必须根据关系的检验有条件的执行 它由if else end结构提供 它的结构如下 ifexpression1commands1elseifexpression2commands2elseif elsecommandsend Matlab的函数编写与调试 例求满足的最小m值用while较为方便 s 0 m 0 while s 10000 m m 1 s s m end s m 上述问题可以求出和式大于10000的最小m 若想分别求出大于20000 40000 的最小m值 可以分别改变程序的限制值10000 但还是很繁杂 若能建立一个机制 即输入20000就返回满足它的m值 Matlab的函数编写与调试 函数M文件第一行必须是以一特殊字符function开始 格式为 function 返回变量列表 函数名 输入变量列表 函数M文件的文件名必须与函数名完全一致例如定义函数myfun 则M文件的文件名为myfun m 返回变量如果多于一个 用方括号括起来 否则可以省略方括号 多个输入变量和返回变量之间用逗号分隔 把一个比较大的任务分解为多个比较小的任务 它们之间通过调用实现参数传递 小任务可以是函数 1函数调用常见的函数调用形式为 out1 out2 function in1 in2 一个函数可以嵌套 也可以调用其它的函数 甚至调用自己 也就是递归调用 函数文件 函数名称和文件名必须相同 如上述问题可以编写函数function s m findsum k s 0 m 0 while s m1 s1 findsum 145323 结果为m1 539 s1 145530 这样的调用方式很灵活 无需修改程序就可以很容易的调用函数 得出结果 M 函数格式是Matlab程序设计的主流 例functionf fun1 x ifx 1f x 2 1 elsef 2 x end 保存为fun1 m在命令窗口键入 fun1 3 结果为10 2参数传递 MATLAB函数的输入输出数目都可以变化 通过这个特性 可以实现一些自定义的功能 函数的输入输出参数数目可以通过变量nargin和nargout获得 函数调用中可以使用少于规定的输入输出参数数目 但是不能更多 3函数注意 函数可以按少于函数M文件中所规定的输入和输出变量进行调用 但不能用多于函数M文件中所规定的输入和输出变量数目 如果输入和输出变量数目多于函数M文件中function语句一开始所规定的数目 则调用时自动返回一个错误 当调用一个函数时 所用的输入和输出的参量的数目 在函数内是规定好的 函数工作空间变量nargin包含输入参量个数 函数工作空间变量nargout包含输出参量个数 事实上 这些变量常用来设置缺省输入变量 并决定用户所希望的输出变量 在M文件函数里 变量nargout可用来检验输出参量的个数 并按要求修正输出变量的创建 例 假设想编写一个函数生成n m阶Hilbert矩阵 它的第i行第j列的元素值为hij 1 i j 1 想在编写的时候实现几点如果只给出一个输入参数 则自动生成一个方阵 即令m n在函数中给出合适的帮助信息 包括基本功能 调用方式和参数说明 检测输入和返回变量的个数 如果有错误则给出错误信息 functionA myhilb n m ifnargout 1 error toomanyoutputargument endifnargin 1 m n elseifnargin 0 nargin 2 error wrongnumberofinputargument endfori 1 n forj 1 m A i j 1 i j 1 end end 二 MATLAB基本使用 1 Matlab的进入与运行2 Matlab程序设计语言基础3 Matlab的基本数学运算4 Matlab的程序设计5 Matlab的绘图 二维图形绘制 二维图形绘制基本语句已知各个时刻t t1 t2 tn和这些时刻的函数值y y1 y2 yn 将这些数据输入到Matlab中 构成向量t t1 t2 tn 和y y1 y2 yn 若用户想用图形方式表示二者的关系 可以给出plot t y 即可绘制 绘制的曲线实际上是各个数值点间的折线 若这些点够密 看起来就是曲线了 A 1 10plot A sin A 可以看到不够密的点组成的折线不够光滑 而 A 1 0 01 3 plot A sin A 就较为光滑 plot函数只将定点用直线连接起来 plot t y s s表示选项 有以下几个 y 黄色 点 连线 m 洋红 圈 短虚线gridon可以在图形上添加网格线holdon可以保护当前坐标系 再使用plot绘制的曲线将叠印在原来的图上 title在绘制的图形上添加标题xlabel和ylabel函数给x和y轴添加标注 例绘制方程的曲线可以通过if语句求出各个x点上的y值 考虑另一种方法若构造了x向量 则x 1 1将生成一个和x一样长的向量 其中 在满足xi 1 1的点上 生成向量的对应值就为1 否则为0 比如x 2 2 x 2 1012 x 1ans 00001 如下语句x 2 0 02 2 y 1 1 sign x abs x 1 1 x abs x 1 1 plot x y 其他二维图形绘制语句 隐函数绘制 ezplot函数可以直接绘制隐函数曲线调用格式ezplot 隐函数表达式 如 ezplot x 2 sin x y 2 y 2 exp x y 5 cos x 2 y 默认自动选择x轴的范围 可以设定 ezplot x 2 sin x y 2 y 2 exp x y 5 cos x 2 y 10 10 fplot fun lims 表示绘制字符串fun指定的函数在lims xmin xmax 的图形 functionY myfun1 x Y exp 2 x sin 3 x 2 fplot myfun1 1 2 fplot tanh x sin x cos x 2 pi 11 11 三维曲线绘制 plot3可以绘制三维曲线plot3 x y z plot3 x y z s s和二维曲线一样例绘制参数方程的三维曲线 t 0 0 1 2 pi 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可以绘制三维火柴杆型曲线 fill3可以绘制三维填充图形 bar3可以绘制三维直方图 三维曲面绘制 已知二元函数z f x y 则可以绘制出该函数的三维曲面图 先调用meshgrid 函数生成网格矩阵数据x和y 即两个坐标轴上的点在平面上画格 再按函数公式用点运算的方式计算出z矩阵最后用mesh 或surf 等函数绘制三维曲面 x y meshgrid 3 0 1 3 2 0 1 2 z x 2 2 x exp x 2 y 2 x y mesh x y z 另外 waterfall可以绘制瀑布图形 contour3可以绘制三维等高线 H subplot mrows ncols thisPlot 划分整个作图区域为mrows ncols块 并激活第thisPlot块 其后的作图语句将图形画在该块上 subplot mrows ncols thisPlot 激活已划分为mrows ncols块的屏幕中的第thisPlot块 其后的作图语句将图形画在该块上 命令subplot 1 1 1 返回非分隔状态 x linspace 0 2 pi 3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论