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

0121



0

0

0012

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,分别用求逆解法与直接解法求其解。

21000



12100



1

A

01210

b

0

00121

,

0

00012

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


更多推荐

数学,矩阵,计算