计算机仿真报告(共9篇)
实验一常微分方程的求解及系统数学模型的转换 一.实验目的 通过实验熟悉计算机仿真中常用到的Matlab指令的使用方法,掌握常微分方程求解指令和模型表示及转换指令,为进一步从事有关仿真设计和研究工作打下基础。 二.实验设备 个人计算机,Matlab软件。 三.实验准备 预习本实验有关内容,编写本次仿真练习题的相应程序。 四.实验内容 1.Matlab中常微分方程求解指令的使用 题目一:请用MATLAB的ODE45算法分别求解下列二个方程。要求:1.编写出Matlab仿真程序;2.画出方程解的图形并对图形进行简要分析;3.分析下列二个方程的关系。 1.2. 1.仿真程序 方程一: M文件; functionf1=f1(t,x) f1=-x^2 [t,x]=ode45(‘f1’,[0,40],[1]); plot(t,x); grid 方程二: functionf1=f1(t,x) f1=x^2 [t,x]=ode45(f2,[0,40],[-1]); plot(t,x); grid 2. 方程解的图形并对图形进行简要分析 3. 3.二个方程的关系 题目二:下面方程组用在人口动力学中,可以表达为单一化的捕食者-被捕食者模式。其中x1表示被捕食者,x2表示捕食者。如果被捕 食者有无限的食物,并且不会出现捕食者。于是有x1'?x1,则这个式子是以指数 形式增长的。大量的被捕食者将会使捕食者的数量增长;同样,越来越少的捕食者会使被捕食者的数量增长。而且,人口数量也会增长。请分别调用ODE45、ODE23算法求解下面方程组。要求编写出Matlab仿真程序、画出方程组解的图形并对图形进行分析和比较。 fun3m文件: functionfun3=fun3(t,x) fun3=[x(1)-*x(1)*x(2)+*t;-x(2)+*x(1)*x(2)+*t]Ode45解函数程序: [t,x]=ode45('fun3',[0,20],[30,20]); plot(t,x);title('ode45作图'); xlabel('蓝线为捕食者,绿线为被捕食者'); grid Ode45解函数图像: Ode23解函数程序: [t,x]=ode23('fun3',[0,20],[30,20]); plot(t,x);title('ode23作图'); xlabel('蓝线为捕食者,绿线为被捕食者'); grid Ode23解函数图像: 2.Matlab中模型表示及模型转换指令的使用题目三:若给定系统的的传递函数为 6s3?12s2?6s?10G(s)?4s?2s3?3s2?1s?1 请用MATLAB编程求解其系统的极零点模型。fz=[];fm=[12311]; [z,p,k]=tf2zp(fz,fm); Gzpk=zpk(z,p,k) [zeropolesk]=zpkdata(Gzpk,'v') 结果: Gzpk= 6(s+)(s^2++) -----------------------------------------------(s^2++)(s^2++) Continuous-timezero/pole/gainmodel. zero= -+ -+ -- poles= -+ -- -+ -- k= 6 题目四:习题 s2?4s?5G(s)?的对角标准型(s?1 然后,根据现实出来的幻灯片右面按钮进行操作,可按START——NEXT——NEXT按钮一步步运行,观察。 3、自编程序并完成上机编辑,调试,运行,存盘:用MATLAB命令完成矩阵的各种运算,例如: ?11 ??21A?? ?31?41? 14??24??34?44?? 求出下列运算结果,并上机验证。解:实验程序如下: functionchengxu1 A=[;;;];a1=A(:,1)a2=A(2,:) a3=A(1:2,2:3)a4=A(2:3,2:3)a5=A(:,1:2)a6=A(2:3)a7=A(:)a8=A(:,:)a9=ones(2,2)a10=eye(2) 实验结果如下: ?11???21 (1)A(:,1)=??(2)A(2,:)=?21 ?31????41? ?12 (3)A(1:2,2:3)=? 13??2223 24? ?22 (4)A(2:3,2:3)=? 23?? ?