Matlab上机题库及详细答案Word文档格式.docx
- 文档编号:8244326
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:56
- 大小:281.91KB
Matlab上机题库及详细答案Word文档格式.docx
《Matlab上机题库及详细答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《Matlab上机题库及详细答案Word文档格式.docx(56页珍藏版)》请在冰点文库上搜索。
end)%取A第1、4行中第3列到最后一列元素。
4.A(:
)将矩阵A的每一列元素堆叠起来,成为一个行向量。
例4:
使用关系运算和元素的逻辑运算找出大于60小于100的数的位置。
num=round(rand(1,10)*100);
%生成<
100的整数,
%round(A),A中的元素四舍五入到整数,rand(1,10),产生随机数0.0-1.0的1X10矩阵。
n=(num>
60)&
(num<
100)
n=n.*num
Result=find(n)%查找非0位置,按索引方式
as=n(result)%显示这些数字
例5:
产生对角线上全1,其余为0的2行3列矩阵的命令是_C_____。
A.ones(2,3)B.ones(3,2)C.eye(2,3)D.eye(3,2)
例6:
已知a=0:
4,b=1:
5,下面的运算表达式出错的为_D__。
A.a+bB.a.*bC.a’*bD.a*b
例7:
有一个2行2列的元胞数组c,则c
(2)指的是__D____。
A.第1行第2列的元素内容
B.第2行第1列的元素内容
C.第1行第2列的元素
D.第2行第1列的元素
例8:
已知x=0:
10,则x有___B___个元素。
A.10B.11C.9D.12
例9:
已知数组a=
则a(:
end)是指___C___
A.所有元素B.第一行元C.第三列元素D.第三行元素
例10:
计算x从0到20,y=sin(x)中,π<
x<
4π范围中,y>
0的所有值。
x=0:
20;
x1=x.*((x>
pi)&
(x<
4*pi));
y=sin(x);
y1=sin(x1).*(sin(x1)>
0)
例11:
设A=[123;
456]为2×
3矩阵,分别建立3×
3、3×
2和与矩阵A同样大小的零矩阵。
zeros(3);
zeros(3,2);
A=[123;
456];
zeros(size(A))
例12:
建立随机矩阵:
(1)在区间[20,50]内均匀分布的5阶随机矩阵。
(2)均值为0.6方差为0.1的5阶正态分布随机矩阵
>
x=20+(50-20)*rand(5);
>
y=0.6+sqrt(0.1)*randn(5)
例13:
将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。
M=100+magic(5)
M=117124101108115
123105107114116
104106113120122
110112119121103
111118125102109
例14:
先建立5×
5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。
解A=[17,0,1,0,15;
23,5,7,14,16;
4,0,13,0,22;
10,12,19,21,3;
11,18,25,2,19];
D=diag(1:
5);
D*A%用D左乘A,对A的每行乘以一个指定常数
例15:
输入x,y的值,并将它们的值互换后输出。
程序如下:
x=input('
Inputxplease.'
);
y=input('
Inputyplease.'
);
z=x;
x=y;
y=z;
disp(x);
disp(y);
例16:
求一元二次方程ax2+bx+c=0的根。
程序如下:
a=input('
a=?
'
b=input('
b=?
c=input('
c=?
d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];
disp(['
x1='
num2str(x
(1)),'
x2='
num2str(x
(2))]);
例17:
输入一个字符,若为大写字母,则输出其对应的小写字母;
若为小写字母,则输出其对应的大写字母;
若为数字字符则输出其对应的数值,若为其他字符则原样输出。
请输入一个字符'
'
s'
ifc>
='
A'
&
c<
Z'
disp(setstr(abs(c)+abs('
a'
)-abs('
)));
elseifc>
&
z'
disp(setstr(abs(c)-abs('
)+abs('
0'
9'
disp(abs(c)-abs('
));
else
disp(c);
end
例18:
某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<
200没有折扣
200≤price<
5003%折扣
500≤price<
10005%折扣
1000≤price<
25008%折扣
2500≤price<
500010%折扣
5000≤price14%折扣
输入所售商品的价格,求其实际销售价格。
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;
price=price*(1-rate)%输出商品实际销售价格
例19已知,当n=100时,求的值。
y=0;
n=100;
fori=1:
n;
y=y+1/(2*i-1);
End
例20:
一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。
输出全部水仙花数
form=100:
999
m1=fix(m/100);
m2=rem(fix(m/10),10);
m3=rem(m,10);
ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3;
disp(m);
例21:
从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。
sum=0;
cnt=0;
val=input('
Enteranumber(endin0):
while(val~=0)
sum=sum+val;
cnt=cnt+1;
if(cnt>
0)
Sum;
mean=sum/cnt
例22:
求[100,200]之间第一个能被21整除的整数。
forn=100:
200
ifrem(n,21)~=0
Continue;
break
例23:
若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。
求[1,500]之间的全部完数。
form=1:
500;
s=0;
fork=1:
m/2;
ifrem(m,k)==0;
s=s+k;
end;
ifm==s
disp(m);
例24:
编写函数文件求半径为r的圆的面积和周长。
函数文件如下:
function[s,p]=fcircle(r)
%CIRCLEcalculatetheareaandperimeterofacircleofradiir
%r圆半径
%s圆面积
%p圆周长
s=pi*r*r;
p=2*pi*r;
例25:
利用函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换。
函数文件tran.m:
function[rho,theta]=tran(x,y);
rho=sqrt(x*x+y*y);
theta=atan(y/x);
调用tran.m的命令文件main1.m:
在x=input('
Pleaseinputx=:
y=input('
Pleaseinputy=:
[rho,the]=tran(x,y);
rho
例26:
在0≤x≤2p区间内,绘制曲线y=2e-0.5xcos(4πx)
2*pi;
y=2*exp(-0.5*x).*cos(4*pi*x);
plot(x,y)
例27:
用不同标度在同一坐标内绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
y2=2*exp(-0.5*x).*cos(pi*x);
Plotyy(x,y1,x,y2);
例28:
在0≤x≤2p区间内,用不同线型和颜色绘制曲线y=2e-0.5xsin(2πx)及其包络线。
x=(0:
2*pi)'
;
y1=2*exp(-0.5*x)*[1,-1];
y2=2*exp(-0.5*x).*sin(2*pi*x);
x1=(0:
12)/2;
y3=2*exp(-0.5*x1).*sin(2*pi*x1);
plot(x,y1,'
k:
x,y2,'
b--'
x1,y3,'
rp'
例29:
在0≤x≤2p区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx)并给图形添加图形标注。
y1=2*exp(-0.5*x);
y2=cos(4*pi*x);
plot(x,y1,x,y2);
title('
xfrom0to2{\pi}'
%加图形标题
xlabel('
VariableX'
%加X轴说明
ylabel('
VariableY'
%加Y轴说明
text(0.8,1.5,'
曲线y1=2e^{-0.5x}'
)%在指定位置添加图形说明
text(2.5,1.1,'
曲线y2=cos(4{\pi}x)'
legend(‘y1’,‘y2’)%加图例
例30:
采用图形保持,在同一坐标内绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。
plot(x,y1);
plot(x,y2);
例31:
分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。
pi/10:
y=2*sin(x);
subplot(2,2,1);
bar(x,y,'
g'
)'
axis([0,7,-2,2]);
subplot(2,2,2);
stairs(x,y,'
subplot(2,2,3);
stem(x,y,'
k'
subplot(2,2,4);
fill(x,y,'
y'
例32:
绘制r=sin(t)cos(t)的极坐标图,并标记数据点。
pi/50:
r=sin(t).*cos(t);
polar(t,r,'
-*'
例33:
绘制y=10x2的对数坐标图,并与直角线性坐标图比较。
0.1:
10;
y=10*x.*x;
subplot(2,2,1);
plot(x,y);
plot(x,y)'
gridon;
subplot(2,2,2);
semilogx(x,y);
semilogx(x,y)'
subplot(2,2,3);
semilogy(x,y)
gridontitle('
semilogy(x,y)'
subplot(2,2,4)loglog(x,y);
loglog(x,y)'
)gridon
例34:
绘制三维曲面图z=sin(x+sin(y))-x/10。
[x,y]=meshgrid(0:
0.25:
4*pi);
z=sin(x+sin(y))-x/10;
mesh(x,y,z);
axis([04*pi04*pi-2.51]);
例35:
绘制三维图形:
(1)绘制魔方阵的三维条形图。
(2)以三维杆图形式绘制曲线y=2sin(x)。
(3)已知x=[2347,1827,2043,3025],绘制饼图。
(4)用随机的顶点坐标值画出五个黄色三角形。
bar3(magic(4));
y=2*sin(0:
2*pi);
stem3(y);
pie3([2347,1827,2043,3025]);
fill3(rand(3,5),rand(3,5),rand(3,5),'
)
例36:
从不同视点绘制多峰函数曲面。
subplot(2,2,1);
mesh(peaks);
view(-37.5,30);
%指定子图1的视点
title('
azimuth=-37.5,elevation=30'
view(0,90);
%指定子图2的视点
azimuth=0,elevation=90'
view(90,0);
%指定子图3的视点
azimuth=90,elevation=0'
subplot(2,2,4);
view(-7,-10);
%指定子图4的视点
azimuth=-7,elevation=-10'
例37:
绘制了peaks函数曲面并且将它绕z轴旋转。
[X,Y,Z]=peaks(30);
surf(X,Y,Z);
axis([-3,3,-3,3,-10,10]);
axisoff;
shadinginterp;
olormap(hot);
m=moviein(20);
%建立一个20列大矩阵
fori=1:
20view(-37.5+24*(i-1),30)%改变视点
m(:
i)=getframe;
%将图形保存到m矩阵
end
movie(m,2);
%播放画面2次
例38:
分别求3×
4矩阵x中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。
A=[13,-56,78;
25,63,-235;
78,25,563;
10-1];
a=max(A,[],2);
b=min(A,[],2);
c=max(A)
d=min(A);
e=max(max(A));
f=min(min(A))
例39:
求矩阵A的每行元素的乘积和全部元素的乘积。
A=[1234;
5678;
9101112];
a=prod(A);
b=prod(a)
例40:
某实验对一根长10米的钢轨进行热源的温度传播测试。
用x表示测量点0:
2.5:
10(米),用h表示测量时间0:
30:
60(秒),用T表示测试所得各点的温度(℃)。
试用线性插值求出在一分钟内每隔20秒、钢轨每隔1米处的温度TI。
10;
h=[0:
60]'
T=[95,14,0,0,0;
88,48,32,12,6;
67,64,54,48,41];
xi=[0:
10];
hi=[0:
20:
TI=interp2(x,h,T,xi,hi)
例41:
用一个三次多项式逼近函数sinx
x=linspace(0,2*pi,50);
y=sin(x);
p=polyfit(x,y,3);
X=linspace(0,2*pi,20);
Y=sin(X)
Y1=polyval(p,X);
plot(X,Y,'
O'
X,Y1,'
例42:
已知f(x)
(1)计算f(x)=0的全部根。
(2)由方程f(x)=0的根构造一个多项式g(x),并与f(x)进行对比。
P=[3,0,4,-5,-7.2,5];
X=roots(P)%求方程f(x)=0的根
G=poly(X)%求多项式g(x)
例43:
计算二重定积分
(1)建立一个函数文件fxy.m:
functionf=fxy(x,y);
globalki;
ki=ki+1;
%ki用于统计被积函数的调用次数
f=exp(-x.^2/2).*sin(x.^2+y);
(2)调用dblquad函数求解。
ki=0;
I=dblquad('
fxy'
-2,2,-1,1);
ki
I=1.57449318974494
ki=1038
例44:
用LU分解求解例7-1中的线性方程组。
A=[2,1,-5,1;
1,-5,0,7;
0,2,1,-1;
1,6,-1,-4];
b=[13,-9,6,0]'
[L,U]=lu(A);
x=U\(L\b)
或采用LU分解的第2种格式,命令如下:
[L,U,P]=lu(A);
x=U\(L\P*b)
例45:
用QR分解求解例7-1中的线性方程组。
[Q,R]=qr(A);
x=R\(Q\b)
或采用QR分解的第2种格式,命令如下:
[Q,R,E]=qr(A);
x=E*(R\(Q\b))
例46求f(x)=x-10x+2=0在x0=0.5附近的根。
步骤如下:
(1)建立函数文件funx.m。
functionfx=funx(x)
fx=x-10.^x+2;
(2)调用fzero函数求根。
z=fzero('
funx'
0.5)
z=0.3758
例47:
求下列非线性方程组在(0.5,0.5)附近的数值解。
(1)建立函数文件myfun.m。
functionq=myfun(p)
x=p
(1);
y=p
(2);
q
(1)=x-0.6*sin(x)-0.3*cos(y);
q
(2)=y-0.6*cos(x)+0.3*sin(y);
(2)在给定的初值x0=0.5,y0=0.5下,调用fsolve函数求方程的根。
x=fsolve('
myfun'
[0.5,0.5]'
optimset('
Display'
off'
))
例48:
求f(x)=x3-2x-5在[0,5]内的最小值点与最大值点。
(1)建立函数文件mymin.m。
functionfx=mymin(x);
fx=x.^3-2*x-5;
(2)调用fmin函数求最小值点与最大值点。
xmin=fmin('
mymin'
0,5);
xmin=0.8165;
xmax=fmin(‘-mymin'
0,5)
例49:
求解下面的有约束优化问题
x0=[0.5;
0.5];
A=[-1,-0.5;
-0.5,-1];
b=[-0.4;
-0.5];
lb=[0,0];
[x,f]=fmincon('
fop'
x0,A,b,[],[],lb,[],[],[]);
functionf=fop(x);
f=0.4*x
(2)+x
(1)^2+x
(2)^2-x
(1)*x
(2)+1/30*x
(1)^3
例50:
完成下列操作:
(P361,T4)
(1)求[100,999]之间能被21整除的数的个数。
(2)建立一个字符串向量,删除其中的大写字母。
clc;
clear;
A=100:
999;
length(A(mod(A,21)==0));
ch='
SDFHJI23423bfjdbg'
Chk=find(ch<
ch>
ch(k)=[]
例51:
下面是一个线性方程组:
(1)求方程的解。
(2)将方程右边向量元素b3改为0.53再求解,并比较解的相对变化。
(3)计算系数矩阵A的条件数并分析结论。
clear;
A=1./[234;
345;
456];
b1=[0.95;
0.67;
0.52];
x1=inv(A)*b1%x2=A\b1
%
(2)b2=[0.95;
0.53];
x2=inv(A)*b2;
x3=x2-x1;
B1=norm(x1)%x1的2-范数
B2=norm(x2);
B=B2/B1
%(3)条件数:
D=cond(A)%A的2-范数下的条件数,该数都大于1,但越接近与1越好。
if(D>
1e3)disp('
结论:
A的条件数远大于1,为不良矩阵。
例54:
求分段函数的值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 上机 题库 详细 答案