完整版matlab经典习题及解答.docx

上传人:b****6 文档编号:6673700 上传时间:2023-01-08 格式:DOCX 页数:33 大小:303.04KB
下载 相关 举报
完整版matlab经典习题及解答.docx_第1页
第1页 / 共33页
完整版matlab经典习题及解答.docx_第2页
第2页 / 共33页
完整版matlab经典习题及解答.docx_第3页
第3页 / 共33页
完整版matlab经典习题及解答.docx_第4页
第4页 / 共33页
完整版matlab经典习题及解答.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

完整版matlab经典习题及解答.docx

《完整版matlab经典习题及解答.docx》由会员分享,可在线阅读,更多相关《完整版matlab经典习题及解答.docx(33页珍藏版)》请在冰豆网上搜索。

完整版matlab经典习题及解答.docx

完整版matlab经典习题及解答

第1章MATLAB概论

1.1与其他计算机语言相比拟,MATLAB语言突出的特点是什么?

MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。

1.2MATLAB系统由那些局部组成?

MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个局部组成。

1.4MATLAB操作桌面有几个窗口?

如何使某个窗口脱离桌面成为独立窗口?

又如何将脱离出去的窗口重新放置到桌面上?

在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock……菜单项就可以将独立的窗口重新防止的桌面上。

1.5如何启动M文件编辑/调试器?

在操作桌面上选择“建立新文件〞或“翻开文件〞操作时,M文件编辑/调试器将被启动。

在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。

1.6存储在工作空间中的数组能编辑吗?

如何操作?

存储在工作空间的数组可以通过数组编辑器进行编辑:

在工作空间浏览器中双击要编辑的数组名翻开数组编辑器,再选中要修改的数据单元,输入修改内容即可。

1.7命令历史窗口除了可以观察前面键入的命令外,还有什么用途?

命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。

1.8如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?

当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的SetPath菜单项来完成。

在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时那么优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。

1.9在MATLAB中有几种获得帮助的途径?

在MATLAB中有多种获得帮助的途径:

〔1〕帮助浏览器:

选择view菜单中的Help菜单项或选择Help菜单中的MATLABHelp菜单项可以翻开帮助浏览器;

〔2〕help命令:

在命令窗口键入“help〞命令可以列出帮助主题,键入“help函数名〞可以得到指定函数的在线帮助信息;

〔3〕lookfor命令:

在命令窗口键入“lookfor关键词〞可以搜索出一系列与给定关键词相关的命令和函数

〔4〕模糊查询:

输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。

注意:

lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。

第2章MATLAB矩阵运算根底

2.1在MATLAB中如何建立矩阵

,并将其赋予变量a?

>>a=[573;491]

2.2有几种建立矩阵的方法?

各有什么优点?

可以用四种方法建立矩阵:

①直接输入法,如a=[2573],优点是输入方法方便简捷;

②通过M文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改;

③由函数建立,如y=sin(x),可以由MATLAB的内部函数建立一些特殊矩阵;

④通过数据文件建立,该方法可以调用由其他软件产生数据。

2.3在进行算术运算时,数组运算和矩阵运算各有什么要求?

进行数组运算的两个数组必须有相同的尺寸。

进行矩阵运算的两个矩阵必须满足矩阵运算规那么,如矩阵a与b相乘〔a*b〕时必须满足a的列数等于b的行数。

2.4数组运算和矩阵运算的运算符有什么区别?

在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。

2.5计算矩阵

之和。

>>a=[535;374;798];

>>b=[242;679;836];

>>a+b

ans=

777

91413

151214

2.6求

的共轭转置。

>>x=[4+8i3+5i2-7i1+4i7-5i;3+2i7-6i9+4i3-9i4+4i];

>>x’

ans=

2.7计算

的数组乘积。

>>a=[693;275];

>>b=[241;468];

>>a.*b

ans=

12363

84240

2.8“左除〞与“右除〞有什么区别?

在通常情况下,左除x=a\b是a*x=b的解,右除x=b/a是x*a=b的解,一般情况下,a\b≠b/a。

2.9对于

,如果

,求解X。

>>A=[492;764;357];

>>B=[372628]’;

>>X=A\B

X=

2.10:

,分别计算a的数组平方和矩阵平方,并观察其结果。

>>a=[123;456;789];

>>a.^2

ans=

149

162536

496481

