格雅Get 习题第13章.docx

上传人:b****3 文档编号:11535022 上传时间:2023-06-01 格式:DOCX 页数:23 大小:78.75KB
下载 相关 举报
格雅Get 习题第13章.docx_第1页
第1页 / 共23页
格雅Get 习题第13章.docx_第2页
第2页 / 共23页
格雅Get 习题第13章.docx_第3页
第3页 / 共23页
格雅Get 习题第13章.docx_第4页
第4页 / 共23页
格雅Get 习题第13章.docx_第5页
第5页 / 共23页
格雅Get 习题第13章.docx_第6页
第6页 / 共23页
格雅Get 习题第13章.docx_第7页
第7页 / 共23页
格雅Get 习题第13章.docx_第8页
第8页 / 共23页
格雅Get 习题第13章.docx_第9页
第9页 / 共23页
格雅Get 习题第13章.docx_第10页
第10页 / 共23页
格雅Get 习题第13章.docx_第11页
第11页 / 共23页
格雅Get 习题第13章.docx_第12页
第12页 / 共23页
格雅Get 习题第13章.docx_第13页
第13页 / 共23页
格雅Get 习题第13章.docx_第14页
第14页 / 共23页
格雅Get 习题第13章.docx_第15页
第15页 / 共23页
格雅Get 习题第13章.docx_第16页
第16页 / 共23页
格雅Get 习题第13章.docx_第17页
第17页 / 共23页
格雅Get 习题第13章.docx_第18页
第18页 / 共23页
格雅Get 习题第13章.docx_第19页
第19页 / 共23页
格雅Get 习题第13章.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

格雅Get 习题第13章.docx

《格雅Get 习题第13章.docx》由会员分享,可在线阅读,更多相关《格雅Get 习题第13章.docx(23页珍藏版)》请在冰点文库上搜索。

格雅Get 习题第13章.docx

格雅Get习题第13章

习题第1-3章

1.熟悉MATLAB的环境设置和编辑工具。

参考答案:

〔略〕

2.分别用help,lookfor命令查找函数log的帮助信息,区分其不同之处。

>>helplog

>>lookforlog

其余略

参考答案:

3.执行以下指令,观察其运行结果,理解其意义:

〔1〕[12;34]+10-2i

〔2〕[12;34].*[0.10.2;0.30.4]

(3)[12;34].\[56;78]

(4)[12;34]./[56;78]

(5)[12;34].^2

(6)[12;34]^2

(1)

>>[12;34]+10i-2i

ans=

 

(2)

>>[12;34].*[0.10.2;0.30.4]

ans=

 

(3)

>>[12;34].\[56;78]

ans=

 

(4)

>>[12;34]./[56;78]

ans=

 

(5)

>>[12;34].^2

ans=

14

916

(6)

>>[12;34]^2%两个矩阵相乘,见第三章

ans=

710

1522

4.执行以下指令,观察其运行结果,理解各数学函数的意义:

〔1〕exp([12;34])

〔2〕prod([123;456])

〔3〕log([1101001000])

〔4〕log10([1101001000])

(5)[a,b]=min([102015;403025])

〔1〕

>>exp([12;34])%等于[exp

(1),exp

(2);exp(3),exp(4)]

ans=

 

〔2〕

>>prod([123;456])%各列数,相乘

ans=

41018

〔3〕

>>log([1101001000])%各元素求自然对数

ans=

〔4〕

>>log10([1101001000])%各元素求常用对数

ans=

0123

(5)

>>[a,b]=min([102015;403025])

a=

102015

b=

111

%a为各列最小值,b为最小值所在的行号

5.设x=23.4567;y=0.1234;z=-9.876;执行以下指令,观察其运行结果,理解各函数的意义:

〔1〕fix(x),fix(y),fix(z)

(2)floor(x),floor(y),floor(z)

(3)ceil(x),ceil(y),ceil(z)

(1)

>>fix(x),fix(y),fix(z)

ans=

23

ans=

0

ans=

-9

(2)

>>floor(x),floor(y),floor(z)

ans=

23

ans=

0

ans=

-10

(3)

>>ceil(x),ceil(y),ceil(z)

ans=

