第二章数据结构及其运算
2.1实验程序:
x=[12 23 34 45 56 67 78]%逐个输入数组中的元素值
x(6)%读数组中的第6个元素
x([1 3 5])%返回数组的第1、3、5个元素构成的子数组
x(4:end)%返回第4个元素与其后所有元素构成的子数组
x(find(x>70))%返回数组中大于70的元素的值
MATLAB分步截屏:
创建一个有7个元素的一维数组:
直接寻访一维数组的第6个元素:
寻访一维数组的第1,3,5个元素:
(3)寻访一维数组中第4个至最后一个元素:
寻访一维数组中大于70 的元素:
2.3实验程序:
A=zeros(2,5)%生成2行5列的全0数组
A(1:10)=-4:5%将单下标为1到10的元素分别赋值为-4到5
L=abs(A)>3%判断其绝对值是否大于3,大于则L对应的位置为值1,否则为L值为0
islogical(L)%判断L是否为逻辑数组,是逻辑数组则返回1,否则返回0
X=A(L) %X为逻辑数组L对应为1的位置的数据的列向量
MATLAB分步截屏:
生成数组:
寻访数组A中绝对值大于3的元素:
输出数组A中绝对值大于3的元素:
2.5实验程序:
p1=[1,0,2];                  %定义多项式p1(s)=s2+1
p2=[1,4];                    %定义多项式p2(s)=s+4
p3=[1,1];                    %定义多项式p3(s)=s+1
p4=conv(p1,conv(p2,p3));      %定义多项式p4(s)=p1(s)p2(s)p3(s)
p5=[1 0 1 1];                %定义多项式p5(s)=s3+s+1
[q,r]=deconv(p4,p5);          % 求p4(s)/p5(s)
disp(['商:',poly2str(q,'s')]);
disp(['余式:',poly2str(r,'s')])matlab数组赋值
MATLAB实验截屏:
2.6实验程序:
A=[12 23 34;45 56 67;78 89 90];%定义3阶数组A
p1A=poly(A);%创建方阵A的特征多项式p1A
p2A=poly2str(p1A,'s')%将拟合后的p1A多项式系数转换为字符形式的特征多项式函数p2A
MATLAB实验截屏:
第四章M文件和程序设计
4.2实验程序exp4_2:
x=input('请输入半径r的值:');        %将用户键入量赋给x
s=f1(x);                            %调用函数f1(x)计算面积S
c=f2(x);                            %调用函数f2(x)计算面积C
disp(['圆的面积S为:',num2str(s)])      %用num2str将数值变量转换为字符变量并用disp输出带数值的文本信息
disp(['圆的周长C为:',num2str(c)])
实验程序-面积函数文件f1:
function s=f1(x)                      %自定义函数f1(x)
s=pi*x*x;
end
实验程序-周长函数文件f2:
function c=f2(x)                      %自定义函数f2(x)
c=2*pi*x;
end
MATLAB截屏:
4.3实验程序exp4_3:
sum=0;                            %定义变量sum
n=input('请输入n的值:')            %并将用户键入量赋给变量n,并显示“请输入n的值”
for i=1:n                          % i从1取到n
    sum=sum+1/i^2;                %依次求sum的值
end
disp(['计算结果为:',num2str(sum)])  %用num2str将数值变量转换为字符变量并用disp输出带数值的文本信息
MATLAB截屏:
4.5实验程序exp4_5:
sum=0;                          %变量sum的初值是0
n=0;                              %变量n的初值是0
while sum<2000                    %当sum值小于2000时
    n=n+1;                        %n=n+1
    sum=sum+n;                  %sum为n的累加和
end
disp(['最大的n值为:',num2str(n-1)])  %最后一次循环,sum+n后得到的sum值大于2000,因此最后输出的最大n值应为n-1
MATLAB截屏:
4.6(1)使用for循环时:
实验程序exp4_6_1:
sum=0;                          %定义变量sum,其初值为0
for i=0:63                        %i从0取到63
    sum=sum+2^i;                %依次求sum的累加
end
disp(['K=',num2str(sum)])
MATLAB截屏:
(2)使用while循环时:
实验程序exp4_6_2:
sum=0;                    %定义变量sum,其初值为0
i=0;                        %定义变量i,其初值为0
while i<=63                  %当i63时
    sum=sum+2^i;          %依次求sum的累加