>>a^2

ans=

303642

668196

102126150

2.11

,观察a与b之间的六种关系运算的结果。

>>a=[123;456];

>>b=[8–74;362];

>>a>b

ans=

010

101

>>a>=b

ans=

010

101

>>a

ans=

101

010

>>a<=b

ans=

101

010

>>a==b

ans=

000

000

>>a~=b

ans=

111

111

2.12

,在进行逻辑运算时,a相当于什么样的逻辑量。

相当于a=[11011]。

2.13在sin(x)运算中,x是角度还是弧度?

在sin(x)运算中,x是弧度,MATLAB规定所有的三角函数运算都是按弧度进行运算。

2.14角度

,求x的正弦、余弦、正切和余切。

>>x=[304560];

>>x1=x/180*pi;

>>sin(x1)

ans=

>>cos(x1)

ans=

>>tan(x1)

ans=

>>cot(x1)

ans=

2.15用四舍五入的方法将数组[2.4568]取整。

>>b=[2.4568];

>>round(b)

ans=

2649

2.16矩阵

,分别对a进行特征值分解、奇异值分解、LU分解、QR分解及Chollesky分解。

>>[v,d]=eig(a,b)

v=

d=

13.548200

04.83030

0

>>a=[912;563;827];

>>[u,s,v]=svd(a)

u=

s=

15.523400

04.56480

0

v=

>>[l,u]=lu(a)

l=

1.000000

0.55561.00000

u=

0

>>[q,r]=qr(a)

q=

r=

00

>>c=chol(a)

c=

0

2.17将矩阵

组合成两个新矩阵:

〔1〕组合成一个4⨯3的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即

〔2〕按照a、b、c的列顺序组合成一个行矢量,即

>>a=[42;57];

>>b=[71;83];

>>c=[59;62];

%

(1)

>>d=[a(:

)b(:

)c(:

)]

d=

475

586

219

732

%

(2)

>>e=[a(:

);b(:

);c(:

)]'

e=

452778135692

或利用〔1〕中产生的d

>>e=reshape(d,1,12)

ans=

452778135692

第3章数值计算根底

3.2求解多项式x3-7x2+2x+40=0的根。

>>r=[1-7240];

>>p=roots(r);

3.4计算多项式乘法(x2+2x+2)(x2+5x+4)。

>>c=conv([122],[154])

c=

1716188

3.5计算多项式除法(3x3+13x2+6x+8)/(x+4)。

>>d=deconv([31368],[14])

d=

312

3.7计算多项式

的微分和积分。

>>p=[4–12–145];

>>pder=polyder(p);

>>pders=poly2sym(pder)

>>pint=polyint(p);

>>pints=poly2sym(pint)

pders=

12*x^2-24*x-14

pints=

x^4-4*x^3-7*x^2+5*x

3.8解方程组

>>a=[290;3411;226];

>>b=[1366]';

>>x=a\b

x=

1矩阵

,计算a的行列式和逆矩阵。

>>a=[42-6;754;349];

>>ad=det(a)

>>ai=inv(a)

ad=

-64

ai=

3.12y=sin(x),x从0到2π,∆x=0.02π,求y的最大值、最小值、均值和标准差。

>>x=0:

0.02*pi:

2*pi;

>>y=sin(x);

>>ymax=max(y)

>>ymin=min(y)

>>ymean=mean(y)

>>ystd=std(y)

ymax=

1

ymin=

-1

ymean=

ystd=

3.13

,计算x的协方差、y的协方差、x与y的互协方差。

>>x=[12345];

>>y=[246810];

>>cx=cov(x)

>>cy=cov(y)

>>cxy=cov(x,y)

cx=

cy=

10

cxy=

3.15有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:

pi/5:

4*pi,用三次样条法进行插值。

>>x0=0:

pi/5:

4*pi;

>>y0=sin(x0).*exp(-x0/10);

>>x=0:

pi/20:

4*pi;

>>y=spline(x0,y0,x);

>>plot(x0,y0,'or',x,y,'b')

第4章符号数学根底

4.1创立符号变量有几种方法?

MATLAB提供了两种创立符号变量和表达式的函数:

sym和syms。

sym用于创立一个符号变量或表达式,用法如x=sym(‘x’)及f=sym(‘x+y+z’),syms用于创立多个符号变量,用法如symsxyz。