24

ans=

1

ans=

-9

6.在命令窗口键入表达式

并求x=2,y=4时,z的值。

>>x=2;y=4;

>>z=x^2+exp(x+y)-y*log(x)-3

z=

7.执行以下指令,观察其运行结果,理解其意义:

(1)[123;456]>=[321;654]

(2)find([102030;405060]>=[201030;605040])

(3)[a,b]=find([102030;405060]>=[201030;605040])

(4)all([123;456]>4)

(5)any([123;456]>4)

(1)

>>[123;456]>=[321;654]

ans=

011

011

(2)

>>find([102030;405060]>=[201030;605040])

ans=

3

4

5

6

(3)

>>[a,b]=find([102030;405060]>=[201030;605040])

a=

1

2

1

2

b=

2

2

3

3

(4)

>>all([123;456]>4)

ans=

000

(5)

>>any([123;456]>4)

ans=

011

8执行以下指令,观察其运行结果,变量类型和字节数,理解其意义。

(1)clear;a=1,b=num2str(a),c=a>0,a==b,a==c,b==c

(2)clear;fun='abs(x)',x=-2,eval(fun),double(fun)

(1)

>>clear;a=1,b=num2str(a),c=a>0,a==b,a==c,b==c

a=1

b=1

c=1

ans=

0

ans=

1

ans=

0

%a,b,c的值尽管都是1,但数据类型分别为数值,字符,逻辑,注意a与c相等,但他们不等于b

>>whos

NameSizeBytesClass

a1x18doublearray

ans1x11logicalarray

b1x12chararray

c1x11logicalarray

Grandtotalis4elementsusing12bytes

(2)

>>clear;fun='abs(x)',x=-2,eval(fun),double(fun)

fun=

abs(x)

x=

-2

ans=

2

ans=

97981154012041

%double(fun)输出的分别是字符a,b,s,(,x,)的ASCII码

9.设A=

,B=

,计算2A,A-B,A*B,A.*B,A’,A/B,B\A,AB-1和A.^B

>>A=[123;456;789];B=[0-12;357;018];

>>2*A,A-B

ans=

246

81012

141618

ans=

131

10-1

771

>>A*B,A.*B

ans=

61240

152791

2442142

ans=

0-26

122542

0872

>>A/B,B\A,A*inv(B)

ans=

 

ans=

 

ans=

 

>>A.^B

ans=

1.0e+007*

 

10.A=

,B=

,在命令窗口创立A,B矩阵并对其作如下操作:

〔1〕提取A的第1行和第3行形成C;

〔2〕交换A的第1行和第2行生成A1,交换B的第1列和第3列生成B1;

〔3〕从横向和纵向合并A和B形成C1和C2;

〔4〕构建矩阵D,C的第1,第2行由A的第1行和第2行的第1和第2列元素构成,D的第3,第4行由B的第2和第3行的第2和第列元素构成。

>>clear;A=[4-22;-305;153];B=[134;-20-3;2-11];

〔1〕

