格雅Get 习题第13章.docx
- 文档编号:11535022
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:23
- 大小:78.75KB
格雅Get 习题第13章.docx
《格雅Get 习题第13章.docx》由会员分享,可在线阅读,更多相关《格雅Get 习题第13章.docx(23页珍藏版)》请在冰点文库上搜索。
格雅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项。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 格雅Get 习题第13章 格雅 Get 习题 13
![提示](https://static.bingdoc.com/images/bang_tan.gif)