2024年3月15日发(作者:重庆高考2卷数学试卷)
1. 输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的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 Columns 9 through 16 0.1493 0.2575 0.8407 0.2543 Columns 17 through 20 0.1966 0.2511 0.6160 0.4733 zuidazhi = 0.9593 zuixiaozhi = 0.8909 0.9593 0.8143 0.2435 0.5472 0.1386 0.9293 0.3500 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 2 1 A 0 S Ans=108 1、解方程组Ax=b,分别用求逆解法与直接解法求其解。 1 2 1 0 1 2 0 0 1 0 0 0 , 1 0 b 0 0 0121 0 0 0012 0 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 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(:))) 1 Matlab介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国 mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。 它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功 能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的 众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语 言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、 数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink 两大部分。MATLAB应用非常之广泛! MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中 在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创 建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通 讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相 似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并 且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在 新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以 将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB 爱好者都编写了一些经典的程序,用户直接进行下载就可以用。 优势特点: 1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; 2) 具有完备的图形处理功能,实现计算结果和编程的可视化; 3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; 4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方 便实用的处理工具。 1 2 习题 第三讲 1.输入20个数,求其中最大数和最小数。要求分别用循环结构和调 用MATLAB的max函数、min函数来实现。 用循环结构的程序: >> a=[1 3 5 -1 20 23 -8 39 -3 7 -4 -11 34 -31 12 13 33 -43 -50 45] c=a(1); d=a(1); for n=1:20; if a(n)>c b=a(n);c=a(n); else b=c; end; end; for n=1:20; if a(n) c=a(n);d=a(n); else c=d; end; end; b c 运行结果: a = Columns 1 through 17 1 3 5 -1 20 23 -8 39 -3 7 -4 -11 34 -31 12 13 33 Columns 18 through 20 -43 -50 45 结果 b = 45 c = -50 2 调用MATLAB的max函数、min函数来实现:的程序 >> a=[1 3 5 -1 20 23 -8 39 -3 7 -4 -11 34 -31 12 13 33 -43 -50 45] b=max(a); d=min(a); b d 运行结果: a = Columns 1 through 17 1 3 5 -1 20 23 -8 39 -3 7 -4 -11 34 -31 12 13 33 Columns 18 through 20 -43 -50 45 结果 b = 45 d = -50 2. 求Fibonacci数列 (1)大于4000的最小项。 3 (2)5000之内的项数。 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 运行结果: s= 108 第四章习题 1、解方程组Ax=b,分别用求逆解法与直接解法求其解。 21000 12100 1 A 01210 b 0 00121 , 0 00012 0 0 4 2、编一个m程序,求N阶方阵A的行列式的值。 5 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) 值。 4.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存 储。如N=5,原来x为: x=[ 1 3 5 7 9 ] 而经过颠倒处理后x中数据的次序应该为: x=[ 9 7 5 3 1 ] 第五章习题 6 1.在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。 x=0:pi/100:2*pi; y=sin(x).*cos(5*x); plot(x,y) 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 01234567 2.在[0 2π]范围内绘制以Y轴为对数的二维曲线图。 y=|1000sin(4x)|+1 x=(0:0.01:2*pi); y=abs(1000*sin(4*x))+1; semilogy(x,y); 7 1200 1000 800 600 400 200 0 01234567 3、把自己姓名中的各个拼音字母(小写)所对应的ASCII值转换为 二进制序列,并用二进制脉冲绘图表示出来 a=\'shaopengpeng\'; b=dec2bin(a); stem(str2num(b(:))) 8 3 心得体会 Matlab是一个强大的数学工具,它的应用广泛,涉及到各个领域.它使用起来 十分方便,不用麻烦去定义变量.它的绘图能力很强,甚至可以模拟出三维视图.矩 阵是它应用的核心,许多工程繁琐的运算都需要靠矩阵来化简,这正是它的生命力 所在.但是,他的函数很多,开始学时记的比较痛苦,我已经深深感觉到了.不过看多 了也就熟了,感觉和学五笔差不多.它的语法简单,像我学过C语言的学起来还是 蛮容易的.它的数组定义十分符合自然,是从1开始的,数组元素的调用也很接近数 学的表达.此外,函数的名字也很符合英文规则,反正我用得很开心就是了. 9 通过学习matlab,我又一次锻炼了自己的思维.它学起来得心应手也让我明白 了学习一门语言(c语言)对学习其他语言的帮助指导作用.同时,它也加强了我理 论联系实际的能力.这是一个专业课的基础工具,学好它是必要的 10
更多推荐
数学,矩阵,计算
发布评论