欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第04章_MATLAB程序设计_例题源程序.doc

    • 资源ID:33461136       资源大小:46.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第04章_MATLAB程序设计_例题源程序.doc

    精品文档,仅供学习与交流,如有侵权请联系网站删除第4章 MATLAB程序设计例4.1 建立一个命令文件将变量a,b的值互换,然后运行该命令文件。 程序1:首先建立命令文件并以文件名exch.m存盘:clear;a=1:10;b=11,12,13,14;15,16,17,18;c=a;a=b;b=c;ab然后在MATLAB的命令窗口中输入exch,将会执行该命令文件。 程序2: 首先建立函数文件fexch.m:function a,b=exch(a,b)c=a;a=b;b=c;然后在MATLAB的命令窗口调用该函数文件:clear;x=1:10;y=11,12,13,14;15,16,17,18;x,y=fexch(x,y)例4.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);例4.3 计算分段函数:x=input('请输入x的值:');if x=10 y=cos(x+1)+sqrt(x*x+1);else y=x*sqrt(x+sqrt(x);endy也可以用单分支if语句来实现:x=input('请输入x的值:');y=cos(x+1)+sqrt(x*x+1);if x=10 y=x*sqrt(x+sqrt(x);endy或用以下程序:x=input('请输入x的值:');if x=10 y=cos(x+1)+sqrt(x*x+1);endif x=10 y=x*sqrt(x+sqrt(x);endy例4.4 输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。c=input('请输入一个字符','s');if c>='A' & c<='Z' disp(setstr(abs(c)+abs('a')-abs('A');elseif c>='a'& c<='z' disp(setstr(abs(c)- abs('a')+abs('A');elseif c>='0'& c<='9' disp(abs(c)-abs('0');else disp(c);end例4.5 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示): price<200 没有折扣 200price<500 3%折扣 500price<1000 5%折扣 1000price<2500 8%折扣 2500price<5000 10%折扣5000price 14%折扣输入所售商品的价格,求其实际销售价格。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;endprice=price*(1-rate) %输出商品实际销售价格例4.6 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。A=1,2,3;4,5,6;B=7,8,9;10,11,12;try C=A*B;catch C=A.*B;endClasterr %显示出错原因例4.7 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。for m=100:999m1=fix(m/100); %求m的百位数字m2=rem(fix(m/10),10); %求m的十位数字m3=rem(m,10); %求m的个位数字if m=m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend例4.8 已知,当n=100时,求y的值。y=0; n=100;for i=1:ny=y+1/i/i;endy在实际MATLAB编程中,为提高程序的执行速度,常用向量运算来代替循环操作,所以上述程序通常由下面的程序来代替:n=100;i=1:n;f=1./i.2;y=sum(f)例4.9 设,求s=。a=0; b=3*pi;n=1000; h=(b-a)/n;x=a; s=0;f0=exp(-0.5*x)*sin(x+pi/6);for i=1:n x=x+h; f1=exp(-0.5*x)*sin(x+pi/6); s=s+(f0+f1)*h/2; f0=f1;ends上述程序来源于传统的编程思想。也可以利用向量运算,从而使得程序更加简洁,更赋有MATLAB的特点。程序如下:a=0; b=3*pi;n=1000; h=(b-a)/n;x=a:h:b;f=exp(-0.5*x).*sin(x+pi/6);for i=1:n s(i)= (f(i)+f(i+1)*h/2;ends=sum(s)例4.10 写出下列程序的执行结果。s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;for k=a s=s+k;enddisp(s');例4.11 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。sum=0;n=0;x=input('Enter a number (end in 0):');while (x=0) sum=sum+x; n=n+1; x=input('Enter a number (end in 0):');endif (n>0) sum mean=sum/nend例4.12 根据矩阵指数的幂级数展开式求矩阵指数。X=input('Enter X:');E=zeros(size(X);F=eye(size(X);n=1;while norm(F,1)>0 E=E+F; F=F*X/n; n=n+1;endEexpm(X) %调用MATLAB矩阵指数函数求矩阵指数例4.13 求100,200之间第一个能被21整除的整数。for n=100:200if rem(n,21)=0 continueendbreakendn例4.14 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求1,500之间的全部完数。例4.15 用筛选法求某自然数范围内的全部素数。 m=input('m='); p=1:m; p(1)=0;for i=2:sqrt(m) for j=2*i:i:m p(j)=0; endendn=find(p=0);p(n)关于在p中划去i的倍数(不包括i),可利用矩阵运算一步完成,从而得到更为简洁的程序:m=input('m=');p=2:m;for i=2:sqrt(m) n=find(rem(p,i)=0&p=i); p(n)=;endp例4.16 编写函数文件求半径为r的圆的面积和周长。 函数文件如下:function s,p=fcircle(r)%CIRCLE calculate the area and perimeter of a circle of radii r%r 圆半径%s 圆面积%p 圆周长%2006年2月30日编s=pi*r*r;p=2*pi*r; 将以上函数文件以文件名fcircle.m存盘,然后在MATLAB命令窗口调用该函数:s,p=fcircle(10)例4.17 利用函数文件,实现直角坐标(x,y)与极坐标(,)之间的转换。 函数文件tran.m:function rho,theta=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x); 调用tran.m的命令文件main1.m:x=input('Please input x=:');y=input('Please input y=:');rho,the=tran(x,y);rhothe例4.18 利用函数的递归调用,求n!。function f=factor(n)if n<=1 f=1;else f=factor(n-1)*n; %递归调用求(n-1)!end 在命令文件main2.m中调用函数文件factor.m求s=1!+2!+3!+4!+5!。s=0;for i=1:5 s=s+factor(i);ends例4.19 任意排列问题。MATLAB提供的函数randperm(n),可以产生一个从整数1到整数n的任意排列。编写一个函数来实现randperm(n)函数的功能,即给出一个由任意数组成的行向量,然后产生这个行向量元素的任意排列。function Y=rndprm1(X)%RNDPRM1 用for循环产生一个行向量的任意排列%RNDPRM1(X)产生行向量X的任意排列m,n=size(X);if m>1 error('RNDPRM1 accepts as inputs only vectors');endY=; %从一个空矩阵开始l=n; %X的元素个数for i=1:nk=1+fix(l*rand); %随机选择Y的下一个元素的位置x=X(k); %被选择的元素 Y=Y,x; %将X添加到Y中 X(k)=; %从X中删除x元素 l=l-1; %更新X的元素个数end第二个程序用函数的递归调用:function Y=rndprm2(X)%RNDPRM2 用递归调用产生一个行向量的任意排列%RNDPRM2(X)产生一个X的任意排列m,n=size(X);l=n;if m>1 error('RNDPRM2 accepts as inputs only vectors')endif n<=1 Y=X;elsek=1+fix(l*rand); %随机选择Y的下一个元素的位置x=X(k); %被选择的元素X(k)=; %从X中删除x元素 Z=rndprm2(X); %将剩下的元素随机排列 Y=Z,x; %构造输出向量 l=l-1;end例4.20 nargin用法示例。 函数文件examp.m:function fout=charray(a,b,c)if nargin=1 fout=a;elseif nargin=2 fout=a+b;elseif nargin=3 fout=(a*b*c)/2;end 命令文件mydemo.m:x=1:3;y=1;2;3;examp(x)examp(x,y')examp(x,y,3)例4.21 全局变量应用示例。 先建立函数文件wadd.m,该函数将输入的参数加权相加。function f=wadd(x,y)global ALPHA BETAf=ALPHA*x+BETA*y; 在命令窗口中输入:global ALPHA BETAALPHA=1;BETA=2;s=wadd(1,2)【精品文档】第 10 页

    注意事项

    本文(第04章_MATLAB程序设计_例题源程序.doc)为本站会员(豆****)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开