1、MATLAB习题1.利用diag函数构建对角矩阵。diag(1,2,3,5,0)+diag(2,2,2,1)+diag(3,3,2)+diag(1,3)2.求解非线性方程组。s=solve(x3+y=31,x+y=7,x,y)3.求解线性方程组。a=1,1,1;2,1,0;0,1,1;b=4;4;3;linsolve(a,b)corr2cov函数把相关系数矩阵转换为协方差矩阵a=corr2cov(b,c) a协方差矩阵,b标准差向量,c相关系数矩阵4.计算1+2+3+4+5。t=1;sum=0;while t0) sum mean=sum/cntend13.求100,200间第一个能被21整除
2、的整数。for n=100:200 if rem(n,21)=0 continue end breakendn14.猜数游戏。首先由计算机产生1,100之间的随机整数,然后由用户猜测所产生的随机数,根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小于则产生“Low”,等于则显示“You won”,同时退出游戏。用户最多可以猜7次。a=round(unifrnd(1,100);i=0;test=1;for i=1:7 b=input(your number:); if ba disp(high); else disp(you won); test=0; break;
3、endendif test=1 disp(you lost);end5.素数是大于1,且除了1和它本身以外,不能被其他任何整数所整除的整数。用筛选法求素数的基本思想是:要找出2m中划去2的倍数(不包括2),然后划去3的倍数(不包括3)直到再划去不超过的数的倍数,剩下的数都是素数。求0100的素数,及其和.clear;sum=5;ss=0;prime=2,3;for i=4:100 for j=2:fix(sqrt(i) if rem(i,j)=0 ss=0; break; else ss=1; end end if ss=1 prime=prime,i; sum=sum+i; endendpr
4、imesum16. 编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,投两枚骰子之后,计算点数之和。如果第一次投的点数和为7或11,则游戏者获胜;如果第一次投的点数和为2、3或12,则游戏者输;如果第一次投的点数和为4、5、6、8、9或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到赚到该点数时算是游戏者获胜。如果投掷7次仍未赚到该点数,则游戏者输。disp(开始请输入yes,不开始请输入NO);kaishi=input(开始吗?,s);if kaishi=yesa1=1+(6-1)*round(rand(1);a2=1+(
5、6-1)*round(rand(1);a3=a1+a2;if a3=3|a3=11disp(打赌者赢了);disp(因为第一个骰子值=,num2str(a1),;第二个的=,num2str(a2),;两个之和=,num2str(a3);elseif a3=2|a3=7|a3=12disp(打赌者输了);disp(因为第一个骰子值=,num2str(a1),;第二个的=,num2str(a2),;两个之和=,num2str(a3); elseif a3=4|a3=5|a3=6|a3=8|a3=9|a3=10k=a3;k1=1;while k0k1=k1+1; disp(第,num2str(k1-
6、1),次丢的结果:,第一个骰子值=,num2str(a1),;第二个的=,num2str(a2),;两个之和=,num2str(a3);disp(未分出输赢,继续丢,【已丢了,num2str(k1-1),次】);a1=1+(6-1)*round(rand(1);a2=1+(6-1)*round(rand(1);a3=a1+a2;if a3=kdisp(哈哈,打赌者赢了);disp(因为第,num2str(k1),次丢的结果是:,第一个骰子值=,num2str(a1),;第二个的=,num2str(a2),;两个之和=,num2str(a3); break;elseif a3=7disp(唉,打赌者输了);disp(因为第,num2str(k1),次丢的结果是:,第一个骰子值=,num2str(a1),;第二个的=,num2str(a2),;两个之和=,num2str(a3);break;endendendend