admin 管理员组

文章数量: 887021


2023年12月23日发(作者:full weight of)

第二章

1.计算复数3+4i与5-6i的乘积。

a=3+4i

b=5-6i

c=a*b

2.构建结构体Students,属性包含Name、age和Email,数据包括{’Zhang’,18,[‘*************’,’*************’]}、{’Wang’,21,[]}和{’Li’,[],[]},构建后读取所有Name属性值,并且修改’Zhang’的Age属性值为19。

Students(1).Age=18

Students(1).Email='*************','*************'Students(2).Name='Wang'

Students(2).Age=21

Students(2).Email=[]

Students(3).Name='Li'

Students(3).Age=[]

Students(3).Email=[]

Student(1).Age(1)=19

3.用满矩阵和稀疏矩阵存储方式分别构造下属矩阵:

A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0]

A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0]

S=sparse(A)

S=sparse([2,1,4],[1,2,4],[1,1,1],4,5)

4.采用向量构造符得到向量[1,,41].

A=1:4:41

5.按水平和竖直方向分别合并下述两个矩阵:A=[1 0 0;1 1 0;0 0 1],B=[2 3 4;5 6 7;8 9 10]

A=[1 0 0;1 1 0;0 0 1]

B=[2 3 4;5 6 7;8 9 10]

C=[A B]

D=[A;B]

6.分别删除第五题两个结果的第2行。

A=[1 0 0;1 1 0;0 0 1]

B=[2 3 4;5 6 7;8 9 10]

C=[A B]

D=[A;B]

C(2,:)=[]

D(2,:)=[]

7.分别将第5题两个结果的第2行最后3列的数值改为[11 12 13]。

A=[1 0 0;1 1 0;0 0 1]

B=[2 3 4;5 6 7;8 9 10]

C=[A B]

D=[A;B]

C(2,4:6)=[11 12 13]

D(2,:)=[11 12 13]

8.分别查看第5题两个结果的各方向长度

A=[1 0 0;1 1 0;0 0 1]

B=[2 3 4;5 6 7;8 9 10]

C=[A B]

D=[A;B]

a=size(C)

b=size(D)

9.分别判断pi是否为字符串和浮点数。

tf=ischar(pi)

tf=isfloat(pi)

10.分别将第5题两个结果均转换为2*9的矩阵。

A=[1 0 0;1 1 0;0 0 1]

B=[2 3 4;5 6 7;8 9 10]

C=[A B]

D=[A;B]

E=reshape(C,2,9)

F=reshape(D,2,9)

11.计算第5题矩阵A的转秩。

A=[1 0 0;1 1 0;0 0 1]

B=transpose(A)

12.分别计算第5题矩阵A和B的A+B、A.B和AB。

A=[1 0 0;1 1 0;0 0 1]

B=[2 3 4;5 6 7;8 9 10]

C=A+B

D=A.*B

E=AB

13.判断第5题矩阵A和B中哪些元素值不小于4。

A=[1 0 0;1 1 0;0 0 1]

B=[2 3 4;5 6 7;8 9 10]

A>=4

B>=4

14.分别用函数strcat()和矩阵合并符合并如下字符串:’The picture is’和’very good’。

a=' The picture is '

b=' very good '

c=strcat(a,b)

d=[a b]

15.创建字符串数组,其中元素分别为’Picture’和’Pitch’。

a=char('Picture','Pitch')

16.在第14题结果中查找字符串’e’。

a=' The picture is '

b=' very good '

c=strcat(a,b)

d=[a b]

e=strfind(c,'e')

f=strfind(d,'e')

17.在第15题结果中匹配字符串’Pi’。

a=char('Picture','Pitch')

x=strmatch('Pi',a)

18.将字符串’very good’转换为等值的整数。

a=double('very good')

19.将十进制的50转换为二进制的字符串。

a=dec2bin(50)

20将十六进制的字符串’50’转换为三进制的整数。

a=hex2dec('50')

第三章

