南京邮电大学软件设计实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件设计报告

( 2014 / 2015 学年第二学期)

课程名称软件设计

指导老师赵江实习时间第十八周学生姓名学号

____学院______专业

软件设计

课程编号:B0465011C

适用专业:

班级:

一、所涉及的课程及知识点

涉及的课程:第6学期之前的专业基础课程。

知识点:专业基础课程中所学的知识点。

二、目的与任务

目的:通过软件设计,培养学生的实践能力和创新精神,加强学生对专业基础课程的理解和掌握,加强学生高级语言编程能力、应用软件以及仿真能力。

任务:选择以下任一模块进行设计:Matlab软件仿真、C语言及应用。

软件设计的内容

题目1:如果给出两个矩阵⎥⎥

⎥⎦

⎢⎢⎢⎣⎡=136782078451220124A ,⎥⎥⎥⎦⎤

⎢⎢⎢⎣⎡=087654321B ,执行下面的矩阵运算命令。

(1)B A *5+和I B A +-分别是多少(其中I 为单位矩阵)? (2)B A *⋅和B A *将分别给出什么结果,它们是否相同?为什么? 逻辑功能程序:

function [ ] = EXP1()

A=[4,12,20;12,45,78;20,78,136]; B=[1,2,3;4,5,6;7,8,0]; I=eye(3); disp('A+5*B='); disp(A+5*B); disp('A-B+I=') disp(A-B+I); disp('A.*B='); disp(A.*B) disp('A*B='); disp(A*B); End 实验过程与结果

打开matlab ,在命令窗口“Command Window ”中键入edit,启动程序编辑器。输入完整程序后利用save as 储存为M 文件,文件名为EXP1。返回主界面,在命令窗口 “Command Window ”中输入函数EXP1(),按下回车,得到程序运行结果如下:

>> EXP1( ) A+5*B=

9 22 35

32 70 108

55 118 136

A-B+I=

4 10 17

8 41 72

13 70 137

A.*B=

4 24 60

48 225 468

140 624 0

A*B=

192 228 84

738 873 306

1284 1518 528

实验结果分析

(1)利用MATLAB提供的disp函数既可以输出表达式、数值,也可以输出字符串,其调用方式为:disp(表达式或数值)、disp(‘待显示字符串’);

(2)在MATLAB的矩阵运算中,+、-运算符通用,表示矩阵相加、减;*与.*不同在于*表示矩阵乘法,而.*表示矩阵对应位置元素相乘,所以*要求两个矩阵的行、列数互为转置,而.*则要求两个矩阵行、列数要相同;

(3)使用eye可以获得单位矩阵函数(矩阵对角线处元素为1,其余元素为0),矩阵的阶数由括号内的值决定,格式为eye(n),n为矩阵阶数。

题目2:请绘制出一个圆形,要求用函数实现。

逻辑功能程序

function [] = EXP2(a,b,R)

t=0:pi/150:2*pi;

x=a+R*cos(t);

y=b+R*sin(t);

hold on;

plot(x,y);

plot(a,b,'+');

axis([a-R,a+R,b-R,b+R]);

axis equal;

title('圆:(x-a)^2+(y-b)^2=R^2');

legend(['(x-',num2str(a),')^2+(y-',num2str(b),')^2=',num2str(R), '^2']);

hold off;

end

实验过程与结果

打开matlab,在命令窗口“Command Window”中键入edit,启动程序编辑器。输入完整程序后利用save as储存为M文件,文件名为EXP2。返回主界面,在命令窗口“Command Window”中输入函数EXP2(),按下回车,得到程序运行结果如下:

>>EXP2(15,25,40)

-30

-20

-10

10

20

30

40

50

60

-100102030405060x 圆:(x-a)2+(y-b)2=R 2

实验结果分析

(1)构建关于圆的参数方程,使用hold on 的使用保证后绘的图不会覆盖先绘的图,在程序结束前使用hold off ;

(2)为了使圆的圆心位置和半径长度等参数可调,所以函数使用了带参量的输入方式;

(3)绘图使用plot 函数,带参数可以限制绘图范围,plot 函数绘制圆心用符号‘+’表示;

(4)axis equal 是坐标轴刻度等距,这样是图形显示的不失真; (5)lengend 、num2str 函数添加图形注释,lengend 添加注释的调用格式为lengend(‘字符串’,num2str 使数值转换成字符,num2str (数值或数值的表达式);

题目3:双极型晶体管基区少子浓度分布

试绘出缓变基区的杂质分布为:

①()()⎪⎪⎭

⎫ ⎝⎛-=B B B W

x

N x N 10; ②()()x

W B B B

e

N x N η

-

=0时,

基区的少子浓度分布图,并能清楚解释各参量对少子浓度分布函数的影响。

程序说明:当晶体管偏置在有源放大区时,V C <0且|V C |>>kT /q ,集电结边缘处电子密度为零,即 x =W B ,n B (W B )=0。由此边界条件,得到缓变基区少子浓度分布函数:

⎰-

=B W x B B nB nE B dx x N x N qD I x n )()

(1

)( 假定:I nE =0.01mA ;D nB =2cm 2/s ;W B =0.05um ;q =1.6e-19C 。

逻辑功能程序

function [ ] = Question3( ) syms x eta NB0 InE DnB WB q a ; NB1x=NB0*(1-x/WB); NB2x=NB0*exp(-eta*x/WB);

nBx=InE*int(NB2x,x,x,WB)/(NB2x*q*DnB); nB0=InE*WB/(q*DnB); y=nBx/nB0;

nB0=subs(nB0,{InE,DnB,WB,q},{0.01,2,0.05,1.6*10^-19}); y=subs(y,x,a*WB);

y=subs(y,{q},{1.6*10^-19}); for i=0:2:8 yx=limit(y,eta,i); ezplot(yx,[0,1]);

text(0.5-0.05*i,subs(yx,a,(0.5-0.05*i)),['η=',num2str(i)]); hold on ;

相关文档
最新文档