matlab习题(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MA TLAB的max函数、min函数来实现。
a=rand(1,20);
max1=max(a) %用max函数求最大值
min1=min(a) %用max函数求最大值
%以下用循环方法求解:
max2=a(1);
min2=a(1);
for i=2:20
if a(i)>max2
max2=a(i);
end
if a(i) min2=a(i); end end max2 min2 调用MATLAB的max函数、min函数来实现: >> a=rand(1,20) zuidazhi=max(a) zuixiaozhi=min(a) a = Columns 1 through 8 0.7513 0.2551 0.5060 0.6991 0.8909 0.9593 0.5472 0.1386 Columns 9 through 16 0.1493 0.2575 0.8407 0.2543 0.8143 0.2435 0.9293 0.3500 Columns 17 through 20 0.1966 0.2511 0.6160 0.4733 zuidazhi = 0.9593 zuixiaozhi = 0.1386 2. 求Fibonacci数列 (1)大于4000的最小项。 (2)5000之内的项数。 (1) function t=fibonacc1 f=[1,1]; n=2; while 1 f=[f,f(n-1)+f(n)]; n=length(f); if f(n)>4000 break; end end t=f(n); return (2) function n=fibonacc2 f=[1,1]; n=2; while 1 f=[f,f(n-1)+f(n)]; n=length(f); if f(n)>4000 break; end end n=n-1; return 3. 写出下列程序的输出结果: s=0; a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a for j=1:4 if rem(k(j),2)~=0 s=s+k(j); end end end S Ans=108 1、解方程组Ax =b ,分别用求逆解法与直接解法求其解。 A=[2 -1 0 0 0;-1 2 -1 0 0;0 -1 2 -1 0;0 0 -1 2 -1;0 0 0 -1 2]; b=[1;0;0;0;0]; x=inv(A)*b 2、编一个m 程序,求N 阶方阵A 的行列式的值 function s=mydet(A) n=size(A); if (n(1)~=n(2)) return ; end n=n(1); if (n==1) s=A; return ; end s=0; for i=1:n s=s-(-1)^i*A(1,i)*mydet(A(2:n,[1:i-1 i+1:n])); end 3.今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i 各点上的P(xi)(i=0,1,2,…,5)值。 p1=[1.0 0.0 0.0 -2.0 1.0]; p2=[0.0 0.0 1.0 4.0 -0.5]; p1x=poly2sym(p1); p2x=poly2sym(p2); p=p1x+p2x ⎥⎥⎥⎥ ⎥⎥⎦ ⎤ ⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡--------=00001,21 000 1210001210 0012100012b A 4.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x 为: x=[ 1 3 5 7 9 ] 而经过颠倒处理后x中数据的次序应该为: x=[ 9 7 5 3 1 ] x=[ 1 3 5 7 9 ] xx=rot90(rot90(x)) 1.在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。 x = 0:pi/10:2*pi; y = sin(x).*cos(5*x) plot(x,y) 2.在[0 2π]范围内绘制以Y轴为对数的二维曲线图。 y=|1000sin(4x)|+1 x=linspace(0,2*pi,100); y=abs(1000*sin(4*x))+1; semilogy(x,y) 3. 把自己姓名中的各个拼音字母(小写)所对应的ASCII值转换为二进制序列,并用二进制脉冲绘图表示出来 mingzi='shaopengpeng'; % b=dec2bin(int8(s)) b=double(mingzi) c=dec2bin(b) c=c' stem(str2num(c(:)))