计算机仿真实验报告
- 格式:doc
- 大小:418.00 KB
- 文档页数:22
计算机仿真实验报告
班级:
姓名:
学号:
指导教师:
昆明理工大学信息工程与自动化学院
2012年12月
实验一常微分方程的求解及系统数学模型的转换一.实验目的
通过实验熟悉计算机仿真中常用到的Matlab指令的使用方法,掌握常微分方程求解指令和模型表示及转换指令,为进一步从事有关仿真设计和研究工作打下基础。
二. 实验设备
个人计算机,Matlab软件。
三. 实验准备
预习本实验有关内容(如教材第2、3、5章中的相应指令说明和例题),编写本次仿真练习题的相应程序。
四. 实验内容
1. Matlab中常微分方程求解指令的使用
题目一:请用MATLAB的ODE45算法分别求解下列二个方程。要求:1.编写出Matlab 仿真程序;2.画出方程解的图形并对图形进行简要分析;3.分析下列二个方程的关系。
1.2.
方程1:
M文件:
function xprim=xprim(t,x)
xprim=-x^2
程序:
[t,x]=ode45('xprim',[0,1],1);
plot(t,x,'o',t,x,'-');
xlabel('time t0=0,tt=1');
ylabel('X values X(0)=1');
grid
图像:
方程2:
M文件:
function xprim=xprim2(t,x) xprim=x^2
程序:
[t,x]=ode45('xprim2',[0,1],-1); plot(t,x,'o',t,x,'-');
xlabel('time t0=0,tt=1'); ylabel('X values X(0)=-1'); grid
图像:
题目二:下面方程组用在人口动力学中,可以表达为单一化的捕食者-被捕食者模式(例如,狐狸和兔子)。其中1x 表示被捕食者, 2x 表示捕食者。如果被捕食者有无限的食物,并且不会出现捕食者。于是有1'1x x ,则这个式子是以指数形式增长的。大量的被捕食者将会使捕食者的数量增长;同样,越来越少的捕食者会使被捕食者的数量增长。而且,人口数量也会增长。请分别调用ODE45、ODE23算法求解下面方程组。要求编写出Matlab 仿真程序、画出方程组解的图形并对图形进行分析和比较。
题目二程序及其运行结果: ODE45算法: M 文件:
function fun=fun(t,x)
fun=[x(1)-0.1*x(1)*x(2)+0.01*t;-x(2)+0.02*x(1)*x(2)+0.04*t]; 程序:
[t,x]=ode45('fun',[0,20],[30;20]);
plot(t,x);
xlabel('time t0=0,tt=20');
ylabel('x values x1(0)=30,x2(0)=20');
ODE23解法:
M文件:
function fun=fun(t,x)
fun=[x(1)-0.1*x(1)*x(2)+0.01*t;-x(2)+0.02*x(1)*x(2)+0.04*t]; 程序:
[t,x]=ode23('fun',[0,20],[30;20]);
plot(t,x);
xlabel('time t0=0,tt=20');
ylabel('x values x1(0)=30,x2(0)=20');
2. Matlab 中模型表示及模型转换指令的使用
题目三:若给定系统的的传递函数为
1
13210
6126)(2
3423+++++++=s s s s s s s s G 请用MATLAB 编程求解其系统的极零点模型。 程序:
num=[6,12,6,10];den=[1,2,3,1,1];
[z,p,k]=tf2zp(num,den);sys=zpk(z,p,k) 运行结果:
题目四:习题2.4 num=[1,4,5]; den=[1,6,11,6]; sys=tf(num,den); canon(sys,'modal')
题目五:习题5.8
程序:
D=zpk(0,[0.1,0.2],1,0.02)
D2=d2d(D,0.1)
程序运行结果:
>> D=zpk(0,[0.1,0.2],1,0.02)
Zero/pole/gain:
z
---------------
(z-0.1) (z-0.2)
Sampling time: 0.02
>> D2=d2d(D,0.1)
Zero/pole/gain:
1.3881 (z+0.0002381)
----------------------
(z-1e-005) (z-0.00032) Sampling time: 0.1 五.总结与体会
通过本次实验了解了计算机仿真中常用到的Matlab 指令的使用方法,掌握了常微分方程求解指令和模型表示及转换指令,为进一步学习仿真设计打下了基础。
实验二 Matlab 优化工具箱的使用
一.实验目的
通过上机操作熟悉Matlab 优化工具箱的主要功能及其使用方法,掌握优化工具箱中常用函数的功能和语法,并利用其进行极值运算、求解线性和非线性问题等,为进一步的仿真设计和研究打下基础。
二. 实验设备
个人计算机,Matlab 软件。
三. 实验准备
预习本实验有关内容(如教材第6章中的相应指令说明和例题),编写本次仿真练习题的相应程序。
四. 实验内容
1. 应用Matlab 优化工具箱求解优化问题
例题6.6~6.10,选做2题,要求自行修改方程系数,并比较运行结果。 例题6.7(原):min 432142x x x x +++ s.t. 8434321≤-++x x x x 6324321≤+-+x x x x 94431≤++x x x 0,,,4321≥x x x x 解:f=[2 4 1 1];
A=[1 3 4 -1;2 1 -3 1;1 0 4 1]; b=[8 6 9];
LBnd=[0 0 0 0];
[x,fval]=linprog(f,A,b,[],[],LBnd,[]) Optimization terminated.
x =
1.0e-012* 0.0078 0.0259 0.2098 0.0860