1.计算矩阵A的二范数、行列式、秩、化零空间和正交空间。

A=[17 24 1 8 50;23 5 7 14 49;4 6 13 20 43;10 12 19 21 62;11 18 25 2 56]

N=norm(A)

A_det=det(A)

Z=null(A)

Q=orth(A)

b=rank(A)

A=[17 24 1 8 50;23 5 7 14 49;4 6 13 20 43;10 12 19 21 62;11 18 25 2 56]

2.求解线性方程组AX=B,其中A如第1题所示,B=[1 1 1 1 1]的转秩。

A=[17 24 1 8 50;23 5 7 14 49;4 6 13 20 43;10 12 19 21 62;11 18 25 2 56]

B=transpose([1 1 1 1 1])

X=AB

3.对矩阵A进行LU分解和Schur分解,其中A如第1题。

A=[17 24 1 8 50;23 5 7 14 49;4 6 13 20 43;10 12 19 21 62;11 18 25 2 56]

[L1,U1]=lu(A)

[U2,L2]=schur(A)

4对矩阵A的前4行进行QR分解和奇异值分解,其中A如第1题。

A=[17 24 1 8 50;23 5 7 14 49;4 6 13 20 43;10 12 19 21 62;11 18 25 2 56]

B=A(1:4,:)

[Q,R]=qr(B)

[U S V]=svd(B)

5计算矩阵A的特征值及对应的特征向量,判断矩阵A是否可对角化,其中A如第1题。

A=[17 24 1 8 50;23 5 7 14 49;4 6 13 20 43;10 12 19 21 62;11 18 25 2 56]

[V,D]=eig(A)

a=inv(V)*A*V-D

6.计算矩阵A的指数、开平方和余弦值,其中A如第1题。

A=[17 24 1 8 50;23 5 7 14 49;4 6 13 20 43;10 12 19 21 62;11 18 25 2 56]

Y1=expm(A)

Y2=sqrtm(A)

Y3=funm(A,@cos)

7.计算矩阵A每个元素的指数、开平方和余弦值(元素单位为度),其中A如第1题。

A=[17 24 1 8 50;23 5 7 14 49;4 6 13 20 43;10 12 19 21 62;11 18 25 2 56]

Y1=exp(A)

Y2=sqrt(A)

Y3=cosd(A)

8.计算复数矩阵C每个元素的模、相角和共轭。

C=[3+4i 2 –i -i;2 -2 0]。

C=[3+4i 2-i -i;2 -2 0]

Y1=abs(C)

Y2=angle(C)

Y3=conj(C)

9.分别使用函数fix()、floor()、ceil()和round(),计算第8题中的相角结果。

C=[3+4i 2-i -i;2 -2 0]

Y1=fix(C)

Y2=floor(C)

Y3=ceil(C)

Y4=round(C)

10.将2-i的模结果近似为有理数,并以数值形式显示。

a=2-i

Y1=abs(a)

Y2=rats(Y1)

11.计算,其中m=4!和n是42与35的最大公因式。

n=gcd(42,35)

m=factorial(4)

c=nchoosek(m,n)

12.将球坐标系中的点(1,1,1)分别转换到笛卡尔坐标系和极坐标系。

[a,b,c]=sph2cart(1,1,1)

[d,e,f]=cart2pol(a,b,c)

第四章

1.创建脚本实现随机数序列的各元素由大到小排列,其中随机数服从U(-5,9)的均匀分布,并且序列长度为10。

clear

clc

A=unifrnd(-5,9,1,10)

n=10;

for i=1:n-1

for j=i+1:n

if A(i)

tmpx=A(j);

A(j)=A(i);

A(i)=tmpx;

end

end

end

A

2.创建函数实现指定长度的随机数序列的各元素由大到小排列,其中随机数服从N(3,9)的高斯分布。

clear

clc

n=input('data length')

A=normrnd(3,9,1,n);

B=sort(A,'descend')

for i=1:n-1

