Ⅰ 大一matlab数学实验报告
先画出散点图
>>x=[];
>>y=[];
>>plot(x,y,'o')
Ⅱ MATLAB实验
1.理解连续系统时域分析方法.
2.学习利用matlab对连续系统进行时域分析的方法.
3.掌握单位冲激响应和单位阶跃响应一般求解方法和基本特征,学习利用matlab求此响应的方法。
4.掌握单位冲激响应与系统稳定性、因果性之间的关系。
二、实验器材
计算机、MATLAB软件
三、实验原理
对于单输入-单输出系统的输入激励为 f (t),输出响应为y(t),则描述连续LTI系统的数学模型为n阶次的常系数线性微分方程,形式如下
[图片上传失败...(image-82e2d0-1639285196529)] (3-1)
式子中, a i = 0,1,...n,和b i =0,1,...m均为常数。
由信号与系统的分析理论值,如果描述系统的微分方程、激励和初始状态已知,我们可用经典时域求解法求出其解。但对于高阶系统,手工计算十分的繁琐,甚至很困难,这时可以用matlab工具求解。
Matlab里提供了求(3-1)解用到的函数,常用的是impluse()、step()、lism()、conv()、dsolve()。下面我们分别介绍这几个函数。
1.****连续时间系统冲激响应和阶跃响应的求解
连续LTI系统的冲激响应和阶跃响应,分别用impluse和step求解。其调用格式为
impluse (b,a) y=impluse(sys,t)
step (b,a) y=step(sys,t)
式中,t表示计算系统响应的抽样点向量,sys是LTI系统模型,它表示 微分方程,差分方程或状态方程 。其调用格式
sys = tf (b,a)
式中,b和a分别是微分方程的右端和左端系数向量。例如
[图片上传失败...(image-63fd93-1639285196529)]
用a=[a3,a2,a1,a0] ; b=[b3,b2,b1,b0] ,sys = tf (b,a) 获得其LTI模型。
例1****:已知描述某连续系统的微分方程为
[图片上传失败...(image-954b31-1639285196529)]
试利用matlab****绘出该系统的单位冲激响应和单位阶跃响应的时域波形,并根据单位冲激响应判断系统的稳定性和因果性。`1
matlab程序如下
a=[1 1 6];
b=[1];
subplot(2,1,1)
impulse(b,a)
subplot(2,1,2)
step(b,a)
程序运行后,其图形如下3-1所示。
[图片上传失败...(image-8ac458-1639285196530)]
图****3-1 系统的冲激响应和阶跃响应图
从图3-1所示的系统的单位冲激响应的时域波形可以看出,当时间t<0时系统的单位冲激响应h(t)=0,所以该系统为因果系统;同时h(t)随着时间的增长而衰减,当t趋于无穷大时时,h(t)趋于零,所以系统也是一个稳定的系统。
2.****连续时间系统零输入响应的求解
在MATLAB中,initial是求连续系统的零输入响应函数,其调用形式为
initial(sys,x0)
[y,x,t]=initial(sys,x0)
initial函数可计算出连续时间线性系统由于初始状态所引起的响应(故而称零输入响应)。当不带输出变量引用函数时,initial函数在当前图形窗口中直接绘制出系统的零输入响应。
例2****:已知描述某连续系统的微分方程为
[图片上传失败...(image-15bccf-1639285196529)]
y(0)=1,y’(0)=2, 用matlab****求其零输入响应
程序如下:
a=[1 1 6];
b=[1];
sys=tf(b,a);
sys1=ss(sys); % 转成状态变量表示
x0=[1,2]
initial(sys1,x0)
运行结果如图3-2所示
[图片上传失败...(image-f08768-1639285196530)]
图****3-2 系统的零输入响应图
3.****连续时间系统零状态响应的数值计算----- lism()
求解微分方程零状态响应的数值解。其调用格式主要有两种。
**lism(sys,f,t) y=lism(sys,f,t) **
其中,f是输入信号在向量t定义的时间点上的采样值,t是输入信号时间范围向量,sys是LTI系统模型
例3****: 已知描述某连续系统的微分方程为
[图片上传失败...(image-4a9e83-1639285196529)]
试利用matlab求出该系统当激励信号为[图片上传失败...(image-5ad649-1639285196529)] 时,系统的响应[图片上传失败...(image-348322-1639285196529)] ,并会出其波形。
matlab程序如下
a=[1 2 1];
b=[1 2];
sys=tf(b,a); %定义系统函数对象
p=0.01; %定义采样时间间隔
t=0:p:5;
f=exp(-2*t);
lsim(sys,f,t); %对系统输出信号进行仿真
程序运行后,其图形如图3-3所示。
[图片上传失败...(image-3950ed-1639285196529)]
图3-3 连续系统的响应仿真
4.****微分方程的符号解的函数dsolve()
在MATLAB中,dsolve()是求解微分方程的符号解的函数,其调用形式为
r=dsolve(‘eq1,eq2,…’,’cond1,cond2,…’,’v’)
或r=dsolve(‘eq1’,eq2’,…,’cond1’,’cond2’,…,’v’)
其中cond1、cond2….是初始条件(如没有给出初始条件,则默认为求通解),v为自变量变量。D表示一阶微分,D2为二阶微分……。函数dsolve把D后的变量当成因变量,默认为这些变量对自变量的求导。
例****4****:求二阶系统[图片上传失败...(image-9ca77c-1639285196529)] 在初始条件[图片上传失败...(image-ae497b-1639285196529)] 下的零输入响应的解、零状态响应的解及全解
matlab程序如下
yzi=dsolve('D2y+5 Dy+4 y=0','y(0)=0,Dy(0)=1')
yzs=dsolve('D2y+5 Dy+4 y=exp(-3*t)','y(0)=0,Dy(0)=0')
y=dsolve('D2y+5 Dy+4 y=exp(-3*t)','y(0)=0,Dy(0)=1')
运行结果如下
yzi =
-1/3 exp(-4 t)+1/3*exp(-t)
yzs =
1/3 exp(-4 t)+1/6 exp(-t)-1/2 exp(-3*t)
y =
1/2 exp(-t)-1/2 exp(-3*t)
即 [图片上传失败...(image-8a13eb-1639285196529)]
[图片上传失败...(image-9036d5-1639285196529)]
[图片上传失败...(image-fa7bd7-1639285196529)]
四、实验内容
1.验证实验原理中所述的相关程序
2.已知描述某连续系统的微分方程为
[图片上传失败...(image-d41f06-1639285196529)]
(1) 试利用matlab绘出该系统的冲激响应和阶跃响应的时域波形,并根据冲激响应判断系统的稳定性。
a=[1,3,2];
b=[1,2];
subplot(2,1,1)
impulse(b,a);
subplot(2,1,2)
step(b,a);
wending
(2) 当激励信号为[图片上传失败...(image-e16660-1639285196529)] 时,系统的零状态响应[图片上传失败...(image-5beb2d-1639285196529)] ,并绘出响应的波形。
a=[1,3,2];
b=[1,2];
sys=tf(b,a)
t=0:0.01:5;
f=exp(-2*t);
lsim(sys,f,t)
3.求三阶系统[图片上传失败...(image-a71fa6-1639285196529)] 在初始条件[图片上传失败...(image-40502a-1639285196529)] 下的零输入响应的解、零状态响应的解及全解。
yzi=dsolve('D2y+5*Dy+y=0','y(0)=0,Dy(0)=1')
yzs=dsolve('D2y+5 Dy+y=exp(-3 t)','y(0)=0,Dy(0)=0')
y=dsolve('D2y+5 Dy+y=exp(-3 t)','y(0)=0,Dy(0)=1')
五、实验报告要求
1.实验内容中详细说明用连续系统时域分析法的步骤与原理。
2.写出其对应的matlab程序。
3.上机调试程序的方法及实验中的心得体会。
Ⅲ 求用matlab 做数学实验报告! 1求微分方程特解。 d^2y/dx^2+4dy/dx+29y=0 y(0)=0,y'(0)=15
对于第一个问题可以直接采用函数求解的方法
y1=dsolve('D2y+4*Dy+29*y=0','Dy(0)=15','y(0)=0','x')
y1=(3*sin(5*x))/exp(2*x)
y2=dsolve('D2y-2*Dy+5*y=sin(2*x)')
y2=sin(2*x)/5+C5*cos(2*t)*exp(t)+C6*sin(2*t)*exp(t)
对于第三个问题,那么不能求出通解,所以只能借助于数值求解的方法来求解,数值求解采用ode45函数来求解的方法,具体过程如下:
先编写待求解的微分方程函数,打开编辑器:
%编写要求解的微分方程组函数表达式!
functiondy=rigid(t,y)
dy=zeros(3,1);%定义数组函数!
dy(1)=y(2)*y(3);%第一个微分方程;
dy(2)=-y(1)*y(3);%第二个微分方程;
dy(3)=-0.51*y(1)*y(2);%第三个微分方程;
并以默认的文件名保存函数文件!
编写命令行,对微分方程求解:
options=odeset('RelTol',1e-4,'AbsTol',[1e-41e-41e-5]);%定义求解选项包含精度项!
[T,Y]=ode45(@rigid,[012],[011],options);%采用ode45求解方程组,并把求解结果保存到数组T,Y中!
plot(T,Y(:,1),'r-',T,Y(:,2),'b-.',T,Y(:,3),'k.')%作图!
gridminor%网格化!
运行上面的代码就得到函数的解:
附上图片!
如果有什么问题可以问我!!
Ⅳ 线性代数matlab实验报告
额,同学和我一样啊!!你是?? (商品的市场占有率问题) 有两家公司 R 和 S 经营同类的产品, 它们相互竞争. 每年 R 公司保有 1/4 的顾客,而 3/4 转移向 S 公司;每年 S 公司保有 2/3 的顾 客,而 1/3 转移向 R 公司.当产品开始制造时 R 公司占有 3/5 的市场分额,而 S 公司占有 2/5 的市场分额.问两年后,两家公司所占的市场分额变化怎样, 五年以后会怎样? 十年以后如何? 是否有一组初始市场分额分配数据使以后每 年的市场分配成为稳定不变? 问题分析与数学模型 根据两家公司每年顾客转移的数据资料,可得以下转移矩阵:
1 4 A= 3 4 1 3 2 3
根据产品制作之初,市场的初始分配数据可得如下向量:
3 5 X0 = 2 5
所以 n 年后,市场分配为:
1 4 X n = AX n 1 = L = A n X 0 = 3 4 1 3 2 3
n
3 5 2 5
设有数据 a 和 b 为 R 公司和 S 公司的初始市场份额,则 a + b = 1 .为了使以后每年的市 场分配不变,根据顾客数量转移的规律,有:
1 4 3 4 1 3 a a = 2 b b 3
即
3 4 3 4 1 3 a =0 1 b 3
该方程若有解,则应该在非零解的集合中选取正数解作为市场稳定的初始份额. 程序和计算结果 为了得到两年,五年,十年后市场的分配情况.
在 MATLAB 窗口中输入 >>
A=[1/4 1/3;3/4 2/3] %输入转移矩阵
A >> x0=[3/5;2/5] %输入初始向量,即初始市场份额
>> x2=A^2*x0 %计算两年后的市场份额
>> x5=A^5*x0 %计算五年后的市场份额
>> x10=A^10*x0 %计算十年后的市场份额
x2 = 0.3097 0.6903 x5 = 0.3077 0.6923
x10 = 0.3077 0.6923 由此可得下表 6.3表 6.3市场份额的转移率: 两年后 五年后 十年后
R 公司的市场份额 31% 31% 31%
S 公司的市场份额 69% 69% 69%
为了求 a 和 b 作为 R 公司和 S 公司稳定的初始市场份额,需要求解齐次方程组.
在 MATLAB 窗口中输入:
>> format rat %定义输出格式为小整数比的近似值
>> rref(A-eye(2)) %对矩阵 A I 2×2 进行初等变换,所得矩阵为矩阵 % A I 2×2 的最简行阶梯矩阵 ans = 1 0 -4/9 0
4 a b =0. 9 4 ≈ 31% 13 9 b= ≈ 69% 13 a=
由此得简化后的方程为
结合约束条件 a + b = 1 ,可得
这是使市场稳定的两家公司的初始份额,也正好与表中的数据吻合. 问题的解答和进一步思考 在 R 公司和 S 公司的市场初始份额分别为 60%和 40%的情况下,根据计算结果, 两年后情况变化较大:R 公司大约占 31%,S 公司大约占 69%.而五年以后与两年以 后比较变化不大:R 公司大约占 30.8%,S 公司大约占 69%.十年后的的情况与五年 后的情况比较大约不变.市场已趋于稳定.