f=sym(‘x+y+z’)

相当于

symsxyz

f=x+y+z

4.2下面三种表示方法有什么不同的含义?

〔1〕f=3*x^2+5*x+2

〔2〕f='3*x^2+5*x+2'

〔3〕x=sym('x')

f=3*x^2+5*x+2

〔1〕f=3*x^2+5*x+2

表示在给定x时,将3*x^2+5*x+2的数值运算结果赋值给变量f,如果没有给定x那么指示错误信息。

〔2〕f='3*x^2+5*x+2'

表示将字符串'3*x^2+5*x+2'赋值给字符变量f,没有任何计算含义,因此也不对字符串中的内容做任何分析。

〔3〕x=sym('x')

f=3*x^2+5*x+2

表示x是一个符号变量,因此算式f=3*x^2+5*x+2就具有了符号函数的意义,f也自然成为符号变量了。

4.3用符号函数法求解方程at2+b*t+c=0。

>>r=solve('a*t^2+b*t+c=0','t')

r=

[1/2/a*(-b+(b^2-4*a*c)^(1/2))]

[1/2/a*(-b-(b^2-4*a*c)^(1/2))]

4.5求矩阵

的行列式值、逆和特征根。

>>symsa11a12a21a22;

>>A=[a11,a12;a21,a22]

>>AD=det(A)%行列式

>>AI=inv(A)%逆

>>AE=eig(A)%特征值

A=

[a11,a12]

[a21,a22]

AD=

a11*a22-a12*a21

AI=

[-a22/(-a11*a22+a12*a21),a12/(-a11*a22+a12*a21)]

[a21/(-a11*a22+a12*a21),-a11/(-a11*a22+a12*a21)]

AE=

[1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]

[1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]

4.6因式分解:

>>symsx;

>>f=x^4-5*x^3+5*x^2+5*x-6;

>>factor(f)

ans=

(x-1)*(x-2)*(x-3)*(x+1)

4.7

,用符号微分求df/dx。

>>symsax;

>>f=[a,x^2,1/x;exp(a*x),log(x),sin(x)];

>>df=diff(f)

df=

[0,2*x,-1/x^2]

[a*exp(a*x),1/x,cos(x)]

第5章根本图形处理功能

5.1绘制曲线

,x的取值范围为[-5,5]。

>>x=-5:

0.2:

5;

>>y=x.^3+x+1;

>>plot(x,y)

5.2有一组测量数据满足

,t的变化范围为0~10,用不同的线型和标记点画出a=0.1、和三种情况下的曲线。

>>t=0:

0.5:

10;

>>y1=exp(-0.1*t);

>>y2=exp(-0.2*t);

>>y3=exp(-0.5*t);