for j=i+1:n

if A(i)

tmpx=A(j);

A(j)=A(i);

A(i)=tmpx;

end

end

end

A

3.提示用户输入1或2,如输入1时,执行第一题的脚本;如输入2时,提示用户输入随机数序列长度,然后执行第二题的函数。

clear

clc

r=input('1 or 2')

switch r

case 1

disp('��������d1')

edit d1.m

case 2

n=input('��������������ò������¤��������')

disp('��������d2')

edit d2.m

end

y1

Sin(x)

 y24.分别选用if或switch结构实现下述函数表示。f(x,y)=Cos(x)

sin(x)cos(x)╰otherwise

0---------------------xa1/ba(xa)----------axbf(x)=1--------------------bxc1/cd(xd)---------cxd0--------------------xd

5.分别用for和while结构实现如下函数计算。

Sin(x)-cos(x)+sin(2x)+cos(2x)+……+sin(nx)+(-1)^xCos(nx)

expAt+AexpAt+…..+A^nxexpA^nt,其中A=[1 2 3;0 1 2;0 0 1]

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=-2:2;

x2=-2:2;

x=[x1 x2];

y1=x1'*sin(x2);

y2=x2'*cos(x1);

y=[y1 y2];

plot(x,y,'d')

y1x1sin(x2)=在x1,x2[-2,2]上的曲线,其中数据点为菱形。

y2x2cos(x1)

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([-3 3 -1.5 1.5])

8.在第七题结果的基础上绘制网格。

x=-2:0.01:2

y=sin(x).*cos(x)

plot(x,y,'-r')

axis([-3 3 -1.5 1.5])

gridon

9.在第七题结果的基础上取10个点,并进行排序。

x=-2:0.01:2

y=sin(x).*cos(x)

plot(x,y,'-r')

axis([-3 3 -1.5 1.5])

[x,y]=ginput(10)

[b c]=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[-pi pi]')

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;

for b=1:j

for a=1:i

if A(a,b)>1

num=num+1;

end

end

end

14.首先生成100个服从U(-2,6)的均匀分布随机数,其次按行排成10*10的矩阵,再次将数据保存在文件中,然后清除内存和屏幕,最后计算数据中大于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,[10 10])

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_','w');

a=fprintf(fid,'%g',C)

fclose('all');

fid=fopen('e16_','r');

b=fscanf(fid,'%d',[10 10])

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,[1 1])

status2=fseek(fid,2,'cof')

a2=fread(fid,[1 1])

status3=fseek(fid,5,'eof')

a3=fread(fid,[1 5])

status4=feof(fid)

fclose(fid);

第六章

1.将多项式A的系数向量形式[1 2 4 2 1]转换为完整形式,并将多项式B的完整形式

2x^5+x^2+3x+5表示为系数向量形式。

syms x;

A=[1 2 4 2 1]

[s,len]=poly2str(A,'x')

B=2*x^5+x^2+3*x+5;

b=[2 0 0 1 3]

2.针对第一题A,计算自变量为1~10

A=[1 2 4 2 1];

p=[1 2 3 4 5 ;6 7 8 9 10];

r_A=polyval(A,p)

3.针对第一题A 和B,计算A和B的乘法和除法。

p1=[1 2 4 2 1];

p2=[2 0 0 1 3 5];

w=conv(p1,p2)

[q,r] = deconv(p2,p1);

sq=poly2str(q, 'x')

sr=poly2str(r, 'x')

4.针对第一题A 和B,计算A/B的微分。

A=[1 2 4 2 1];

B=[2 0 0 1 3 5];

[q,d]=polyder(A,B)

5.针对第一题A,计算其积分。

A=[1 2 4 2 1];

s1=polyint(A)

6.针对如下矩阵,计算其对应特征多项式。[1 1 1;2 3 4;4 9 16]

A=[1 1 1;2 3 4;4 9 16;];

p=poly(A);

sp= poly2str(p, 'x')

r=roots(p)

