《MATLAB入门与数学建模初步.ppt》由会员分享,可在线阅读,更多相关《MATLAB入门与数学建模初步.ppt(41页珍藏版)》请在三一办公上搜索。
1、课程简介与教学流程,课程性质:专业必修课完成课时:48学时,68周考核形式:考试,试卷+上机编程选用教材:重庆大学组编,国家十五规划教材先修课程:数学分析/高等代数/微分方程 概率论/数学建模/数值分析/C语言/数据结构实验环境:PC机+Matlab 6.5上机安排:周二/周五下午78节集中课堂教学 周三晚6:30-9:30分组上机实践基本原则:出勤、课堂、实验、成绩、考试!,课程简介与教学流程,考核形式:考试,试卷+上机编程,课程简介与教学流程,作为课程的延伸,如何学习数学实验课程,学习基于Matlab的数学实验需要:1、熟悉Matlab基本操作和指令;2、熟悉Matlab联机帮助系统;3、
2、熟悉Matlab语言流程控制;4、具备一定的数学基础和知识准备;5、具备解决实际的应用问题的能力;6、保障 预习-听课-实践 的完整过程;,命令窗口 command window,命令窗口是用户与Matlab交互的主要场所:指令输入和结果返回都在这里进行基本技巧:切换输入法至En并清空变量空间workspace!赋值“=”缺省变量“ans”结果显示开关“;”指令回调“”命令行提示符“”注释符“%”表达式继行符“”清除指令“clear、clc和clf”“error”和“warning”反馈信息,format显示精度必备程序:cc.mclc;clear;closereq;,变量空间work的工作机
3、制,简单说变量空间就是:临时供Matlab执行运算使用的一块内存空间,所以具有“即擦即写”的特性系统变量与用户变量(命名规则):p215变量的查看、擦除、保存与载入 who whos clear save load saveSaving to:matlab.mat load matlab.mat,联机帮助系统(进阶钥匙),提高Matlab运用水平的必经之路:擅于利用联机帮助系统查询已知或未知函数的语法、描述、范例及关联Help与Lookfor的区别:前者针对函数名;后者针对关键词更直观更详尽的查询方式:帮助窗口Help demo演示程序lorenz 洛仑兹混沌吸引子附近轨道的图象演示xpkle
4、in 克莱因瓶演示,最基本的数据对象:数组,创建矩阵(2维数组)的途径:输入矩阵也就是直接定义(元素取值、赋值)注意列用“,”或“空格”隔开;行用“;”隔开生成矩阵由函数生成的矩阵(矩阵函数)zeros ones eye rand randn 常见1维数组生成函数:“:”和“linspace”p216,数组(矩阵)的下标控制!,对于1维数组(行向量或列向量):A(i)表示它的第i个元素对于2维数组(矩阵):A(i)表示A的按列数的第i个元素A(:)表示A的所有元素逐列构成的列向量A(i,j)表示A的第i行j列元素A(:,j)表示A的任意行j列元素构成的数组A(i,:)表示A的i行任意列元素构成
5、的数组 p220,矩阵的裁减和拼接,裁减:自一个矩阵中取出若干行(列)构成新的矩阵。(前述)拼接:将若干矩阵联接在一起构成新矩阵。拼接实施原则:横拼行相等,符号“,”竖拼列相等,符号“;”p218219,数组运算(留意点运算),数组运算要特别注意“点乘,点除,点乘幂”可以这样理解:.*./.都是“点对点”(或称“元素对元素”)的运算。函数对数组的作用方式也类似于“点对点”式比如:sin sqrt p220221,矩阵运算(留意左除右除),矩阵运算和数组运算大同小异,需要注意左除“”右除“/”的区别:设A可逆:AX=B A-1AX=A-1B X=AB A左除BXA=B XAA-1=BA-1 X=
6、B/A A右除B关系和逻辑运算符=&逻辑与|逻辑或 逻辑非p239,函数(系统函数和用户函数),常用数学函数(p221-222查阅):三角函数;幂指对函数;整值函数;绝对值注意:自然对数log(x)等价于ln(x)数组操作函数(p222):size(A)length(A)max()min()sort()diag(A)diag(v)(比如diag(1 2 3))矩阵函数(p223更多函数可查阅资料):det()inv()eig()poly()rank()用户函数?适合你的函数Toolbox,Matlab的Toolbox几乎无所不能,Matlab强大的数据可视化能力,首先来观察几个绘图实例%空间中
7、扭曲的矩阵A=zeros(32);A(14:16,14:16)=ones(3);y=fft2(A);surf(abs(y);%玲珑剔透球x,y,z=sphere(30);surf(x,y,z);hold on;axis off;shading interp;mesh(2*x,2*y,2*z);colormap(hot);hidden off;axis equal;%以及更多的演示help/demos/MATLAB/Graphics/Map of Complex Functions,Matlab强大的数据可视化能力,MATLAB也能够绘制较复杂的图形,Matlab基本绘图/控制指令,figure
8、(n)clf viewaxis equal axis square axis(x1 x2 y1 y2)hold on/off grid on/off box on/off xlabel(xstr)ylabel(ystr)title(tstr)legend(,)text(x,y,str)text(3,5,sin(omegat+beta)举例:x=-pi:pi/100:pi;y1=sin(x);y2=exp(x);plot(x,y1;y2);grid on;ylabel(sin(x)and exp(x);x=-pi:pi/10:pi;plot(x,cos(x),-ro,x,sin(x),-b*);
9、legend(cos,sin,2);text(2,cos(2),point),Matlab基本绘图/控制指令,plot(x,y,r-)plotyy(x1,y1,x2,y2)subplot(2,2,1)fplot(fname,lims,tol,options)自适应采样绘图函数fplot(sin(1/x),-1,1)fplot(cos(tan(pi*x),0,1,1e-4)ezplot(f,a,b)隐函数绘图函数ezplot(x3+y3-5*x*y+1/5)ezplot(8*cos(t),4*sqrt(2)*sin(t),0,2*pi),Matlab基本绘图/控制指令,bar(bar3)pie(
10、pie3)stairs stem(stem3)area,补充:彗星图t=-pi:pi/5000:pi;y=tan(sin(t)-sin(tan(t);comet(t,y),Matlab基本绘图/控制指令,plot3 meshgrid mesh/meshc/meshz surf/surfc contour/contour3 cylinder sphere hidden off,补充:曲面裁剪p=peaks;p(30:32,1:49)=nan*p(30:32,1:49);surf(p),Matlab基本绘图/控制指令,meshgrid 为三维绘图产生网格坐标矩阵meshgrid Generate
11、X and Y matrices for three-dimensional plots:X,Y=meshgrid(1:3,4:6),MATLAB被称为“演算纸语言”,MATLAB中各种命令可以完成许多单一的任务,对于某些较为复杂的问题,仅靠现有的命令或函数来解决,往往是难以达到目的。为此,要运用MATLAB编程语言编制程序,形成M-文件。M-文件一般包含:数据输入,数据处理和结果输出三部分,其中数据处理是核心。程序编写调试完成后,需要存盘,形成永久性文件,可以随时对它进行调用或修改。文件名以字母开头,但不能用专用变量名,如pi等。MATLAB中每一个命令都是一个M-文件。,M文件编辑环境(主
12、要工具),两种不同的M文件,M指令文件和M函数文件的区别:前者只是一系列命令(指令)的组合,既不输入参数也不返回参数,且过程中产生的变量在外部变量空间也起作用;后者在文件开头有function声明,有函数名,且可被其他函数调用,一般有输入参数和返回参数,过程变量在外部变量空间不起作用(函数执行完毕即消逝)p237238,M文件编辑环境(主要工具),两种不同的M文件,M指令文件和M函数文件的区别:,M指令文件:jiafa.mx=2;y=3;z=x+y;,M函数文件:xjiay.mfunction z=xjiay(x,y)z=x+y;,M-文件中输入、输出命令,直接赋值输入:提示对话输入(inpu
13、t命令)x=2;x=input(请输入参数 x=);A=1,2;3,4;a=input(请输入字串 a=,s);s=any string!;s=input(Please input s=);直接输出:格式控制输出(fprintf命令)x fprintf(x=%.0f,y=%.5fn,pi,pi);disp(a,b);fprintf(x=%5g,y=%10.5gn,N,pi);,补充:鼠标坐标获取函数 ginput/ginput(n)图像读入函数 imread声音读入函数 wavread,M-文件中输入、输出命令,文本文件的写出和读入:A=1,2,3;4,5,6;7,8,9;fid=fopen(
14、B.txt,w);fprintf(fid,%4.2f%4.2f%4.2fn,A);fclose(fid);load B.txt;%也可以使用textread函数导入含有字符串和数值的文本文件info=textread(info.txt,%q)email=char(info(3)%元胞对象字符化post=numeric(char(info(2)%元胞对象数值化,M-文件中选择控制命令,单项选择:格式:if(condition is true)commands;end 作用:若条件成立,则执行命令集 commands.否则,不执行。,M-文件中选择控制命令,求n个实数中最大的数M.A=100*ra
15、nd(3,4)m,n=size(A(:);M=A(1);for i=2:m if MA(i)M=A(i);endendfprintf(M=%.4fn,M);,M-文件中选择控制命令,多项选择:格式:if(condition is true)commands;elseif(condition is true)commands;.else commands;end 作用:若条件成立,则执行命令集 commands.否则,不执行。,M-文件中选择控制命令,建立符号函数sign(x)x=input(x=);if x0 sn=1;elseif x=0 sn=0;else sn=-1;enddisp(an
16、swer is,num2str(sn),M-文件中选择控制命令,多项选择:格式:switch express case condition commands;.otherwise commands;end 作用:若条件成立,则执行对应命令集commands,随后跳出;否则执行otherwise 对应命令集commands。,M-文件中选择控制命令,选择身份信息%name=tony;name=input(请输入姓名,s);switch lower(name)case tom,tony disp(The boy is,name)case linda disp(The girl is,name)ot
17、herwise disp(Unknown!)end,M-文件中循环控制命令,步进循环:格式:for i=n1:(step):n2 commands;end 作用:重复执行命令集commands.条件循环:格式:while(condition is true)commands;end 作用:重复执行命令集commands.中断语句break只跳出当次循环,不跳出整个循环,M-文件中循环控制举例,求和:s=1+2+nn=input(请输入 n=);s=0;for i=1:n s=s+i;fprintf(i=%.0f,s=%.0fn,i,s);end 求和:s=1+2+n3000s=0;k=1;wh
18、ile s3000 s=s+k;fprintf(k=%.0f,s=%.0fn,k,s);k=k+1;end,M-文件中试探执行命令,试探执行:格式:try commands;catch commands;end 作用:试探性执行try后命令集commands,如果执行过程中出错,则将出错信息赋给系统变量lasterr,并转去执行catch后命令集commands。这种试探性执行语句是其他高级语言所没有的。,M-文件中试探执行举例,矩阵乘积:试探矩阵乘法和矩阵点乘A=1 2 3;4 5 6;B=7 8 9;10 11 12;try C=A*B;disp(适用矩阵乘法);catch C=A.*B;
19、disp(lasterr);disp(适用矩阵点乘);enddisp(C);,M-文件编程综合实例1:,三峡水域自动巡航设计,M-文件编程综合实例1:,三峡水域自动巡航设计%将sx.jpg和map.m拷贝到work目录,随后执行map即可,M-文件编程综合实例2:,寻找水仙花数 数153有一个特殊的性质,即153=13+53+33,那 么有没有其他这样的数呢?,把任一数各位数字的立方和求出,再求所得的各位数字的立方和,依次进行下去,总可以得到一个水仙花数.如把76按这样的运算进行下去:,M-文件编程综合实例2:,经典的水仙花数算法(如何改写为通用程序?),%方法一:三层循环clear;tic;for a=1:9 for b=0:9;for c=0:9;if a3+b3+c3=a*100+b*10+c;a*100+b*10+c end end endendtoc;,%方法二:单层循环取位clear;tic;for n=100:1:999 bw=fix(n/100);temp=n-bw*100;sw=fix(temp/10);temp=temp-sw*10;gw=temp;if n=bw3+sw3+gw3 n end endtoc;,Thats all,Thank you,下次内容:方程与方程组求解 课后作业:课本附录看完 实验题目:附录练习,
链接地址:https://www.31ppt.com/p-5438947.html