控制系统仿真技术(一)仿真软件-MATLAB
太原理工大学控制系统仿真技术实验报告
- 在 MATLAB下输入矩阵 , ,并使用以下命令要求输出结果:A& B , A|B ,xor(A,B), A.*B。 答案:
>> A=[1 2 3;4 5 0;7 8 9];B = [1 0 3;1 5 0;0 1 2]; >> A&B >> A|B >> xor(A,B) >> A.*B
2.编写如下的分段函数: 给出自变量 x 的值,调用该函数后,返回 y 的值。
%建立分段函数 %ex1_2.m function [y] = ex1_2(x) if(x<=0) y=sin(x); end if(x>0&&x<=3) y=x; end if(x>3) y=-x+6; end end
3. 用循环语句和向量化两种方法解决级数求和问题:
并对两种方法的时间复杂度进行分析。
%循环语句和向量法求级数求和 %循环语句 i=1;s=0; tic while(i<=100000) s=s+(1/2^i)+(1/3^i); i=i+1; end toc s %向量法 s=0;a=[1:100000]; tic for i=1:100000 s=s+(1/2^a(i))+(1/3^a(i)); end toc s
观察可知:用循环语句计算,需要0.021513 s,用向量化计算,需要0.021148 s。因此,向量化法更节省时间,时间复杂度更小。
- 编写函数,求满足 (N 为任意正数)的最小 m 值。并给定 N 值,调用函数,得到 m 值和
%求累加不大于N的m %ex1_4.m function [m,sum] = ex1_4(N) sum=0; for m=1:N sum=sum+m; if(sum>N) break; end end end
5. 在同一坐标系下分别绘制正弦(点划线,红色,线宽 2 磅)、余弦(圆圈线,黑色,线宽 1.5磅)两条曲线,并给出图例。
%绘制两条曲线 %ex1_5.m x=0:0.1:2*pi; y1=sin(x);y2=cos(x); p=plot(x,y1,x,y2); p(1).Color=r; p(1).LineStyle=-.; p(1).LineWidth=2; p(2).Color=k; p(2).Marker=o; p(2).LineWidth=1.5; gtext(点划线 y=sin(x)); gtext(圆圈线 y=cos(x)); %正常写法为plot(x1,y1,选项,x2,y2,选项) %title() %xlabel() %ylabel() %grid 增加网格 %利用鼠标绘制图像 [x,y,button]=ginput(n)
6. 试绘制出函数方程 在 区间内的曲线,并采 用不同的步长来验证图形的准确性。
>> x = -pi:0.1:pi;y = sin(tan(x))-tan(sin(x));plot(x,y) >> x = -pi:0.01:pi;y = sin(tan(x))-tan(sin(x));plot(x,y) >> x = -pi:0.001:pi;y = sin(tan(x))-tan(sin(x));plot(x,y) >> x = -pi:0.0001:pi;y = sin(tan(x))-tan(sin(x));plot(x,y)
观察图可知,步长越小,图形越准确。
7.以正弦数据为例,由语句将图形分割成 2行 2列的区域,在不同区域绘制正弦信号的不同表示。
%2行2列图形 %ex1_7.m x=0:0.1:2*pi; y=sin(x); subplot(2,2,1);stairs(x,y); subplot(2,2,2);stem(x,y); subplot(2,2,3);bar(x,y); subplot(2,2,4);semilogx(x,y);
下一篇:
JavaSE基础语法之运算符