版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学试验课的内容:一个数学软件平台引例学问范例学生自己动手试验数学试验课的特点:以计算机为手段以软件为工具以学生为主体以问题为载体全国高校生数学建模竞赛(CUMCM)教化部、中国工业与应用数学学会(CSIAM)共同主办全国高校生中规模最大的课外科技竞赛每年9月实行,连续3天三人一队,随意组合(大二、三、四),学校选拔6部分CUMCM题目投资的收益和风险问题(1998A)电力市场的输电堵塞管理问题(2004B)钻井布局优化问题(1999B)DNA序列分类问题(2000A)血管的三维重建问题(2001A)公交车调度问题(2001B)彩票中的数学问题(2002B)SARS的传播问题(2003A)奥运会临时超市网点设计问题(2004A)长江水质的评价和预料问题(2005A)6部分CUMCM题目中国人口增长预料(2007A)乘公交,看奥运(2007B)出版社的资源配置(2006A)艾滋病疗法的评价及疗效的预料(2006B)DVD在线租赁(2005B)长江水质的评价和预料问题(2005A)车灯线光源的优化设计(2002A)钢管订购和运输(2000B)自动化车床管理(1999A)灾情巡察路途(1998B)美国高校生数学建模竞赛(MCM)由美国运筹与管理科学、美国工业与应用数学学会、美国数学学会等多家组织共同举办的一项国际性竞赛2006年我校有3个队获国际一等奖3个人一组,从下载题目,分析理解,查阅资料,建模,方法设计,编程调试,……,到最终的论文修改,4天半时间提交一篇完整的竞赛论文(英文)。3部分MCM题目飓风来临时的疏散问题(2001B)核磁共振切片成像(1998A)指纹识别与DNA识别(2004A)无线信道安排(2000B)空中交通限制(2000A)绝技表演(2003A)机场乘客登机策略(2007B)风与喷泉(2002A)数独游戏的设计(2008B)伽玛刀治疗支配(2003B)4部分ICM题目HIV/AIDS问题(2006C)不行再生资源(2005C)信息技术平安问题(2004C)器官移植:肾交换问题(2007C)水路平安(2001C)大地污染(1999C)机场平安检查(2003C)大象数量的限制(2000C)灌木蜥蜴问题(2002C)寻求好的医疗保健系统(2008C)网上资源全国数学建模网站://美国高校生数学建模竞赛://wwwap/undergraduate/contests/重庆高校“数学试验”网站:///cmewebhome/数学中国建模论坛://madio/mcm中国数学建模网站://shumo参考书1.姜启源等,高校数学试验,清华高校出版社,2005。2.姜启源等,数学模型(第三版),高等教化出版社,2003年。谢金星等,优化建模与LINDO/LINGO软件苏金明等,MATLAB6.1好用指南,电子工业出版社,2002年关于考试MathematicalExperiment数学实验之一——MATLAB软件简介[1]熟悉MATLAB软件的用户环境,驾驭其一般目的吩咐和MATLAB数组操作与运算函数;[2]驾驭MATLAB软件的绘图吩咐,能娴熟应用循环和选择结构实现各种循环选择功能。[3]通过实例练习,达到能敏捷应用MATLAB软件解决一些简洁问题。[4]借助MATLAB软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发觉进而证明其中的规律。试验目的试验一主要内容Matlab环境数值运算图形功能M文件的编写布置试验返回符号运算MATLAB可以做....1引言MATLAB软件MATLAB的主要特点安装启动
由美国MathWorks公司开发
MATrixLABoratoryMATLAB软件适合多学科、功能强大高级课程的基本教学工具返回MATLAB可以做....微积分:微分、积分、求极限、泰勒绽开、级数求和代数:求逆、特征值、行列式、代数方程解的化简、数学表达式的指定精度求值数值分析:插值与拟合、数值微分与积分、函数靠近、代数方程和微分方程的数值解和符号解统计计算:均值、方差、概率、参数估计、假设检验、相关性和回来分析、统计绘图、随机数产生器等优化问题的求解:线性规划、非线性规划等问题的求解动态系统模拟MATLAB还可以做....返回MATLAB的主要特点1)运算符和库函数极其丰富,语言简洁,编程效率高2)图形功能强大3)功能强大的工具箱4)易于扩充返回(Windows操作平台)1.将源光盘插入光驱;2.在光盘的根书目下找到MATLAB的安装文件setup.exe;3.鼠标双击该安装文件,按提示逐步完成安装。4.安装完成后,在程序栏里便有了MATLAB选项。安装返回在“起先程序MatlabMATLAB”中单击MATLAB,便会出现MATLABCommandWindow(即吩咐窗口)。启动返回2.Matlab环境MATLAB帮助系统运行方式1.吩咐行运行方式2.M文件运行方式1.吩咐行帮助;2.联机帮助;3.演示帮助。2.Matlab环境干脆在吩咐窗口输入吩咐行来实现计算和作图.例1求的运算结果。键入(12+2*(7-4))/3^2吩咐行运行方式2.Matlab环境例2求矩阵A与B的和。其中
在吩咐窗口依次输入3个吩咐行A=[1,2;4,5];B=[-1,6;8,-7];C=A+B就会显示:C=08122吩咐行运行方式吩咐窗中吩咐行的编辑例4指令行操作过程示例(1)若想计算的值,应依次键入以下字符y1=2*sin(0.3*pi)/(1+sqrt(5))(2)通过反复按键盘的箭头键,实现指令回调和编辑,进行新的计算。y2=2*cos(0.3*pi)/(1+sqrt(5))吩咐行运行方式2.Matlab环境鼠标单击MATLAB窗口工具栏中的NewM-File按钮,打开M文件编辑窗口,在该窗口中输入程序文件,可以很便利地进行调试和运行.例5在M文件编辑窗口输入程序A=[1,2;4,5];B=[-1,6;8,-7];C=A+B然后在Debug菜单中选择Run选项,将在吩咐窗口输出结果.M文件运行方式2.Matlab环境2.Matlab环境MATLAB中的窗口1.吩咐窗口;2.M文件编辑窗口;3.起始面板(显示MATLAB总包和已安装的工具箱的帮助、演示、GUI工具和产品主页)4.工作空间窗口;5.吩咐历史窗口6.当前书目窗口;7.图形窗口;…1
CurrentDirectory当前书目阅读器简介
2.MATLAB的搜寻路径和路径设置器搜寻路径及运用要点3
MATLAB搜寻路径的扩展和修改(1)何时须要修改搜寻路径(2)利用设置路径对话框修改搜寻路径利用指令path设置路径CurrentDirectory、路径设置器和文件管理2.Matlab环境whichtest显示M文件test.m所在的书目what返回当前书目下M,MAT,MEX文件的列表dir列出当前书目下的全部文件cd显示当前的工作书目typetest在吩咐窗口下显示test.m的内容deletetest删除M文件test.m文件管理返回数学函数运算符及其意义3.数值运算矩阵(包括数组)的创建矩阵的运算MATLAB中的变量和语句数据分析1)以字母开头,后面可跟字母,数字和下短线;2)大小写字母有区分,不超过19个字符。变量ans用于结果的缺省变量名;pi圆周率eps计算机的最小数;inf无穷大i或ji=j=-1的开方;NaN不定量realmin最小可用正实数;realmax最大可用正实数一般地,在MATLAB中数据的存储与计算都是双精度的.当然也可以变更其显示格式.特殊变量名返回MATLAB中的变量formatshort默认值,5位定点表示formatlong15位定点表示formatshortE5位浮点表示formatlongE15位浮点表示……可利用帮助吩咐查阅全部调用格式format的调用格式返回MATLAB中的变量可用吩咐format来变更数据显示格式
1)一般:变量=表达式;例如:x=sin(pi/12)-tan(pi/10)*8;2)也可以:表达式;此时等价于ans=表达式返回MATLAB中的语句
表达式后面跟分号“;”,将不显示结果;
跟‘,’或‘回车’,将显示表达式的计算结果;
当一个表达式没写完就需换行时,应在该行末尾键入‘…’之后再回车换行。例如,s=1-1/2+1/3+1/4+sin(3*X+Y)-cos(X)...-1/8+1/10+1/20‘;’‘,’‘…’和回车的作用语句(吩咐行)后标点符号的作用返回1)标量、数组(包括矩阵)的通常意义下的运算:“+”,“–”,“*”,“/”,“^”,“’”2)数组(包括矩阵)对应位置元素进行运算的特殊运算符:“.*”,“./”,“.^”运算符及其意义x=linspace(0,pi,11)%11个从0到pi的等间隔数.1)数组构造:常接受“first:increment:last”和函数“linspace”两种方式来创建数组,如x=1:5(从1到5公差为1的等差数组)x=0:0.1:1(从0到1,公差为0.1)矩阵(包括数组)的创建x(1:5)表示x的第1到第5个元素构成的数组.x(1:2:5)x([2,1,4])x(3)表示x的第3个元素2)数组的操作输出:A=123456或键入:A=[123456]1)矩阵的干脆定义键入:A=[123;456]矩阵的创建zeros(m,n)m行n列的零矩阵ones(m,n)m行n列的全1矩阵eye(n)n阶单位矩阵rand(m,n)m行n列的匀整分布随机数矩阵randn(m,n)m行n列的正态分布随机数矩阵diag(v)以数组v为对角线元素的对角阵diag(A)矩阵A的对角线元素构成的向量triu(x)x的上三角阵tril(x)x的下三角阵2)特殊矩阵矩阵的创建例如,键入:A=[123;456;789];A(3,:)%A的第三行输出:ans=789从一个矩阵中取出若干行(列)构成新矩阵称为剪裁,“:”是特别重要的剪裁工具。3)矩阵的剪裁矩阵的创建键入:B=A(2:3,:)%A的2,3行输出:B=456789键入:A(:,1)%A的第一列输出:ans=147矩阵的创建键入:A=[123;456;789];C=A(1:2,[13])%A的第1,2行,%第1,3列输出:C=1346还有A(1:2:3,3:-1:1),
矩阵的创建如,键入:D=[C,zeros(2,1)]输出:D=130460将几个矩阵接在一起称为拼接,左右拼接行数要相同,上下拼接列数要相同。4)矩阵的拼接矩阵的创建键入:E=[D;eye(2),ones(2,1)]输出:E=130460101011返回矩阵的创建+
矩阵加法;
-
矩阵减法;*
矩阵乘法;
’
矩阵转置;^
矩阵乘幂;\
矩阵左除;
/
矩阵右除。XA=B的解是A右除B,即X=B/A。
例如,设A是可逆矩阵,AX=B的解是A左除B,即X=A\B;矩阵的运算inv(A)矩阵的逆;rank(A)矩阵秩det(A)矩阵的行列式;orth(A)正交化poly(A)特征多项式d=eig(A),[v,d]=eig(A)特征值与特征向量size(A)返回一个二元素向量,第一个元素为A的行数,其次个元素为A的列数size(A,1)返回A的行数;size(A,2)返回A的列数length(A)返回max(size(A))diag(A)提取A的对角元素返回列向量矩阵函数返回例如:可如下建立一个322的三维矩阵高维矩阵返回》A(:,:,1)=reshape(1:6,3,2);A(:,:,2)=reshape(-1:-1:-6,3,2);>>AA(:,:,1)=142536A(:,:,2)=-1-4-2-5-3-6高维矩阵返回》a=A(3,2,1),b=A(1,2,2),c=A(3),d=A(10)a=6b=-4c=3d=-5A(:,:,1)=142536A(:,:,2)=-1-4-2-5-3-6高维矩阵返回》A(1,:,2)=[7,8]A(:,:,1)=142536A(:,:,2)=78-2-5-3-6更高维矩阵的定义和处理也类似。元素为字符串的矩阵也可类似定义和处理。更困难的数据类型:结构(structure)和元胞矩阵(cellarray)结构变量返回结构变量是由“域”组成的变量;通过“.”操作符可以访问结构变量的“域”。student=Name:'zhanghua'fee:5400credit:[2x4double]结构变量返回干脆赋值建立结构变量。例:结构变量student是由三个域name,fee和credit组成。赋值如下》student.Name=‘zhanghua’;》student.fee=5400.00,》student.credit=[4,3,2,3;85,63,96,72]》student.creditans=432385639672student=Name:'zhanghua'fee:5400credit:[2x4double]结构变量返回利用struct函数建立结构变量。例:结构变量student是由三个域name,fee和credit组成。赋值如下》student=struct(‘name’,’zhanghua’,’fee’,5400,’credit’,[4,3,2,3;85,63,96,72])student='zhanghua'[5400][2x4double][]元胞矩阵返回元胞矩阵中不同的元素的类型可以不同。例:》student(1,1)={‘zhanghua’};student(1,2)={5400.00};student(2,1)={[4,3,2,3;85,63,96,72]}也可以》student{1,1}=‘zhanghua’;student{1,2}=5400.00;student{2,1}=[4,3,2,3;85,63,96,72]元胞矩阵返回元胞矩阵元素的访问方法和规则与数值矩阵类似。例:》student{1,1}=‘zhanghua’;student{1,2}=5400.00;student{2,1}=[4,3,2,3;85,63,96,72]》student{1,2}ans=5400》student{2,1}(2,:)ans=85639672三角函数:sin(x),sinh(x),asin(x),sinh(x),cos(x),tan(x),cot(x),sec(x),csc(x)等。指数函数:exp(x),log(x),log10(x),log2(x),sqrt(x)等。整值函数:朝零方向取整fix(x),朝-方向取整floor(x),朝+方向取整ceil(x),四舍五入到最接近的整数round(x),符号函数sign(x)等其他数学函数:确定值或复数的幅值abs(x)MATLAB中的数学函数输出:ans=0.84150.90930.1411-0.7568-0.9589-0.2794单变量数学函数的自变量可以是数组,此时,输出的是各元素的函数值构成的同规格数组。例如,输入:a=[123;456];sin(a)返回MATLAB中的数学函数很简洁对一大批数据进行一般的数据分析,如求平均值、最大值、标准差、排序等。1.“File”“importData”选项可以帮助从外部文件中读入数据例如:鼠标单击“File”菜单中的“importData”选项→找寻文件days.txt(或shuju.xls)的路径→next→finish,在工作空间就有了days(或shuju)这个数组变量了。返回数据分析文件的读写2.可以用“xlsread”读入xls文件中的数据,调用格式为M=xlsread(filename,delimiter)例如:M=xlsread(‘shuju.xls')3.利用“helpfileformats”吩咐可查阅全部可读入的文件格式及其相应的读入吩咐4.利用“helpIOfun”吩咐可查看全部的文件输入输出吩咐,读写吩咐返回数据分析文件的读写max求最大值min求最小值mean求平均值std求元素标准差sum求各列元素的和midian求列元素的中值hist画直方图trapz梯形法求数值积分prod求列元素的积sort按升序排列通用数据分析函数返回数据分析cumsum求列元素的累计和cumtrapz梯形法求累积数值积分cumprod求列元素的累计积sortrows按升序排列矩阵各行1.max函数用于求向量或矩阵中的最大元素.调用格式有xmax=max(x)[xmax,I]=max(x)例如>>x=[2,8,3,5,1,3,7,4,8];>>[maxx,I]=max(x)maxx=8I=2返回向量中的最大元素及其在向量中的下标值通用数据分析函数返回数据分析1.max函数又如>>x=[1,3,2;5,2,9];>>[maxx,I]=max(x)maxx=539I=212返回各列中的最大元素及其在各列中的行下标值通用数据分析函数返回数据分析2.sort函数用于对元素按升序进行排序.调用格式有sx=sort(x)[sx,I]=sort
(x)例如>>x=[2,8,3,5,1,3,7,4,8];>>[stx,I]=sort(x)stx=123345788I=513684729返回向量中的元素按升序进行排序的结果及其下标值通用数据分析函数返回数据分析3.hist函数用于绘直方图,显示数据的分布特征.调用格式有n=hist(Y)n=hist(Y,x)n=hist(Y,nbins)[n,xout]=hist(…)例如,创建听从正态分布的数据的直方图.x=-3:0.1:3;Y=randn(10000,1);n=hist(Y,x)通用数据分析函数返回数据分析3.hist函数n=Columns1through1419910913151523334741719690Columns15through28108135169157186216241242301324336352377389Columns29through42362391375383387382359360358331299252272226Columns43through56198173145123102986462544745243020Columns57through618137521通用数据分析函数返回数据分析3.hist函数可以变更图形的颜色h=findobj(gca,'Type','Patch');set(h,'FaceColor','r','EdgeColor','w')通用数据分析函数返回数据分析3.hist函数调用格式总结n=hist(Y),将Y中的元素分到10个间隔相同的条形中,并返回每个条形中元素的个数n=hist(Y,x),其中x为向量,返回Y的分布,如,若x为一个5元素向量,则hist函数将Y中的元素分到5组条形中n=hist(Y,nbins),其中nbins为标量,运用nbins组条形.[n,xout]=hist(…),返回包含频数和条形位置的向量通用数据分析函数返回数据分析4.trapz函数用于梯形法求数值积分.其调用格式如下Z=trapz(Y)通过梯形法求Y的近似积分值.Z=trapz(X,Y)通过梯形法计算Y对X的近似积分值.向量X与Y的长度必需相等.通用数据分析函数返回数据分析4.trapz函数例如,求标准正态分布N(0,1)密度函数f(x)的积分通用数据分析函数返回数据分析x=-5:0.1:5;y=1/sqrt(2*pi)*exp(-1/2*x.^2);plot(x,y)z=trapz(x,y)z=1.00004.图形功能二维图形三维图形基本的绘图吩咐坐标系的限制极坐标图多幅图形空间曲线带网格的曲面等高线返回图形标注1)基本的绘图吩咐数值作图吩咐:plot(x,y)符号作图吩咐:ezplot(‘f(x)’,[a,b])如何作曲线?如何作散点图?数值作图吩咐:plot(x,y,’.’)如何在同一坐标下画多条曲线?数值作图吩咐:plot(x,y),(y为矩阵)保持吩咐:holdon,holdoff如何作曲线?——方法一x=linspace(0,2*pi,30);y=sin(x);plot(x,y)如何作曲线?——方法二ezplot('sin(x)',[0,2*pi])x=[0.8,0.35,0.65,0.8,0.2,1,1.2,1.4,0.42,0.38,0.54,0.6,0.45,0.3,1.3,1.1,1.25,0.6,0.5,0.4];y=[3,5,8,4.4,6,2,6,7.1,4.3,5,5,3.5,4.8,7.2,4.5,7.3,3.7,4,7,3.2];plot(x,y,‘.’);如何作散点图?x=linspace(0,2*pi,30);y=[sin(x);cos(x)];plot(x,y);如何在同一坐标下画多条曲线?——方法1x=linspace(0,2*pi,30);y=sin(x);plot(x,y,’k’);y2=cos(x);holdonplot(x,y2,’b’);x1=linspace(0,pi/2-0.5,20);x2=linspace(pi/2+0.5,3*pi/2-0.5,20);x3=linspace(3*pi/2+0.5,2*pi,20);y1=tan(x1);y2=tan(x2);y3=tan(x3);plot(x1,y1,’r’,x2,y2,’r’,x3,y3,’r’)holdoff如何在同一坐标下画多条曲线?——方法2如何在同一坐标下画多条曲线?——方法2plot(x,y,‘color-linestyle-marker’)转折点连线颜色、线型、数据点图标字符串参数的取值如下:颜色:y(黄);r(红);g(绿);b(蓝);w(白);k(黑);m(紫);c(青)。线型:-(实线);:(点线);-.(虚点线);--(虚线)。数据点图标:.(小黑点);+(加号);*(星号);o(小圆圈);pentagram(五角星)。1)基本的绘图吩咐plotx=1:8;y=sin(x);plot(x,y,‘r:o’);x=0:0.1:2*pi;y=sin(x);plot(x,y,‘r:o’);plot(x,y,‘r:’);返回axisoff取消坐标轴2)坐标系的限制axis([xminxmaxyminymax])[]中分别给出x轴和y轴的最小、最大值axisequalx轴和y轴的单位长度相同axissquare图框呈方形返回3)图形标注xlabel、ylabel、zlabel
对x、y、z轴加标注title给整个图形加标题text、gtext在图形中特定的位置加字符串grid在图形上加网格3)图形标注x=linspace(0,2*pi,30);y=[sin(x);cos(x)];plot(x,y);grid;xlabel('x');ylabel('y');title('SineandCOsineCurves');text(3*pi/4,sin(3*pi/4),'\leftarrowsinx');text(3*pi/2,cos(3*pi/2),'cosx\rightarrow',...'HorizontalAlignment','right');例.上页中同一坐标系下画出的sinx和cosx的函数图形,如何作?这些吩咐行可以形成一个M文件ex1.m若运用吩咐gtext(‘sinx’)代替吩咐text,则在图形窗口会出现十字线,其交点是字符串的位置,移动鼠标可移动交点,鼠标点击一下就可将字符串固定在那里。提示3)图形标注返回4)多幅图形x=linspace(0,2*pi,30);y=sin(x);z=cos(x);u=2*sin(x).*cos(x);v=sin(x)./cos(x);subplot(2,2,1),plot(x,y),title('sin(x)')subplot(2,2,2),plot(x,z),title('cos(x)')subplot(2,2,3),plot(x,u),title('2sin(x)cos(x)')subplot(2,2,4),plot(x,v),title('sin(x)/cos(x)')4)多幅图形例.上页中在同一个画面中的多幅不同坐标系的图形,如何作?M文件ex2.m返回例如,t=0:0.01:2*pi;polar(t,sin(2*t).*cos(2*t),'-r')5)极坐标图polar函数,绘极坐标图,调用格式如下:polar(theta,rho)polar(theta,rho,LineSpec))返回三维图形1)空间曲线例:作螺旋线x=sint,y=cost,z=t键入:t=0:pi/50:10*pi;plot3(sin(t),cos(t),t);返回2)带网格的曲面
键入:x=-7.5:0.5:7.5;y=x;[X,Y]=meshgrid(x,y);R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;mesh(X,Y,Z);例:作曲面z=f(x,y)的图形,2)带网格的曲面xy吩咐:[X,Y]=meshgrid(x,y)mesh(X,Y,Z)或surf(X,Y,Z)可将上述的画网格图的mesh吩咐改为:surf(X,Y,Z);则输出的曲面图,效果有所不同。返回contour函数:生成二维等值线图,调用格式:contour(Z),其中Z为x-y平面的高度.x轴和y轴的范围分别为[1:n]和[1:m],其中[m,n]=size(Z)contour(Z,n),其中n为标量contour(Z,v),其中v为向量contour(X,Y,Z)contour(X,Y,Z,n)contour(X,Y,Z,v)contour(…,LineSpec),用LineSpec指定的线型和颜色绘等高线.[C,h]=contour(…)返回等高线矩阵C和图形对象的句柄向量.3)等高线例如,作出由MATLAB的函数peaks产生的二元函数的曲面及其等值线图。键入:[X,Y,Z]=peaks(30);surf(X,Y,Z);figure(2);contour(X,Y,Z,16);figure(3);contour3(X,Y,Z,16);figure(4);[C,h]=contour(X,Y,Z,16);clabel(C,h)3)等高线打开另一个图形窗口返回返回clabel函数:标示二维等值线的高度值,调用格式:clabel(C,h),clabel(C,h,v),其中v为向量clabel(C,h,’manual’)clabel(C)clabel(C,v)clabel(C,’manual’)其他还有contourc:计算等值线矩阵,contourf:填充二维等值线图3)等高线5.M文件的编写M文件吩咐文件函数文件四种循环和选择限制结构for循环while循环if-else-end结构switch-case-end结构Index返回M文件在命令窗口进入程序编辑器输入、保存M文件,然后在命令窗口键入你建立的M文件的文件名即可逐次执行其中的命令。在此空白框键入M文件保存按钮吩咐M文件:一些吩咐行的组合。函数M文件:定义函数的程序,具有特定格式。例:x=[23];f=cost(x)functionf=cost(x)f=100*(x(2)-x(1)^2)^2…-(1-x(1))^2;M文件函数M文件的形式为function[输出变量列表]=函数名(输入变量列表)函数体语句;M文件返回function[income,profit]=total(ppri,spri,samnt)income=sum(spri.*samnt);profit=income-sum(ppri.*samnt);M文件返回P=[10.36.6812.0316.8517.519.3];Sp=[11.115616.259.918.2520.824.1515.5]Sa=[568120575358039521041538810694];[in,pr]=total(P,Sp,Sa)逻辑运算符:
&(与运算),|(或运算),~(非运算)关系运算符:
<,>,<=,>=,==(等于),~=(不等于)关系运算比较两个数值,当给出的关系式成立时,结果为1(表示真),否则为0(表示假)。循环选择限制结构返回如:s=0;n=1whiles<=100s=s+n^2;n=n+1;endn,sWhile循环的一般形式为:while关系表达式{statments}endwhile循环关系表达式statmentsend的后续语句YesNoi0=1-exp(-1);n=0;in=i0;t=1;holdonplot(n,in,'.')while(in>=exp(-1)/(n+1))…&(in<=t)x=in;n=n+1;in=1-n*xplot(n,in,'.')t=1/(n+1);endholdoffwhile循环返回如,fork=1:4x(k)=1/k;endformatrat%设置输出格式为有理数xFor循环的一般形式forx=a{statments}endfor循环k=1,x=a(:,1)k<=size(a,2)statmentsend的后续语句YesNok=k+1,x=a(:,k)functionf=jiecheng(n)f=1;fori=1:nf=f*i;endfor循环建立一个函数M文件求自然数n的阶乘‡注:循环可以嵌套,即循环体内又包含另一个完整的循环结构,内嵌的循环中还可以嵌套循环,形成多层循环。for循环返回最简洁的形式:if关系表达式{statments}end关系表达式statmentsEnd的后续语句YesNoif-else-end结构当有三个或更多的选择时:if关系表达式(1){statments}(1)elseif关系表达式(2){statments}(2)...elseif关系表达式(n){statments}(n)else{statments}(n+1)end例如,可用以下程序得到符号函数。functiony=SIGN(x)ifx<0y=-1;elseifx==0y=0;elsey=1;end已知随意两个多项式(不确定同阶)的系数,求两个多项式的和。if-else-end结构‡if-else-end结构functionf=sumpoly(p1,p2)n=abs(length(p1)-length(p2));iflength(p1)<length(p2)p12=[p1,zeros(1,n)];p22=p2;elseiflength(p1)>length(p2)p22=[p2,zeros(1,n)];p12=p1;elsep12=p1;p22=p2;endf=p12+p22;if-else-end结构返回switchlower(NAME)case{'zhanghua','lijiang'},disp('HecomesfromChina.')case'peter',disp('HecomesfromUnitedStates.')case'monika',disp('ShecomesfromGermany')otherwise,disp('Heorshecomesfromother...countries.')endswitch-case-end多分支选择结构一般形式switch表达式(标量或字符串)case值1,语句体1case{值2.1,值2.2,...}语句体2...otherwise,语句体nend运输公司计算运费是,距离(s)越远,每公里运费越低。标准如下表,编写一个求折扣的M文件函数。‡functiong=zhekou(s)ifs<250g=0;elseifs<500g=0.02;elseifs<1000g=0.05;elseifs<2000g=0.08;elseifs<3000g=0.1;elseg=0.15;endfunctiong=zhekou1(s)switchfix(s/250)case{0}g=0;case{1}g=0.02;case{2,3}g=0.05;case{4,5,6,7}g=0.08;case{8,9,10,11}g=0.1;otherwiseg=0.15;endswitch-case-end多分支选择结构返回6.符号运算符号表达式的建立返回符号与数值间的转换符号微积分符号函数画图因式分解、绽开和简化字符串入门符号和数值之间的转换返回字符串入门例1数值量与字符串的区分a=12345.6789 class(a) a_s=size(a) b='S' class(b) b_s=size(b) 返回字符串入门用单引号来设定字符串
键入:g='3*x^2+2*x+6=0‘显示:g=3*x^2+2*x+6=0
键入:name=‘ZhangHua’会显示:name=ZhangHua键入:f=‘cos(x)’显示:f=cos(x)返回字符串入门例2用特地函数char创建多行串数组.S1=char('Thisstringarray','hastworows.')S1=Thisstringarrayhastworows.S2=char('这','字符','串数组','','由5行组成')size(S2)返回【例3】最常用的数组/字符串转换函数,num2str,mat2str示例。B=rand(2,4);
B_str=mat2str(B,4) [0.13890.19870.27220.01527;0.20280.60380.19880.7468]
Expression=['exp(-',B_str,')']exp(-[0.13890.19870.27220.01527;0.20280.60380.19880.7468])eval(Expression)ans=0.87030.81980.76170.98480.81640.54670.81970.4739 字符串入门返回字符串入门【例3】最常用的数组/字符串转换函数,num2str,mat2str示例。B=rand(2,4);
B_str=mat2str(B,4) [0.13890.19870.27220.01527;0.20280.60380.19880.7468]
Expression=['exp(-',B_str,')']exp(-[0.13890.19870.27220.01527;0.20280.60380.19880.7468])eval(Expression)ans=0.87030.81980.76170.98480.81640.54670.81970.4739 返回字符串入门返回字符串入门【例4】综合例题:在MATLAB计算生成的图形上标出图名和最大值点坐标。a=2;w=3;t=0:0.01:10; y=exp(-a*t).*sin(w*t);[y_max,i_max]=max(y);t_text=['t=',num2str(t(i_max))];y_text=['y=',num2str(y_max)]; max_text=char('maximum',t_text,y_text);tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)']; plot(t,zeros(size(t)),'k'),holdon plot(t,y,'b') ,plot(t(i_max),y_max,'r.','MarkerSize',20)text(t(i_max)+0.3,y_max+0.05,max_text) title(tit),xlabel('t'),ylabel('y'),holdoff
返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年园林设计院景观专业招聘笔试试题(含答案)
- 2025年高考真题-英语(天津卷) 含解析
- 2026年中小学健康卫生教育教师试卷
- 2026年湘西北医务管理岗结构化面试真题
- 2026年建德教师招聘考试试题及答案
- 装修仓管员选拔试题及标准答案
- 上班期间可以看模拟考试试题及答案
- 监控室安全试题及答案
- 公共安全应急演练与评估考试试卷
- 医生转正工作小结
- 红火蚁咬伤的诊断与治疗
- 汉服妆造培训
- 地产渠道市场培训课件
- 供暖安装管理制度
- T/CECS 10214-2022钢面镁质复合风管
- 基于室内分布5G多频段定向天线系统的设计
- 餐饮美学基础 课件全套 模块1-4 餐饮美学概论 -餐厅民俗美学
- 海南省民用建筑绿色专篇实施指南(试行)
- 中建二测题库及答案
- 2025年单位保密工作计划
- 口腔科个案护理
评论
0/150
提交评论