Matlab上机练习二答案剖析Word文档下载推荐.docx
《Matlab上机练习二答案剖析Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Matlab上机练习二答案剖析Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
a<
a==b
000
a~=b
111
5、
,在进行逻辑运算时,a相当于什么样的逻辑量。
相当于a=[11011]。
6、角度
,求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
7、用四舍五入的方法将数组[2.45686.39823.93758.5042]取整。
b=[2.45686.39823.93758.5042];
round(b)
2649
8、设
,求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'
C1=
19-8230
12273
-385429
C2=A'
*B
C2=
-1516-2436
63-1793-105
226117-60
194684-10
C3=A.*B
C3=
51624-26
-18-12-1572
-2-21108-56
inv(C1)
0.00620.0400-0.0106
-0.00460.01690.0030
0.01680.02090.0150
inv(C2)
Warning:
Matrixisclosetosingularorbadlyscaled.
Resultsmaybeinaccurate.RCOND=8.997019e-019.
1.0e+015*
-0.9553-0.2391-0.19970.2700
0.96670.24200.2021-0.2732
-0.4473-0.1120-0.09350.1264
-1.1259-0.2818-0.23530.3182
inv(C3)
?
Errorusing==>
inv
Matrixmustbesquare.
9、设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,'
r'
x2,y2,'
b'
x3,y3,'
m'
)
10、设f(x)=x5-4x4+3x2-2x+6
(1)在x=[-2,8]之间取100个点,画出曲线,看它有几个过零点。
(提示:
用polyval函数)
x=linspace(2,8,100);
y=polyval([10-43-26],x);
plot(x,y,'
x,0,'
y'
(2)用roots函数求此多项式的根。
t=[10-43-26]
p=roots(t)
12、求解多项式x3-7x2+2x+40的根。
>
r=[1-7240];
p=roots(r);
-0.2151
0.4459
0.7949
0.2707
13、符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为[0,2]。
symst
ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi])
14、设
求
x=sym('
x'
);
y=(sin(x))^4+(cos(x))^4;
diff(y,10)
15、
int((sqrt((9-x^2)^3)/x^6),x)
16、
int(x+x^3,x,1,2)
17、求级数的和:
sym(‘n’);
symsum(n+2/2^n,n,1,inf)
18、利用函数int计算二重不定积分
y=sym('
z=(x+y)*exp(-x*y);
a=int(z,x);
int(a,y)
19、试求出如下极限。
(1)
;
(2)
(1)>
symsx;
f=(3^x+9^x)^(1/x);
l=limit(f,x,inf)
ans=
9
(2)>
symsxy;
f=x*y/(sqrt(x*y+1)-1);
limit(limit(f,x,0),y,0)
ans=
2
(3)>
f=(1-cos(x^2+y^2))*exp(x^2+y^2)/(x^2+y^2);
0
20、已知参数方程
,试求出
和
symst;
x=log(cos(t));
y=cos(t)-t*sin(t);
diff(y,t)/diff(x,t)
-(-2*sin(t)-t*cos(t))/sin(t)*cos(t)
f=diff(y,t,2)/diff(x,t,2);
subs(f,t,sym(pi)/3)
3/8-1/24*pi*3^(1/2)
21、假设
,试求
symsxyt
s=int(exp(-t^2),t,0,x*y);
x/y*diff(f,x,2)-2*diff(diff(f,x),y)+diff(f,y,2)
ans=2*x^2*y^2*exp(-x^2*y^2)-2*exp(-x^2*y^2)-2*x^3*y*exp(-x^2*y^2)
22试求出下面的极限。
(2)
symskn;
symsum(1/((2*k)^2-1),k,1,inf)
1/2
limit(symsum(1/((2*k)^2-1),k,1,n),n,inf)
limit(n*symsum(1/(n^2+k*pi),k,1,n),n,inf)
1
23、假设一曲线数据点为x=0:
2:
4*piy=sin(x).*exp(-x/5)
试将x的间距调成0.1,并用下列方法进行内插:
(1)线性内插法(method=’linear’)
(2)样条内插法(method=’spline’)
(3)三次多项式内插法(method=’cubic’)
(4)多项式拟合法:
直接利用6次多项式去通过7个数据点
请将这些内插法的结果及原先的数据点画在同一个图上
25、阅读以下程序并在指定位置上写注释(6分)
t=(0:
0.02:
2)*pi;
x=sin(t);
y=cos(t);
z=cos(2*t);
plot3(x,y,z,'
r-'
x,y,z,'
bd'
)%___
(1)_绘制一条红色连续曲线和蓝色菱形离散点
view([-82,58])%___
(2)__以方位角-82度,俯角58度观察视图
boxon%显示坐标轴的矩形框
legend('
图形'
'
视角'
)%__(3)_标注图例______
holdon%__(4)_保持图形_____
x=-4:
4;
y=x;
[X,Y]=meshgrid(x,y);
%__(5)_生成平面网格坐标矩阵__
Z=X.^2+Y.^2;
surf(X,Y,Z);
%__(6)_绘制三维曲面_
26、编写一个M函数文件fun_es(x),计算如下函数:
,其中参数可以为标量,也可以为向量。
在Matlab指令窗口键入如下命令检验该函数:
fun_es(3)
functionfun_es(x)
y=0.5.*exp(x./3)-x.^2.*sin(x)
27、编写m函数文件求半径为r的圆的面积和周长。
functionf=circle(r)
S=pi*r^2
L=2*pi*r
x,y
Matlab上机实验四
28、编制m文件,等待键盘输入,输入密码123,密码正确,显示输入密码正确,程序结束;
否则提示,重新输入。
functionf=zy2()
t=input('
Inputkey(keyis123)'
ift==123
'
good'
else
Youarefool,inputagain'
zy2;
//从新输入;
end
4.3已知y=
。
当n=100时,求y的值
步骤:
建立函数,命名为Cbb.m求平方倒数的和。
其程序如下
functionF=Cbb(n)
F=0;
k=1;
whilek<
=n
F=F+(1/k)/k;
k=k+1;
在工作空间中求y值
y=Cbb(100)
y=
1.6350
4.5编制程序,计算1+2+
+n<
2000时的最大n值
建立函数文件Dbb.m,求累加和小于n的最大数,使n=2000程序如下
functionk=Dbb(n)
f=0;
whilef<
n
f=f+k;
k=k-2;
将2000作为输入值,求n.在工作空间中输入如下:
Dbb(2000)
62
4.6分别用for和while循环结构编写程序,求出K=
分别用for和while循环结构编写命令文件Ebb,Fbb.并在工作空间中求K
Ebb程序如下
f=1;
J
(1)=1;
fori=1:
63
J(i+1)=J(i)*2;
f=f+J(i+1);
End
求K程序:
Ebb.m
f
f=
1.8447e+019
Fbb程序如下
I=1;
H=1;
i=1;
whilei<
=63
H=H*2;
I=I+H;
i=i+1;
在工作空间中求K
Fbb.m
I
I=
1.倘若要是生成一个4行5列的矩阵
a=rand(4,5)
2.倘若要是对x进行赋值,从5到25,间隔是0.1
x=5:
0.1:
25;
倘若要是对x进行赋值,从2到20,中间间隔100个点
x=linspace(2,20,100);
4.用3种方法将图画在同一个窗口中
y1=sin(x).*cos(2*x);
y2=sin(2*x).*cos(x);
plot(x,y1,x,y2)
有一点必须注意:
在式子与式子之间,必须要用点乘
要想对所画的图形进行修饰,可以用以下的语句,要点是必须是先画出图形,再写有关对图形修饰的语句
plot(x,y1,x,y2);
plot(x,y1,'
r--'
x,y2,'
b-.'
xlabel('
横坐标'
title('
标题'
sinx*cosx'
sin2x*cosx'
("
加示例"
怎样改变线宽?
以及怎样给一个中间空着的正方形的边缘及内部填充颜色
plot(x,y,'
markeredge'
g'
markerfacecolor'
5.关于三维图的画法
饼图pie
火柴杆图stem(x,y)
阶梯图
6.关于排序问题
a=rand(4,5);
随机生成4*5的矩阵
sort(a);
按列排序,且每列由上到下是由小到大
sort(a,1);
sort(a,2);
按行排序,且每行由左到右是由小到大
倘若想要改变由大到小还是想改变由小到大,需要用到
增长ascend
减小descend
例如:
按行进行排序,且每一行自左至右是递减的,即:
按照行从高到低排序
a=[123;
456;
789]
sort(a,2,'
descend'
a=
123
456
789
321
654
987
7.关于矩阵问题
求矩阵中每一列的平均值
mean(a)
mean(a,1)
求矩阵中每一行的平均值
mean(a,2)
从矩阵a中找出最大值
max(max(a))
内层的max相当于找出每一列的最大值,外层的max相当于找出每一列最大值的最大值
或者
a=rand(3,4)
max(a(:
))即a的所有行,所有列
倘若对矩阵a前两行的2,3,4列求最大值
max(a(1:
2,2:
4))
求矩阵a的行列式值|a|
b=det(a)det语句是求n*n的行列式的值
求矩阵a的逆矩阵
b=inv(a)inv是矩阵求逆的意思
求矩阵a的转置
b=a'
对于矩阵a:
求出矩阵a中每一列中的最大值,最小值
b=max(a)
c=min(a)
求出矩阵a中每一行中的最大值,最小值
b=max(a,[],2)
c=min(a,[],2)
8.关于取整问题
a=5/2
b=ceil(a)向大取
c=floor(a)向小取
9.关于多形式的乘法和除法
例如:
求x2+2x+3与4x2+5x+6的乘积
a=[123]
b=[456]
c=conv(a,b)
求x2+2x+3除以4x2+5x+6
a=[123]
c=deconv(a,b)
10.关于矩阵确定位置的问题
找出矩阵a的最大值,并确定其位置
a=rand(3,4)
[x,y]=max(a)
11.Matlab的函数是由function语句引导的,函数的基本结构是:
function[返回变量列表]=函数名(输入变量列表)
倘若有一个输入,一个输出
functiony=sum(a)
倘若有两个输入,两个输出,则形式为
function[m,n]=hanshu(a,b)
function[x,y]=hanshu(a,b);
x=a+b;
y=a*b;
执行时,需要在CommandWindow中敲入
x=2;
y=3;
[m,n]=hanshu(x,y)
12.
一个整数除以3只有3种情况,要么整除,要么余1,要么余2.
若整除,输出此整数是3的倍数
若余1,输出此整数除以3余1
若余2,输出此整数除以3余2
请用两种条件语句写一个函数(一个是IF一个是SWITCH)
IF:
a=input('
请输入一个整数'
b=mod(a,3);
求余函数
ifb==0
disp('
此整数是3的倍数'
elseifb==1
此整数除以3余1'
此整数除以3余2'
SWITCH:
switch(b)
case0
case1
case2