>>C=A([1,3],:

C=

4-22

153

>>A1=A;A1([2,1],:

)=A1([1,2],:

A1=

-305

4-22

153

(2)

>>B1=A;B1(:

[3,1])=B1(:

[1,3])

B1=

2-24

50-3

351

(3)

>>C1=[A,B],C2=[A;B]

C1=

4-22134

-305-20-3

1532-11

C2=

4-22

-305

153

134

-20-3

2-11

(4)

>>D=[A(1:

2,1:

2);B(2:

3,2:

3)]

D=

4-2

-30

0-3

-11

>>

11.生成一个

随机矩阵,将其对角形元素的值加1

参考答案:

>>A=rand(3)

A=

 

>>A=A+eye(3)

A=

 

12.函数

在〔-2,2〕内有两个根。

取步长h=0.05,通过计算函数值求得函数的最小值点和两个根的近似解。

〔提示:

求近似解等价于求函数绝对值的最小值点〕

>>x=-2:

0.05:

2;f=x.^4-2.^x;

>>[fmin,min_index]=min(f)

fmin=

-1.3907%最小值

min_index=

54%最小值点编址

>>x(min_index)

ans=

0.6500%最小值点

>>[f1,x1_index]=min(abs(f))%求近似根--绝对值最小的点

f1=

x1_index=

24

>>x(x1_index)

ans=

>>x(x1_index)=[];f=x.^4-2.^x;%删去绝对值最小的点以求函数绝对值次小的点

>>[f2,x2_index]=min(abs(f))%求另一近似根--函数绝对值次小的点

f2=

x2_index=

65

>>x(x2_index)

ans=

13.先不用MATLAB判断下面语句将显示什么结果?

size(B)又得什么结果?

>>B1={1:

9;'DavidBeckham'};

>>B2={180:

-10:

100;[100,80,75;77,60,92;672890;1008978]};

>>B=[B1,B2];

>>B{1,2}(8)

>>D=cell2struct(B,{'f1','f2'},2);

然后用MATLAB验证你的判断。

进一步,观察变量类型和字节数,并用Workspace工具栏显示B和D的内容。

参考答案:

〔略〕

 

第二章

1.作出以下函数的图形。

(1)曲线

-2≤x≤2(要求分别用plot和fplot完成)

(2)椭圆

(3)空间曲线x=sint,y=cost,z=cos(2t),0

(4)三条曲线合成图y1=sinx,y2=sinxsin(10x),y3=-sinx,0

%

(1)

x=-2:

0.1:

2;y=x.^2.*sin(x.^2-x-2);plot(x,y)

y=inline('x^2*sin(x^2-x-2)');fplot(y,[-22])

%

(2)参数方法

t=linspace(0,2*pi,100);

x=2*cos(t);y=3*sin(t);plot(x,y)

%(3)

t=linspace(0,2*pi);

x=sin(t);y=cos(t);z=cos(2*t);

plot3(x,y,z)

%(4)

x=linspace(0,pi,100);

y1=sin(x);y2=sin(x).*sin(10*x);y3=-sin(x);

plot(x,y1,x,y2,x,y3)

 

(1)

(2)

(3)r=1-cos3(7θ)

(1)

>>theta=0:

0.01:

6*pi;

>>rho=5*sin(4*theta/3);

>>polar(theta,rho)

>>

(2)

>>theta=0:

0.01:

6*pi;

>>rho=5*sin(theta/3);

>>polar(theta,rho)

(3)

>>theta=0:

0.01:

6*pi;

>>rho=1-cos(7*theta).^3;

>>polar(theta,rho)

 

(换!

)3.作以下分段函数的图形

3.5(6分)

3.

>>x=-2:

0.05:

2;

>>y=(-x-1).*(x<-1)+(abs(x)<=1).*sqrt(1-x.^2)+(x-1).*(x>1);

>>plot(x,y)

4.在同一个图中画出正弦函数和余弦函数在定义域的图形,然后变换它的线型和点型,并加上各种标注.

>>x=-2*pi1:

2*pi;

>>plot(x,sin(x),x,cos(x))

其余略

5.作以下曲面的图形

(1)抛物面

,|x|<3,|y|<3

(2)马鞍面

在区域

上的图形;

(3)半球面

(4)曲面

,|x|<3,-3

%

(1)

x=-3:

0.1:

3;y=x;

[x,y]=meshgrid(x,y);

z=x.^2+y.^2;

surf(x,y,z)

%〔2〕

>>xa=-10:

0.5:

10;

>>[x,y]=meshgrid(xa);

>>z=x.^2-2*y.^2;

>>mesh(x,y,z)

%(3)

theta=linspace(0,2*pi,50);fai=linspace(0,pi/2,20);

[theta,fai]=meshgrid(theta,fai);

x=2*sin(fai).*cos(theta);

y=2*sin(fai).*sin(theta);z=2*cos(fai);

surf(x,y,z)

%(4)

x=-3:

0.1:

3;y=-3:

0.1:

13;

[x,y]=meshgrid(x,y);

z=x.^4+3*x.^2+y.^2-2*x-2*y-2*x.^2.*y+6;

surf(x,y,z)

6.用MATLAB函数表示以下函数,并作图。

clear;close;

x=-2:

0.1:

2;y=x;

[x,y]=meshgrid(x,y);

a=0.5457;b=0.7575;

p=a*exp(-0.75*y.^2-3.75*x.^2-1.5*x).*(x+y>1);

p=p+b*exp(-y.^2-6*x.^2).*(x+y>-1).*(x+y<=1);

p=p+a*exp(-0.75*y.^2-3.75*x.^2+1.5*x).*(x+y<=-1);

mesh(x,y,p)

 

〔此题改为第四章?

〕7.连续时间Lyapunov方程为

其中A=

,C=

试通过look和help的帮助用MATLAB求解。

>>lookforlyapunov

>>helplyap

>>A=[123;456;780];C=[2-5-22;-5-24-56;-22-56-16];

>>X=lyap(A,C)

X=

 

第三章

1〔省略!

〕设x为一个长度为n的数组,编写函数M文件求以下均值和标准差

,n>1

1

%Page40ex1

function[xbar,s]=ex2_1(x)

n=length(x);

xbar=sum(x)/n;

s=sqrt((sum(x.^2)-n*xbar^2)/(n-1));

例如

>>x=[81706551766690876177];

>>[xbar,s]=ex2_1(x)

xbar=

s=

 

2.求满足

的最小m值

%Page40ex2

s=log

(1);n=0;

whiles<=100

n=n+1;

s=s+log(1+n);

end

m=n

计算结果m=37

3.用循环语句形成Fibonacci数列:

k=3,4,5,…。

并验证极限〔提示:

计算至两边误差小于精度10-8〕

%Page40ex3

clear;

F

(1)=1;F

(2)=1;k=2;x=0;

e=1e-8;a=(1+sqrt(5))/2;

whileabs(x-a)>e

k=k+1;F(k)=F(k-1)+F(k-2);x=F(k)/F(k-1);

end

a,x,k

计算至k=21可满足精度

%Page40ex4

clear;tic;s=0;

fori=1:

1000000

s=s+sqrt(3)/2^i;

end

s,toc

tic;s=0;i=1;

whilei<=1000000

s=s+sqrt(3)/2^i;i=i+1;

end

s,toc

tic;s=0;

i=1:

1000000;

s=sqrt(3)*sum(1./2.^i);

s,toc

 

例3-5输入一个字符,假设为大写字母,那么输出其对应的小写字母;假设为小写字母,那么输出其对应的大写字母;假设为数字字符那么输出其对应的数值,假设为其他字符那么原样输出。

c=input('请输入一个字符','s');

ifc>='A'&c<='Z'

disp(setstr(abs(c)+abs('a')-abs('A')));

elseifc>='a'&c<='z'

disp(setstr(abs(c)-abs('a')+abs('A')));

elseifc>='0'&c<='9'

disp(abs(c)-abs('0'));

else

disp(c);

end

例3-8y=

,当n=100时,求y的值。

程序如下:

y=0;

n=100;

fori=1:

n

y=y+1/(2*i-1);

end

y

在实际MATLAB编程中,采用循环语句会降低其执行速度,所以前面的程序通常由下面的程序来代替:

n=100;

i=1:

2:

2*n-1;

y=sum(1./i);

y

6.利用循环语句计算1!

+2!

+3!

+…+n!

的值,其中n=50的值从键盘上输入。

%方法1gxcg3_8

sum=0;prd=1;

n=input('inputanumber:

n=');

fori=1:

n

prd=1;

forj=1:

i

prd=prd*j;

end

sum=sum+prd;

end

%方法2gxcg3_8b

sum=0;prd=1;

n=input('inputanumber:

n=');

fori=1:

n

sum=sum+prd(i);

end

functionprd=prud1(m)%子函数

prd=1;

forj=1:

m

prd=prd*j;

end

sum

例3-15利用函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换。

函数文件:

function[rho,theta]=tran(x,y)

rho=sqrt(x*x+y*y);

theta=atan(y/x);

调用的命令文件:

x=input('Pleaseinputx=:

');

y=input('Pleaseinputy=:

');

[rho,the]=tran(x,y);

rho

the

 

例3-22Fibonacci数列定义如下:

f1=1

f2=1

fn=fn-1+fn-2(n>2)

求Fibonacci数列的第20项。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2