实验报告 计算机仿真 2011秋季
- 格式:doc
- 大小:531.50 KB
- 文档页数:17
计算机仿真课程实验指导 供生物医学工程专业本科生使用
1
计算机仿真
课程实验指导
河北工业大学电气与自动化学院
生物医学工程专业
2011年秋季 计算机仿真课程实验指导 供生物医学工程专业本科生使用
2
目 录
实验项目一:MATLAB数值计算 ..................................................... 3
实验项目二:MATLAB数据的可视化 ............................................. 8
实验项目三:动态电路的仿真 ........................................................ 12
实验项目四:模拟电路的仿真 ........................................................ 13
实验项目五:组合逻辑电路仿真 .................................................... 15
实验项目六:信源编码和量化 ........................................................ 17
计算机仿真课程实验指导 供生物医学工程专业本科生使用
3
实验项目一:MATLAB数值计算
实验的目的和任务:学习使用MATLAB常用命令进行数组和矩阵等数值计算
实验内容:
1.要求在闭区间]2,0[上产生具有10个等距采样点的一维数组。试用两种不同的指令实现。(参考提示:用冒号或linspace命令)
A =
0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 4.8869 5.5851
6.2832
A =
0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 4.8869 5.5851
6.2832
2.已知矩阵4321A,运行指令B1=A.^(0.5), B2=A^(0.5), 可以观察到不同运算方法所得结果不同。
(1)请分别写出根据B1, B2恢复原矩阵A的程序。
A =
1 2
3 4
>> B1=A.^(0.5)
B1 =
1.0000 1.4142
1.7321 2.0000
>> B2=A^(0.5)
B2 =
0.5537 + 0.4644i 0.8070 - 0.2124i
1.2104 - 0.3186i 1.7641 + 0.1458i
>> A1=B1.^(2) 计算机仿真课程实验指导 供生物医学工程专业本科生使用
4 A1 =
1.0000 2.0000
3.0000 4.0000
>> A2=B2^(2)
A2 =
1.0000 + 0.0000i 2.0000 - 0.0000i
3.0000 + 0.0000i 4.0000
(2)用指令检验所得的两个恢复矩阵是否相等。
3.先运行clear,format long,rand('state',1),A=rand(3,3),然后根据A写出两个矩阵:一个对角阵B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全为0,而其余元素与对应的A阵元素相同。
clear,format long,rand('state',1),A=rand(3,3)
A =
0.95278214965662 0.59815852417219 0.83681960067634
0.70406216677500 0.84074319811307 0.51870305972492
0.95387747359223 0.44281884223513 0.02220977857260
命令为:
4.下面有一段程序,企图用来解决如下计算任务:有矩阵kkkkkkkk10229221911A,当k依次取10, 9, 8, 7, 6, 5, 4, 3, 2, 1时,计算矩阵kA“各列元素的和”,并把此求和结果存放为矩阵Sa的第k行。例如3k时,A阵为306329522841,此时它各列元素
的和是一个)101(行数组87156,并把它保存为Sa的第3行。问题:该段程序的计算结果对吗?假如计算结果不正确,请指出错误发生的根源,并改正之。 计算机仿真课程实验指导 供生物医学工程专业本科生使用
5
原程序为:
for k=10:-1:1
A=reshape(1:10*k,k,10);
Sa(k,:)=sum(A);
end
Sa;
修改源程序:
(提示,使用help sum,参考关于sum函数的英文说明,注意sum是何时是按照列来求和的)
for k=10:-1:1
A=reshape(1:10*k,k,10);
Sa(k,:)=sum(A,1);
end
Sa;
5.由指令rand('state',0),A=rand(4,6)生成二维数组A,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。
(请参考find指令的用法,利用help find,注:命令('state',0) 为resets the
generator to its initial state. 重新恢复初始状态,刚运行matlab时候的状态,更详细的rand 用法请参考help rand)
6.求解一元七次方程1.25x7+5.66x6+0.71x4+0.68x3+6.21x+5015=0的根。(使用root指令)
命令为:
7.运行如下指令:(请参考教材上符号计算那一章例2.1-3)
syms a b x X Y
k=sym(‘3’);
z=sym(‘c*sqrt(delta)+y*sin(theta)’) 计算机仿真课程实验指导 供生物医学工程专业本科生使用
6 EXPR=a*z*X+(b*x^2+k)*Y
在表达式EXPR中,确定1个、2个和3个自由符号变量的命令分别为:
找出EXPR中的全部的自由符号变量的命令为:
8.请编写MATLAB指令,化简3281261xxxf。
(请参考教材上符号计算那一章例2.2-2)
9.请编写MATLAB指令求kxxx)11(lim。(请参考教材上符号计算那一章例2.3-1)
10. 请编写MATLAB指令求dxxxx11。(请参考例2.3-9)
11. 产生5阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除.(根据参考答案,写出自己的程序)
参考答案:
(1)生成5阶随机方阵A
A=fix((90-10+1)*rand(5)+10)
(2) 判断A的元素是否可以被3整除。
P=rem(A,3)==0
其中,fix为朝零方向舍入函数,rem(A,3)是矩阵A的每个元素除以3的余数矩阵。此时,0被扩展为与A同维数的零矩阵,P是进行等于(==)比较的结果矩阵。
12. 已知矩阵 1 2 0
X= 2 5 -1 计算机仿真课程实验指导
供生物医学工程专业本科生使用
7 4 10 -1
计算其特征值V和特征向量D,并验证XV=VD。(提示用eig函数)
(根据参考答案,写出自己的程序)
(参考[V,D]=eig(A):求A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量)
13. 用求特征值的方法解方程,3x5-7x4+5x2+2x-18=0。
(根据参考答案,写出自己的程序)
参考答案:
命令如下:
p=[3 -7 0 5 2 -18];
A=compan(p) %p的伴随矩阵
x1=eig(A) %求A的特征值
x2=roots(p) %直接求多项式p的零点
即 方程p(x)=0的解
14、求方程组的解
(1) x1+2x2=8
2x1+3x2=13
(2) 计算机仿真课程实验指导 供生物医学工程专业本科生使用
8
x1+2x2=1
2x1+3x2=2
3x1+4x2=3
(3) x1+2x2+3x3=1
2x1+3x2+4x3=2
实验项目二:MATLAB数据的可视化
实验的目的和任务:利用MATLAB常用命令进行符号计算和绘图,练习二维图形和三维图形的绘制、符号计算
实验内容:
1.三维曲线绘图。本例演示:三维曲线的参数方程;线型、点形和图例。 计算机仿真课程实验指导 供生物医学工程专业本科生使用
9 t=(0:0.02:2)*pi;
x=sin(t);y=cos(t);z=cos(2*t);
plot3(x,y,z,'b-',x,y,z,'bd')
view([-82,58]),box on
xlabel('x'),ylabel('y'),zlabel('z')
legend('链','宝石')
2. 用曲面图表现函数22yxz。
3. 三种浓淡处理方式比较。
clf
x=-4:4;y=x;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;
surf(X,Y,Z)
colormap(jet)
subplot(1,3,1),surf(Z),axis off
subplot(1,3,2),surf(Z),axis off,shading flat
subplot(1,3,3),surf(Z),axis off,shading interp
set(gcf,'Color','w')
4. 灯光、照明、材质指令所表现的图形。
clf;
[X,Y,Z]=sphere(40);
colormap(jet) %<3>
subplot(1,2,1),surf(X,Y,Z),axis equal off,shading interp %<4>
light ('position',[0 -10 1.5],'style','infinite') %<5>
lighting phong %<6>