matlab程序设计及心得体会

时间:2024.4.13

1.编写程序,建立向量n=〔1,2,3,4,5〕,并利用n产生下列向量:

(1)2 , 4 , 6 , 8 , 10         (2)1/2 , 1 , 3/2 , 2 , 5/2
(3)1, 1/2 , 1/3 , 1/4 , 1/5     (4)1 , 1/4 , 1/9, 1/16, 1/25。

注意:向量n=1:5,/是传统意义上的矩阵的除法,,而./是两个矩阵的对应元素相除,同理相乘。此处是对应元素相除,所以一定要记住应该用点除,而非除法。

2. 从键盘输入一个三位数,将它反向输出。 例如输入639,输出为936。

注意:输出函数:disp(),取整用fix(),取余函数mod(x,y)与rem(x,y)一样。

3.  输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90-100分为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
  要求:(1)分别用if语句和switch语句实现。
       (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

注意:switch语句中的case最好用0~9的数字表示而不是表达式!不可用break!后不可用表达式!!!为了表示另一种情况,记住用if与其搭配~不要太死板,学会灵活。

4.  建立5*6的矩阵,要求输出矩阵第n行元素。当n的值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并給出出错信息。

注意:随机产生一个0~1矩阵可以用rand函数,整数矩阵便用fix(100*rand(m,n))函数。产生m*n 阶[a,b]均匀分布U(a,b)的随机数矩阵:

    unifrnd (a,b,m, n)

5.      产生20个两位随机整数,输出其中小于平均值的偶数。

注意:fix(100*rand(m,n))与round(100*rand(m,n))几乎一样的,随机产生m*n阶矩阵,学会变通,随机产生两位随机整数。fix是指向0靠拢取整。fix(3.7)=3,fix(-3.7)=-3。floor指向下取整,ceil指向上取整。round指四舍五入取整!!round最常用~记住a=o指赋值,而a==0指判断,与c语言一样~当矩阵只有一行时,可用a(i)表示每一个数。用k(i)表示来输出每一个数!表示矩阵中的每一列时用a(:,i),表每一行时用a(i,:)。

6.      输入20个数,求其中的最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。注意:熟记其中的函数将对编程的速度有很大的提高!孩子,加油!

7.      ,当a取-30.,-2.9,……,2.9,3.0时,求各点的函数值。要求分别用顺序结构和循环结构实现。

注意:用size返回向量元素的个数,如果是矩阵,size(a,2)指返回矩阵的竖的个数,即多少列。其中一维是指行,二维指列。记住表示一个向量时,步长放中间。!

8.      当n分别取100、1000、10000时,求下列各式的值:(要求分别用循环结构和向量运算(使用sum函数)来实现)

(1)

(2)

(3)

(4)注意:使用while循环时,注意对n初始化,与c语言较象。普通指数时直接用^,自然指数时,若x已知,用y=exp(x)。

9.      若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。例如:2*3-1=5,由于5是素数,所以2和3是亲密数对,5是亲密素数。求〔2,50〕区间内,

(1)亲密数对的对数;

(2)与上述亲密数对对应的所有亲密素数之和。

注意:x=primes(n)输出不超过n整数的素数,a=length(x)表示输出素数的个数。用b=isprime(n)来判断n是否为素数,若为素数则b=1,反之为0。学会变通,求和用if循环就好。

10.   根据,求:
(1)y<3时的最大n值;
(2)与(1)的n值对应的y值。

注意:不能被题目吓跑~~·很简单的,耶耶!

11.   已知

(1)当时,y的值是多少?

(2)当f(n)=1*2+2*3+3*4+……+n*(n+1)时,y的值是多少?

12.   编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。

13.   定义一个函数文件,求給定复数的指数、对数、正弦、余弦,并在命令文件中调用该函数文件。

14.    先用函数的递归调用定义一个函数文件求,然后调用该函数文件求zhuyi:yaoxunzaoyigehanshubiannnengjiejue defangfa~~

15.写出下列程序的输出结果。
(1)
 s=0;

a=[12 13 14;15 16 17;18 19 20;21 22 23];

for k=a

    for j=1:4

        if rem(k(j),2)~=0

            s=s+k(j);

        end

    end

end

s      
(2)命令文件
global x

x=1:2:5;y=2:2:6;

sub(y);

x

y

函数文件sub.m

function fun=sub(z)

global x

z=3*x;

x=x+z;

16已知:,编程求的近似值。 

 注意:在编程过程中,一个小小的乘号将导致很难查出错误,很会影响心情,所以不能忽略小问题,必须仔细小心!

17.输入下面的矩阵,求该矩阵的对角线元素之和,并找出最大和最小的元素的值以及其所在的行、列号。将最大值替换成inf,最小值替换成-inf。

注意:①找出矩阵中具体某个元素的具体位置的方法:

ind=find(a==max)

siz=[4,4]

[I,J] = ind2sub(siz,ind)便可以找到最大元素的位置!!

[I1,I2,I3,...,In] = ind2sub(siz,ind)

②对角线元素用diag函数~~

③要找出一个很大矩阵的最大最小元素用两个for循环。!

加油~写出这道题好兴奋啊,这种感觉真好!!

18. 求解猴子吃桃问题。猴子在第一天摘下若干个桃子,当即吃了一半,又感觉不过瘾,于是就多吃了一个。以后每天如此,到第10天再想吃时,却发现就只剩一个桃子。请编程计算第一天猴子摘的桃子个数。

注意:不要被问题吓到,很简单的一个问题罢了~当顺着不行时,试着倒着来解答编程。

19. 求n阶勒让德多项式的值,其递归公式为:

注意;它要的仅仅只是一个定义函数~并没有需要一个确切的值。

20. 利用恒等式计算圆周率的近似值。

注意:sqrtm(a):矩阵a开平方根;sqrt(a):矩阵a对应的元素开平方根。

21.  输入一个正整数,如果它是偶数就除以2,是奇数就乘以3加上1,如此一直变化,直到最后变成1。

注意:判断一个数是否为整数可以用判断语句a==round(a)!!在matlab中,用~=表示不等于,与c语言不同。

22.  (1)用递归调用求Fibonacci数列定义如下: f1=f2=1 ,  f(n+1)=f(n)+f(n-1) 。

     (2)求Fibonacci数列大于4000的最小项。

注意:这道题目很简单,却花了很长的时间~·主要是题目意思没弄清便动笔,要学会分清题意,冷静分析。另外还要注意while的条件,1便执行,0则跳出~。

23.  列出所有的水仙花数。水仙花数是一个三位数,其各位数字的立方和等于该书本身。例如:153=13+53+33

注意:当输出的不仅仅是一个数时,需要定义一个数组a(i),i=i+1,输出为a。if语句中,判断条件中为==,而不是赋值语句=!!!别总犯相同的错误~~·

24.  试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为:而经过颠倒处理后x中数据的次序应该为:x=[ 9 7 5 3 1 ]

25.  已知某班的5名学生的三门课成绩列表如下:

学生序号1 2 3 4 5

高等数学78 89 64 73 68

外语83 77 80 78 70

MATLAB语言82 91 78 82 68

试写出有关命令,先分别找出三门课的最高分及其学生序号;然后找出三门课总分的最高分及其学生序号。针对上述的成绩表,求出其三门课总分存入数组ZF,再利用SORT命令对之按降序排序,同时把相应的学生序号存入数组XH。


第二篇:Matlab课程设计Ag


数学软件应用课程设计

题目:衡水市住宅统计

学院(系):数学与计算机科学系

年级专业:20##级数学与应用数学

姓名/学号:李冰   201340404127

李洁   201340404205

文丽灵201340506034

指导教师:周婷

衡水学院

20##年1 月10日


课程设计任务书

题目:衡水市区住宅面积统计

初始条件:

1.Matlab6.5以上版本软件;

2.课程设计辅导资料:“MATLAB语言基础及使用入门”等

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.本课程设计统一技术要求:研读辅导资料对应所要研究的问题,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导以及可行性分析,编写程序代码,上机调试运行程序,记录实验结果(包括计算结果和图表),并对实验结果进行分析和总结。

2.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:

①目录;

②与设计题目相关的理论分析、归纳和总结;

③与设计内容相关的原理分析、建模、推导、可行性分析

④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结;

⑤课程设计的心得体会;

⑥参考文献;

其他必要内容等

时间安排:2014 年12月29 日 至2015 年1月10 日

指导教师签名:


衡水市住宅统计的设计

摘要

本文首先对课程设计的任务进行了一系列的介绍,包括研究的课题、研究重点、研究状况。而后对MATLAB的功能进行简介,因为MATLAB是进行课程分析的重要手段,能通过简单的输入,相比于其他手段更加直观的表现出我们想要的效果,简单,直接。通过所掌握的数据通过人口、年龄分布、房价因素对住宅进行多种方面的统计,并且进行分析。如何统计或者估算衡水市住宅面积,对城市的经济社会发展具有重要意义,若是能够准确判断分析出来,无论是对未来的人口规划还是对城市规划都有重要意义。

关键词:MATLAB 拟合 人口 年龄 房价


原创声明

本人郑重声明:所呈交的课程设计,是小组成员在指导教师的指导下进行的研究工作以及取得的成果,除文中加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,对本设计的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

作者签名:李冰

李洁

文丽灵                              20##年1月10日


目录

课程设计任务书..................................................... 1

摘要............................................................... 2

原创声明........................................................... 3

1.MATLAB软件简介................................................... 4

2.设计题目........................................................ 5

3.设计内容......................................................... 5

4.课程设计心得................................................... 11

5.参考文献....................................................... 12


1 MATLAB软件简介

MATLAB是Matrix Laboratory的缩写,是目前最优秀的科技应用软件之一,它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB是一个交互式开发系统,其基本数据要素是矩阵。它的表达式与数学、工程计算中常用的形式十分相似,适合于专业科技人员的思维方式和书写习惯;它用解释方式工作,编写程序和运行同步,键入程序立即得到结果,因此人机交互更加简洁和智能化;而且MATLAB可适用于多种平台,随着计算机软、硬件的更新而及时升级,使得编程和调试效率大大提高。

MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学工程绘图等。它已经成为高等数学、线性代数、自动控制理论、数理统计、等课程的基本工具,

 MATLAB的语言特点和开发环境:拥有丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代码,减轻编程人员的工作负担, MATLAB最大的特点就是简洁开放的程序代码和直观实用的开发环境。具体地说,MATLAB主要有以下特点:

(1)库函数资源丰富

(2)语言精练,代码灵活

(3)运算符多而灵活

(4)面向对象,控制功能优良

(5)程序设计自由

(6)图形功能强大

(7)程序的兼容性好

(8)源代码开放

(9)形形色色的工具箱

2 设计题目

城市住房事关每个人的生活,受到社会的广泛关注,一个城市应有住房面积是政府相关部门特别关注的一个问题,当前住房面积较为确切的数值也是相关部门异常关注的问题,但就像人口问题一样,一个城市或者地区的住房面积到底有多少,有时候不能得出一个准确的数值,如何统计或者估算衡水市住房面积,对衡水市的经济社会发展具有重要意义。

题目:对衡水市住房面积进行统计调查

3 设计内容

利用MATLAB绘图及拟合函数,以及对人口方面,家庭户方面,住房用地面积,不同年龄段0-14 岁,15-64 岁,65 岁及以上所占地面积百分比进行数量分析与统计。

通过利用表格,走势图,以及饼状图和MATLAB拟合函数预测对数据进行了深程度的探索,具体方面如下。

模型求解

对全市常住人口,家庭户,住房用地面积的表格:

MATLAB程序:x=3:0.2:4.8;

y=[1200138 1443249 1550100 1557718 1667462 1539859 1838407 2149663 1948334 2379292];

p2=polyfit(x,y,2);

p3=polyfit(x,y,3);

p7=polyfit(x,y,7);

disp('二阶拟合'),f2=poly2str(p2,'x')

disp('三阶拟合'),f3=poly2str(p3,'x')

disp('七阶拟合'),f7=poly2str(p7,'x')

x1=3:0.02:4.8;

y2=polyval(p2,x1);

y3=polyval(p3,x1);

y7=polyval(p7,x1);

plot(x,y,'rp',x1,y2,'--',x1,y3,'k-.',x1,y7);

legend('拟合点','二次拟合','三次拟合','七次拟合')

title('全市常住人口与住房面积关系'),ylabel('住房面积'),xlabel('全市常住人口(x10^6)')

全市的常住人口在增长的同时,住房面积也在增长,总体来说,其增长的拟合函数:

二阶拟合

f2 =146053.4091 x^2 - 597996.5909 x + 1789938.9273

三阶拟合

f3 =347184.5862 x^3 - 3916006.25 x^2 + 15040585.912 x - 18011247.8909七阶拟合

f7 =15406453.8043 x^7 - 415011673.8892 x^6 + 4770149575.8893 x^5 - 30326641758.4339 x^4 + 115177893493.7256 x^3 - 261324333408.3578 x^2 + 327983024025.0618 x- 175670766020.6332

MATAB程序:

x=1.0:0.1:1.9;

y=[1801201 1839472 2033622 2173675 2153622 2373444 2365394 2901110 2635477 2334646];

p2=polyfit(x,y,2);

p3=polyfit(x,y,3);

p7=polyfit(x,y,7);

disp('二阶拟合'),f2=poly2str(p2,'x')

disp('三阶拟合'),f3=poly2str(p3,'x')

disp('七阶拟合'),f7=poly2str(p7,'x')

x1=1.0:0.01:1.9;

y2=polyval(p2,x1);

y3=polyval(p3,x1);

y7=polyval(p7,x1);

plot(x,y,'rp',x1,y2,'--',x1,y3,'k-.',x1,y7);

legend('拟合点','二次拟合','三次拟合','七次拟合')

title('全市家庭数与住房面积关系'),ylabel('住房面积'),xlabel('家庭数(x10^6)')

全市的家庭数在增长的同时,住房面积也在增长,总体来说,其增长的拟合函数:

二阶拟合

f2 =-1096675.3788 x^2 + 4120083.3864 x - 1316718.9076

三阶拟合

f3 =-5377352.9526 x^3 + 22294809.965 x^2 - 29009788.1546 x + 13934529.5366

七阶拟合

f7 =1262284547.3515 x^7 - 12565777877.8551 x^6 + 53105777015.3894 x^5

- 123505747651.5126 x^4 + 170701527501.8153 x^3 - 140216981944.9402 x^2

 + 63385359944.8406 x - 12164642313.7693

对不同年龄段0-14 岁,15-64 岁,65 岁及以上所占百分比的表格

MATLAB程序:

(1):

x=[699723 3268857 372193];

pie(x)

legend('0-14岁','15-64岁','64岁及以上')

title('不同年龄段人口所占百分比')

(2):

x=[100037 2778615 67533];

pie(x)

legend('0-14岁','15-64岁','64岁及以上')

title('不同年龄段所占住房面积百分比')

上表及由其所反应的饼状图所反映的事实为:0-14岁的人群所占人口比例约1/6,而占地面积约1/30,老年人人口约占1/10,占地面积约2%,其他皆由青少年及中年人组成。

而进一步的分析则显示了各类人群对空间(房子)的需求程度,分析结果为0-14岁的人群基本处于未独立的状态,无很大空间需求,多依附父母生活;15-64岁多为家庭中有工作能力的人群,他/她们处于人生最为活跃的时间段内,主要是社交方面的要求;而老年人基本都是退休人员,处于颐养天年状态,各种活跃性下降,心性沉稳,对于空间多没什么需求,占地面积最少,几乎等同于同等数量孩子的空间需求量。

换句话说,所占地的面积(空间需求量)与独立程度、年龄、阅历与活跃程度等有关,占地面积最大的是有工作能力、活动范围很大的中、青年。

20##-20##年各年龄段人口比例与人均住房面积的关系

MATLAB程序:

x=2000:4:2012;

Y=[33.94 61.09 4.97 15.5;27.97 66.44 5.59 19.5;22.13 70.4 7.47 22.3;18.15 73.35 8.5 25.6]

subplot(2,2,1)

bar(x,Y,'group')

title('20##-20##年各年龄段人口比例与人均住房面积柱状图')

ylabel('数量'),xlabel('年份')

由20##-20##年各年龄段人口比例与人均住房面积柱状图可以看出,随着15-64岁的人口比例的增长,人均住房面积也在增长。

MATLAB程序:

x=2000:500:6000;

y=[15.5 16.0 16.5 16.9 17.2 18.0 25.1 23.5 22.2];

p2=polyfit(x,y,2);

p3=polyfit(x,y,3);

p7=polyfit(x,y,7);

disp('二阶拟合'),f2=poly2str(p2,'x')

disp('三阶拟合'),f3=poly2str(p3,'x')

disp('七阶拟合'),f7=poly2str(p7,'x')

x1=2000:50:6000;

y2=polyval(p2,x1);

y3=polyval(p3,x1);

y7=polyval(p7,x1);

plot(x,y,'rp',x1,y2,'--',x1,y3,'k-.',x1,y7);

legend('拟合点','二次拟合','三次拟合','七次拟合')

title('房价与人均住房面积'),ylabel('人均住房面积'),xlabel('房价')

随着人民生活水平的提高房价在涨的同时,人均住房面积在增长,房价到了4500-5000时,人民的收入得到很大提升,所以人均住房面积大幅度提高。但是在房价提高5000-6000时,人均住房面积又在下降,所以在人均收入稳定时,房价涨,人均住房面积就会稍降,这就是人们说的“房价太高,买不起房啊”

具体的函数关系:

拟合结果:

二阶拟合

f2 =2.684e-007 x^2 + 0.00010615 x + 13.8226

三阶拟合

f3 =-5.4141e-010 x^3 + 6.7654e-006 x^2 - 0.024285 x + 42.0844

七阶拟合

f7 =8.4698e-022 x^7 - 2.3209e-017 x^6 + 2.6662e-013 x^5 - 1.6631e-009 x^4

+ 6.0797e-006 x^3 - 0.013018 x^2 + 15.1124 x - 7319.579

4 课程设计心得

通过这次MATLAB的课程设计,我对MATLAB有了一个更深的理解,MATLAB具有数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多功能。

这次的MATLAB课程设计对我来说是一次挑战,之前在课上学的知识都忘得差不多了,再加上对语言不怎么熟悉,想要编写复杂的代码,难度不是一点点,所以只有通过上网查资料,请教同学,巩固之前学的理论知识,回忆前面所做过的程序代码,也许能完成这次任务。

老师叫我们自己定题目,用MATLAB解决实际问题,我们选完题目后通过查资料,与同学讨论,一起研究分析题目。虽然有八天时间,但每天只有几个个小时待在机房,所以还得利用课后的时间继续加工。题目对于我来说比较难,自己编的代码运行不断地出错,经过N次修改后有的也能出现正确的结果,有点成就感,像生日蛋糕问题,自己想的形状与老师的不一样,也难以计算,即使这样也不放弃,继续和同学研究。

在这期间,我们也查找了不少资料,发现有很多知识是我们从没有接触过的,我们并不了解,所以借此增长了自己的见识,了解了更多关于它的应用。在编写程序代码时,需要什么函数,需要什么模块得一步一步的来,慢慢地研究,每天积累点,不能急于求成,有问题就应该去查资料,讨论,如果想要把所有东西都学到,那是比登天还难。

总之,通过这次的课程设计,体验到了真正的难度,成果晒出来,数量并没有很多,但是都是辛苦的结果,也让我收获不少,虽然过程很艰辛,但是坚持不懈,最后还是会得到自己想要的答案。从这次课程设计中也可以看出自己的理论知识不牢固,所以得加强理论知识的学习,才能更好地将理论与实践联系起来。

5 参考文献

[1] 艾冬梅,李艳晴,张丽静,刘琳.MATLAB与数学实验.机械工程出版社.

[2] 张宜华.精通MATLAB5.北京:清华大学出版社.1999.

[3] 李秀珍,庞长词.数学实验.北京:机械工业出版社.2008.

[4] 谭浩强.C程序设计.北京:清华大学出版社.2003

更多相关推荐:
matlab课程设计报告书

课程设计题目学院专业班级姓名指导教师Matlab应用课程设计信息工程学院电子信息工程桂林20xx年12月13日Matlab应用课程设计任务书学生姓名专业班级指导教师桂林工作单位信息工程学院题目Matlab运算与...

matlab课程设计报告

电子信息系统仿真设计课程设计报告课题电子信息系统仿真设计姓名学号成绩班级指导教师开课时间20xx20xx学年第1学期目录一设计题目二主要内容三具体要求四进度安排五成绩评定六正文1三维绘图2信号的时域和频域表示3...

matlab课程设计报告书 20xx

《计算机仿真及应用》课程设计报告书学号:班级:自动化081姓名目录一、设计思想二、设计步骤三、调试过程四、结果分析五、心得体会六、参考文献选题一、考虑如下图所示的电机拖动控制系统模型,该系统有双输入,给定输入和…

matlab课程设计

Matlab课程设计图像与动画班级姓名学号时间地点指导教师自动化教研室Matlab课程设计目录一课程设计目的与要求二课程设计课题的分析三课程设计的内容与安排四课程设计的步骤五课程设计的结果六参考文献七附录Mat...

matlab课程设计报告

MATLAB与仿真系统课程设计班级自动化20xx2班姓名张涛学号1105130206指导教师崔新忠地点电信实验中心第9实验室大连海洋大学课程设计报告纸学院专业班级姓名学号目录一课程设计的目的与要求1二课程设计课...

matlab课程设计报告

MATLAB课程设计报告设计课题学生姓名学生学号专业班级指导教师一课程设计的目的及其意义了解matlab的窗口工具栏的使用以及作用让matlab成为我们的日常好帮手并为将来使用matlab进行信号处理领域的各种...

matlab课程设计

课程名称学院专业班级学号姓名指导教师前言自动控制技术是生产过程中的关键环节也是许多高新技术产品的核心技术自动控制技术广泛应用于制造业农业交通航空及航天等众多产业部门极大的提高了社会劳动生产率改善了人们的劳动条件...

matlab 课程设计

西安邮电大学系部名称学生姓名专业名称班级实习时间专业课程设计报告书光电子技术系张娟娟05114093光电信息工程光电1103班20xx年6月16日至20xx年6月27日1专业课程设计报告光波偏振态的仿真一项目需...

matlab课程设计

武汉理工大学MATLAB原理与应用课程设计课程设计任务书学生姓名李威专业班级通信1201班指导教师刘新华工作单位信息工程学院题目利用matlab仿真软件进行图像的输入输出和格式变换要求完成的主要任务认真学习ma...

matlab课程设计

题目Matlab解常微分方程的初值问题一设计目的1熟练掌握Matlab的基本编程方法及其编程风格2熟练掌握Matlab常用函数的使用3能够利用Matlab软件绘制图形并解决相关的数学问题4与常微分方程的相关知识...

matlab课程设计

滨州学院课程设计学年论文题目IIR和FIR滤波器设计系院信息工程系专业通信工程班级20xx级1班姓名肖杰学号1214110103指导教师马震职称副教授20xx年1月11日滨州学院课程设计学年论文任务书指导教师用...

matlab课程设计

武汉理工大学MATLAB原理与应用课程设计课程设计任务书学生姓名倪旋专业班级通信1201班指导教师刘新华工作单位信息工程学院题目两点电荷间电场线等势面及场强的MATLAB模拟要求完成的主要任务在数字信号处理平台...

matlab课程设计心得体会(18篇)