tmpx=A(j);
A(j)=A(i);
A(i)=tmpx;
end
end
end
A
3.提示用户输入1或2,如输入1时,执行第一题的脚本;如输入2时,提示用户输入随机数序列长度,然后执行第二题的函数。
clear
clc
r=input('1or2')
switchr
case1
disp('��������d1')
editd1.m
case2
n=input('��������������ò������¤��������')
disp('��������d2')
editd2.m
end
4.分别选用if或switch结构实现下述函数表示。
f(x,y)=
f(x)=
5.分别用for和while结构实现如下函数计算。
Sin(x)-cos(x)+sin(2x)+cos(2x)+……+sin(nx)+(-1)^xCos(nx)
expAt+AexpAt+…..+A^nxexpA^nt,其中A=[123;012;001]
6.在第3题的代码中添加continue、break、return、echo等命令,熟悉他们的用法。
7.计算n个随机数的自然对数,并对运算结果求其算术平方根和四舍五入的和,其中,随机数服从U(-2,2)的均匀分布。
运行下述函数并进行调试。
第五章
1.绘制函数y=sin(x)cos(x)在[-2,2]上的曲线,其中曲线为红实线。
x=-2:
0.01:
2;
y=sin(x).*cos(x);
plot(x,y,'-r')
2.绘制函数x^2/9+y^2/16=1的边界。
ezplot('16*x^2+9*y^2-144',[-3,3,-4,4])
3.绘制函数
=
在x1,x2
[-2,2]上的曲线,其中数据点为菱形。
x1=-2:
2;
x2=-2:
2;
x=[x1x2];
y1=x1'*sin(x2);
y2=x2'*cos(x1);
y=[y1y2];
plot(x,y,'d')
4.在第三题结果的上基础上绘制对应的等高线。
x1=-2:
2;
x2=-2:
2;
y1=x1'*sin(x2);
y2=x2'*cos(x1);
meshc(y1)
holdon
meshc(y2)
5.在第二题结果的基础上对坐标轴进行标注,标注内容为对应变量的范围并添加标题“解曲线”。
ezplot('16*x^2+9*y^2-144',[-3,3,-4,4])
xlabel('x[-3,3]')
ylabel('y[-4,4]')
title('解曲线')
6.在第三题结果基础上对曲线进行标注。
x1=-2:
0.01:
2;
x2=-2:
0.01:
2;
x=[x1;x2]
y=[x1.*sin(x2);x2.*cos(x1)]
plot(x,y,'d')
xlabel('x[-2,2]')
7.在第一题结果基础上将x轴的范围限定在[-3,3],y轴范围限定在[-1.5,1,5]。
x=-2:
0.01:
2
y=sin(x).*cos(x)
plot(x,y,'-r')
axis([-33-1.51.5])
8.在第七题结果的基础上绘制网格。
x=-2:
0.01:
2
y=sin(x).*cos(x)
plot(x,y,'-r')
axis([-33-1.51.5])
gridon
9.在第七题结果的基础上取10个点,并进行排序。
x=-2:
0.01:
2
y=sin(x).*cos(x)
plot(x,y,'-r')
axis([-33-1.51.5])
[x,y]=ginput(10)
[bc]=sort([x,y])
10.在一个图形窗口依次绘制函数sin(x)、cos(x)、tg(x)、ctg(x)、sec(x)、cec(x)的曲线,并进行标注。
x=-pi:
pi/20:
pi
plot(x,sin(x),'r')
holdon
plot(x,cos(x),'y')
plot(x,tan(x),'b')
plot(x,atan(x),'g')
plot(x,sec(x),'m')
plot(x,asec(x),'c')
xlabel('x[-pipi]')
ylabel('º¯ÊýÈ¡Öµ')
title('ÇúÏß')
11.在一个图形窗口中按3*2绘制第十题所列函数的子图。
x=-pi:
pi/20:
pi;
subplot(2,3,1)
plot(x,sin(x))
title('sin')
subplot(2,3,2)
plot(x,cos(x))
title('cos')
subplot(2,3,3)
plot(x,tan(x))
title('tan')
subplot(2,3,4)
plot(x,atan(x))
title('atan')
subplot(2,3,5)
plot(x,sec(x))
title('sec')
subplot(2,3,6)
plot(x,asec(x))
title('asec')
13.在不同窗口绘制第十题所列函数图形。
x=-pi:
pi/20:
pi;
figure
(1);
plot(x,sin(x));
title('sin');
figure
(2);
plot(x,cos(x));
title('cos');
figure(3);
plot(x,tan(x));
title('tan');
figure(4);
plot(x,atan(x));
title('atan');
figure(5);
plot(x,sec(x));
title('sec');
figure(6);
plot(x,asec(x));
title('asec');
%14
i=10;
j=10;
A=unifrnd(-2,6,i,j)
A;
a=1:
i;
b=1:
j;
num=0;
forb=1:
j
fora=1:
i
ifA(a,b)>1
num=num+1;
end
end
end
14.首先生成100个服从U(-2,6)的均匀分布随机数,其次按行排成10*10的矩阵,再次将数据保存在mydata.mat文件中,然后清除内存和屏幕,最后计算数据中大于1的个数。
15.首先将第四题的10*10的矩阵写入二进制文件,其次清除内存和关闭所有窗口,再次读入该矩阵,计算矩阵的逆。
x1=-2:
1:
2;
x2=-2:
0.5:
2;
y1=x1'*sin(x2);
x1=-2:
0.5:
2;
x2=-2:
1:
2;
y2=x2'*cos(x1);
A=y1;
B=y2;
C=[A;B]
fid=fopen('e15_1.m','w');
a=fwrite(fid,C,'float')
clear
clc
fclose('all');
fid=fopen('e15_1.m','r');
b=fread(fid,[1010])
D=inv(b)
fclose(fid)
16.首先将第四题的10*10的矩阵写入文本文件,其次清除内存和关闭所有窗口,再次读入该矩阵,计算矩阵的指数。
x1=-2:
1:
2;
x2=-2:
0.5:
2;
y1=x1'*sin(x2);
x1=-2:
0.5:
2;
x2=-2:
1:
2;
y2=x2'*cos(x1);
A=y1;
B=y2;
C=[A;B]
fid=fopen('e16_1.txt','w');
a=fprintf(fid,'%g',C)
fclose('all');
fid=fopen('e16_1.txt','r');
b=fscanf(fid,'%d',[1010])
D=expm(b)
fclose(fid);
17.通过文本指针控制,首先读取第十五题二进制文件中的第一行第二个数据,其次移动指针读取第一行第四个数据,再次读取倒数的1~5个数据,最后判断是否到文件末尾。
clear
clc
fid=fopen('e15_1.m','r');
p1=ftell(fid)
status1=fseek(fid,2,'bof')
a1=fread(fid,[11])
status2=fseek(fid,2,'cof')
a2=fread(fid,[11])
status3=fseek(fid,5,'eof')
a3=fread(fid,[15])
status4=feof(fid)
fclose(fid);
第六章
1.将多项式A的系数向量形式[12421]转换为完整形式,并将多项式B的完整形式
2x^5+x^2+3x+5表示为系数向量形式。
symsx;
A=[12421]
[s,len]=poly2str(A,'x')
B=2*x^5+x^2+3*x+5;
b=[20013]
2.针对第一题A,计算自变量为1~10
A=[12421];
p=[12345;678910];
r_A=polyval(A,p)
3.针对第一题A和B,计算A和B的乘法和除法。
p1=[12421];
p2=[200135];
w=conv(p1,p2)
[q,r]=deconv(p2,p1);
sq=poly2str(q,'x')
sr=poly2str(r,'x')
4.针对第一题A和B,计算A/B的微分。
A=[12421];
B=[200135];
[q,d]=polyder(A,B)
5.针对第一题A,计算其积分。
A=[12421];
s1=polyint(A)
6.针对如下矩阵,计算其对应特征多项式。
[111;234;4916]
A=[111;234;4916;];
p=poly(A);
sp=poly2str(p,'x')
r=roots(p)
eA=eig(A)
7.针对第一题A,B,将A/B展成部分分式。
p1=[12421];
p2=[200135];
[r,p,k]=residue(A,B)
8.针对函数f(x)=expx在x
{0,0.1,0.2,……,5}上的取值,采用多项式进行拟合,并对x
{0.15,0.45,0.75}分别采用最邻近、双线性和三次样条插值方法进行插值。
x=0:
0.1:
5;
y=exp(x);
p=polyfit(x,y,5)
y=polyval(p,x)
plot(x,y,'ro')
xlabel('x');
ylabel('y');
x=0:
0.1:
5;
y=exp(x);
xi=[0.15,0.45,1.75]
yi_nearest=interp1(x,y,xi,'nearset');
yi_linear=interp1(x,y,xi);
yi_spline=interp1(x,y,xi,'spline');
figure;
holdon;
subplot(1,3,1);
plot(x,y,'ro',xi,yi_nearest,'r-');
title('最邻近法');
subplot(1,3,2);
plot(x,y,'ro',xi,yi_linear,'b-');
title('双线性法');
subplot(1,3,3);
plot(x,y,'ro',xi,yi_spline,'g--');
title('三次样条插值法');
9.针对二维函数f(x)=expxy在x
{0,0.1,0.2,……,5};y
{0,0.1,0.2,……,5}上的取值,对(x,y)
{(0.15,0.15),(0.45,0.45),(0.75,0.75)}分别采用最邻近、双线性和三次样条插值方法进行插值。
10.产生40个服从正态分布N(-1,4)的随机数,计算它们的最大值、最小值、平均值、中间值、元素和、标准差和方差,斌按照绝对值大小进行排序,同时标出原来的序列号。
y=normrnd(-1,4,1,40);
y_max=max(y)
y_min=min(y)
y_mean=mean(y)
y_sum=sum(y)
y_s=std(y)
y_var=var(y)
x=abs(y)
[z,iz]=sort(x)
11.产生五个样本,每个样本包含20个服从均匀分布U(3,4)的随机数,计算它们的协方差和相关系数矩阵。
y1=unifrnd(3,4,1,20)
y2=unifrnd(3,4,1,20)
y3=unifrnd(3,4,1,20)
y4=unifrnd(3,4,1,20)
a1=cov(y1)
a2=cov(y1,1)
a3=corrcoef(y1)
b1=cov(y2)
b2=cov(y2,1)
b3=corrcoef(y2)
c1=cov(y3)
c2=cov(y3,1)
c3=corrcoef(y3)
d1=cov(y4)
d2=cov(y4,1)
d3=corrcoef(y4)
12.实现对信号3*sin(t)+0.1(rand
(1)-0.5)的一维二阶平均值数字滤波。
t=0:
0.01:
10;
s=3*sin(t);
x=3*sin(t)+0.1*(rand
(1)-0.5);
a=1;
b=[1/21/2];
y=filter(b,a,x);
plot(t,s,'g-');
holdon
plot(t,x,'b--');
plot(t,y,'r:
');
axis([010-3030]);
xlabel('时间');
13.计算脉冲信号和单位正弦信号的卷积。
t=0:
0.2:
10;
u
(1)=1;
v=sin(t);
w=conv(u,v);
figure
subplo