eA=eig(A)

7.针对第一题A,B,将A/B展成部分分式。

p1=[1 2 4 2 1];

p2=[2 0 0 1 3 5];

[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;

hold on;

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/2 1/2];

y=filter(b,a,x);

plot(t,s,'g-');

hold on

plot(t,x,'b--');

plot(t,y,'r:');

axis([0 10 -30 30]);

xlabel('时间');

13.计算脉冲信号和单位正弦信号的卷积。

t=0:0.2:10;

u(1)=1;

v=sin(t);

w=conv(u,v);

figure

subplot(3,1,1);

stem(u);

title('u');

subplot(3,1,2);

stem(v);

title('v');

subplot(3,1,3);

stem(w);

title('w');

14.对比第十二题中滤波前后的频谱。

15.针对函数y=sin(x1)x[0,10],绘制其图像,并计算最大值、最小值和零点。

x^21f = @(x)sin((x+1)./(x.^2+1));

fplot(f,[0 10],1e-4,'r-');

title('y=sin((x+1)/(x^2+1))');

xlabel('x');

ylabel('y');

grid;

x_min=fminbnd(f,0,10)

x_zero = fzero(f,[-5,10])

16.针对第十五题的函数,计算在[0,10]上的积分。

f = @(x)sin((x+1)./(x.^2+1));

q = quad(f,0,10)

17.计算11-y00expxydxdy。

f=@(x,y) exp(x*y).*(x+y<=1)

dblquad(f,0,1,0,1,1e-6,@quadl)

18.通过在功能函数中使用含参函数,实现计算函数f(x)=x^2+ax+b的零点。

19.计算微分方程y’’’+2y’’+y=expt(t[0,2])且初始值为0的解。

20.计算微分方程(y^2+1)y’=y(t[0,2])且初始值为0的解。

第七章

1.计算一元三次方程ax^3+bx^2+cx+d=0(a≠0)根的通式。

solve('a*x^3+b*x^2+c*x+d=0')

2.计算定积分bsinxexpxdx。

asyms x a b;

int (sin(x)*exp(x),a,b)

3.计算导数(sinxexpx)’.

x=sym('x');

diff(sin(x)*exp(x))

4.计算矩阵A=(aij)的2*2矩阵,和B=(bij)的2*2矩阵的加减乘。

syms a11 a12 a21 a22 b11 b12 b21 b22;

A=[a11,a12;a21,a22]

B=[b11,b12;b21,b22]

add=A+B

dec=A-B

mul=A*B

5.针对第四题中的A和B,计算2A,sinB和A1B.

syms a11 a12 a21 a22 b11 b12 b21 b22;

A=[a11,a12;a21,a22]

B=[b11,b12;b21,b22]

index=2^A

RES=sin(B)

res=inv(A)*B

6.因式分解符号多项式xn-1(n=1,2,3,……10),并化简结果。

syms x;

n=1:10;

x = x(ones(size(n)));

p=x.^n-1;

[p,factor(p)]'

7.针对第六题的符号多项式,计算x=pi时具有3位有效数字的值。

x=pi;

n=1:10;

x = x(ones(size(n)));

p=x.^n-1;

vpa(p,3)

8.针对第四题中的A,计算其逆、行列式、特征值和约当标准型。

syms a11 a12 a21 a22 ;

A=[a11,a12;a21,a22]

A_inv=inv(A)

A_det=det(A)

A_eig=eig(A)

A_jordan=jordan(A)

9.计算sinxexpx在x→-∞时的极限。

syms x;

f=sin(x)*exp(x);

x_limit=limit(f,x,inf)

10.计算expx在x=0处的泰勒级数,并计算级数和。

syms x;

f=exp(x);

r = taylor(f,50,x,0)

dxydy13.计算微分方程组的解。

dy-xdtans=dsolve('Dx=y','Dy=-x','x','y','t')

disp(ans.x)

disp(ans.y)


本文标签: 矩阵 计算 函数