作业一4、写出完成下列操作的命令。
(1)将矩阵A第2~5行中第1,3,5列元素赋给矩阵B。
>> M=[0:1:48];>> A=reshape(M,7,7)A =0 7 14 21 28 35 421 8 15 22 29 36 432 9 16 23 30 37 443 10 17 24 31 38 454 11 18 25 32 39 465 12 19 26 33 40 476 13 20 27 34 41 48>> B=A(2:5,1:2:5)B =1 15 292 16 303 17 314 18 32(2)删除矩阵A的第七行元素。
>> A(7,:)=[]A =0 7 14 21 28 35 421 8 15 22 29 36 432 9 16 23 30 37 443 10 17 24 31 38 454 11 18 25 32 39 465 12 19 26 33 40 47 (3)将矩阵A的每个元素值加30。
>> A=A+30A =30 37 44 51 58 65 7231 38 45 52 59 66 7332 39 46 53 60 67 7433 40 47 54 61 68 7534 41 48 55 62 69 7635 42 49 56 63 70 77(4求矩阵A的大小和维素。
sizeA = size(A)dA = ndims(A)sizeA =6 7dA =2(5)将向量t的0元素用机器零来代替。
>> t=[1 2 3 4 0 5];t =1 2 3 4 0 5>> find(t==0)ans =5>> t(5)=epst =1.00002.00003.00004.0000 0.00005.0000(6)将含有12个元素的向量x转换成3*4矩阵。
>> x=[0:11]x =0 1 2 3 4 5 6 7 8 9 10 11 >> y=reshape(x,3,4)0 3 6 91 4 7 102 5 8 11(7)求一个字符串的ASCII。
>> abs('a')ans =97(8)求一个ASCII所对应的字符。
>> char(99)ans =c5、已知A[97 67 34 10-78 75 65 532 5 -23 -590 = -12 54 7]写出完成下列操作的命令。
(1)取出A的前3列构成矩阵B,前两列构成矩阵C,右下角3*2子矩阵构成矩阵D,B与C的乘积构成矩阵E。
>> B=A(1:3,:)B =97 67 34 10-78 75 65 532 5 -23 -59>> C=A(:,1:2)C =97 67-78 7532 50 -12>> D=A(2:4,3:4)D =65 5-23 -5954 7>> E=B*CE =5271 11574-11336 6641978 3112(2)输出【50,100】范围的全部元素。
>> find(A>=50 & A<=100)ans =1561012>> output = [A(1) A(5) A(6) A(10) A(12)]output =97 67 75 65 54二、实验题>> x = -74*pi/180;y=-27*pi/180;sin((x*x+y*y))/(sqrt(tan((abs(x+y))))+pi) ans =0.1987 - 0.1434i>> a = -3.0:0.1:3.0,exp(-0.3.*a).*sin(a+0.3)>> x=[2 4;-0.45 5];0.5*log(x+sqrt(1+x.*x))ans =0.7218 1.0474-0.2180 1.1562>> A = [3 54 2;34 -45 7;87 90 15],B = [1 -2 67;2 8 74;9 3 0]>> A*BA.*Bans =129 432 41977 -407 -1052402 591 12489ans =3 -108 13468 -360 518783 270 0>> A^3A.^3>> A/BB\A>> [A,B][A([1,3],:);B^2]>> a=1+2i,b=3+4i,c=exp(pi/6*i)c+a*b/(a+b)作业二1、从键盘输入一个4位整数,按如下规则加密后输出。
加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;然后将第1位数和第3位数交换,第2位数和第4位数交换。
M 文件名为:Untitled1.m程序:x=input('输入一个四位整数:');y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,10)]z=mod((y+7),10)x=z(3)*1000+z(4)*100+z(1)*10+z(2)结果:输入一个四位整数:1234y =1 2 3 4z =8 9 0 1x =1892、硅谷公司员工的工资计算方法如下。
(1)工作时数超过120h者,超过部分加发15%。
(2)工作时数低于60h者,扣发700元。
(3)其余按每小时84元计发。
试编程按输入的工号和该号员工的工时数,计算应发工资。
程序:gonghao=input('输入工号');hour=input('输入工时');every=84;if hour>120gongzi=every*120+1.15* every *(hour-120);elseif hour<60gongzi=every*hour-700;elsegongzi=devery*hour;endformat bank;display([gonghao,gongzi])(1)结果:输入工号12输入工时130ans =12.00 11046.00(2)结果:输入工号12输入工时56ans =12.00 4004.00(3)结果:输入工号12输入工时80ans =12.00 6720.003、 根据n 2222211116321++++= π,求π的近似值。
当n 分别取100、1000、10000时,结果是多少?要求:分别用循环结构和向量运算(使用sun 函数)来实现。
(1)程序:(循环结构):n=input('input n:');s=0;for i=1:ns=s+1/i^2;pai= sqrt(s*6);enddisplay(pai)input n:100pai =3.1321(2)程序:(向量结构):n=input('input n:');i=1:n;pai= sqrt(sum(1./i.^2)*6);display(pai);结果:input n:100pai =3.13214、 根据12151311-++++=n y ,求: (1) y ﹤3时的最大n 值;(2) 与(1)的n 值对应的y 值。
y=0;k=0;while y<3k=k+1;y=y+1/(2*k-1);enddisplay([k-1,y-1/(2*k-1)])结果:ans =56.00 2.995、 考虑一下迭代公式:x x nn b a +=+1 其中,a 、b 为正的常数。
(1) 编写程序求迭代的结果,迭代的终止条件为|x x n n -+1|≤105-,迭代初值0.10=x ,迭代次数不超过500次。
程序:x0=1.0;a=input('a=');b=input('b=');x= a/(b+x0); m=1;while abs(x-x0)>1e-5 & m<500x0=x;x=a/(b+x0);m=m+1;enddisplay([m,x]);display([(-b+sqrt(b^2+4*a))/2,(-b-sqrt(b^2+4*a))/2]);结果:a=5b=5ans =7.0000 0.8541 ans =0.8541 -5.8541(2)如果迭代过程收敛于r,那么r的准确值是24 2ab b++-,当(a,b)的值取(1,1)、(8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。
a=1b=1ans =13.0000 0.6180ans =0.6180 -1.6180a=8b=3ans =13.0000 1.7016ans =1.7016 -4.7016a=10b=0.1ans =424.0000 3.1127 ans =3.1127 -3.21276、已知)20()30()40(f f f y +=(1) 当)5(10)(2++=n l n n f n 时,y 的值是多少? 程序:该题使用了function 的调用。
函数文件f.m function b=f(n); b=n+10*log(n^2+5); 结果:y=f(40)/(f(30)+f(20)) y = 0.6390(2) 当)1(433221)(+⨯++⨯+⨯+⨯=n n n f 时,y 的值是多少? 程序:函数文件fun.m function f=fun(n) f=sum([1:n].*([1:n]+1));结果:y=fun(40)/(fun(30)+fun(20)) y =1.7662作业三1、绘制下列曲线。
(1)!33x x y -= (2)exy 2221-=π(3)64222=+yx(4)⎩⎨⎧==tt y tt x cos sin解:(1)程序:x=-5:0.001:5;y=x-x.^3/(3*2*1);plot(x,y);(2)程序:x=-10:0.01:10;y= exp(-x.*x/2)/(2*pi); >> plot(x,y); (3) 程序:f='x.^2+2*y.^2-64';ezplot(f,[-10,10,-10,10]); ezplot('x.^2+2*y.^2-64',[-10,10,-10,10]); (4)程序:t=0:0.1:8*pi; >> x=t.*sin(t); >> y=t.*cos(t); >> plot(x,y);已知⎩⎨⎧==-=(t)sin(3t)sin y (3t)cos(t)sin 5.02x x y 和,π≤≤t 0,完成下列操作:(1) 在同一坐标系下用不同的颜色和线型绘制两条曲线,给曲线添加文字说明;解:程序:x1=linspace(0,1,100);>> y1=2*x1-0.5;>> t=linspace(0,pi,100);>> x=sin(3*t).*cos(t);>> y=sin(3*t).*sin(t);>> plot(x1,y1,'k:',x,y,'bp');>> text(0.5,1,'y=2x-0.5');>> text(-0.5,0.5,'x=sin(3t)cos(t)');>> text(-0.5,0.4,'x=sin(3t)sin(t)');(2)以子图形式,分别用条形图和散点图绘制两条曲线,并为各子图添加函数标题。