第4章 MATLAB程序流程控制_习题答案
- 格式:doc
- 大小:110.00 KB
- 文档页数:26
第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命令显示详细信息.第3章 MATLAB 数值运算3.1在MA TLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ? 答:在Command Window 窗口输入操作:>> a=[5 7 3;4 9 1]3.2有几种建立矩阵的方法?各有什么优点? 答:(1)直接输入法,如a=[1 2 3 4],优点是输入方法方便简捷;(2)通过M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; (3)由函数建立,如y=sin(x),可以由MATLAB 的内部函数建立一些特殊矩阵; (4)通过数据文件建立,该方法可以调用由其他软件产生数据.3.3在进行算术运算时,数组运算和矩阵运算各有什么要求?答:进行数组运算的两个数组必须有相同的尺寸.进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数.渗釤呛俨匀谔鱉调硯錦。
matlab教程习题答案
MATLAB教程习题答案
MATLAB是一种用于数学计算、数据分析和可视化的强大工具。
它被广泛应用于工程、科学和金融领域,因此掌握它的使用对于提高工作效率和解决问题至关重要。
在学习MATLAB的过程中,许多人会遇到各种习题,下面我们将给出一些常见习题的答案,希望能帮助大家更好地理解和掌握MATLAB的使用。
1. 编写一个MATLAB程序,计算并输出1到100之间所有奇数的和。
答案:
```matlab
sum = 0;
for i = 1:100
if mod(i, 2) == 1
sum = sum + i;
end
end
disp(sum);
```
2. 编写一个MATLAB程序,生成一个5x5的随机矩阵,并计算矩阵每一行的平均值。
答案:
```matlab
A = rand(5, 5);
row_means = mean(A, 2);
disp(row_means);
```
3. 编写一个MATLAB程序,求解以下线性方程组的解:
```
2x + 3y = 8
4x - 2y = 2
```
答案:
```matlab
A = [2, 3; 4, -2];
B = [8; 2];
X = A \ B;
disp(X);
```
通过以上习题的答案,我们可以看到MATLAB的强大功能和灵活性。
掌握这些基本的使用技巧,可以帮助我们更好地应用MATLAB解决实际问题,提高工作效率。
希望大家在学习和使用MATLAB的过程中能够不断积累经验,不断提升自己的技能水平。
matlab教程习题答案MATLAB教程习题答案MATLAB是一种广泛应用于科学计算和工程领域的高级编程语言和环境。
它的强大功能和灵活性使得许多人对其感兴趣,但对于初学者来说,掌握MATLAB 可能会有一些困难。
为了帮助大家更好地理解和掌握MATLAB,下面将给出一些常见的MATLAB教程习题的答案,希望能对大家有所帮助。
1. 编写一个MATLAB程序,计算1到100之间所有偶数的和。
答案:```matlabsum = 0;for i = 2:2:100sum = sum + i;enddisp(sum);```2. 编写一个MATLAB程序,生成一个10行10列的随机矩阵,并计算该矩阵的行和列的和。
答案:```matlabmatrix = rand(10, 10);row_sum = sum(matrix, 2);col_sum = sum(matrix);disp(col_sum);```3. 编写一个MATLAB程序,计算斐波那契数列的前20个数。
答案:```matlabfibonacci = zeros(1, 20);fibonacci(1) = 1;fibonacci(2) = 1;for i = 3:20fibonacci(i) = fibonacci(i-1) + fibonacci(i-2);enddisp(fibonacci);```4. 编写一个MATLAB程序,计算一个正整数的阶乘。
答案:```matlabnum = input('请输入一个正整数:');factorial = 1;for i = 1:numfactorial = factorial * i;end```5. 编写一个MATLAB程序,求解一个二次方程的根。
假设二次方程的形式为ax^2 + bx + c = 0,其中a、b、c为用户输入的系数。
答案:```matlaba = input('请输入二次方程的系数a:');b = input('请输入二次方程的系数b:');c = input('请输入二次方程的系数c:');delta = b^2 - 4*a*c;if delta < 0disp('该二次方程无实根。
习题二1.如何理解“矩阵是MATLAB最基本的数据对象”?答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。
因此,矩阵是MATLAB最基本、最重要的数据对象。
2.设A和B是两个同维同大小的矩阵,问:(1)A*B和A.*B的值是否相等?答:(2)(3)答:(4)答:即逆左乘3.(1)答:5])(2)答:(3)答:(4)答:(5)答:(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]6.当A=[34, NaN, Inf, -Inf, -pi, eps, 0]时,分析下列函数的执行结果:all(A),any(A),isnan(A),isinf(A),isfinite(A)。
答:all(A)的值为0any(A) 的值为1isnan(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门课程的成绩。
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则fn是()。
AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是()。
D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
%Exerc ise 1(1)r oots([1 11])%Exer cise1(2)roots([3 0 -4 0 2 -1])%Exerc ise 1(3)p=zero s(1,24);p([1 17 1822])=[5 -6 8 -5];ro ots(p)%E xerci se 1(4)p1=[2 3];p2=conv(p1,p1);p3=co nv(p1, p2);p3(end)=p3(en d)-4; %原p3最后一个分量-4r oots(p3)%Exer cise2fun=inli ne('x*log(sqrt(x^2-1)+x)-sqrt(x^2-1)-0.5*x');fzer o(fun,2)%Exer cise3fun=inli ne('x^4-2^x');fplot(fun,[-2 2]);gr id on;fze ro(fu n,-1),fzer o(fun,1),f minbn d(fun,0.5,1.5)%Exe rcise 4fu n=inl ine('x*sin(1/x)','x');fp lot(f un, [-0.10.1]);x=z eros(1,10);fori=1:10, x(i)=fz ero(f un,(i-0.5)*0.01);end;x=[x,-x]%Ex ercis e 5f un=in line('[9*x(1)^2+36*x(2)^2+4*x(3)^2-36;x(1)^2-2*x(2)^2-20*x(3);16*x(1)-x(1)^3-2*x(2)^2-16*x(3)^2]','x');[a,b,c]=fso lve(f un,[0 0 0])%E xerci se 6fun=@(x)[x(1)-0.7*si n(x(1))-0.2*cos(x(2)),x(2)-0.7*cos(x(1))+0.2*sin(x(2))]; [a,b,c]=fsolv e(fun,[0.5 0.5])%E xerci se 7clear; clo se; t=0:p i/100:2*pi;x1=2+sqr t(5)*cos(t); y1=3-2*x1+sq rt(5)*sin(t);x2=3+s qrt(2)*cos(t);y2=6*sin(t);pl ot(x1,y1,x2,y2); gri d on; %作图发现4个解的大致位置,然后分别求解y1=fsolv e('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.5,2])y2=fsolv e('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.8,-2])y3=fsol ve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[3.5,-5])y4=fso lve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[4,-4])%Exerc ise 8(1)c lear;fun=inlin e('x.^2.*(x.^2-x-2)');fp lot(f un,[-2 2]);grid on;%作图观察x(1)=-2;x(2)=fminb nd(fu n,-1,-0.5);x(4)=fmi nbnd(fun,1,2);fun2=inlin e('-x.^2.*(x.^2-x-2)');x(3)=f minbn d(fun2,-0.5,0.5);x(5)=2feval(fun,x)%答案: 以上x(2)(4)是局部极小,x(1)(3)(5)是局部极大,从最后一句知道x(1)全局最大, x(4)最小。
matlab习题4答案Matlab习题4答案Matlab作为一种强大的数学计算工具,广泛应用于科学研究、工程设计和数据分析等领域。
在学习和使用Matlab过程中,习题是提高技能和理解能力的重要途径。
本文将为大家提供Matlab习题4的答案,帮助读者更好地掌握Matlab 的应用。
习题1:编写一个Matlab程序,计算并输出1到100之间所有正整数的和。
解答:```matlabsum = 0;for i = 1:100sum = sum + i;enddisp(sum);```该程序使用了for循环结构,从1到100遍历所有正整数,并将它们累加到变量sum中。
最后使用disp函数输出sum的值。
习题2:编写一个Matlab程序,计算并输出1到100之间所有奇数的和。
解答:```matlabsum = 0;for i = 1:2:100sum = sum + i;enddisp(sum);```该程序同样使用了for循环结构,但是在每次迭代中,i的增量为2,即只遍历奇数。
其余部分与习题1的解答相同。
习题3:编写一个Matlab程序,生成一个3×3的随机矩阵,并输出该矩阵的转置。
解答:```matlabA = rand(3);disp(A);disp(A');```该程序使用了rand函数生成一个3×3的随机矩阵A,并使用disp函数分别输出A和其转置A'。
习题4:编写一个Matlab程序,计算并输出斐波那契数列的前20个数。
解答:```matlabfib = zeros(1, 20);fib(1) = 1;fib(2) = 1;for i = 3:20fib(i) = fib(i-1) + fib(i-2);enddisp(fib);```该程序使用了一个长度为20的数组fib来存储斐波那契数列的前20个数。
通过循环计算每个数的值,并将其存储在数组中。
最后使用disp函数输出数组fib。
《MATLAB 原理及应用》实验报告三.课后练习题答案1.为 ⎪⎩⎪⎨⎧<-=>+=01001x x x xx x y 编写赋值程序。
程序如下:①建立如下的M 文件:x=input('x=');%让用户通过键盘输入数值、字符串或表达式if x>0y=x+1;elseif x==0y=x;else x<0y=x-1;e nd程序执行结果如下>> kh1 %在当前工作目录下,文件名为“kh.1.m ” x=1>> yy =22.使用for ... end循环的array向量编程求出1+3+5...+100 的值程序如下:sum=0;>> for k=1:2:100sum=sum+k;end>> sumsum =25003.计算1+3+5...+100 的值,当和大于1000时终止计算。
程序如下:sum=0;for m=1:2:100; %建立1 3 5….100的向量if sum<=1000 %如果sum小于1000则可以继续加sum=sum+m; %累加elsebreak; %若sum的结果不符合条件就跳出整个循环endend结果为:sum =1024k =653.1计算从1开始多少个自然数之和超过100。
程序如下:>> sum=0;n=0;>> while sum<=100n=n+1;sum=sum+n;end结果为:n =14sum =1054.求1!+2!+3!+……+8!的值程序如下:n=1;sum=1;for m=2:8; %循环7次使得得到各次阶乘n=n*m;sum=sum+n; %累加end结果为:sum =462335.写程序,判断一年是否为闰年,符合下面两条件之一:(1990~2014)A、能被4整除,不能被100整除B、能被400整除程序如下count=0;for y=1990:2014;if((rem(y,4)==0&rem(y,100)~=0)|(rem(y,4)==0&rem(y,400)~=0));count=count+1;endend结果为:count =5。
欢迎共阅习题二1.如何理解“矩阵是MATLAB 最基本的数据对象”? 答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。
(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’); 或E 。
答:B=A(1:3,:); C=A(:,1:2); D=A(2:4,3:4);E=B*C;(2) 分别求E<D 、E&D 、E|D 、~E|~D 和find(A>=10&A<25)。
答:E<D=010001⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦,E&D=110111⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦,11⎡⎤⎢⎥答:student(1).id='0001';student(1).name='Tom'; student(1).major='computer';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)的值分别是(2)建立5×6随机矩阵A,其元素为[100,200]范围内的随机整数。
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则fn是()。
AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是()。
D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则fn是()。
AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是()。
D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
西安科技大学MATLAB程序设计专业:信息与计算科学班级:1001班学号:1008060129姓名:刘仲能2012年6月27日实验一2.已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=76538773443412A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=723302131B 求下列表达式的值:(1)A+6*B 和A-B+I (其中I 为单位矩阵) (2)A*B 和A.*B (3)A^3和A.^3 (4)A/B 及B\A(5)[A,B]和[A([1,3],:);B^2]3.设有矩阵A 和B ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=25242322212019181716151413121110987654321A ,⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡--=11134079423096171603B (1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D 。
(3) 查看MATLAB 工作空间的使用情况(1) (2)(3)4.完成下列操作(1)求[100,999]之间能被21整除的数的个数。
(2)建立一个字符串向量,删除其中的大写字母。
(1)(2)实验二3.建立一个5×5矩阵,求它的行列式值、迹、秩和范数。
运行截图:A 矩阵的行列式值、迹、秩分别如下:范数如下:4.已知 ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=5881252018629A 求A 的特征值及特征向量,并分析其数学意义。
运行截图:5.下面是一个线性方程组:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡52.067.095.06/15/14/15/14/13/14/13/12/1321x x x (1) 求方程的解; (2) 将方程右边向量元素改为0.53,在求解,并比较的变化和解的相对变化;(3) 计算系数矩阵A 的条件数并分析结论。
(2) 变大,其解中,相对未变化前的的解:x1变大,x2变小,x3变大。
(3)由于A 矩阵的条件数很大,故当线性方程组中的b 变大时,x 也将发生很大的变化,即数值稳定性较差。
Matlab课后习题部分参考答案习题二2.student=struct('name',{'zhang','wang','li'},'age',{18,21,[] },'email',{['zh ang@','zhang@'],'',''})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]c =1 0 023 41 1 0 5 6 70 0 1 8 9 10d =1 0 01 1 00 0 12 3 45 6 78 9 1010、reshape(c,2,9)1 0 1 0 1 5 3 9 71 0 0 02 8 6 4 10 reshape(d,2,9)ans =1 0 5 0 0 6 0 1 71 2 8 1 3 9 0 4 10 (注意:重新排列矩阵,是将原来的矩阵按列排序)11、a.’12、a+b a.*ba\b (即inv(a)*b,考试时,要求能自己手算出a的逆)ans =2 3 43 3 38 9 1013、c=4*ones(3);a>=cb>=c14.strcat('The picture is ','very good')a=['The picture is ','very good']18.double('very good')1.norm(A),det(A),rank(A)2.b=[1 1 1 1 1];c=b';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]; x=a\c习题四1、a=14*rand(1,10)-5;for i=1:9max=i;for j=i+1:10if a(j)>a(max)max=j;endendtemp=a(i);a(i)=a(max);a(max)=temp;enda将上述脚本保存为script41.m2、function y=function42(n)3*randn(1,n)+3;for i=1:n-1max=i;for j=i+1:nif a(j)>a(max)max=j;endendtemp=a(i);a(i)=a(max);a(max)=temp;endy=a;将上述函数保存为function42.m 3、r=input(‘please input 1/2: ’);if r= =1script41;elsen=input(‘please input the length: ’);y=funtion42(n);end4.function f=function1(x,y)if y==1f=sin(x);elseif y==2f=cos(x);elsef=sin(x).*cos(x);end在命令窗口调用函数f=function1(1,3) 5.function result=function3(x,n)result=0;for i=1:nresult=result+sin(x.*i)+(-1).^i.*cos(i.*x); endfunction result=function4(n,t)result=0;A=[1 2 3;0 1 2;0 0 1];for i=1:nresult=result+A*i.*exp(A*i.*t);end习题五3.x1=-2:0.01:2;x2=-2:0.01:2;y1=x1.*sin(x2);y2=x2.*cos(x1);plot3(x1,x2,y 1,'-d',x1,x2,y2,'-d')14、x=8*rand(1,100)-2;y=reshape(x,10,10);save mydata.mat yclearclcload mydatak=y>ones(10);totel=0;for i=1:100if k(i)==1totel=totel+1;endend15、x=rand(5); %生成5*5均匀分布的随机矩阵(该处只作举例,未按题目要求)fid=fopen(‘text.txt’,’w’);count=fwrite(fid,x,’int32’); closestatus=fclose(fid);清除内存,关闭所有窗口fid=fopen(‘text.txt’,’r’);x=fread(fid,[5,5],’int32’); closestatus=fclose(fid); inv(x)16.随便生成一个矩阵,x1=-1:0.2:0.8;x2=-1:0.2:0.8;y1=x1.*sin(x2);y2=x2.*cos(x1);a=reshape([y1;y2],10,10);fid=fopen('table.txt','w'); fprintf (fid,‘%f’,a); fclose(fid) ;清除内存,关闭所有窗口a=fscanf('table.txt','%f') ; exp(a) ;fclose(fid) ;习题六1.c=ploy2str(A);B=[2,0,0,1,3,5];2.x=1:10;B=ployval(A,x);。
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矩阵。
精品文档第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0AHA12GAGGAGAGGAFFFFAFAF精品文档y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;while kAHA12GAGGAGAGGAFFFFAFAF精品文档k=k-1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;AHA12GAGGAGAGGAFFFFAFAF精品文档n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
AA.函数文件名 B.函数名AHA12GAGGAGAGGAFFFFAFAF精品文档C.函数文件名或函数名均可 D.@函数名7.如果有函数声明行为“function[x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则 fn是()。
AA.匿名函数 B.函数句柄 C.字符串 D.普通函数9.执行下列语句后,变量A的值是()。
D>> f=@(x,y) log(exp(x+y));AHA12GAGGAGAGGAFFFFAFAF精品文档>> A=f(22,3);A.22,3 B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
AA.dbstop B.dbclear C.dbcont D.dbstack二、填空题1.将有关MATLAB命令编成程序存储在一个扩展名为.m的文件中,该文件称为。
M文件2.有语句“for k=[12;34]”引导的循环结构,其循环体执行的次数为。
13.MATLAB中用于控制不确定重复次数的循环语句为,若在循环执行过程中需要终止该循环时采用的语句为。
while…end,breakAHA12GAGGAGAGGAFFFFAFAF精品文档4.函数文件由语句引导。
在函数定义时,函数的输入输出参数称为参数,简称。
在调用函数时,输入输出参数称为参数,简称。
function,形式,形参,实际,实参5.在MATLAB中,函数文件中的变量是变量。
定义变量是函数间传递信息的一种手段,可以用命令定义。
局部,全局,globalAHA12GAGGAGAGGAFFFFAFAF精品文档6.应用程序的错误有两类,一类是错误,另一类是运行时的错误,即错误。
MATLAB程序调试方法有两种,一是利用进行程序调试,二是利用进行程序调试。
语法,逻辑,调试函数,调试工具三、应用题1.写出下列程序的输出结果。
s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=afor j=1:4if rem(k(j),2)~=0s=s+k(j);endAHA12GAGGAGAGGAFFFFAFAF精品文档AHA12GAGGAGAGGAFFFFAFAFendends2.分别用if 语句和switch 语句实现以下计算,其中a 、b 、c 的值从键盘输入。
⎪⎪⎩⎪⎪⎨⎧<≤+<≤+<≤++=5.55.3,ln 5.35.1,sin 5.15.0,2x x cb x x b a xc bx ax y cif 语句:a=input('a=');b=input('b=');c=input('c=');x=input('x=');if 0.5<=x&x<1.5y=a*x^2+b*x+c;精品文档elseif 1.5<=x&x<3.5y=a*(sin(b))^c+x;elseif 3.5<=x&x<5.5y=log(abs(b+c/x));endyswitch语句:a=input('a=');AHA12GAGGAGAGGAFFFFAFAF精品文档b=input('b=');c=input('c=');x=input('x=');switch fix(x*10)case num2cell(5:14)y=a*x^2+b*x+c;case num2cell(15:34)y=a*(sin(b))^c+x;case num2cell(35:54)y=log(abs(b+c/x));otherwisedisp('nsrdxcw')endyAHA12GAGGAGAGGAFFFFAFAF精品文档3.产生20个两位随机整数,输出其中小于平均值的偶数。
x=fix(10+rand(20)*89);a=sum(x)/20;for i=1:20if x(i)<aif rem(x(i),2)==0disp(x(i))endendend4.输入20个数,求其中最大数和最小数。
要求分别用循环结构和调用MATLAB的max函数、min函数来实现。
循环结构:AHA12GAGGAGAGGAFFFFAFAF精品文档for a=1:20A(a)=input('请输入20个数:');endAmi=A(1);ma=A(1);for i=1:20if mi>A(i)mi=A(i);endif ma<A(i)AHA12GAGGAGAGGAFFFFAFAF精品文档ma=A(i);endenddisp(ma)disp(mi)max、min函数:for a=1:20A(a)=input('请输入20个数:');endAmi=min(A),ma=max(A)5.已知s=1+2+22+23+…+263分别用循环结构和调用MATLAB的sum函数求s的值。
AHA12GAGGAGAGGAFFFFAFAF精品文档AHA12GAGGAGAGGAFFFFAFAF循环结构:s=0;for x=0:63s=2^x+s;enddisp(s)sum 函数:i=0:63;f=2.^i;sum(f)6.当n 分别取100、1000、10000时,求下列各式的值: (1) )2ln (1)1(41312111=+-++-+-+ nn (2) )4(7151311π=+-+- (3) )31(4164116141=+++++ n精品文档AHA12GAGGAGAGGAFFFFAFAF (4) )2()12)(12()2)(2(756653443122πn n n n =⎪⎪⎭⎫ ⎝⎛+-⎪⎭⎫ ⎝⎛⨯⨯⎪⎭⎫ ⎝⎛⨯⨯⎪⎭⎫ ⎝⎛⨯⨯ 要求分别用循环结构和向量运算(使用sum 或prod 函数)来实现。
(1):循环结构:精品文档n=input('请输入n的值:');s=0;for a=1:ns=s+(-1)^(a+1)/a;ends向量运算:n=input('请输入n的值:');a=1:n;f=(-1).^(a+1)./a;s=sum(f)(2):循环结构:n=input('请输入n的值:');AHA12GAGGAGAGGAFFFFAFAF精品文档s=0;for a=1:n;s=s+(-1)^(a+1)/(2*a-1);ends向量运算:n=input('请输入n的值:');a=1:n;f=(-1).^(a+1)./(2*a-1);s=sum(f)(3):循环结构:n=input('请输入n的值:');s=0;AHA12GAGGAGAGGAFFFFAFAF精品文档for a=1:ns=s+(1/4)^a;ends向量运算:n=input('请输入n的值:');a=1:n;f=(1/4).^a;s=sum(f)AHA12GAGGAGAGGAFFFFAFAF精品文档(4):循环结构:n=input('请输入n的值:');s=1;for a=1:nf=(2*a)^2/((2*a-1)*(2*a+1));s=s*f;ends向量运算:n=input('请输入n的值:');a=1:n;f=(2*a).^2./((2*a-1).*(2*a+1));s=prod(f)7.编写一个函数文件,求小于任意自然数n的斐波那AHA12GAGGAGAGGAFFFFAFAF精品文档AHA12GAGGAGAGGAFFFFAFAF契(Fibnacci )数列各项。
斐波那契数列定义如下:121211(2)n n n f f f f f n --=⎧⎪=⎨⎪=+>⎩ function f=Fibnacci(n)for i=1:nif i==1f=1;elseif i==2f=1;elsef=Fibnacci(i-1)+Fibnacci(i-2);endendn=input('n=');精品文档f=Fibnacci(n)8.编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在脚本文件中调用该函数。
function [C,D]=CJ(A,B)C=A*B;AHA12GAGGAGAGGAFFFFAFAF精品文档AHA12GAGGAGAGGAFFFFAFAFD=A.*B;A=[1 2 3;4 5 6;7 8 9];B=[1 1 1;1 1 1;1 1 1];[C,D]=CJ(A,B)9.先用函数的递归调用定义一个函数文件求1nm i i =∑,然后调用该函数文件求∑∑∑===++10501210011k k k kk k 。
function f=xt4_10(m,n)if n<1f=0;elsef=n^m+xt4_10(m,n-1);endxt4_10(1,100)+xt4_10(2,50)+xt4_10(-1,10)精品文档10.写出下列程序的输出结果。