计算机仿真实验
各位同学:(1)这是计算机仿真实验内容,给出的实验过程已在matlab 上运行,你们可以直接copy 在matlab 上运行,观察运行结果,对比学习。(2)实验要求写出实验报告,实验报告的内容就按照以下给出的内容来写。
实验一:MATLAB 基础入门
实验目的:熟悉MATLAB 环境,掌握一维数组的创建,二维数组的创建。
实验过程:
(1)一维数组的创建:
观察下列计算结果,理解数组运算的意义:
a=[1,2,pi,9,0]
b=0:2:10
c=linspace(1,2,10)
a(2) b(5) c(6)
(2)二维数组的创建:
a=[1,2,3,0;9,22,1,1];
观察下列计算结果,理解数组运算的意义:
a(1,2) a(2,3) a(:) a(:,:) a(:,1) a(2,:)
[1,2;3,4]+10
[1,2;3,4]*[0.1,0.2;0.3,0.4]
[1,2;3,4].\[20,10;9,2]
sin([1,2;3,4])
[a,b]=find([1,2;3,4]>=[4,3;2,1]) [a,b]
find([1,2;3,4]>=[4,3;2,1])
(3) 观察下列计算结果,理解这些命令的意义
Clear a ; Which ;clc 的作用
实验二:MATLAB 基础入门
实验目的:掌握MA TLAB 中基本的二维绘图
基本形式
plot(x,y);plot(x,y,string)
实验过程:
指出以下各个绘图命令的输出图形分别是什么,并上机验证 t=0:pi/20:2*pi;y=sin(t);plot(t,y)
t=[0 1]; x=[1 2]; y=[x;3 4]; z=[y;5 6];
plot(t,x,'r') plot(t,y, 'b') plot(t,y') plot(t,z) plot(t,z') 线型 -实线 :虚线 -. 点划线 --间断线
点标记 . 点 o 小圆圈 x 叉子符 +加号 *星号
s 方格 d 菱形 ^朝上三角 v 朝下三 >朝右三角
颜色 y 黄色 m 品红色 c 青色 r 红色 g 绿色
b 蓝色w 白色
上机指出以下各个绘图命令的输出图形分别是什么
t=0:pi/20:2*pi; plot(t,sin(t) ,'r:>')
hold on;plot(t,cos(t),'b-.h')
title('sin(t),cos(t)的函数图形')
xlabel('t=0:pi/20:2*pi;')
ylabel('sin(t),cos(t)')
legend('sin(t)','cos(t)')
体验grid on /grid off;hold on/hold off;figure(2)的作用
利用 plot 函数在一个坐标系下绘制以下函数的图形:
y1=sin(x),y2=cos(x),y3=sin(2*x),x在0到2*pi区间
y 1 用黑色间断线点标记为星号
y 2 用红色实线点标记为小方格
y 3 用蓝色虚线点标记为小圆圈
实验三:MATLAB 编程入门
实验目的:掌握matlab 编程的基本知识。
用matlab 语言编写的程序称为M 文件。
掌握input,disp,keyboard,return,pause 的用法
掌握常用的顺序控制流程,循环控制流程,选择控制流程的用法。 M 文件以.m 为扩展名。
实验过程:
(1)上机实验
>> edit example 在弹出的编辑窗中输入
a=input('please input a number');a
disp(a), disp('b')
保存后在matlab 窗口下输入example (即运行example.m )观察输出
结果。
(2)上机实验
>> clear;s=0;
>> for n=1:100
s=s+1/n/n;
end
>> s
s =1.6350体会程序运行过程
(3)上机实验:
edit exampleswitch
在弹出的编辑窗中输入
trig=input('please input a trigonometric function','s');
switch trig
case 'sin'
t=0:pi/100:2*pi;
plot(t,sin(t));
case 'cos'
t=0:pi/100:2*pi;
plot(t,cos(t));
otherwise
end
保存后在matla 窗口下输入exampleswitch (即运行exampleswitch.m ),
please input a trigonometric function在提示下输入sin, 观察输出结果。
实验四:MATLAB 编程入门
实验目的:掌握函数文件的编程方法、调用方法。
实验过程:
(1)上机实验
edit examplehanshu
在编辑窗口输入
function y=examplehanshu(x)
%y=examplehanshu(x)
%x为输入变量,y 为输出变量。
%x>1时,输出值y=x^2;x
%Copyright 1986-2004 The MathWorks, Inc.
%Revision: 1.21 Date: 2012/03/20 10:25:50
y=zeros(size(x));
k1=find(x>1);y(k1)=x(k1).^2;
k2=find(x
k3=find(x>=-1&x
保存后在matlab 窗口下输入
>> x=-2:0.5:2;
>> y=examplehanshu(x);[x',y']
根据输出结果,体会函数文件的运行。 y=x;
(2)上机实验
function [x,y]=naeuler(dyfun,xspan,y0,h)
%用途:Euler 格式解常微分方程,y'=f(x,y),y(x0)=y0;
%格式[x,y]=naeuler(dyfun,xspan,y0,h)
%dyfun为函数f(x,y),xspan为求解区间[x0,xN],y0为初值y(x0),h为步长;
%x返回节点,y 返回数值解。
%Revised 江风云
%Copyright 1986-2004 The MathWorks, Inc.
%Revision: 1.21 Date: 2012/03/20 10:25:50
x=xspan(1):h:xspan(2);
y(1)=y0;
for n=1:length(x)-1
y(n+1)=y(n)+h*feval(dyfun,x(n),y(n));
end
x=x';y=y';
保存后在matlab 下运行
>> dyfun=inline('y-2*x/y');
>> [x,y]=naeuler(dyfun,[0,2],1,0.2); [x,y]
根据输出结果体会该函数文件的运行过程。
实验五:SIMULINK 入门
实验目的:认识simulink 中的基本模块,掌握简单建模的方法。
实验过程:认识Simulink Library Browser中Simulink 中的模块;
实验六:SIMULINK 入门
实验目的:掌握simulink 建模和仿真的基本方法
实验过程:建立模型
非线性的下滑力和空气阻力分别由函数模块来计算。其中标签为Aero Force 的函数模块的对话框中的【Expression 】区中应填写0。001*(u[1]+20*sin(0.01*u[2]))^2,标签为Hill Force的应填写30*sin(0.0001*u[1])。显示模块(Display )用作速度表,而示波器模块(Scope )则记录了速度变化曲线。
此模型也是一个轻度刚性问题的很好的例子,为了观察刚性的影响,先以解法0DE45l 来运行模型,然后选择0DE15S 再运行仿真,观察其区别。