>>plot(t,y1,'-ob',t,y2,':

*r',t,y3,'-.^g')

5.3在5.1题结果图中添加标题

,并用箭头线标识出各曲线a的取值。

>>title('\ity\rm=e^{-\itat}')

>>title('\ity\rm=e^{-\itat}','FontSize',12)

>>text(t(6),y1(6),'\leftarrow\ita\rm=0.1','FontSize',11)

>>text(t(6),y2(6),'\leftarrow\ita\rm=0.2','FontSize',11)

>>text(t(6),y3(6),'\leftarrow\ita\rm=0.5','FontSize',11)

5.4在5.1题结果图中添加标题

和图例框。

>>title('\ity\rm=e^{-\itat}','FontSize',12)

>>legend('a=0.1','a=0.2','a=0.5')

5.5表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。

第1次

第2次

第3次

第4次

第5次

第6次

观测点1

3

6

7

4

2

8

观测点2

6

7

3

2

4

7

观测点3

9

7

2

5

8

4

观测点4

6

4

3

2

7

4

>>y=[3696;6774;7323;4252;2487;8744];

>>bar(y)

>>bar(y,’stack’)

5.6x=[6649715638],绘制饼图,并将第五个切块别离出来。

>>x=[6649715638];

>>L=[00001];

>>pie(x,L)

5.7

,当x和y的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、外表图和带渲染效果的外表图。

>>[x,y]=meshgrid([-2:

.2:

2]);

>>z=x.*exp(-x.^2-y.^2);

>>mesh(x,y,z)

>>subplot(2,2,1),plot3(x,y,z)

>>title('plot3(x,y,z)')

>>subplot(2,2,2),mesh(x,y,z)

>>title('mesh(x,y,z)')

>>subplot(2,2,3),surf(x,y,z)

>>title('surf(x,y,z)')

>>subplot(2,2,4),surf(x,y,z),shadinginterp

>>title('surf(x,y,z),shadinginterp')

5.8绘制peaks函数的外表图,用colormap函数改变预置的色图,观察色彩的分布情况。

>>surf(peaks(30));

>>colormap(hot)

>>colormap(cool)

>>colormap(lines)

5.9用sphere函数产生球外表坐标,绘制不通明网线图、透明网线图、外表图和带剪孔的外表图。

>>[x,y,z]=sphere(30);

>>mesh(x,y,z)

>>mesh(x,y,z),hiddenoff

>>surf(x,y,z)

>>z(18:

30,1:

5)=NaN*ones(13,5);

>>surf(x,y,z)

5.10将题中的带剪孔的球形外表图的坐标改变为正方形,以使球面看起来是圆的而不是椭圆的,然后关闭坐标轴的显示。

axissquare

axisoff

第6章M文件编程

6.1命令文件与函数文件的主要区别是什么?

〔1〕命令文件是一系列命令的组合,函数文件的第一行必须用function说明;

〔2〕命令文件没有输入参数,也不用返回参数,函数文件可以接受输入参数,也可以返回参数;

〔3〕命令文件处理的变量为工作空间变量,函数文件处理的变量为函数内部的局部变量,也可以处理全局变量。

6.2如何定义全局变量?

用关键字global可以把一个变量定义为全局变量,在M文件中定义全局变量时,如果在当前工作空间已经存在了相同的变量,系统将会给出警告,说明由于将该变量定义为全局变量,可能会使变量的值发生改变,为防止发生这种情况,应该在使用变量前先将其定义为全局变量。

6.4if语句有几种表现形式?

〔1〕if表达式

语句体

end

〔2〕if表达式

语句体1

else

语句体2

end

〔3〕if表达式1

语句体1

elseif表达式2

语句体2

end

〔4〕if表达式1

语句体1

elseif表达式2

语句体2

else

语句体3

end

6.5说明break语句和return语句的用法。

break语句用于终止for循环和while循环的执行。

如果遇到break语句,那么退出循环体,继续执行循环体外的下一行语句。

在嵌套循环中,break只存在于最内层的循环中。

return语句用于终止当前的命令序列,并返回到调用的函数或键盘,也用于终止keyboad方式,在MATLAB中,被调用的函数运行结束后会自动返回调用函数,使用return语句时将return插入被调用函数的某一位置,根据某种条件迫使被调用函数提前结束并返回调用函数。

6.7编制一个解数论问题的函数文件:

取任意整数,假设是偶数,那么用2除,否那么乘3加1,重复此过程,直到整数变为1。

functionc=collatz(n)

%collatz

%Classic“3n+1〞Ploblemfromnumbertheory

c=n;

whilen>1

ifrem(n,2)==0

n=n/2;

else

n=3*n+1;

end

c=[cn];

end

6.8有一组学生的考试成绩〔见表〕,根据规定,成绩在100分时为总分值,成绩在90~99之间时为优秀,成绩在80~89分之间时为良好,成绩在60~79分之间为及格,成绩在60分以下时为不及格,编制一个根据成绩划分等级的程序。

学生姓名

成绩

72

83

56

94

100

88

96

68

54

65

Name=['王','张','刘','李','陈','杨','于','黄','郭','赵'];

Marks=[72,83,56,94,100,88,96,68,54,65];

%划分区域:

总分值(100),优秀(90-99),良好(80-89),及格(60-79),不及格(<60)。

n=length(Marks);

fori=1:

n

a{i}=89+i;

b{i}=79+i;

c{i}=69+i;

d{i}=59+i;

end;

c=[d,c];

%根据学生的分数,求出相应的等级。

fori=1:

n

switchMarks(i)

case100%得分为100时

Rank(i,:

)='总分值';

casea%得分在90~99之间

Rank(i,:

)='优秀';

caseb%得分在80~89之间

Rank(i,:

)='良好';

casec%得分在60~79之间

Rank(i,:

)='及格';

otherwise%得分低于60。

Rank(i,:

)='不及格';

end

end

%将学生姓名,得分,级等信息打印出来。

disp('')

disp([

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1