MATLAB课后习题Word文档下载推荐.docx
《MATLAB课后习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MATLAB课后习题Word文档下载推荐.docx(28页珍藏版)》请在冰点文库上搜索。
4、在给定的100*100矩阵中,删去整行为0的行,删去整列为0的列。
A=diag([1234],1)
B=any(A)
[i,j]=find(B==0)
A(:
i)=[]%删除全为0的列
B=any(A'
)
A(j,:
)=[]%删除全为0的行
运行结果:
初始值:
A=
01000
00200
00030
00004
00000
操作后:
1000
0200
0030
0004
1、将窗口分割成四格,分别绘制正弦、余弦、正切和余切函数曲线,并加上适当的标注。
程序为:
x=0:
pi/50:
2*pi;
k=[1265176101];
x(k)=[];
%删除正切和余切的奇异点
figure
(1)
subplot(2,2,1)
plot(x,sin(x),'
k--'
),gridon
legend('
\ity=sin(x)'
title('
y=sin(x)'
xlabel('
x'
),ylabel('
y'
subplot(2,2,2)
plot(x,cos(x),'
r--'
\ity=cos(x)'
y=con(x)'
subplot(2,2,3)
plot(x,tan(x),'
k'
\ity=tan(x)'
y=tan(x)'
)
subplot(2,2,4)
plot(x,cot(x),'
b-'
\ity=cot(x)'
y=cot(x)'
运行如下:
2、绘制多峰函数peaks和三角函数多条曲线。
多峰函数peaks:
[x,y]=meshgrid(-3:
0.15:
3);
z=peaks(x,y);
x1=x(1,:
);
plot(x1,z),gridon
二维多峰函数'
图形为:
plot3(x,y,z),gridon
三维多峰函数'
三角函数多条曲线:
程序为:
t=-pi:
pi/20:
pi;
y1=sinh(t);
%双曲正弦
y2=cosh(t);
%双曲余弦
subplot(2,1,1)
plot(t,y1,'
t,y2,'
k-'
\ity1=sinh(t)'
'
\ity2=cosh(t)'
三角函数1'
t'
subplot(2,1,2)
plot(t,sin(t),'
holdon%保持原有图像函数
plot(t,cos(t),'
\ity2=cos(t)'
\ity1=sin(t)'
三角函数2'
运行图形为:
3、将图形窗口分成两个,分别绘制以下函数在[-3,3]区间上的曲线,并利用axis调整轴刻度,使他们具有相同缩放尺度。
y1=2x+5;
y2=x2-3x+1。
x=-3:
0.1:
3;
y1=2*x+5;
y2=x.^2-3*x+1;
plot(x,y1,'
r-'
\ity1=2*x+5'
y1=2x+5'
y1'
plot(x,y2,'
\ity2=x.^2-3*x+1'
y2=x^2-3x+1'
y2'
调整后的y1=2x+5'
axis([-33-1010])
调整后的y2=x^2-3x+1'
axis([-33-1010])%调整坐标轴
运行后的图形:
4、绘制饼图。
x=[19033454245];
explode=[01000];
colormaphsv
pie(x,explode)
gtext('
生活费'
资料费'
电话费'
衣服'
其它'
二维饼图'
pie3(x,explode)
三维饼图'
5、画出函数z=(x-2)2+(y-1.2)2+sin(xy)的三维曲线和网格曲线。
[x,y]=meshgrid(0:
0.5:
10);
%为三维绘图产生x,y数据矩阵
z=(x-2).^2+(y-1.2).^2;
subplot(2,1,1)
mesh(x,y,z),gridon%绘制网格曲线
网格曲线'
三维曲线'
6、画出下列函数的曲面及等高线图z=x2+y2+sin(xy)。
pi/10:
2*pi);
z=x.^2+y.^2+sin(x*y);
surfc(x,y,z),gridon
曲面和等高线'
[c,h]=contour(x,y,z);
set(h,'
showtext'
on'
textstep'
get(h,'
levelstep'
)*2);
等高线'
1、将图形窗口分成两个,分别绘制正割和余割曲线,并加上标注。
x1=0:
pi\10:
plot(x,sec(x),'
\ity=sec(x)'
y=sec(x)'
plot(x,csc(x),'
\ity=csc(x)'
y=csc(x)'
运行后图形为:
2、画出对数和指数曲线并加上标注。
x=0.01:
10;
y1=log10(x);
y2=exp(x);
\ity1=log-{10}(x)'
y1=log-{10}(x)'
\ity2=exp(x)'
y2=exp(x)'
3、设有函数y=exp(x+5)+x.^3,在半对数坐标系中绘制曲线。
x=1:
0.01:
y=exp(x+5)+x.^3;
plot(x,y,'
\ity=exp(x+5)+x.^3'
平面坐标'
semilogx(x,y,'
),gridon%半对数坐标轴
半对数坐标'
4、画出各种大小和形状的球和柱体。
绘制柱体的程序为:
t=0:
[x,y,z]=cylinder(2+cos(t));
surf(x,y,z),axissquare
复杂柱面体'
cylinder,axissquare
简单柱体'
绘制球的程序为:
sphere
axisequal
半径为1的球'
[x,y,z]=sphere;
x=2*x;
y=2*y;
z=2*z;
半径为2的球'
5、绘制三维条形图:
Y=cool(7);
subplot(2,2,1),bar3(Y,'
detached'
),title('
Detached'
subplot(2,2,2),bar3(Y,0.25,'
Width=0.25'
subplot(2,2,3),bar3(Y,'
grouped'
Grouped'
subplot(2,2,4),bar3(Y,'
stacked'
Stacked'
运行后的图形为:
6、绘制二维条形图
Y=round(rand(5,3)*10);
subplot(2,2,1),bar(Y,'
group'
Group'
subplot(2,2,2),bar(Y,'
stack'
Stack'
subplot(2,2,3),barh(Y,'
subplot(2,2,4),bar(Y,1.5),title('
Width=1.5'
1、编写M函数实现:
求一个数是否为素数,在编写一主程序,要求通过键盘输入一个整数,然后完成判断其是否为素数。
functionprime(x)
n=fix(sqrt(x));
fori=2:
n
ifrem(x,i)==0
a='
fasle'
return
elsea='
true'
end
>
x=56;
prime(x)
a=
fasle
2、编写程序完成从表示字符的响亮中删去空格,并求出字符个数。
function[nstr,n]=del(str)
nstr=[];
k=find(str~='
'
nstr=str(k);
n=length(nstr);
end
运行后为:
str='
drhyfghgtesdhgfds'
;
[nstr,n]=del(str)
nstr=
drhyfghgtesdhgfds
n=
17
3、编写M函数统计十进制数值中’0‘的个数,然后编写脚本文件,实现统计所有自然数1~2006中0的个数。
M函数为:
functiony=geshu(x)
s=num2str(x);
n=length(s);
m=0;
ifs
(1)=='
0'
disp('
xiserror'
end
fori=2:
ifs(i)=='
m=m+1;
y=m;
脚本文件为'
jiu4'
:
sum=0;
forx=1:
2006
y=geshu(x);
sum=sum+y;
disp(sum)
运行结果为:
jiu4
504
4、利用menu函数输入选择参数ch。
当ch=1时,产生[-10,10]之间均匀分布的随机数;
当ch=2时,产生[-5,5]之间均匀分布的随机数;
当ch=3时,产生[-1,1]之间均匀分布的随机数;
当ch=4时,产生均值为0,方差为1的正态分布随机数。
要求使用switch函数。
s=menu('
ch'
1'
2'
3'
4'
n=[];
switchs
case1,n=20*rand(3)-10
case2,n=10*rand(3)-5
case3,n=2*rand(3)-1
case4,n=randn(3)
otherwisedisp('
error'
运行后:
按下2后:
4.22740.43663.3897
3.00374.8478-0.6674
-2.14052.1568-0.2938
5、求阵列x的平均值和标准差
function[mean1,stdev]=stat2(x)
[m,n]=size(x);
ifm==1
m=n;
s1=sum(x);
s2=sum(x.^2);
mean1=s1/m;
stdev=sqrt(s2/m-mean1.^2);
x=rand(4,4)+2;
[mean1,stdev]=stat2(x)
mean1=
2.52072.39222.64982.2539
stdev=
0.17130.18920.17250.2027
6、测试程序执行时间
%tech1.m
tic
i=0;
fort=0:
.01:
100
i=i+1;
y(i)=sin(t);
toc
%tech2.m
100;
y=sin(t);
Toc
Elapsedtimeis0.015217seconds.
Elapsedtimeis0.000508seconds.
1、产生menu选择输出颜色
colorselection'
red'
green'
blue'
yellow'
black'
case1,scolor='
case2,scolor='
case3,scolor='
case4,scolor='
case5,scolor='
end
Scolor
2、企业发放的奖金按个人完成的利润(I)提成。
分段提成比例wei即如王某完成25万元利润时,个人可得
y=10x10%+10x5%+5x2%(万元)
据此编写程序,求企业职工的奖金。
解
functionbonus=bon(I)
n=fix(I/100000)
if(n>
4)
n=4;
bon1=100000*0.1;
bon2=0.05*(200000-100000);
bon3=0.02*(400000-200000);
switchn
case0,bonus=I*100000;
case1
bonus=bon1+0.05*(I-100000);
case{2,3}
bonus=bon1+bon2+0.02*(I-200000);
case4,bonus=bon1+bon2+bon3+0.01*(I-400000);
I=1700000;
bonus=bon(I)
bonus=
32000
3、有一分数序列2/1,3/2,5/3/,8/5……求前15项和。
s=1;
t=2;
x=t/s;
sum=sum+x;
fori=1:
15
z=t;
t=s+t;
s=z;
sum
qiuhe
sum=
26.1881
4、约瑟夫环
n=input('
pleaseinputn:
'
m=input('
pleaseinputm:
b=1:
n;
i=1;
c=0;
s=0;
whiles<
ifb(i)~=0
c=c+1;
ifc==m
s=s+1;
a(s)=b(i);
b(i)=0;
c=0;
ifi==n
i=0;
a
yuese
12
3
Columns1through8
369124817
Columns9through16
211510316520
Columns17through23
11921019151
5、编写程序计算x在(-3,3)上,并画出曲线。
functiony=func2(x)
n=length(x);
if(x(i)>
=-3)&
&
(x(i)<
-1)
y(i)=[-x(i).^2-4*x(i)-3]/2;
elseif(x(i)>
=-1)&
1)
y(i)=-x(i).^2+1;
else(x(i)>
=1)&
3)
y(i)=[-x(i).^2+4*x(i)-3]/2;
脚本为:
y=func2(x);
plot(x,y),gridon
y=func2(x)'
1、求矩阵与的逆矩阵和行列式。
a=[535;
374;
798];
b=[242;
679;
836];
c1=inv(a)
c2=det(a)
d1=inv(b)
d2=det(b)
c1=
10.000010.5000-11.5000
2.00002.5000-2.5000
-11.0000-12.000013.0000
c2=
2.0000
d1=
0.1531-0.18370.2245
0.3673-0.0408-0.0612
-0.38780.2653-0.1020
d2=
98.0000
2、解方程组
A=[321;
1-13;
24-4];
b=[76-2];
A\b'
ans=
1.0000
2.0000
2、对一组数据进行分别采用y1(t)=c1+c2exp(-t),y2(t)=d1+d2t.*exp(-t)拟合.
t=[12345678910]'
y=[4.8424.3623.7543.3683.1693.0833.0343.0163.0123.005]'
a=[ones(size(t))exp(-t)];
C=a\y;
b=[ones(size(t))t.*exp(-t)];
D=b\y;
T=[10:
-1:
1]'
y1=[ones(size(T))exp(-T)]*C;
y2=[ones(size(T))T.*exp(-T)]*D;
plot(T,y1,'
T,y2,'
t,y,'
o'
\ity1(t)=c1+c2exp(-t)'
\ity2(t)=d1+d2t.*exp(-t)'
曲线拟合'
\itt'
),ylabel('
\ity'
4、矩阵,分别对a进行特征值分解、奇异值分解、LU分解、QR分解。
[v,d]=eig(a,b)
v=
-0.4330-0.2543-0.1744
-0.56570.9660-0.6091
-0.70180.04720.7736
d=
13.548200
04.83030
003.6216
a=[91