资源预览内容
第1页 / 共41页
第2页 / 共41页
第3页 / 共41页
第4页 / 共41页
第5页 / 共41页
第6页 / 共41页
第7页 / 共41页
第8页 / 共41页
第9页 / 共41页
第10页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数 学 实 验 华中农业大学数学建模基地系列课件 实验二目的 正确区分命令文件和函数文件的区别,掌 握函数文件的组成,函数调用等 掌握程序结构组成,循环结构,选择结构 掌握Matlab 符号运算 所谓M文件就是由MATLAB语言编写的可在 MATLAB语言环境下运行程序源代码文件。 M文件可以根据调用方式的不同分为两类: 命令文件(Script File):自动重复执行的一组 MATLAB命令和函数组合,不需输出输入参数。 函数文件(Function File):M文件的第一个可执 行以function开始,便是函数文件,每一个函数文件 定义一个函数。 2.1.1 M文件 1. M文件概述 2.1 MATLAB语言的流程结构 function output,output2=function-name(input1,input2) 2. M 文件的建立与打开 M文件是一个文本文件,扩展名为“m”,可以用任何 文本编辑器来建立和编辑,通常使用 Matlab 自带的 M 文件编辑器。 (1)新建一个 M 文件 方法一 菜单操作 ( File New M-File ) 方法二 命令操作 ( edit M 文件名 ) 方法三 快捷栏按钮 (2) 打开已有的 M 文件 方法一 菜单操作 ( File Open ) 方法二 命令操作 ( edit M文件名 ) 方法三 快捷栏按钮 方法四 双击 M 文件 3. M 文件的运行 (1)从命令窗口 输入文件名即可运行。 (2)从编辑器窗口 方法一 在编辑器菜单Debug-save and run 方法二 快捷栏按钮 方法三 快捷键F5 注1 命令文件产生的变量是全局变量,函数文件内部的变量 (非输入参数)是局部变量。 注2 运行若出现死循环或其它需要中断程序运行: 1. 命令窗口使用组合键ctrl+c。 2. 组合键ctrl+alt+del调出任务管理器,结束matlab进程。 例2.1.1 分别建立命令文件和函数文件,将华氏温度f 转换为摄氏温度c。 命令文件建立: (以文件名f2c.m存盘) clear; %清除工作空间中的变量 f=input(temperature:); c=5*(f-32)/9 f2c Input Fahrenheit temperature:73 c = 22.7778 命令窗口输入: 函数文件建立:以文件名f2c_fun.m存盘 function c=f2c_fun(f) c=5*(f-32)/9; c=f2c_fun(20) c = -6.6667 命令窗口输入: 注1:函数调用的一般格式是: 输出实参表=函数名(输入实参表) 实参传递给形参 例2.1.2 编写函数文件求半径为r的圆的面积和周长 。函数文件如下: function s,p=fcircle(r) %r 圆半径 %s 圆面 %p 圆周长 s=pi*r*r; p=2*pi*r; 2.2 程序控制结构 程序控制结构有三种:顺序结构、选择结构和 循环结构。任何复杂的程序都由这三种基本结构组 成。 2.2.1 顺序结构 按排列顺序依次执行各条语句,直到程序的最后 。 这是最简单的一种程序结构,一般涉及数据的输 入输出、数据的计算或处理等。 1. 数据的输入 从键盘输入数据: A=input(提示信息,s); 加上s选项,则允许用户输入一个字符串。 xm=input(Whats your name?,s); Whats your name?张三 2. 数据的输出 disp(输出项) 其中输出项既可以为字符串,也可以为矩阵。 例2.2.1 输入x,y的值,并将它们的值互换后输 出。 x=input(Input x please:); y=input(Input y please:); z=x;x=y;y=z; disp(x);disp(y); Input x please:1 Input y please:2 2 1 例2.2.2 求一元二次方程ax2 +bx+c=0的根。 a=input(a=?); b=input(b=?); c=input(c=?); d=b*b-4*a*c; x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a); disp(x1=,num2str(x(1),x2=, num2str(x(2); a=?1 b=?3 c=?2 x1=-1,x2=-2 3. 程序的暂停 pause(延迟秒数) 如果省略延迟时间,直接使用 pause,则将暂停 程序,直到用户按任一键后程序继续执行。 2.2.2 选择结构 选择结构是根据给定的条件成立或不成立,分 别执行不同的语句。 MATLAB 用于实现选择结构的语句有 if 语句 和 switch 语句。 1. if语句 在MATLAB中,if语句有单分支,双分支,多 分枝3种格式。 if 条件 语句组 end 当条件1成立时, 执行语句组1, 否则,当条件2成立, 执行语句组2, 否则,, 否则,当条件m成立, 执行语句组m, 否则 执行语句组n, 之后继续执行 if 语句的后继语 句,若条件不成立,则直接执 行if语句的后继语句。 if 条件 语句组1 else 语句组2 end if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件m 语句组m else 语句组n end 例2.2.3 计算分段函数的值。 x=input(请输入x的值:); if x c=input(请输入一个字符,s); if c=A else disp(c); end 2. switch语句 switch 表达式 %计算表达式的值 case 表达式1 %等于表达式1的值时,执行语句组1 语句组1 case 表达式2 %等于表达式1的值时,执行语句组2 语句组2 case 表达式m %等于表达式m的值时,执行语句组m 语句组m otherwise %不为上述值时,执行语句组n 语句组n end %当任意一个分支的语句执行完后,直接执行switch语句的下一 句。 例2.2.5 某商场对顾客所购买的商品实行打折销售, 标准如下(商品价格用price来表示): price200 没有折扣 200price500 3%折扣 500price1000 5%折扣 1000price price=input(请输入商品价格); switch fix(price/100) case 0,1 %价格小于200 rate=0; case 2,3,4 %价格大于等于200但小于500 rate=3/100; case num2cell(5:9) %价格大于等于500但小于1000 rate=5/100; case num2cell(10:24) %价格大于等于1000但小于2500 rate=8/100; case num2cell(25:49) %价格大于等于2500但小于5000 rate=10/100; otherwise %价格大于等于5000 rate=14/100; end price=price*(1-rate) %输出商品实际销售价格 2.2.3 循环结构 循环结构是按照给定的条件,重复执行指定的 语句。 MATLAB 用于实现循环结构的语句有 for 语 句和 while 语句。 1. for语句 for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 其中表达式 1 的值为循环变量的初值,表达式2的值为 步长,表达式3的值为循环变量的终值。步长为1时,表达 式2可以省略。 for 循环变量=矩阵表达式 循环体语句 end 执行过程是依次将矩阵的各列元素赋给循环变量,然 后执行循环体语句,直至各列元素处理完毕。 例2.2.6 已知 ,当n=100时,求y的值。 y=0; n=100; for i=1:n y=y+1/(2*i-1); end y 例2.2.7 写出下列程序的执行结果。 s=0; a=12,13,14;15,16,17;18,19,20;21,22,23; for k=a s=s+k; end disp(s); 2. while语句 while语句的一般格式为: while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语 句,执行后再判断条件是否成立,如果不成立则跳 出循环。 例2.2.8 从键盘输入若干个数,当输入0时结束输入, 求这些数的平均值和它们之和。 sum=0; cnt=0; val=input(Enter a number (end in 0):); while (val=0) sum=sum+val; cnt=cnt+1; val=input(Enter a number (end in 0):); end if (cnt 0) sum mean=sum/cnt end 3. break语句和continue语句 与循环结构相关的语句还有 break 语句和 continue语句。 它们一般与if语句配合使用。 break 语句用于终止循环的执行。当在循环 体内执行到该语句时,程序将跳出循环,继续执 行循环语句的下一语句。 continue 语句控制跳过循环体中的某些语句。 当在循环体内执行到该语句时,程序将跳过循环 体中所有剩下的语句,继续下一次循环。 例2.2.9 求100,200之间第一个能被21整除 的整数。 for n=100:200 if rem(n,21)=0 continue end break end n 4. 循环的嵌套 如果一个循环结构的循环体又包括一个循环结 构,就称为循环的嵌套,或称为多重循环结构。 例2.2.10 若一个数等于它的各个真因子之和,则称 该数为完数,如6=1+2+3,所以6是完数。求 1,500 之间的全部完数。 for m=1:500 s=0; for k=1:m/2 if rem(m,k)=0 s=s+k; end end if m=s disp(m); end end MathWorks公司在1993年收购了主要针对符号计 算的MAPLIE V 软件的使用,以
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号