当前位置:文档之家› matlab课后习题答案1到6章

matlab课后习题答案1到6章

matlab课后习题答案1到6章
matlab课后习题答案1到6章

习题二

1.如何理解?矩阵是MATLAB

最基本的数据对象??

答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。

因此,矩阵是MATLAB最基本、最重要的数据对象。

2.设A和B是两个同维同大小

的矩阵,问:

(1)A*B和A.*B的值是否

相等?

答:不相等。

(2) A./B和B.\A的值是

否相等?

答:相等。

(3)A/B和B\A的值是否

相等?

答:不相等。

(4)A/B和B\A所代表的

数学含义是什么?

答:A/B等效于B的逆右乘

A矩阵,即A*inv(B),而B\A

等效于B矩阵的逆左乘A矩

阵,即inv(B)*A。

3.写出完成下列操作的命令。

(1)将矩阵A第2~5行中第

1, 3, 5列元素赋给矩

阵B。

答:B=A(2:5,1:2:5); 或

B=A(2:5,[1 3 5])

(2)删除矩阵A的第7号元

素。

答:A(7)=[]

(3)将矩阵A的每个元素值

加30。

答:A=A+30;

(4)求矩阵A的大小和维

数。

答:size(A);

ndims(A);

(5)将向量t的0元素用

机器零来代替。

答:t(find(t==0))=eps;

(6)将含有12个元素的向

量x转换成34

?矩

阵。

答:reshape(x,3,4);

(7)求一个字符串的ASCII

码。

答:abs(‘123’); 或

double(‘123’);

(8)求一个ASCII码所对应

的字符。

答:char(49);

4.下列命令执行后,L1、L2、

L3、L4的值分别是多少?

A=1:9;B=10-A;...

L1=A==B;

L2=A<=5;

L3=A>3&A<7;

L4=find(A>3&A<7);

答:L1的值为[0, 0, 0, 0, 1, 0,

0, 0, 0]

L2的值为[1, 1, 1, 1,

1, 0, 0, 0, 0]

L3的值为[0, 0, 0, 1,

1, 1, 0, 0, 0]

L4的值为[4, 5, 6]

5.已知

23100.7780

4145655

325032

69.5454 3.14

A

-

??

??

-

??

=

??

??

-

??

完成下列操作:

(1)取出A的前3行构成矩

阵B,前两列构成矩阵

C,右下角32

?子矩

阵构成矩阵D,B与C

的乘积构成矩阵E。

答:B=A(1:3,:);

C=A(:,1:2);

D=A(2:4,3:4);

E=B*C;

(2)分别求E

E|D、~E|~D和

find(A>=10&A<25)。

答:E

01

00

01

??

??

??

??

??

E&D=

11

01

11

??

??

??

??

??

E|D=

11

11

11

??

??

??

??

??

~E|~D=

00

10

00

??

??

??

??

??

find(A>=10&A<25)=

[1; 5]。

6.当A=[34, NaN, Inf, -Inf, -pi,

eps, 0]时,分析下列函数的执

行结果:all(A),any(A),

isnan(A),isinf(A),

isfinite(A)。

答:all(A)的值为0

any(A) 的值为1

isnan(A) 的值为[ 0, 1, 0, 0,

0, 0, 0]

isinf(A) 的值为[ 0, 0, 1, 1,

0, 0, 0]

isfinite(A) 的值为[1, 0, 0,

0, 1, 1, 1]

7.用结构体矩阵来存储5名学

生的基本情况数据,每名学生

的数据包括学号、姓名、专业

和6门课程的成绩。

答:student(1).id='0001';

student(1).name='Tom';

student(1).major='compu

ter';

student(1).grade=[89,78,67,90,86,85]; 8.

建立单元矩阵B 并回答有关问题。 B{1,1}=1; B{1,2}='Brenden'; B{2,1}=reshape(1:9,3,3); B{2,2}={12,34,2;54,21,3;4,23,67};

(1) size(B)和ndims(B)的

值分别是多少? 答:size(B) 的值为2, 2。

ndims(B) 的值为2。

(2) B(2)和B(4)的值分别是

多少?

答:B(2)=147258369??

????????

B(4)=

[12][34][2][54][21][3][4][23][67]??????????

(3) B(3)=[]和B{3}=[]执行

后,B 的值分别是多少? 答:当执行B(3)=[]后,

B={1, [1, 4, 7; 2, 5,

8; 3, 6, 9], {12, 34, 2; 54, 21, 3; 4, 23, 67}} 当执行B{3}=[]后,

B={1,[]; [1, 4, 7; 2, 5,

8; 3, 6, 9], {12, 34, 2; 54, 21, 3; 4, 23, 67}} 习题三 1.

写出完成下列操作的命令。 (1)

建立3阶单位矩阵A 。

答:A=eye(3); (2)

建立5×6随机矩阵A ,其元素为[100,200]范围内的随机整数。 答

round(100+(200-100)*ra nd(5,6));

(3) 产生均值为1,方差为0.2的500个正态分布的随机数。

答:1+sqrt(0.2)*randn(5,100); (4)

产生和A 同样大小的幺矩阵。 答:ones(size(A)); (5)

将矩阵A 对角线的元素加30。 答:A+eye(size(A))*30; (6)

从矩阵A 提取主对角线元素,并以这些元素构成对角阵B 。 答:B=diag(diag(A)); 2.

使用函数,实现方阵左旋90o 或右旋90o 的功能。例如,原矩阵为A ,A 左旋后得到B ,右旋后得到C 。

147102581136912A ??

??=??

????

101112789456123B ??

??

?

?=??????

321654987121110C ??

??

?

?=??????

答:

B=rot90(A);

C=rot90(A,-1);

3. 建立一个方阵A ,求A 的逆矩阵和A 的行列式的值,并验证

A 与A -1是互逆的。 答:A=rand(3)*10; B=inv(A);

C=det(A);

先计算B*A ,再计算

A*B ,由计算可知B*A=A*B ,即A 〃A -1= A -1〃A 是互逆。

4.

求下面线性方程组的解。

