计算机仿真课程实验指导2012秋季

时间:2025-04-07

计算机仿真课程实验指导 供生物医学工程专业本科生使用

计算机仿真 课程实验指导

河北工业大学电气工程学院

生物医学工程专业 2011年秋季学期

实验项目一:实验项目二:实验项目三:动态电路的仿真实验项目四:模拟电路的仿真实验项目五:组合逻辑电路仿真实验项目六:信源编码和量化计算机仿真课程实验指导 供生物医学工程专业本科生使用

目 录

MATLAB数值计算 ..................................................... 3 MATLAB数据的可视化 ........................................... 12 ........................................................ 21 ........................................................ 26 .................................................... 32 ........................................................ 38

班级: 生医C103 学号: 106201 姓名: 朱海军

实验项目一:MATLAB数值计算

实验的目的和任务:学习使用MATLAB常用命令进行数组和矩阵等数值计算 实验内容:

1.要求在闭区间[0,2 ]上产生具有10个等距采样点的一维数组。试用两种不同的指令实

现。(参考提示:用冒号或linspace命令) linspace(0,2*pi,10) ans =

0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 4.8869 5.5851 6.2832 a=0:2*pi/9:2*pi a =

0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 4.8869 5.5851 6.2832 2.已知矩阵A

12

,运行指令B1=A.^(0.5), B2=A^(0.5), 可以观察到不同运算方法所 34

得结果不同。

(1)请分别写出根据B1, B2恢复原矩阵A的程序。 A=[1 2;3 4] B1=A.^(0.5) B2=A^(0.5) A1=B1.^2 A2=B2^2 >> A=[1 2;3 4]

A =

1 2 3 4 B1 =

1.0000 1.4142 1.7321 2.0000 B2 =

0.5537 + 0.4644i 0.8070 - 0.2124i 1.2104 - 0.3186i 1.7641 + 0.1458i A1 =

1.0000 2.0000 3.0000 4.0000 A2 =

1.0000 + 0.0000i 2.0000 + 0.0000i 3.0000 - 0.0000i 4.0000 + 0.0000i

(2)用指令检验所得的两个恢复矩阵是否相等。 >> isequal(A1,A2) ans = 0

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 命令为:

b=diag(A); B=diag(b) C=A-B

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 >> b=diag(A) b =

0.95278214965662 0.84074319811307 0.02220977857260 >> B=diag(b) B =

0.95278214965662 0 0 0 0.84074319811307 0 0 0 0.02220977857260 >> C=A-B C =

0 0.59815852417219 0.83681960067634 0.70406216677500 0 0.51870305972492 0.95387747359223 0.44281884223513 0

1k 1 9k 1 2k 2 9k 2

,4.下面有一段程序,企图用来解决如下计算任务:有矩阵Ak

k2k 10k

当k依次取10, 9, 8, 7, 6, 5, 4, 3, 2, 1时,计算矩阵Ak“各列元素的和”,并把此求和结

14 28 果存放为矩阵Sa的第k行。例如k 3时,A阵为25 29,此时它各列元素 36 30

的和是一个(1 10)行数组 615 87 ,并把它保存为Sa的第3行。问题:该段程序的计算结果对吗?假如计算结果不正确,请指出错误发生的根源,并改正之。

原程序为: for k=10:-1: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) rand('state',0),A=rand(4,6) A =

Columns 1 through 4

0.95012928514718 0.89129896614890 0.82140716429525 0.92181297074480 0.23113851357429 0.76209683302739 0.44470336435319 0.73820724581067 0.60684258354179 0.45646766516834 0.61543234810009 0.17626614449462 0.48598246870930 0.01850364324822 0.79193703742704 0.40570621306210 Columns 5 through 6

0.93546969910761 0.05789130478427 0.91690443991341 0.35286813221700 0.41027020699095 0.81316649730376 0.89364953091353 0.00986130066092

A=reshape(1:10*k,k,10); Sa(k,:)=sum(A);

>> a=find(A>0.5) a = 1 3 5 6 9 11 12 13 14 17 18 20

23

[i,j]=find(A>0.5) i = 1 3 1 2 1 3 4 1 2 1 2 4

计算机仿真课程实验指导 供生物医学工程专业本科生使用

3 j = 1 1 2 2 3 3 3 4 4 5 5 5 6

6.求解一元七次方程1.25x7+5.66x6+0.71x4+0.68x3+6.21x+5015=0的根。(使用root指令) 命令为:

>> a=[1.25 5.66 0 0.71 0.68 0 6.21 5015]; >> roots(a) ans =

-4.85272979161717 -2.64205763581906 + 2.05906361771933i -2.64205763581906 - 2.05906361771933i 0.2781406856843 …… 此处隐藏:4629字,全部文档内容请下载后查看。喜欢就下载吧 ……

计算机仿真课程实验指导2012秋季.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219