您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > matlab程序设计例题及答案
1.编写程序:计算1/3+2/5+3/7+……+10/21法一:s=0;fori=1:10s=s+i/(2*i+1);endss=4.4096法二:sum((1:10)./(3:2:21))ans=4.40962.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。s=0;fori=1:100ifmod(i,3)==0&&mod(i,7)==0s=s+i;end,endss=2103.画出y=n!的图(1=n=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。x=1:10;fori=1:10tryy(i)=y(i-1)*i;catchy(i)=1;end,endplot(x,y)1234567891000.511.522.533.54x1064.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。g=[];forn=2:2000s=0;forr=1:n-1ifmod(n,r)==0s=s+r;endendifs==ng=[gn];endendgg=6284965.编写一个函数,模拟numel函数的功能,函数中调用size函数。functiony=numelnumel(x)m=size(x);y=m(1)*m(2);numelnumel([123;456])ans=66.编写一个函数,模拟length函数的功能,函数中调用size函数。functiony=lengthlength(x)m=size(x);y=max(m(1),m(2));lengthlength([123;456])ans=37.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。s=rand(5);sum=sum(sum(s))mean2=mean(s,2)mean1=mean(s)sum=13.8469mean2=0.55830.55360.65540.49310.5090mean1=0.63310.50060.64870.71240.27458.编程判断1001,1003,1007,1009,1011是否为素数,若不是,输出其约数。functionsushupd(x)s=fix(sqrt(x));p=1;fori=2:sifmod(x,i)==0p=0;breakendendifp==1disp('该数是素数')elseg=[];fori=1:xifmod(x,i)==0g=[gi];endenddisp('该数不是素数')gendsushupd(1001)该数不是素数g=17111377911431001sushupd(1003)该数不是素数g=117591003sushupd(1007)该数不是素数g=119531007sushupd(1009)该数是素数sushupd(1011)该数不是素数g=1333710119.将[15633541236512123335657;122354343231323454531]从小到大排序,排成一列,禁用sort函数。s=[15633541236512123335657;122354343231323454531];s=[s(1,:)s(2,:)];fori=1:length(s)-1fori=1:length(s)-1ifs(i)s(i+1)a=s(i);s(i)=s(i+1)s(i+1)=a;endend,endss=Columns1through823313543455765132Columns9through1434535615634123121233122354310.两个整数a和b,如果a的因子和等于b,b的因子和也等于a,且a不等于b,则称a,b为一对亲密数。请寻找并输出2000以内的所有亲密数对。g=[];fora=1:2000s1=0;s2=0;forr=1:a-1ifmod(a,r)==0s1=s1+r;endendifa==s1continueendiffind(g==a)~=0continueendforr=1:s1-1ifmod(s1,r)==0s2=s2+r;endendifs2==as=[s1s2];g=[g;s];endendgg=2842201210118411.用二分法求函数y=exp(x)-10的0点,要求误差小于0.001x1=0;x2=10;whilex2-x10.001if(exp(x1)-10)*(exp((x1+x2)/2)-10)0x1=(x1+x2)/2;elsex2=(x1+x2)/2;endendx=[x1x2]x=2.30222.302912.现有一组数如下:x12345678y12273448677989109但y的数据不太准确,已知其函数关系可能是y=12*x,y=12*x+1,y=12*x-1,y=12.5*x,请用matlab判断这四个函数,哪个与数据的契合度最高?(提示:根据函数在各个点的值与原数据差异度来判断契合度)x=1:8;y(1,:)=12*x;y(2,:)=12*x+1;y(3,:)=12*x-1;y(4,:)=12.5*x;y(5,:)=[12273448677989109];t=zeros(1,4);fori=1:4forj=1:8t(i)=t(i)+abs(y(i,j)-y(5,j));endend[x,i]=min(t)i=4即为y=12.5*x13.已知rand函数能生成0到1之间的随机数。而古人用抛石头的方法,根据落在在一个圆内的石子数与在园外正方形内的石子数之比来求π,请用matlab软件模拟此过程,并求出π的值,然后,分析所求π的值的误差产生于什么地方。s=rand(2,1000);pai=0;fori=1:1000ifs(1,i).^2+s(2,i).^21pai=pai+4/1000;endendpaipai=3.112014.编写一个函数文件,函数的输入项为三维坐标的两个点,函数没有输出项,函数运行结果为画出这两个点所能确定的最小球functionqiu(x1,x2)o=(x1+x2)/2;r=sqrt(sum((x1-x2).^2))/2;[X,Y,Z]=sphere(50);X=r*(X+o(1));Y=r*(Y+o(2));Z=r*(Z+o(3));mesh(X,Y,Z)axisequalqiu([123],[456])46878910111011121314
本文标题:matlab程序设计例题及答案
链接地址:https://www.777doc.com/doc-4809911 .html