1231231

242232101238

x x x x x x x x +-=??

-+=??+=?

答:

A=[4,2,-1;3,-1, ;12,3,0];

b=[2;10;8]; x=inv(A)*b

方程组的解为

x= 6.000026.666727.3333-??

????????

5.

求下列矩阵的主对角线元素、上三角阵、下三角阵、秩、范数、条件数和迹。 (1)

112

35142305211150

9A -????-?

?=???

???

(2)

0.434328.9421B ??

=??

-??

答:

(1)

取主对角线元素: diag(A); 上三角阵: triu(A); 下三角阵: tril(A); 秩:

rank(A); 范数:

norm(A,1); 或 norm(A);

norm(A,inf);

条件数: cond(A,1); 或 cond(A,2); 或

cond(A,inf)

迹: trace(A);

(2)【请参考(1)】。

6.

求矩阵A 的特征值和相应的特征向量。 1

10.5110.250.50.252A ????=??????

答: [V,D]=eig(A);

习题四

1. 从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。

答: a=input('请输入4位整数:

'); A=[a/1000,a/100,a/10,a ]; A=fix(rem(A,10)); A=rem(A+7,10);

b=A(3)*1000+A(4)*100+A(1)*10+A(2);

disp(['加密后的值为:

',num2str(b)]); 2.

分别用if 语句和switch 语句实现以下计算,其中a 、b 、c 的值从键盘输入。

2, 0.5 1.5sin , 1.5 3.5

ln , 3.5 5.5

c ax bx c x y a b x x c b x x ?

?++≤

=+≤

答:(1) 用if 语句实现计算: a=input('请输入a 的值:'); b=input('请输入b 的值:'); c=input('请输入c 的值:'); x=input('请输入x 的值:'); if x>=0.5 & x<1.5 y=a*x^2+b*x+c;

end

if x>=1.5 & x<3.5 y=a*((sin(b))^c)+x;

end

if x>=3.5 & x<5.5 y=log(abs(b+c/x));

end

disp(['y=',num2str(y)]);

(2) 用switch 语句实现计

算:

a=input('请输入a 的值:'); b=input('请输入b 的值:'); c=input('请输入c 的值:'); x=input('请输入x 的值:');

switch fix(x/0.5)

case {1,2}

y=a*x^2+b*x+c;

case num2cell(3:6) y=a*((sin(b))^c)+x; case num2cell(7:10) y=log(abs(b+c/x)); end

disp(['y=',num2str(y)]); 3.

产生20个两位随机整数,输出其中小于平均值的偶数。 答: A=fix(10+89*rand(1,20)); sum=0;

for i=1:20

sum=sum+A(i);

end B=A(find(A<(sum/20))); C=B(find(rem(B,2)==0));

disp(C);

4.

输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB 的max 函数、min 函数来实现。 答:

(1)

用循环结构实现:

v_max=0; v_min=0; for i=1:20

x=input(['请输入第',

num2str(i), '数:']);

if x> v_max

v_max=x;

end; if x< v_min

v_min=x; end;

end

disp(['最大数为:', num2str(v_max)]); disp(['最小数为:', num2str(v_min)]); (2)

用max 函数、min 函数实现: for i=1:5

A(i)=input(['请输入第

', num2str(i), '数:']); end

disp(['最大数为:', num2str(max(A))]); disp(['最小数为:', num2str(min(A))]);

5.

已知:

2363

12222s =+++++ ,分别用循环结构和调用MATLAB 的sum 函数求s 的

值。 答: (1) 用循环结构实现:

s=0; for i=0:63 s=s+2^i; end s (2) 调用sum 函数实现:

s=0:63; s=2.^s; sum(s) 6.

当n 分别取100、1000、10000时,求下列各式的值。 (1)

11111

1(1)(ln 2)234n n +-+-++-+= (2)

1111()3574

π-+-+= (3)

1111

1()4166443n +++++= (4)

224466(2)(2)133557(21)(21)2n n n n π??????????????=

? ????? ????-?+??????????

要求分别用循环结构和向量

运算(使用sum 或prod 函数)来实现。 答: (1) 用循环结构实现: sum=0; for k=1:100

sum=sum+(-1)^(k+1)/k;

end sum

使用sum 函数:

x=[];

for k=1:10000

x=[x, (-1)^(k+1)/k];

end

sum(x)

(2) 用循环结构实现: sum=0; for k=1:100

sum=sum+(-1)^(k+1)/(2*

k-1);

end sum

使用sum 函数: x=[]; for k=1:100

x=[x, (-1)^(k+1)/(2*k-1)]; end

sum(x)

(3) 用循环结构实现: sum=0; for k=1:100

sum=sum+1/(4^k);

end sum

使用sum 函数实现:

x=[]; for k=1:100

x=[x, 1/(4^k)]; end

sum(x)

(4) 用循环结构实现: t=1; for k=1:100

t=t*(((2*k)*(2*k))/((2

*k-1)*(2*k+1)));

end t

使用prod 函数实现: x=[]; for k=1:100

x=[x,

((2*k)*(2*k))/((2*k-1)*(2*k+1))];

end prod(x)

7. 编写一个函数文件,求小于任意自然数n 的斐波那契(Fibnacci )数列各项。斐波那契数列定义如下:

12121, 1

1, 2, 2

n

n n f n f n f f f n --==??

==??=+>? 答:

function x=fibnacci(n) for i=1:n if i<=2 x(i)=1;

else

x(i)=x(i-1)+x(i-2);

end end 8.

编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。

答: 函数文件myfnc.m : function [x, y]= myfnc(A,

B)

try

x=A*B;

catch x=[];

end y=A.*B;

命令文件myexe.m :

A=input('请输入矩阵A :'); B=input('请输入矩阵B :'); [x, y]=myfnc(A, B); if length(x)==0

display('两矩阵的维数不匹配,无法进行乘积运算!');

else

disp('矩阵A 和矩阵B 的乘积为:'); x

end

disp('矩阵A 和矩阵B 的点乘为:');

y 9.

先用函数的递归调用定义一

个函数文件求

1n

m

i i

=∑,然后

调用该函数文件求1005010

2

1

1

1

1

k k k k k k ===++∑∑∑。

答: 函数文件myfnc.m : function

sum=myfnc(n,

m) if n<=1 sum=1; else

sum= myfnc (n-1, m)+n^m; end

在命令窗口中调用myfnc.m 文

计算

100

50

10

2

1111k k k k k k

===++∑∑∑:

sum=myfnc(100, 1)+

myfnc(50, 2)+myfnc(10,-1)

10. 写出下列程序的输出结果。

s=0;

a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a for j=1:4

if

rem(k(j),2)~=0

s=s+k(j);

end

end

end s

答:执行结果为 s=108

命令文件exe.m 执行后的结果为: x =

4 12 20 y=

2 4 6 第五章

1. (1) x=-10:0.1:10; y=100./(1+x.^2); plot(x,y)

(2) x=-10:0.1:10;

y=1/(2*pi)*exp(-x.^2/2); plot(x,y)

(3) ezplot('x^2+y^2=1') (4)

t=-10:0.1:10; x=t.^2; y=5*t.^3; plot(x,y) 2.

(1)

theta=0:0.01:2*pi; rho=5*cos(theta)+4; polar(theta,rho) (2)

theta=0.001:0.1:2*pi; rho=12./sqrt(theta); polar(theta,rho)

(3) theta=0.001:0.1:2*pi; rho=5./cos(theta)-7; polar(theta,rho)

(4)

theta=0.001:0.1:2*pi; rho=pi/3.*theta.^2; polar(theta,rho) 3. (1)

t=0:pi/100:2*pi; x=cos(t);

y=sin(t); z=t;

plot3(x,y,z) (2)

u=0:pi/100:2*pi; v=0:pi/100:2*pi; x=(1+cos(u)).*cos(v); y=(1+cos(u)).*sin(v); z=sin(u); plot3(x,y,z) (3) (4) 5.

plot 函数:

>> x=linspace(-10,10,200); >> y=[]; >> for x0=x if x0>0

y=[y,x0.^2+(1+x0).^(1/4)+5]; elseif x0==0 y=[y,0]; elseif x0<0

y=[y,x0.^3+sqrt(1-x0)-5]; end end >> plot(x,y)

fplot 函数:

fplot('(x<0).*(x.^3+sqrt(1-x)-5)+(x==0).*0+(x>0).*(x.^2+(1+x).^(1/4)+5)',[-10,10])

第六章

1.

A=randn(10,5)

(1)mean(A) ;均值std(A) ;标准方差

(2)max(max(A)) ;最大元素min(min(A)) ;最小元素

(3)B=sum(A,2) ;A每行元素的和sum(B) ;A全部元素之和

(4)sort(A) ;A的每列元素按升序排列

sort(A,2,’descend’) ;A的每行元素按将序排列

2.

(1)

(2)

X=[1 4 9 16 25 36 49 64 81 100];

Y=1:10;

X1=1:100;

Y1=interp1(X,Y,X1,'cubic')

3.

x=[165 123 150 123 141];

y=[187 126 172 125 148];

P=polyfit(x,y,3)

P =

1.0e+003 *

-0.0000 0.0013 -0.1779 8.4330

所以它的线性拟合曲线为:p(x)=1.3x2—177.9x+8433

4.

(1)P1=[0 3 2];P2=[5 -1 2];P3=[1 0 -0.5];

P=conv(conv(P1,P2),P3)

P =

0 15.0000 7.0000 -3.5000 0.5000 -2.0000 -2.0000

所以P(x)=15x5+7x4-3.5x3+0.5x2-2x-2

(2)

roots(P)

ans =

0.7071

0.1000 + 0.6245i

0.1000 - 0.6245i

-0.7071

-0.6667

(3)

i=0:10;

xi=0.2*i;

polyval(P,xi)

ans =

-2.0000 -2.3920

-2.6112 -1.7024 2.7104

15.0000 42.1120 94.1408

184.9056 332.5264

560.0000

5.

(1)

建立函数文件:

function f=fxy(u)

x=u(1);y=u(2);

f=3.*x.^2+2*x.*y+y.^2

在命令窗口中输入以下命令:

[U,fmin]=fminsearch('fxy',[1,1])

结果:

U =

1.0e-004 *

-0.0675 0.1715

fmin =

1.9920e-010

(2)

f=inline('-sin(x)-cos(x.^2)');

fmax=fminbnd(f,0,pi)

fmax =

0.7310

6.

(1)x=[pi/6 pi/4 pi/3];

f=inline('sin(x).^2+cos(x).^2');

dx=diff(f([x,5*pi/12]))/(pi/12)

可参见第157页例题6.19

dx =

0 0 0

x=pi/2时单独计算:

x=pi/2;

f=inline('sin(x).^2+cos(x).^2');

diff(f([x,pi]))/(pi/2)

ans =

(2)

x=1:3;

f=inline('sqrt(x.^2+1)');

dx=diff(f([x,4]))

结果:

dx =

0.8219 0.9262

0.9608

7.(1)

f=inline('sin(x).^5.*sin(5*x)');

quad(f,0,pi)

ans =

0.0982

(2)

f=inline('(1+x.^2)./(1+x.^4)');

quad(f,-1,1)

ans =

2.2214

(3)

f=inline('x.*sin(x)./(1+cos(x).^2)

');

quad(f,0,pi)

ans =

2.4674

(4)

f=inline('abs(cos(x+y))');

dblquad(f,0,pi,0,pi)

ans =

6.2832

8.

N=64; %采样点数

T=5; %采样时间终

t=linspace(0,T,N); %给出N个

采样时间ti(i=1:N)

y=exp(-t); %求各采样点样

本值y

dt=t(2)-t(1); %采样周期

f=1/dt; % 采样频率

Y=fft(y); %计算y的快速傅里叶变换Y

F=Y(1:N/2+1); %F(k)=Y( k)

f=f*(0:N/2)/N; %使频率轴f从0开始

plot(f,abs(F)) %绘制振幅-频率图

9.

(1)

矩阵求逆法:

A=[2 3 5;3 7 4;1 -7 1];

b=[10;3;5];

x=inv(A)*b

x =

-1.8060

-0.5373

3.0448

矩阵除法法:

A=[2 3 5;3 7 4;1 -7 1];

b=[10;3;5];

x=A\b

x =

-1.8060

-0.5373

3.0448

矩阵分解法:

A=[2 3 5;3 7 4;1 -7 1];

b=[10;3;5];

[L,U]=lu(A);

x=U\(L\b)

x =

-1.8060

-0.5373

3.0448

(2)方法同(1)

10.

函数文件:line_solution(A,b) function

[x,y]=line_solution(A,b)

[m,n]=size(A);

y=[];

if norm(b)>0

if rank(A)==rank([A,b])

if rank(A)==n

disp('原方程组有唯一解x');

x=A\b;

else

disp('原方程组有无穷个解,特解为

x,齐次方程组的基础解系为y');

x=A\b;

y=null(A,'r');

end

disp('方程组无解');

x=[];

end

else

disp('原方程组有零解x');

x=zeros(n,1);

if rank(A)

disp('方程组有无穷个解,基础解系

为y');

y=null(A,'r');

end

end

程序:

A=[2 1 -1 1;4 2 -2 1;2 1 -1 -1];

b=[1;2;1];

[x,y]=line_solution(A,b)

结果:

原方程组有无穷个解,特解为x,

齐次方程组的基础解系为y

Warning: Rank deficient, rank

= 2, tol = 4.3512e-015.

> In line_solution at 11

方程组无解

x =

[]

y =

-0.5000 0.5000

1.0000 0

0 1.0000

0 0

11.

(1)

f=inline('x-sin(x)./x');

x=fzero(f,0.5)

x =

0.8767

(2)

f=inline('(sin(x).^2).*exp(

-0.1.*x)-0.5.*abs(x)');

x=fzero(f,1.5)

x =

1.6738

12.

函数文件:

function f=fxy(u)

x=u(1)

y=u(2)

f(1)=x-0.6*sin(x)-0.3*cos(y)

f(2)=y-0.6*cos(x)+0.3*sin(y)

在命令窗口输入以下命令:

x=fsolve('fxy',[0.5,0.5],optimset

('Display','off'))

结果:

x =

0.6354 0.3734

15.

A=[-1 2 0;-1 2 -1;-1 2 -1;-1 2

-1;0 2 -1];

d=[-1;0;1];

B=spdiags(A,d,5,5);

b=[1 0 0 0 0]';

x=(inv(B)*b)'

x =

0.8333 0.6667

0.5000 0.3333 0.1667

matlab课后习题解答第二章

第2章符号运算 习题2及解答 1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度” 对象,还是“符号”符号对象 3/7+; sym(3/7+; sym('3/7+'); vpa(sym(3/7+) 〖目的〗 不能从显示形式判断数据类型,而必须依靠class指令。 〖解答〗 c1=3/7+ c2=sym(3/7+ c3=sym('3/7+') c4=vpa(sym(3/7+) Cs1=class(c1) Cs2=class(c2) Cs3=class(c3) Cs4=class(c4) c1 = c2 = 37/70 c3 = c4 = Cs1 = double Cs2 = sym Cs3 = sym Cs4 = sym 2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认 为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') 〖目的〗 理解自由符号变量的确认规则。 〖解答〗 symvar(sym('sin(w*t)'),1) ans = w symvar(sym('a*exp(-X)'),1)

ans = a symvar(sym('z*exp(j*th)'),1) ans = z 5求符号矩阵???? ??????=3332 31 232221 131211 a a a a a a a a a A 的行列式值和逆,所得结果应采用“子表达式置换”简洁化。 〖目的〗 理解subexpr 指令。 〖解答〗 A=sym('[a11 a12 a13;a21 a22 a23;a31 a32 a33]') DA=det(A) IA=inv(A); [IAs,d]=subexpr(IA,d) A = [ a11, a12, a13] [ a21, a22, a23] [ a31, a32, a33] DA = a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31 IAs = [ d*(a22*a33 - a23*a32), -d*(a12*a33 - a13*a32), d*(a12*a23 - a13*a22)] [ -d*(a21*a33 - a23*a31), d*(a11*a33 - a13*a31), -d*(a11*a23 - a13*a21)] [ d*(a21*a32 - a22*a31), -d*(a11*a32 - a12*a31), d*(a11*a22 - a12*a21)] d = 1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31) 8(1)通过符号计算求t t y sin )(=的导数 dt dy 。(2)然后根据此结果,求- =0t dt dy 和2 π = t dt dy 。 〖目的〗 diff, limit 指令的应用。 如何理解运行结果。 〖解答〗 syms t

Matlab课后习题解答

P16 Q2: 计算表达式()2 tan arccos x x -在0.25x =和0.78x π =时的函数值。 function y=jie(x) y=tan(-x.^2)*acos(x); >> jie(0.25) ans = -0.0825 >> jie(0.78*pi) ans = 0 + 0.4418i Q3:编写M 命令文件,求5010 2 1 1 1k k k k ==+ ∑∑ 的值。 a=0;b=0; for i=1:50 a=a+i*i; end for j=1:10 b=b+1/j; end c=a+b; >> c c = 4.2928e+004 P27 Q2:矩阵1234567 8 9A ????=??????,4 685563 2 2B ?? ?? =? ????? ,计算A B *,.A B *,并比较两者的区别。 >> A=[1 2 3;4 5 6;7 8 9];

>> B=[4 6 8;5 5 6;3 2 2]; >> A*B ans = 23 22 26 59 61 74 95 100 122 >> A.*B ans = 4 12 24 20 25 36 21 16 18 A*B表示A与B两矩阵相乘。 A.*B表示A与B对应元素相乘。 P34 Q2:编写一个转换成绩等级的程序,其中成绩等级转换标准为:考试分数在[] 90,100显示为优秀;分数在[) 0,60的 60,80的显示为及格;分数在[) 80,90的显示为良好;分数在[) 显示为不及格。 if x>=90 disp('优秀'); elseif x>=80 disp('良好'); elseif x>=60 disp('及格'); else disp('不及格'); end >> x=85 x = 85 良好

matlab课后习题及答案详解

第1章 MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成? MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB中有几种获得帮助的途径?

matlab程序设计第三章课后习题答案

1. p138 第6题在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。 >> t=0:0.01:pi; >> x1=t; >> y1=2*x1-0.5; >> x2=sin(3*t).*cos(t); >> y2=sin(3*t).*sin(t); >> plot(x1,y1,'r-',x2,y2,'g-') >> axis([-1,2,-1.5,1]) >> hold on >> s=solve('y=2*x-0.5','x=sin(3*t)*cos(t)','y=sin(3*t)*sin(t)'); >> plot(double(s.x),double(s.y),'*'); 截图:

p366 第4题绘制极坐标曲线,并分析对曲线形状的影响。 function [ output_args ] = Untitled2( input_args ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here theta=0:0.01:2*pi; a=input('请输入a的值:'); b=input('请输入b的值:'); n=input('请输入n的值:'); rho=a*sin(b+n*theta); polar(theta,rho,'k'); end 下面以a=1,b=1,n=1的极坐标图形为基础来分析a、b、n的影响。

对a的值进行改变:对比发现a只影响半径值的整倍变化 对b的值进行改变:对比发现b的值使这个圆转换了一定的角度

对n的值进行改变:对比发现当n>=2时有如下规律 1、当n为整数时,图形变为2n个花瓣状的图形 2、当n为奇数时,图形变为n个花瓣状的图形 分别让n为2、3、4、5

(完整版)matlab习题及答案(2)

第1章MATLAB概论 1.1与其他计算机语言相比较,MA TLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MA TLAB系统由那些部分组成? MATLAB系统主要由开发环境、MA TLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MA TLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MA TLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MA TLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。

matlab基础练习题(带答案)

Matlab 基础练习题 常量、变量、表达式 1、 MATLAB 中,下面哪些变量名是合法的?( ) (A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。 (A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( ) (A )eps (B )none (C )zero (D )exp 4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放 一个中文字符‘啊’需要占用2个字节。( 错,都是2个字节 ) 5、 判断:MA TLAB 中,i 和j ( 对 ) 6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。( 错,后面还有很多位小数 ) 7、 在MA TLAB 中,若想计算的5 1)3.0sin(21+= πy 值,那么应该在MA TLAB 的指令窗中 输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。 8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字 节。 9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。 数组 1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序 的逆序排列输出,应该使用下面的( )指令。 (A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,A 是一个字二维数组,要获取A 的行数和列数,应该使用的MATLAB 的命令是( )。 (A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A) 3、 在MATLAB 中,用指令x=1:9生成数组x 。现在要把x 数组的第二和第七个元素都 赋值为0,应该在指令窗中输入( ) (A )x([2 7])=(0 0) (B )x([2,7])=[0,0] (C )x[(2,7)]=[0 0] (D )x[(2 7)]=(0 0) 4、 在MA TLAB 中,依次执行以下指令:clear;A=ones(3,4); A(:)=[-6:5];这时, 若在指令窗中输入指令b=A(:,2)',那么,MATLAB 输出的结果应该是( ) (A )b = -3 -2 -1 (B )b = -2 -1 0 1 (C )b = -5 -1 3 (D )b = -5 -2 1 4 5、 在MA TLAB 中,A = 1:9,现在执行如下指令L1 = ~(A>5),则MATLAB 的执行结果应 该是L1 =___ 1 1 1 1 1 0 0 0 0___。

matlab课后习题答案

第4章数值运算 习题 4 及解答 1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff 或数值梯度gradient指令计算)(t y'曲线绘制 y',然后把)(t y和)(t 在同一张图上,观察数值求导的后果。(模拟数据从prob_data401.mat获得) 〖目的〗 ●强调:要非常慎用数值导数计算。 ●练习mat数据文件中数据的获取。 ●实验数据求导的后果 ●把两条曲线绘制在同一图上的一种方法。 〖解答〗 (1)从数据文件获得数据的指令 假如prob_data401.mat文件在当前目录或搜索路径上 clear load prob_data401.mat (2)用diff求导的指令 dt=t(2)-t(1); yc=diff(y)/dt; %注意yc的长度将比y短1 plot(t,y,'b',t(2:end),yc,'r') (3)用gradent求导的指令(图形与上相似) dt=t(2)-t(1); yc=gradient(y)/dt;

plot(t,y,'b',t,yc,'r') grid on 〖说明〗 ● 不到万不得已,不要进行数值求导。 ● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级 以上。 ● 求导会使数据中原有的噪声放大。 2 采用数值计算方法,画出dt t t x y x ? =0 sin )(在]10 ,0[区间曲线,并计算)5.4(y 。 〖提示〗 ● 指定区间内的积分函数可用cumtrapz 指令给出。 ● )5.4(y 在计算要求不太高的地方可用find 指令算得。 〖目的〗 ● 指定区间内的积分函数的数值计算法和cumtrapz 指令。 ● find 指令的应用。 〖解答〗 dt=1e-4; t=0:dt:10; t=t+(t==0)*eps; f=sin(t)./t; s=cumtrapz(f)*dt; plot(t,s,'LineWidth',3) ii=find(t==4.5); s45=s(ii) s45 =

最新MATLAB基础教程-薛山第二版-课后习题答案

《MATLAB及应用》实验指导书《MATLAB及应用》实验指导书 班级:T1243-7 姓名:柏元强 学号:20120430724 总评成绩: 汽车工程学院 电测与汽车数字应用中心

目录 实验04051001 MATLAB语言基础 (1) 实验04051002 MATLAB科学计算及绘图 (18) 实验04051003 MATLAB综合实例编程 (31)

实验04051001 MATLAB语言基础 1实验目的 1)熟悉MATLAB的运行环境 2)掌握MATLAB的矩阵和数组的运算 3)掌握MATLAB符号表达式的创建 4)熟悉符号方程的求解 2实验内容 第二章 1.创建double的变量,并进行计算。 (1)a=87,b=190,计算 a+b、a-b、a*b。 clear,clc a=double(87); b=double(190); a+b,a-b,a*b (2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。 clear,clc a=uint8(87); b=uint8(190); a+b,a-b,a*b 2.计算: (1) () sin 60

(2) e3 (3) 3cos 4??π ??? clear,clc a=sind(60) b=exp(3) c=cos(3*pi/4) 3.设2u =,3v =,计算: (1) 4 log uv v (2) () 2 2 e u v v u +- (3) clear,clc u=2;v=3; a=(4*u*v)/log(v) b=((exp(u)+v)^2)/(v^2-u) c=(sqrt(u-3*v))/(u*v) 4.计算如下表达式: (1) ()() 3542i i -+ (2) () sin 28i - clear,clc (3-5*i)*(4+2*i) sin(2-8*i) 5.判断下面语句的运算结果。 (1) 4 < 20 (2) 4 <= 20

matlab课后习题与答案

习题二 1.如何理解“矩阵是MATLAB最基本的数据对象”? 答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。 因此,矩阵是MATLAB最基本、最重要的数据对象。 2.设A和B是两个同维同大小的矩阵,问: (1)A*B和A.*B的值是否相等? 答:不相等。 (2)A./B和B.\A的值是否相等? 答:相等。 (3)A/B和B\A的值是否相等? 答:不相等。 (4)A/B和B\A所代表的数学含义是什么? 答:A/B等效于B的逆右乘A矩阵,即A*inv(B),而B\A等效于B矩阵的逆左乘A矩阵,即inv(B)*A。 3.写出完成下列操作的命令。 (1)将矩阵A第2~5行中第1, 3, 5列元素赋给矩阵B。 答:B=A(2:5,1:2:5); 或B=A(2:5,[1 3 5]) (2)删除矩阵A的第7号元素。 答:A(7)=[] (3)将矩阵A的每个元素值加30。 答:A=A+30; (4)求矩阵A的大小和维数。 答:size(A); ndims(A); (5)将向量t的0元素用机器零来代替。 答:t(find(t==0))=eps; (6)将含有12个元素的向量x转换成34 矩阵。 答:reshape(x,3,4); (7)求一个字符串的ASCII码。 答:abs(‘123’); 或double(‘123’); (8)求一个ASCII码所对应的字符。 答:char(49);

4. 下列命令执行后,L1、L2、L3、L4的值分别是多少? A=1:9;B=10-A;... L1=A==B; L2=A<=5; L3=A>3&A<7; L4=find(A>3&A<7); 答:L1的值为[0, 0, 0, 0, 1, 0, 0, 0, 0] L2的值为[1, 1, 1, 1, 1, 0, 0, 0, 0] L3的值为[0, 0, 0, 1, 1, 1, 0, 0, 0] L4的值为[4, 5, 6] 5. 已知 23100.7780414565532503269.5454 3.14A -????-??=????-?? 完成下列操作: (1) 取出A 的前3行构成矩阵B ,前两列构成矩阵C ,右下角32?子矩阵构 成矩阵D ,B 与C 的乘积构成矩阵E 。 答:B=A(1:3,:); C=A(:,1:2); D=A(2:4,3:4); E=B*C; (2) 分别求E=10&A<25)。 答:E=10&A<25)=[1; 5]。 6. 当A=[34, NaN, Inf, -Inf, -pi, eps, 0]时,分析下列函数的执行结果:all(A), any(A),isnan(A),isinf(A),isfinite(A)。 答:all(A)的值为0 any(A) 的值为1 isnan(A) 的值为[0, 1, 0, 0, 0, 0, 0] isinf(A) 的值为[0, 0, 1, 1, 0, 0, 0] isfinite(A) 的值为[1, 0, 0,0, 1, 1, 1]

汽车理论课后作业答案MATLAB

汽车理论作业MA TLAB过程 汽车驱动力与阻力平衡图 加速度倒数-速度曲线图 0 10 20 30 40 50 60 70 80 90 100 u

汽车功率平衡图 u/(km/h)最高档等速百公里油耗曲线 Ua/(km/h)

燃油积极性-加速时间曲线 源程序: 《第一章》 m=3880; g=9.8; r=0.367; x=0.85; f=0.013; io=5.83; CdA=2.77; lf=0.218; Iw1=1.798; Iw2=3.598; Iw=lw1+lw2; ig=[6.09 3.09 1.71 1.00]; %变速器传动比 L=3.2; a=1.947; hg=0.9; n=600:1:4000;

T=-19.313+295.27* n/1000-165.44*(门/1000)人2+40.874*(门/1000)人3-3.8445*( n/IOOO).%; Ft1=T*ig(1)*io*x/r; %计算各档对应转速下的驱动力 Ft2=T*ig(2)*io*x/r; Ft3=T*ig(3)*io*x/r; Ft4=T*ig(4)*io*x/r; u1=0.377*r*n/(io*ig(1)); u2=0.377*r*n/(io*ig(2)); u3=0.377*r*n/(io*ig(3)); u4=0.377*r*n/(io*ig(4)); u=0:130/3400:130; F仁m*g*f+CdA*u”2/21.15;%计算各档对应转速下的驱动阻力 F2=m*g*f+CdA*u2.A2/21.15; F3=m*g*f+CdA*u3.A2/21.15; F4=m*g*f+CdA*u4.A2/21.15; figure(1); plot(u1,Ft1, '-r' ,u2,Ft2, '-m' ,u3,Ft3, '-k' ,u4,Ft4, '-b' ,u1,F1, '-r' ,u2,F2, '-m' ,u3,F3, ' k' ,u4,F4, '-b' , 'LineWidth' ,2) title( ' 汽车驱动力与阻力平衡图' ); xlabel( 'u_{a}/km.hA{-1}' ) ylabel( 'F/N' ) gtext( 'F_{t1}' ) gtext( 'F_{t2}' ) gtext( 'F_{t3}' ) gtext( 'F_{t4}' ) gtext( 'F_{f}+F_{w}' ) %由汽车驱动力与阻力平衡图知,他们无交点,u4在最大转速时达到最大 umax=u4(3401) Ft1max=max(Ft1); imax=(Ft1max-m*g*f)/(m*g) disp( ' 假设是后轮驱动' ); C=imax/(a/L+hg*imax/L) % 附着率 delta1=1+(Iw1+Iw2)/(m*rA2)+If*ig(1)*rA2*ioA2*x/(m*rA2); delta2=1+(Iw1+Iw2)/(m*rA2)+If*ig(2)*rA2*ioA2*x/(m*rA2); delta3=1+(Iw1+Iw2)/(m*rA2)+If*ig(3)*rA2*ioA2*x/(m*rA2); delta4=1+(Iw1+Iw2)/(m*rA2)+If*ig(4)*rA2*ioA2*x/(m*rA2); a1=(Ft1-F1)/(delta1*m); %加速度 a2=(Ft2-F2)/(delta2*m); a3=(Ft3-F3)/(delta3*m); a4=(Ft4-F4)/(delta4*m); h1=1./a1; %加速度倒数 h2=1./a2; h3=1./a3; h4=1./a4; figure(2);

matlab练习题和答案

matlab练习题和答案 控制系统仿真实验 Matlab部分实验结果 目录 实验一 MATLAB基本操 作 ............................................................................................ 1 实验二 Matlab编程 .................................................................................................... 5 实验三Matlab底层图形控制 (6) 实验四控制系统古典分析.............................................................................................12 实验五控制系统现代分析 . (15) 实验六 PID控制器的设 计 ...........................................................................................19 实验七系统状态空间设计.............................................................................................23 实验九直流双闭环调速系统仿真 . (25) 实验一 MATLAB基本操作 1 用MATLAB可以识别的格式输入下面两个矩阵 1233,,1443678,i,,,,2357,,,,2335542,i,,,, A,1357B,,,2675342, i,,3239,,,,189543,,,,1894,, 再求出它们的乘积矩阵C,并将C矩阵的右下角2×3子矩阵赋给D矩阵。赋值完成后,调 用相应的命令查看MATLAB工作空间的占用情况。 A=[1,2,3,3;2,3,5,7;1,3,5,7;3,2,3,9;1,8,9,4];

matlab课后习题答案第一章

第1章基础准备及入门 习题1及解答 1数字1.5e2,1.5e3中的哪个与1500相同吗? 〖解答〗 1.5e3 2请指出如下5个变量名中,哪些是合法的? abcd-2xyz_33chan a变量ABCDefgh 〖解答〗 2、5是合法的。 3在MATLAB环境中,比1大的最小数是多少? 〖解答〗 1+eps 4设a=-8,运行以下三条指令,问运行结果相同吗?为什么? w1=a^(2/3) w2=(a^2)^(1/3) w3=(a^(1/3))^2 〖解答〗 (1)不同。具体如下 w1=a^(2/3)%仅求出主根 w2=(a^2)^(1/3)%求出(-8)^2的主根 w3=(a^(1/3))^2%求出(-8)主根后再平方 w1= -2.0000+3.4641i w2= 4.0000 w3= -2.0000+3.4641i (2)复数的多方根的,下面是求取全部方根的两种方法: (A)根据复数方根定义 a=-8;n=2;m=3; ma=abs(a);aa=angle(a); for k=1:m%m决定循环次数 sa(k)=(aa+2*pi*(k-1))*n/m;%计算各根的相角 end result=(ma^(2/3)).*exp(j*sa)%计算各根 result= -2.0000+3.4641i 4.0000-0.0000i-2.0000-3.4641i

(B )利用多项式02 3=-a r 求根p=[1,0,0,-a^2];r=roots(p)r =-2.0000+3.4641i -2.0000-3.4641i 4.00005指令clear,clf,clc 各有什么用处? 〖解答〗clear 清除工作空间中所有的变量。clf 清除当前图形。clc 清除命令窗口中所有显示。6以下两种说法对吗?(1)“MATLAB 进行数值的表达精度与其 指令窗中的数据显示精度相同。”(2) MATLAB 指令窗中显示的数值有效位数不超过7位。” 〖解答〗 (1)否;(2)否。 7想要在MATLAB 中产生二维数组???? ??????=987654321S ,下面哪些指令能实现目的? (A )S=[1,2,3;4,5,6;7,8;9] (B )S=[123;456;789] (C )S=[1,2,3;4,5,6;7,8,9] %整个指令在中文状态下输入 〖解答〗 前两种输入方法可以,后一种方法不行。8试为例1.3-5编写一个解题用的M 脚本文件? 〖解答〗 直接点击新文件图标,出现M 文件编辑器窗口;在该M 文件编辑器中,输入例1.3-5中的全部指令;并另存为p109.m ,便得到所需的脚本文件。

MATLAB课后习题集附标准答案

第2章MATLAB概论 1、与其他计算机语言相比较,MA TLAB语言突出的特点是什么? 答:起点高、人机界面适合科技人员、强大而简易的作图功能、智能化程度高、功能丰富,可扩展性强. 2、MA TLAB系统由那些部分组成? 答:开发环境、MATLAB数学函数库、MATLAB语言、图形功能、应用程序接口 3、安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 答:在安装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装.第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可.矚慫润厲钐瘗睞枥庑赖。 4、MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 答:在MATLAB操作桌面上有五个窗口,在每个窗口的右下角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口称为独立的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面称为独立窗口,在独立窗口的view菜单中选择Dock,菜单项就可以将独立的窗口重新防止的桌面上. 5、如何启动M文件编辑/调试器? 答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动.在命令窗口中键入edit命令时也可以启动M文件编辑/调试器. 6、存储在工作空间中的数组能编辑吗?如何操作? 答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可.彈贸摄尔霁毙攬砖卤庑。 7、命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中.謀荞抟箧飆鐸怼类蒋薔。 8、如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成.在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上.厦礴恳蹒骈時盡继價骚。 9、在MA TLAB中有几种获得帮助的途径? 答:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器.茕桢广鳓鯡选块网羈泪。 (2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到鹅娅尽損鹌惨歷茏鴛賴。 指定函数的在线帮助信息. (3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数.籟丛妈羥为贍偾蛏练淨。 (4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数. 注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息.預頌圣鉉儐歲龈讶骅籴。

MATLAB 实用教程 课后习题答案

第二章 1.计算复数3+4i与5-6i的乘积。 a=3+4i b=5-6i c=a*b 2.构建结构体Students,属性包含Name、age和Email,数据包括{’Zhang’,18,*‘Zhang@16 https://www.doczj.com/doc/a814433316.html,’,’Zhang@https://www.doczj.com/doc/a814433316.html,’+}、{’Wang’,21,[]}和{’Li’,[],[]},构建后读取所有Name属性值,并且修改’Zhang’的Age属性值为19。 Students(1).Age=18 Students(1).Email='zhang@https://www.doczj.com/doc/a814433316.html,','zhang@https://www.doczj.com/doc/a814433316.html,' Students(2).Name='Wang' Students(2).Age=21 Students(2).Email=[] Students(3).Name='Li' Students(3).Age=[] Students(3).Email=[] https://www.doczj.com/doc/a814433316.html, Student(1).Age(1)=19 Student.Age 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,5,9....,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]

Matlab习题与答案2

实验二二维/三维数据的可视化 一、实验目的 熟悉掌握简单的图形绘制函数;掌握MATLAB常用的二维、三维图形及其他图形绘制函数的使用方法;熟悉图形句柄的使用。 二、实验环境 硬件环境:计算机一台 软件环境:Matlab 6.0 三、实验内容 作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。 1、二维绘图 (1)plot函数 函数格式:plot(x,y) 其中x和y为坐标向量 函数功能:以向量x、y为轴,绘制曲线。 例1 在区间0≤X≤2 内,绘制正弦曲线Y=SIN(X),其程序为: x=0:pi/100:2*pi; y=sin(x); plot(x,y) 例2同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x 为X轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。 例3 用不同线型和颜色重新绘制Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,'go',x,y2,'b-.') 其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为

圆圈;b表示蓝色,-.表示图形线型为点划线。 在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。 title(‘加图形标题'); xlabel('加X轴标记'); ylabel('加Y轴标记'); text(X,Y,'添加文本'); 例4 在坐标范围0≤X≤2π,-2≤Y≤2内重新绘制正弦曲线,其程序为: x=linspace(0,2*pi,60);生成含有60个数据元素的向量X y=sin(x); plot(x,y); axis ([0 2*pi -2 2]);设定坐标轴范围 2、subplot函数 (1)subplot(m,n,p) 该命令将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。 例5 在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:x=linspace(0,2*pi,60); y=sin(x); z=cos(x); t=sin(x)./(cos(x)+eps); eps为系统内部常数 ct=cos(x)./(sin(x)+eps); subplot(2,2,1); 分成2×2区域且指定1号为活动区 plot(x,y); title('sin(x)'); axis ([0 2*pi -1 1]); subplot(2,2,2); plot(x,z); title('cos(x)'); axis ([0 2*pi -1 1]); subplot(2,2,3); plot(x,t); title('tangent(x)'); axis ([0 2*pi -40 40]); subplot(2,2,4); plot(x,ct); title('cotangent(x)');

matlab课后习题及答案详解

第2章 MATLAB 矩阵运算基础 2.1 在MA TLAB 中如何建立矩阵?? ? ???194375,并将其赋予变量a ? >> a=[5 7 3;4 9 1] 2.2 有几种建立矩阵的方法?各有什么优点? 可以用四种方法建立矩阵: ①直接输入法,如a=[2 5 7 3],优点是输入方法方便简捷; ②通过M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; ③由函数建立,如y=sin(x),可以由MATLAB 的内部函数建立一些特殊矩阵; ④通过数据文件建立,该方法可以调用由其他软件产生数据。 2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求? 进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数。 2.4 数组运算和矩阵运算的运算符有什么区别? 在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b 为矩阵乘,a.*b 为数组乘。 2.5 计算矩阵??????????897473535与??? ? ? ?????638976242之和。 >> a=[5 3 5;3 7 4;7 9 8]; >> b=[2 4 2;6 7 9;8 3 6]; >> a+b ans = 7 7 7 9 14 13 15 12 14 2.6 求?? ? ? ??+-+-+-+-++=i 44i 93i 49i 67i 23i 57i 41i 72i 53i 84x 的共轭转置。 >> x=[4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i]; >> x’ ans = 4.0000 - 8.0000i 3.0000 - 2.0000i

MATLAB习题及参考答案

习题: 1, 计算?? ????=572396a 与??? ???=864142b 的数组乘积。 2, 对于B AX =,如果?? ?? ? ?????=753467294A ,??????????=282637B ,求解X 。 3, 已知:?? ?? ? ?????=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。 4, 角度[]604530=x ,求x 的正弦、余弦、正切和余切。(应用sin,cos, 5, 将矩阵?? ?? ??=7524a 、??????=3817b 和??? ???=2695c 组合成两个新矩阵: (1)组合成一个43的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵 元素,第三列为按列顺序排列的c 矩阵元素,即 ?? ??? ???? ???237 912685 574 (2)按照a 、b 、c 的列顺序组合成一个行矢量,即 []296531877254 6, 将(x -6)(x -3)(x -8)展开为系数多项式的形式。(应用poly,polyvalm) 7, 求解多项式x 3-7x 2+2x +40的根。(应用roots) 8, 求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。(应用poly,polyvalm) 9, 计算多项式9514124234++--x x x x 的微分和积分。(应用polyder,polyint ,poly2sym) 10, 解方程组??? ? ? ?????=??????????66136221143092x 。(应用x=a\b) 11, 求欠定方程组?? ? ???=???? ??5865394742x 的最小范数解。(应用pinv)

相关主题
文本预览
相关文档 最新文档