文档库

最新最全的文档下载
当前位置:文档库 > MATLAB课程设计报告

MATLAB课程设计报告

目录

一、课程设计目的 (1)

二、课程设计任务 (1)

三、课程设计题目 (1)

3.1、画出分段函数图: (1)

3.2、信号的产生与变换 (2)

3.3、财经问题 (3)

3.4、计算平均学分积GPA (4)

3.5、供煤量分配问题 (6)

四、课程设计结论及分析 (7)

五、心得体会 (7)

六、参考文献 (7)

一、课程设计目的

1. 熟悉MATLAB 的工作环境;

2. 熟悉并练习MATLAB 的命令;

3. 掌握MATLAB 的基本操作;

4. 熟练掌握MATLAB 的基本应用。

二、课程设计任务

1.熟练掌握MATLAB 的基本用法以及实际应用;

2.将课程设计题目解答完毕,完成一下内容:

(1)、画出分段函数图;

(2)、信号的产生与变换;

(3)、财经问题;

(4)、计算平均学分积GPA ;

(5)、供煤量分配问题。

三、课程设计题目

3.1、画出分段函数图:

2222220.5457exp(0.75 3.75 1.5),1

(,)0.7575exp(6),1105457exp(0.75 3.75 1.5),1y x x x y p x y y x x y y x x x y ?---+>?=---<+≤??--++≤-?

(1) 程序:

x=-3:0.1:3;

y=-3:0.1:3;

length_of_x=length(x);

length_of_y=length(y);

for i=1:length_of_x

for j=1:length_of_y

if (x(i)+y(j))>1

z(i,j)=0.5457*exp(-0.75*y(j)^2-3.75*x(i)^2-1.5*x(i)); elseif ((x(i)+y(j))>-1)&&((x(i)+y(j))<=1)

z(i,j)=0.7575*exp(-y(j)^2-6*x(i)^2);

else

z(i,j)=0.5457*exp(-0.75*y(j)^2-3.75*x(i)^2+1.5*x(i)); end

end

end

mesh(x,y,z)

(2) 运行结果:

MATLAB课程设计报告

3.2、信号的产生与变换

数字信号处理中y(n)=x(-n)的画图实现;其中

21,33()0, n 3n n x n +-≤≤?=?>?

(1)程序:

n=-4:4;

for i=1:9

if abs(n(i))>3

x(i)=0;

else x(i)=2*n(i)+1;

end

end

y=fliplr(x);

stem(n,y);

(2)运行结果:

MATLAB课程设计报告

3.3、财经问题

一笔100000元的贷款要按每月等额偿付d元的方式付清。利息是在未付余额的基础上以每年10%的利率按月计入(如第一个月之后总债等于100000+(0.1/10)*100000)。

求每月的偿付额d,使得这笔贷款10年还清,并求在10年期间付款的总数目。(1)分析:

第1月后本息和: S1=(1+0.1/10)*(100000-d)=1.01*(100000-d)

第2月后本息和: S2=((1.01*(100000-d))-d)*1.01

第3月后本息和: S3=(S2-d)*1.01

第4月后本息和: S4=(S3-d)*1.01

……

第119月后本息和: S119=(S118-d)*1.01

由于需10年还清,故第120月只需还d元就全还清了,即S119=d

由于采用每月等额偿付d元的方式,故10年付款总数目为120d

(2)程序:

syms d

y=(100000-d)*1.01;

for i=1:119

y=(y-d)*1.01;

end

f=1.01*y/2.01;

digits(8)

x=vpa(solve(f));

digits(12)

s=vpa(120*x);

disp('每月偿付额d:');disp(x);

disp('10年期间付款总数目:');disp(s);

(3)运行结果:

每月偿付额d:

1420.5044

10年期间付款总数目:

170460.5280

3.4、计算平均学分积GPA

大学某班,第一学期若干学生各科成绩存在一个EXCEL文件中,文件名为score.xls 要求:matlab编程读取这个EXCEL文件并求出各个学生的平均学分积,最后将平均学积分按名字写入每个同学后面。

成绩文件的位置如下: \score.xls-Sheet1

各科的学分分配如下:高数:5英语:4物理:3.5德育:2电路:4数字电路:3.5体育:2 平均学分积计算公式:(∑成绩×学分)/∑学分

(1)程序:

[num,txt,data]=xlsread('D:\score.xls')

for i=1:30

d(i,1)=(num(i,3)*5+num(i,4)*4+num(i,5)*3.5+num(i,6)*4+num(i,7)*3.5+num(i,8) *2+num(i,9)*2)/(5+4+3.5+4+3.5+2+2)

