资源描述
※MATLAB计算机建模与仿真复习提纲※
第2章 MATLAB概论
1、 与其他计算机语言相比较,MATLAB语言突出的特点是什么?
答:MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。
2、 MATLAB系统由那些部分组成?
答:MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。
3、 如何启动M文件编辑/调试器?
答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。
4、 存储在工作空间中的数组能编辑吗?如何操作?
答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。
5、 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?
答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。
第3章 MATLAB数值运算
3.1 在MATLAB中如何建立矩阵,并将其赋予变量a?
答:>> a=[5 7 3;4 9 1]
3.2 有几种建立矩阵的方法?各有什么优点?
答:可以用四种方法建立矩阵:
①直接输入法,如a=[2 5 7 3],优点是输入方法方便简捷;
②通过M文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改;
③由函数建立,如y=sin(x),可以由MATLAB的内部函数建立一些特殊矩阵;
④通过数据文件建立,该方法可以调用由其他软件产生数据。
3.3 在进行算术运算时,数组运算和矩阵运算各有什么要求?
答:进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a与b相乘(a*b)时必须满足a的列数等于b的行数。
3.4 数组运算和矩阵运算的运算符有什么区别?
答:在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。
3.5 计算矩阵与之和。
答:
>> a=[5 3 5;3 7 4;7 9 8];
>> b=[2 4 2;6 7 9;8 3 6];
>> a+b
3.6 求的共轭转置。
答:
>> x=[4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i];
>> x’
3.7 计算与的数组乘积。
答:
>> a=[6 9 3;2 7 5];
>> b=[2 4 1;4 6 8];
>> a.*b
3.8 “左除”与“右除”有什么区别?
答:在通常情况下,左除x=a\b是a*x=b的解,右除x=b/a是x*a=b的解,一般情况下,a\b¹b/a。
3.9 对于,如果,,求解X。
答:
>> A=[4 9 2;7 6 4;3 5 7];
>> B=[37 26 28]’;
>> X=A\B
3.10 已知:,分别计算a的数组平方和矩阵平方,并观察其结果。
解:
>> a=[1 2 3;4 5 6;7 8 9];
>> a.^2
>> a^2
3.12 ,在进行逻辑运算时,a相当于什么样的逻辑量。
答:相当于a=[1 1 0 1 1]。
3.13 在sin(x)运算中,x是角度还是弧度?
答:在sin(x)运算中,x是弧度,MATLAB规定所有的三角函数运算都是按弧度进行运算。
3.14 角度,求x的正弦、余弦、正切和余切。
解:
>> x=[30 45 60];
>> x1=x/180*pi;
>> sin(x1)
>> cos(x1)
>> tan(x1)
>> cot(x1)
3.15 用四舍五入的方法将数组[2.4568 6.3982 3.9375 8.5042]取整。
解:
>> b=[2.4568 6.3982 3.9375 8.5042];
>> round(b)
3.17 将矩阵、和组合成两个新矩阵:
答:(1)组合成一个4´3的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即
(2)按照a、b、c的列顺序组合成一个行矢量,即
>> a=[4 2;5 7];
>> b=[7 1;8 3];
>> c=[5 9;6 2];
>> d=[a(:) b(:) c(:)]
>> e=[a(:);b(:);c(:)]'
3.18 将(x-6)(x-3)(x-8)展开为系数多项式的形式。
解:
>> a=[6 3 8];
>> pa=poly(a)
>> ppa=poly2sym(pa)
3.19 求解多项式x3-7x2+2x+40的根。
解:
>> r=[1 -7 2 40];
>> p=roots(r);
3.20 求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值。
解:
>> p=poly([1 2 3 4]);
>> polyvalm(p,8)
3.21 计算多项式乘法(x2+2x+2)(x2+5x+4)。
解:
>> c=conv([1 2 2],[1 5 4])
3.22 计算多项式除法(3x3+13x2+6x+8)/(x+4)。
解:
>> d=deconv([3 13 6 8],[1 4])
3.23 对下式进行部分分式展开:
解:
>> a=[1 3 4 2 7 2];
>> b=[3 2 5 4 6];
>> [r,s,k]=residue(b,a)
3.24 计算多项式的微分和积分。
解: >> p=[4 –12 –14 5];
>> pder=polyder(p);
>> pders=poly2sym(pder)
>> pint=polyint(p);
>> pints=poly2sym(pint)
3.25 解方程组。
解:>> a=[2 9 0;3 4 11;2 2 6];
>> b=[13 6 6]';
>> x=a\b
3.26 矩阵,计算a的行列式和逆矩阵。
解: >> a=[4 2 -6;7 5 4 ;3 4 9];
>> ad=det(a)
>> ai=inv(a)
第4章 MATLAB符号运算
4.1 创建符号变量有几种方法?
答:MATLAB提供了两种创建符号变量和表达式的函数:sym和syms。
sym用于创建一个符号变量或表达式,用法如x=sym(‘x’) 及 f=sym(‘x+y+z’),syms用于创建多个符号变量,用法如syms x y z。
f=sym(‘x+y+z’)
相当于
syms x y z
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')
4.4 求矩阵的行列式值、逆和特征根。
解:>> syms a11 a12 a21 a22;
>> A=[a11,a12;a21,a22]
>> AD=det(A) % 行列式
>> AI=inv(A) % 逆
>> AE=eig(A) % 特征值
4.6 因式分解:
解:>> syms x;
>> f=x^4-5*x^3+5*x^2+5*x-6;
>> factor(f)
4.7 ,用符号微分求df/dx。
解:>> syms a x;
>> f=[a, x^2, 1/x; exp(a*x), log(x), sin(x)];
>> df=diff(f)
4.8 求代数方程组关于x,y的解。
解:>> S=solve('a*x^2+b*y+c=0','b*x+c=0','x','y');
>> disp('S.x=') , disp(S.x)
>> disp('S.y=') , disp(S.y)
4.9 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为[0,2p]。
解:>> syms t
>> ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi])
4.10 绘制极坐标下sin(3*t)*cos(t)的图形。
解:>> syms t
>> ezpolar(sin(3*t)*cos(t)
第5章MATLAB程序设计
1 命令文件与函数文件的主要区别是什么?
答:
(1)命令文件是一系列命令的组合,函数文件的第一行必须用function说明;
(2)命令文件没有输入参数,也不用返回参数,函数文件可以接受输入参数,也可以返回参数;
(3)命令文件处理的变量为工作空间变量,函数文件处理的变量为函数内部的局部变量,也可以处理全局变量。
2 如何定义全局变量?
答:用关键字global可以把一个变量定义为全局变量,在M文件中定义全局变量时,如果在当前工作空间已经存在了相同的变量,系统将会给出警告,说明由于将该变量定义为全局变量,可能会使变量的值发生改变,为避免发生这种情况,应该在使用变量前先将其定义为全局变量。
3 说明break语句和return语句的用法。
答:break语句用于终止for循环和while循环的执行。如果遇到break语句,则退出循环体,继续执行循环体外的下一行语句。在嵌套循环中,break只存在于最内层的循环中。
return语句用于终止当前的命令序列,并返回到调用的函数或键盘,也用于终止keyboad方式,在MATLAB中,被调用的函数运行结束后会自动返回调用函数,使用return语句时将return插入被调用函数的某一位置,根据某种条件迫使被调用函数提前结束并返回调用函数。
4 编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。
答:function c=collatz(n)
% collatz
% Classic “3n+1” Ploblem from number theory
c=n;
while n>1
if rem(n,2)==0
n=n/2;
else
n=3*n+1;
end
c=[c n];
end
5 编写一段程序,能够把输入的摄氏温度转化成华氏温度,也能把华氏温度转换成摄氏温度。
答:k=input('选择转换方式(1--摄氏转换为华氏,2--华氏转换为摄氏):');
if k~=1 & k~=2
disp('请指定转换方式')
break
end
tin=input('输入待转变的温度(允许输入数组):');
if k==1
tout=tin*9/5+32; % 摄氏转换为华氏
k1=2;
elseif k==2
tout=(tin-32)*5/9; % 华氏转换为摄氏
k1=1;
end
str=[' °C';' °F'];
disp(['转换前的温度', ' ', '转换后的温度'])
disp([' ',num2str(tin),str(k,:), ' ', num2str(tout),str(k1,:)])
6 .keyboard命令的作用是什么?当在函数中使用keyboard命令时,是否可以在工作空间浏览器中观察和修改函数中的局部变量?退出keyboard状态的命令是什么?编一个函数文件,在其中设置keyboard,观察变量情况。
答:当运行中的程序遇到keyboard命令时会暂时停止运行,将控制权交给键盘,这时命令窗口的提示符变为K>>,可以在命令窗口或工作空间浏览器中观察和修改变量内容,如果keyboard命令设置在函数中,则可以观察和修改函数 中的局部变量,检查或修改完成后,键入return命令,退出keyboard状态,控制权交还给系统,程序将继续运行。
第6章 常用图形命令
1 绘制曲线,x的取值范围为[-5,5]。
答:>> x=-5:0.2:5;
>> y=x.^3+x+1;
>> plot(x,y)
2 有一组测量数据满足,t的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线。
答:>> 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')
3 在上题结果图中添加标题,并用箭头线标识出各曲线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)
4 在上题结果图中添加标题和图例框。
答:>> title('\ity\rm=e^{-\itat}','FontSize',12)
>> legend('a=0.1','a=0.2','a=0.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
答:
(1)分组形式:
>> y=[3 6 9 6;6 7 7 4;7 3 2 3;4 2 5 2;2 4 8 7;8 7 4 4];
>> bar(y)
(2)堆叠形式:
>> bar(y,’stack’)
6 x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。
答:>> x=[66 49 71 56 38];
>> L=[0 0 0 0 1];
>> pie(x,L)
第7章 Simulink基础
7.1 什么是Simulink ?
答:Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持连续的、离散的或二者混合的线性和非线性系统,也支持具有多种采样速率的多速率系统。
7.2 Simulink基本元件
7.3如下图所示的电路,已知:R1=2欧,R2=4欧,R3=12欧,R4=4欧,R5=12欧,R6=4欧,R7=2欧。如果US=10V,求i3,u4,u7。
解:建模,用网孔法,按图可列得网孔方程
可写成如下的矩阵形式
带入数据可得
由即可求解。
7.4、已知Us=100V,I1=100mA,电路吸收功率P=6W,XL1=1250W,XC2=750W,电路呈感性,求R3及XL3。
解:设电源的总阻抗为,由图可知。
总阻抗的模
由于Z1,Z2为纯阻抗元件,它们不吸收有功功率,故
得知电感电路呈感性,取“+”号,即
Z2,Z3的并联阻抗为:
程序清单如下:
7.4、求图示系统的传递函数,其中K1=10,K2=20。
解:
程序清单如下:
- 第9页 -
展开阅读全文