集美大学MATLAB程序设计与应用期末总复习文档格式.docx
- 文档编号:21595326
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:22
- 大小:93.56KB
集美大学MATLAB程序设计与应用期末总复习文档格式.docx
《集美大学MATLAB程序设计与应用期末总复习文档格式.docx》由会员分享,可在线阅读,更多相关《集美大学MATLAB程序设计与应用期末总复习文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
P121
t=(0:
pi/100:
pi)'
;
y1=sin(t)*[1,-1];
y2=sin(t).*sin(9*t);
t3=pi*(0:
9)/9;
y3=sin(t3).*sin(9*t3);
subplot(1,2,1)
plot(t,y1,'
r:
'
t,y2,'
b'
t3,y3,'
bo'
subplot(1,2,2)
plot(t,y2,'
axis([0,pi,-1,1])
(3)某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<
200没有折扣
200≤price<
5003%折扣
500≤price<
10005%折扣
1000≤price<
25008%折扣
2500≤price<
500010%折扣
5000≤price14%折扣
输入所售商品的价格,求其实际销售价格。
P172
price=input('
请输入商品价格'
);
switchfix(price/100)
case{0,1}%价格小于200
rate=0;
case{2,3,4}%价格大于等于200但小于500
rate=3/100;
casenum2cell(5:
9)%价格大于等于500但小于1000
rate=5/100;
casenum2cell(10:
24)%价格大于等于1000但小于2500
rate=8/100;
casenum2cell(25:
49)%价格大于等于2500但小于5000
rate=10/100;
otherwise%价格大于等于5000
rate=14/100;
end
price=price*(1-rate)%输出商品实际销售价格
(4)用符号变量法解如下方程p
eq1=sym(‘x+2*y+z=1’);
eq2=sym(‘2*x+y-2*z=3’);
eq3=sym(‘3*x-4*y+2*z=9’);
[x,y,z]=solve(a,b,c)
(5)将matlab绘图窗口分割为二个区域,在左区域绘出y1曲线,在右区域绘出y2曲线,y1为红色,y2为蓝色,步距0.01.p121
x1=0:
0.01:
5;
y1=x*exp(-2*x);
subplot(1,2,1);
plot(x1,y1,’r’);
x2=-2:
2;
y2=5*cos(3*pi*x2);
subplot(1,2,2);
plot(x2,y2,’b’);
(6)某班有50名学生,进行英语考试,考试成绩为:
优秀8人,良好14人,中等20人,及格5人,不及格3人.试绘该班英语考试成绩分布的三维饼图,将优秀块及不及格块分离.p143
x=[8,14,20,5,3];
explode=[1,0,0,0,1];
pie3(x,explode)
四、阅读程序
(1)写出下列指令运行结果。
P51
A=[1,2;
3,4];
B=[-1,-2;
2,1];
S=3;
A.*B
A*B
S.*A
S*B
解:
ans=
-1-4
64
30
5-2
36
912
-3-6
63
(2)写出下列指令运行结果。
A=zeros(2,4);
A(:
)=1:
8;
s=[235];
A(s)
Sa=[102030]’
A(s)=Sa
235
Sa=
10
20
30
A=
120307
10468
(3)下面的函数主要完成什么功能?
functionf=factor(n)
ifn<
=1
f=1;
else
f=factor(n-1)*n;
功能是利用函数的递归调用,求n!
(4)下面的程序完成功能是什么?
t=0:
pi/50:
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,'
-r'
t,y0,'
:
t,-y0,'
)
xlabel(‘\bf\itt’);
ylabel(‘\bf\ity’);
gridon;
在同一个图中绘制两个函数,这两个函数分别是:
y=e(-t/3)
y0=e(-t/3)*sin(3t)
其中y是用红色的细实线,而y0是用兰色的虚线绘制,t的区间是(0:
4),
t的步长为/50,t轴和y轴分别用斜粗题指示,图中有网格表示。
(5)写出下列指令运行结果。
ch=‘ABc123d4e56Fg9’;
subch=ch(1:
5)
revch=ch(end:
-1:
1)
k=find(ch>
=‘a’&
ch<
=‘z’);
ch(k)=ch(k)-(‘a’-‘A’);
char(ch)
结果为ABC123D4E56FG9
(6)s1=0;
s2=0;
n1=0;
n2=0
x=[1,-4,-8,3,10,-9,7,-3,10,8,-5,-2,2,0];
m=length(x);
fori=1:
m
ifx(i)<
s1=s1+x(i);
n1=n1+1;
s2=s2+x(i);
n2=n2+1;
s1,n1,s2,n2,m
s1=-31;
n1=6;
s2=41;
n2=8;
m=14.
1与其他计算机语言相比较,MATLAB语言突出的特点是什么?
MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。
1.2MATLAB系统由那些部分组成?
MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。
二、编程题(32分)
4、编写程序实现f(n)=f(n-1)+f(n-2)(f
(1)=1和f
(2)=2)函数。
(6分)
functionf=fab(n)
if(n==1)
f=1;
elseif(n==2)
f=2;
else
f=fab(n-1)+fab(n-2);
1,计算
与
的数组乘积。
>
a=[693;
275];
b=[241;
468];
a.*b
12363
84240
2,对于
,如果
,
,求解X。
A=[492;
764;
357];
B=[372628]’;
X=A\B
X=
-0.5118
4.0427
1.3318
3,已知:
,分别计算a的数组平方和矩阵平方,并观察其结果。
a=[123;
456;
789];
a.^2
149
162536
496481
a^2
303642
668196
102126150
4,角度
,求x的正弦、余弦、正切和余切。
x=[304560];
x1=x/180*pi;
sin(x1)
0.50000.70710.8660
cos(x1)
0.86600.70710.5000
tan(x1)
0.57741.00001.7321
cot(x1)
1.73211.00000.5774
5,将矩阵
、
和
组合成两个新矩阵:
(1)组合成一个43的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即
(2)按照a、b、c的列顺序组合成一个行矢量,即
>
a=[42;
57];
>
b=[71;
83];
c=[59;
62];
%
(1)
d=[a(:
)b(:
)c(:
)]
d=
475
586
219
732
%
(2)
e=[a(:
b(:
c(:
)]'
e=
452778135692
或利用
(1)中产生的d
e=reshape(d,1,12)
ans=
6,将(x-6)(x-3)(x-8)展开为系数多项式的形式。
a=[638];
pa=poly(a);
ppa=poly2sym(pa)
ppa=
x^3-17*x^2+90*x-144
7,求解多项式x3-7x2+2x+40的根。
r=[1-7240];
p=roots(r);
-0.2151
0.4459
0.7949
0.2707
8,求解在x=8时多项式(x-1)(x-2)(x-3)(x-4)的值。
p=poly([1234]);
polyvalm(p,8)
840
9,计算多项式
的微分和积分。
p=[4–12–145];
pder=polyder(p);
pders=poly2sym(pder)
pint=polyint(p);
pints=poly2sym(pint)
pders=
12*x^2-24*x-14
pints=
x^4-4*x^3-7*x^2+5*x
10,解方程组
。
a=[290;
3411;
226];
b=[1366]'
x=a\b
x=
7.4000
-0.2000
-1.4000
11,求欠定方程组
的最小范数解。
a=[2474;
9356];
b=[85]'
x=pinv(a)*b
-0.2151
0.4459
0.7949
0.2707
12,矩阵
,计算a的行列式和逆矩阵。
a=[42-6;
754;
349];
>
ad=det(a)
ai=inv(a)
ad=
-64
ai=
-0.45310.6562-0.5937
0.7969-0.84370.9062
-0.20310.1562-0.0937
13y=sin(x),x从0到2,x=0.02,求y的最大值、最小值、均值和标准差。
x=0:
0.02*pi:
2*pi;
y=sin(x);
ymax=max(y)
ymin=min(y)
ymean=mean(y)
ystd=std(y)
ymax=
1
ymin=
-1
ymean=
2.2995e-017
ystd=
0.7071
14,参照课件中例题的方法,计算表达式
的梯度并绘图。
v=-2:
0.2:
[x,y]=meshgrid(v);
z=10*(x.^3-y.^5).*exp(-x.^2-y.^2);
[px,py]=gradient(z,.2,.2);
contour(x,y,z)
holdon
quiver(x,y,px,py)
holdoff
15,下面三种表示方法有什么不同的含义?
(1)f=3*x^2+5*x+2
(2)f='
3*x^2+5*x+2'
(3)x=sym('
x'
f=3*x^2+5*x+2
表示在给定x时,将3*x^2+5*x+2的数值运算结果赋值给变量f,如果没有给定x则指示错误信息。
表示将字符串'
赋值给字符变量f,没有任何计算含义,因此也不对字符串中的内容做任何分析。
表示x是一个符号变量,因此算式f=3*x^2+5*x+2就具有了符号函数的意义,f也自然成为符号变量了。
16,用符号函数法求解方程at2+b*t+c=0。
r=solve('
a*t^2+b*t+c=0'
t'
r=
[1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[1/2/a*(-b-(b^2-4*a*c)^(1/2))]
17,用符号计算验证三角等式:
(应用syms,simple)
sin
(1)cos
(2)-cos
(1)sin
(2)=sin(1-2)
symsphi1phi2;
y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2))
y=
sin(phi1-phi2)
18,求矩阵
的行列式值、逆和特征根。
symsa11a12a21a22;
A=[a11,a12;
a21,a22]
AD=det(A)%行列式
AI=inv(A)%逆
AE=eig(A)%特征值
A=
[a11,a12]
[a21,a22]
AD=
a11*a22-a12*a21
AI=
[-a22/(-a11*a22+a12*a21),a12/(-a11*a22+a12*a21)]
[a21/(-a11*a22+a12*a21),-a11/(-a11*a22+a12*a21)]
AE=
[1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]
[1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]
19,因式分解:
symsx;
f=x^4-5*x^3+5*x^2+5*x-6;
factor(f)
(x-1)*(x-2)*(x-3)*(x+1)
20,
,用符号微分求df/dx。
(应用syms,diff)
symsax;
f=[a,x^2,1/x;
exp(a*x),log(x),sin(x)];
df=diff(f)
df=
[0,2*x,-1/x^2]
[a*exp(a*x),1/x,cos(x)]
26,x=[6649715638],绘制饼图,并将第五个切块分离出来。
x=[6649715638];
L=[00001];
pie(x,L)
28,有一周期为4的正弦波上叠加了方差为0.1的正态分布的随机噪声的信号,用循环结构编制一个三点线性滑动平均的程序。
(提示:
①用0.1*randn(1,n)产生方差为0.1的正态分布的随机噪声;
②三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据,如x1
(2)=(x
(1)+x
(2)+x(3))/3,x1(3)=(x
(2)+x(3)+x(4))/3……)
t=0:
n=length(t);
y=sin(t)+0.1*randn(1,n);
ya
(1)=y
(1);
fori=2:
n-1
ya(i)=sum(y(i-1:
i+1))/3;
end
ya(n)=y(n);
plot(t,y,'
c'
t,ya,'
r'
linewidth'
2)
29,编制一个解数论问题的函数文件:
取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。
functionc=collatz(n)
%collatz
%Classic“3n+1”Ploblemfromnumbertheory
c=n;
whilen>
1
ifrem(n,2)==0
n=n/2;
else
n=3*n+1;
c=[cn];
end
3.求下列联立方程的解
a=[34-7-12;
5-742;
108-5;
-65-210];
b=[4;
4;
9;
4];
c=a\b
4.设
,求C1=A*B’;
C2=A’*B;
C3=A.*B,并求上述所有方阵的逆阵。
A=[14813;
-36-5-9;
2-7-12-8];
B=[543-2;
6-23-8;
-13-97];
C1=A*B'
C2=A'
*B
C3=A.*B
inv(C1)
inv(C2)
inv(C3)
5.设
,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。
x=linspace(0,2*pi,101);
y=cos(x)*(0.5+(1+x.^2)\3*sin(x));
plot(x,y,'
6.产生8×
6阶的正态分布随机数矩阵R1,求其各列的平均值和均方差。
并求该矩阵全体数的平均值和均方差。
(meanvar)
a=randn(8,6)
mean(a)
var(a)
k=mean(a)
k1=mean(k)
i=ones(8,6)
i1=i*k1
i2=a-i1
i3=i2.*i2
g=mean(i3)
g2=mean(g)
或者
u=reshape(a,1,48);
p1=mean(u)
p2=var(u)
7.设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y曲线。
t=linspace(0,10);
r1=2;
x1=(r1*cos(t)+3*t);
y1=r1*sin(t)+3;
r2=3;
x2=(r2*cos(t)+3*t);
y2=r2*sin(t)+3;
r3=4;
x3=(r3*cos(t)+3*t);
y3=r3*sin(t)+3;
plot(x1,y1,'
x2,y2,'
x3,y3,'
m'
8.设f(x)=x5-4x4+3x2-2x+6
(1)在x=[-2,8]之间取100个点,画出曲线,看它有几个过零点。
用polyval函数)
x=linspace(2,8,100);
y=polyval([10-43-26],x);
x,0,'
y'
(2)用roots函数求此多项式的根。
t=[10-43-26]
p=roots(t)
3、下列变量中的最大数是(C),最小的是(D)
A.epsB.realminC.realmaxD.-pi
4、在MATLAB的若干通用操作指令中,清除内存中的变量的是(A)
A.clearB.claC.clfD.clc
5、下列表示可以作为MATLAB的变量的是(DF)
A.abcd-2B.xyz_2#C.@hD.X_1_aE.forF.for1
6、在Matlab中变量是不区分大小写的(B)
A。
正确,B。
不正确
7、在Matlab中末尾续行的符号是…;
注释的符号是%;
强行中止Matlab执行的组合键是ctrl+c。
8、x=-2.6,y1=fix(x),y2=floor(x),y3=c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 MATLAB 程序设计 应用 期末 复习