清华数学实验第二节 MATLAB程序设计方法 II.ppt

清华数学实验第二节 MATLAB程序设计方法 II.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
*/16 MATLAB程序设计方法 II 摩托车问题与数学模型 函数文件的编写格式 数据文件的输入方法 牟合方盖的几何图形 ? ? ? ? 红、绿两队从相距100公里的地点同时出发相向行军 红队速度为10(公里/小时)绿队速度为8(公里/小时) 开始时,通讯员骑摩托从红队出发为行进中的两队 传递消息。摩托车的速度为60(公里/小时)往返于两队 之间. 每遇一队,立即折回驶向另一队.当两队距离小 于0.2公里时,摩托车停止。计算通讯员驾驶摩托车跑 了多少趟(从一队驶向另一队为一趟)。 例2.15 摩托车问题 将红队、绿队和摩托车假设为A、B、C三个点. A点初始位置A=0, 速度va=10 (运动向右); B点初始位置B=100, 速度vb=8(运动向左); C点初始位置C=0, 速度vc=60 (f=±1表示运动方向) 当C向右运动时, C、B相遇时间: tk= (B – A)/(8+60) 当C向左运动时,A、C相遇时间: tk= (B – A)/(60+10) 利用相遇时间tk、及时计算A, B的最新位置 当 (B– A)0.2 时程序结束。 相遇问题的数学模型 while (B-A)0.2 if f= =1 tk=(B-A)/(vb+vc); else tk=(B-A)/(vc+va); end A=A+va*tk;B=B-vb*tk; plot(A,0,R.,B,0,g.),pause(1) f=-f;k=k+1; end k who Your variables are: A f tk vb B k va vc A=0; B=100; va=10;vb=8;vc=60; f=1;k=0; plot(A,0,ro,B,0,go),hold on function 返回变量列表=函数名(输入变量列表) %注解说明 输入变量检测,输出变量检测 函数体 ————函数文件的编写———— function Y=young(n) if nargin==0,n=3;end Y=eye(n);Y(:,1)=ones(n,1); for k=3:n Y(k,2:k-1)=Y(k-1,1:k-2)+Y(k-1,2:k-1); end 例2.18 杨辉三角形 函数内所有变量是局部变量,既不影响其他M文件 中同名变量,也不被其他M文件中同名变量所影响 函数文件中的输出变量要等于某个确定的表达式 函数文件的第一行必须按特定格式书写 ————函数文件的编写———— 输入/输出 变量检测命令:nargin 、 nargout 当函数文件被用户调用时(程序执行时) nargin返回函数被调用时输入变量的个数。 nargout返回当函数被调用时输出变量的个数。 例2.19 设地球半径6400km,以150经差绘三维地球。 function earthface() R=6400; [theta,fai]=meshgrid(-90:15:90,-180:15:180); theta=theta*pi/180;fai=fai*pi/180; X=R*cos(theta).*cos(fai); Y=R*cos(theta).*sin(fai); Z=R*sin(theta); colormap([0 0 1]) mesh(X,Y,Z),axis off 特例之一:无输入无输出变量的函数文件 ————函数文件的编写———— 1 2 n A B C 例2.24 Hanoi问题(递归算法) 有A、B、C三个塔柱。柱A上n个有孔圆盘,由上而下由小到大叠放。要将柱A上圆盘移到柱C上,并仍按同样顺序叠放。移动圆盘过程中,不允许大圆盘压小圆盘,可将圆盘移至A,B,C中任何一柱上。 问题分析:n张盘片,A、B、C三根柱子 将A做为开始塔柱,C为目标塔柱,B为中间塔柱。要列出整个转移的操作过程,应用递归技术。 ① 将A上的n-1个盘转移到B上 ② 将A上第n号盘转移到C上 ③ 将B上的n-1个盘转移到C上。 第一步是n-1个盘问题(A开始, C中间, B目标); 第二步是1个盘问题; 第三步是n-1个盘问题(B开始, A中间, C目标)。 将三步操作按次序编写函数文件,第一步操作和第三步操作需要调用函数本身,即自己调用自己。 if nargin==1, A= A;B= B;C= C;end if n==1 disp(strcat(No,int2str(n),:,A, -

文档评论(0)

phljianjian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档