end

b={'平均学分积'};

xlswrite('D:\score.xls', round(d*1000)/1000,'sheet1','J2:J31')

xlswrite('D:\score.xls',b,'sheet1','J1')

winopen('D:\score.xls');

(2)运行结果:

原表格:

MATLAB课程设计报告

运行后表格:

MATLAB课程设计报告

3.5、供煤量分配问题

某两个煤厂A1和A2,每月进煤量分别为60吨和l00吨,联合供应3个居民区B1,B2和B3,每个居民区每月对煤的需求量依次分别为50吨,70吨,40吨。煤厂A1离3个居民区B1,B2和B3的距离分别为10km,5km和6km,煤厂A2离3个居民区B1,B2和B3的距离分别为4km, 8km和12km,问如何分配供煤量使得运输量(即吨×km)

达到最小?

(1)分析:

fmin=10x1+5x2+6x3+4x4+8x5+12x6

x1+x2+x3≤60

x4+x5+x6≤100

x1+x4≤50

x2+x5≤70

x3+x6≤40

x1,x2,x3,x4,x5,x6≥0

(2)程序:

f=[10;5;6;4;8;12];

aeq=[1 1 1 0 0 0;0 0 0 1 1 1;1 0 0 1 0 0;0 1 0 0 1 0;0 0 1 0 0 1];

beq=[60;100;50;70;40];

lb=[0 0 0 0 0 0];

[x,fval]=linprog(f,[],[],aeq,beq,lb,[]);

disp('A1运往B1小区的煤量:'),disp(round(x(1)));

disp('A1运往B2小区的煤量:'),disp(x(2));

disp('A1运往B3小区的煤量:'),disp(x(3));

disp('A2运往B1小区的煤量:'),disp(x(4));

disp('A2运往B2小区的煤量:'),disp(x(5));

disp('A2运往B3小区的煤量:'),disp(round(x(6)));

disp('运输量最小为:'),disp(fval);

(3)运行结果:

A1运往B1小区的煤量:

A1运往B2小区的煤量:

20.0000

A1运往B3小区的煤量:

40.0000

A2运往B1小区的煤量:

50.0000

A2运往B2小区的煤量:

50.0000

A2运往B3小区的煤量:

运输量最小为:

940.0000

四、课程设计结论及分析

详见各题目后的解析

五、心得体会

经过两星期的课程设计,使我理解了理论与实际相结合是多么的重要,只学习书本上的理论知识是远远不够的,只有把所学的理论知识和实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考能力。在设计过程中也遇到了很多问题,同时也发现了自己的很多不足,对以前自己所学过的知识理解得还不够深刻,掌握得还不够牢固。然而随着对matlab的学习的不断深入,我对其了解也更加深入,在这个过程中更是我对所学的知识的一种升华,所以整个实习过程并没有想象中那么令人烦恼,反而更加能激起心中那股不服输的精神。

虽然MATLAB软件我是刚刚接触,刚开始使用还不是太熟练,但是通过老师上课的讲解、教导和自己翻阅大量的关于MATLAB的资料,终于对其有所了解。在学习过程中我进一步对MATLAB编程中常用的语句、过程已经初步掌握。由于平时练习过多次matlab 程序,所以此次课程设计并没有那么生疏。尽管过程中遇到了些许问题,通过自己的查阅资料以及同学的讨论,使自己茅塞顿开,从而解决了问题。有时尽管这些问题很小,但是也会导致结果出不来的问题,因此不论什么样的问题,都不能忽略,都要小心翼翼,直至解决它。在这次实习中我知道了合作的重要性,在和同学的讨论中,可以知晓同一道题的不同解答方法,进而扩充了自己的知识面。

总的来说,我了解了一个非常强大的软件——Matlab,一个能够改变你一生的软件。以后还要不断的学习,不断丰富自己的知识。

这次课程设计最大的收获就是不管做什么都不能放弃,要坚持到底,就像编程一样,无论错了多少次都要做好它,最终改正就行了,尽管课程设计结束了,但是这一次也给我留下了深刻印象,过程充满了乐趣,收获也很大!

六、参考文献

[1] 薛山.matlab基础教程[M].北京:清华大学出版社,2007:213-297.

[2] 王正林.matlab7.0[M].北京:电子工业出版社,2007.

[3] 张志勇等.matlab与仿真(2010a)[M].北京:北京航空航天大学出版社,2010.

[4] 薛定宇,陈阳泉.基于MATLAB/Simulink的系统仿真技术与应用[M].北京:清华大学出版社,2002.

[5] 王正林,MATLAB7.0[M].北京:电子工业出版社.