i=i+1;
end
disp(['K=',num2str(sum)])
MATLAB截屏:

第五章数值计算
5.1LU分解求解下列线性方程组:
实验程序exp5_1:
A=[2,1,-5,1;1,-5,0,7;2,0,1,-1;1,6,-1,-4];
b=[13,-9,6,0]';
[L,U]=lu(A);          %进行LU分解
x=U\(L\b)          %线性方程组的解
MATLAB结果:
5.2,求函数f在(0.5,0.5,0.5)附近的最小值
实验程序exp5_2:
fun=inline('x(1)+x(2)^2/(4*x(1))+x(3)^2/x(2)+2/x(3)','x')
%使用内联函数构造函数fun
[x,fval]=fminsearch(fun,[0.5,0.5,0.5])%求函数fun在(0.5,0.5,0.5)附近的最小值
MATLAB结果:
5.5有初值问题:
试求其数值解,并与下式精确解作比较:
实验程序exp5_5:
OdeFun=inline('(y^2-t-2)/(4*(t+1))')  %内建函数编写待求微分方程
ts=[0,1];    %自变量求解区间
y0=2;          %初值条件
[t,y]=ode23(OdeFun,ts,y0);  %2、3阶龙格库塔法求解微分方程数值解
y1=sqrt(t+1)+1;    %微分方程精确解
[t,y,y1]      %以三列矩阵显示,第一列为采样点t对应的点,第二列为期数值解,第三列为其精确解
MATLAB结果:

第七章Simulink基础
7.1单位负反馈系统的开环传递函数为
应用Simulink仿真系统构建其阶跃响应曲线。
(1)Simulink仿真:
(2)系统输出:
(3)验证:
应用Matlab函数step进行验证如下,系统单位阶跃响应的稳态值为1:
7.2系统微分方程为,试建立系统Simulink仿真模型。
Simulink仿真:
仿真图中位置处的信号说明如下:
1 时钟信号t
2 信号
3
4 输出信号
5 -0.5t
6
7 信号
8
9 信号
7.3利用Simulink构建函数曲线
(1)Simulink搭建仿真电路:
将时钟信号做平方数学运算得到单位抛物线函数,扩大5倍后与常数输入16叠加作为系统给定输入。
(2)系统输出:
①示波器Scope输出函数曲线
②示波器Scope1输出单位抛物线曲线
(3)验证:
在命令窗口输入程序:>>x=0:0.001:10;
>> y=5.*x.*x+16;
>>plot(x,y,'k-')
>>grid on
与示波器Scope得出的仿真结果相同。
7.4利用Simulink仿真
(1)Simulink截图:
将时钟信号与常数输入1相加后做自然对数ln数学函数运算,再与时钟信号相乘叠加后做积分运算,将仿真时间设为1s,输出。
(2)系统输出:
①数字显示模块显示积分结果为0.25:
②示波器Scope输出积分结果随积分时间t的变化:
示波器Scope1输出积分函数曲线
(3)验证:
①积分结果验证:
输入程序:>> x=0:0.001:1;
>> y=x.*log(1+x);
>>trapz(x,y)
s =
    0.2500
积分结果为0.25,Simulink仿真在t=1s时输出为0.25,两者结果相同。
积分函数曲线验证:
输入程序:>>plot(x,y)
>>plot(x,y,'k-')
>>grid on
输出积分函数图像如下,与Simulink仿真示波器Scope1输出结果相同:
7.6利用使能子系统构成一个正弦半波整流器。
(1)Simulink仿真:
使用电平触发的Enabled Subsystem子系统,当使能信号为高电平的时候运行子系统,得出正弦半波整流波形。
(2)系统输出:

第八章控制系统的数学模型
8.1创建连续二阶系统的传递函数模型
(1)G(s)=
实验程序exp8_1_1
num=[0,0,5];      %分子多项式的系数
den=[1,2,2];        %分母多项式的系数
sys=tf(num,den)    %建立系统的TF模型
MATLAB截屏:
(2)G(s)=
实验程序exp8_1_2
num=[0,0,5];
den=[1,2,2];
sys=tf(num,den);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。