matlab程序设计及心得体会

2025-03-31 版权声明 我要投稿

matlab程序设计及心得体会(精选8篇)

matlab程序设计及心得体会 篇1

(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函数来实现。注意:熟记其中的函数将对编程的速度有很大的提高!孩子,加油!

e0.3ae0.3a0.3asin(a0.3)ln7.y,当a取-30.,-2.9,……,2.9,3.0时,求各点22的函数值。要求分别用顺序结构和循环结构实现。

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

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

1111 2222123n111(2)1

3571111(3)n

416644(1)

2n2n224466(4)注意:使用while循环时,注意对n初始化,1335572n12n1与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循环就好。

111110.根据1,求:

3572n1(1)y<3时的最大n值;(2)与(1)的n值对应的y值。

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

11.已知yf(40)

f(30)f(20)(1)当f(n)=n+10ln(n2+5)时,y的值是多少?

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

12.编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。13.定义一个函数文件,求給定复数的指数、对数、正弦、余弦,并在命令文件中调用该函数文件。

14.先用函数的递归调用定义一个函数文件求1005010i,然后调用该函数文件求

i1n1zhuyi:yaoxunzaoyigehanshubiannnengjiejue defangfa~~ kkkk1k1k1215.写出下列程序的输出结果。(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已知:1111n11,编程求的近似值。

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

1517.输入下面的矩阵,A913234678101112141516求该矩阵的对角线元素之和,并找出最大和最小的元素的值以及其所在的行、列号。将最大值替换成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阶勒让德多项式的值,其递归公式为:

p(n,x)((2*n1)*x*p(n1,x)(n1)*p(n2,x))/n

p(0,x)1;p(1,x)x注意;它要的仅仅只是一个定义函数~并没有需要一个确切的值。20.利用恒等式26k11计算圆周率的近似值。k2注意: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名学生的三门课成绩列表如下:

matlab程序设计及心得体会 篇2

1 FPGA设计中存在的问题

FPGA (Field-Programmable Gate Array, 现场可编程门阵列) 是可编程数字集成电路器件。目前随着科学技术的进步, 数字技术的快速发展, 在电子工程设计中运用FPGA进行设计复杂的数字功能的次数越来越多, 这对FPGA设计软件的功能提出更大的要求。比如FPGA设计不仅能够实现FFT算法基础上保保证其时序得到验证, 而且还需要对计算结果以及迭代的计算结果实现功能验证。但是目前的FPGA不能满足要求, 并且具有非常大的局限性。

MATLAB是矩阵实验室 (Matrix Laboratory) 的简称, 是美国MathWorks公司推出的用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的软件, 它是集自动控制、神经系统、科学计算、图像处理以及信号处理于一体并具有非常高的编程效率的软件[1]。针对上述FPGA设计中存在的问题, 下面具体进行分析FPGA设计中应用MATLAB软件强大的数据可视化功能和数据分析处理能力解决上述问题的有效性。

2 MATLAB在FPGA中应用实例分析

1.MATLAB中的Fixed-point Toolbox简介

Fixed-point Toolbox在MATLAB中开发的定点算法, 这种工具箱能够实现从2到65536bit的字长的数据类型, 这种工具箱能够在MATLAB工作区域中实现bit-trur操作, 这种工具箱能够不仅能够实现定点数据处理功能、提供完整的位操作系统, 并且还能够辅助定点算法进的建模测试以及定点实现的验证。这种工具箱不仅能够为MATLAB提供定点数据类型, 实现基本定点的算术运算, 并且额能够实现MATLAB的定点函数的输入输出数据的处理, 而且还能够实现Simulink模型的定点数据输入输出的管理, 以实现定点数据IO。

2.硬件模型的建立

在FPGA设计中关注最多是时序的收敛和验证, 很多工程师在对设计方案确定之后, 就直接在ISE上进行开发, 但是这很容易出现算法简单、有限字长效应等一些问题, 从而造成硬件实现后其性能比湖综合数学模型不能满足设计要求。针对这些问题我们采用MATLAB中Fixed-point Toolbox进行建立FPGA硬件模型就能够解决这些问题。

在系统中建立模型之后, 还应该将软件中的语言转换位VHDL等硬件语言的RTL代码, 最后在ISE上完成时序验证。下面是乘法器的一个复乘的定点算法模型, 如果在系统中输入36bit的归一化复数, 并且其旋转因子为36bit的复数, 则他们的虚数和实数都是18bit, 如果将复数的输出为38bit, 则实数和虚数为19bit[2]。复数的硬件模型:

设有两个复数分别为X1和X2, 令X1_temp=fi (X1, 1, 18, 0) , X2_temp=fi (X2, 1, 18, 0) 并令X1r、X1i、X2r、X 2i分别为复数的实数部分和虚数部分, 并采用Fixed-point Toolbox对实数欲的定点乘法进行计算, 则结果应该为36bits:

对于乘积进行截断操作, 假设取前19bits

然后定义一个量化对象, 将截断后的数据进行转化为有符号数:

最后完成复数运算, 并将其实数部分和虚数部分结果输出:

通过完成设计之后我们可以发现此结果与FPGA的输出结果是一致的。

3.功能验证

在FPGA设计软件中ISE中我们可以采用文件IO进行读取测试激励, 并且这些激励也能够在MATLAB中的生成, 在测试结束之后我们还能够采用MATLAB软件进行分析测试结果, 从而实现功能验证。

3 结论

由于FPGA设计调试环境中只能直观的显示出仿真测试数据的时域波形, 不能显示数据的频谱等特性, 从而为设计和调式带来困难。而MATLAB集自动控制、神经系统、科学计算、图像处理以及信号处理于一体并具有非常高的编程效率的软件。它在FPGA测试数据中分析不仅简单方便, 而且还能够满足FPGA在设计的过程中对数据的处理。从为FPGA的设计提供极大的方便。

摘要:本文主要通过进行分析FPGA设计中存在的问题, 并提出采用MATLAB中的Fixed-pointToolbox对FPGA测试数据进行分析, 并通过具体的实例进行证明, 在FPGA设计中采用MATLAB软件能够为FPGA的设计带来巨大的方便。

Matlab程序设计教改实践 篇3

关键词:Matlab程序设计;教学改革;教学实践

近年来,计算机技术和网络技术飞速发展,信息类专业即使不是计算机相关专业的人才,也应该具有较高的编程水平,甚至要具备软件研发等多个方面的能力,这样才能满足社会的需求。因此,程序设计类课程在高校信息类专业课程体系中占有相当大的比重。

Matlab是一个拥有数值计算分析、可视化的图形、处理文字以及分析符号等功能的集成化软件。目前,科学理论的仿真分析、工程技术、数据整合计算、实验的平台搭建等各方面都离不开Matlab这个强大的科学计算仿真平台。因为其具有非常直观、高效、便捷的良好性能,这门程序设计语言在普通高等教育的理工科院校中成为必修学科,也是理工科学生必须掌握的基本技能。因此,如何让学生更轻松地学好Matlab程序设计课程,是教师值得思考的问题。

一、课程教学现状分析

Matlab程序设计课程所涉及的学科领域广泛,新知识比较多,而且内容抽象、乏味,教学课时少。这就导致教师的教学任务重,课程安排紧凑;学生对知识的消化不透,学习吃力,大部分学生学习成果十分不理想,较优秀的学生也只能勉强读懂十分简单的程序语句,并不会利用Matlab语言进行项目开发。

1.学生缺乏学习兴趣,基础薄弱

学好Matlab软件,不但要求学生具备英语、数学等学科的基本知识和良好的逻辑思维能力,还要求学生有一定的设计程序基本理念。但是对于非重点高校,大多数学生的数学和英语基础较为薄弱,给编程学习带来困难;编程相关知识抽象程度高,对于数学逻辑思维相对较差的学生,很难顺利地运用编程语言;学生普遍喜欢理论比较简单、可以动手操作的课程,这就使对Matlab课程的学习比较吃力,学习兴趣下降,上课不认真听讲,甚至产生放弃学习该课程的想法,逃避程序设计类课程。因此,程序设计类课程的枯燥结构搭建和语句分析往往让初学者表现出学习动力不足、学习兴趣不高等问题。

2.现有教材不能满足教学要求

现有的教材过多地停留在数学问题上,使学生感到枯燥乏味。计算机技术发展迅猛,但是教材却更新缓慢,现在使用的教材版本较低,不能涵盖Matlab软件的实现功能,导致学生不能够将所学的理论知识较好地与实践课相结合,产生厌学的消极情绪。

3.教学方法陈旧

传统的教学方法是“填鸭式”教学,就是由教师为主体给学生灌输书本上的内容。虽然教师希望能在有限的时间里给学生传授更多的知识,但是这样的教学方法会导致师生间的互动、交流减少,学生一直处在被动、机械的学习状态,学生没有自主思考,学习的积极性和主导性都会降低。久而久之,学生分析、解决问题的能力以及创新能力非但不能提高,反而丧失了学习这门课程的兴趣,甚至对其他的程序设计课程也产生反感、抵触情绪。

4.教学手段单一

虽然由“黑板+粉笔”转变为“计算机+大屏幕”,节省了大量板书的时间,提高了教学效率,但是教学效果并未得到明显提高。因为教师的教学观念并没有改变,仍是以教师为课堂的中心,教师课上采用读PPT的教学方式给学生传授课程知识,信息量大,学生缺乏思考和消化知识的时间,对知识的理解不够透彻。

二、课程教学改革与实践

1.培养学生学习热情

学生长期坚持学习的重要条件是兴趣,所以培养学生的学习兴趣至关重要。首先,讲课之前,可以通过列举生活中应用Matlab的现实例子告知学生这门课程的实用性和重要性,学生才会知道该课程与实际生活是有联系的,是有用的。其次,让学生明白这门课程哪个部分好学,哪个部分难学,让学生在学习的时候有心理准备,合理分配时间。这样,在学习难的部分时学生会深入钻研,发现自己的不足,自觉利用课余时间给自己“充电”。最后,教师应适当地在课堂上引入该年龄段学生关注的事情活跃课堂气氛,让学生爱上课堂,喜欢听课。

2.精心组织教学内容

教材内容不仅要符合学校的教学计划、课程的教学大纲要求和学时安排,而且要明确在课程的教授过程中,注重讲解该课程的分析方法和在实际中的应用。Matlab程序设计课程可以分为三个阶段:第一阶段是基础知识讲解,重点是算法分析和设计;第二阶段是简单的编程及应用;第三阶段是减少理论,增加案例,注重实践。

3.改进教学方法

近年来,迅猛发展的计算机技术及网络技术,不但为现代教育事业做出了巨大贡献,而且对以往的教学方法产生影响。第一,教师通过多媒体课件引入问题,可以给学生演示开发成功的软件成果,让学生感受这门课程的神奇与强大,培养学生产生浓厚的学习兴趣和探索知识的欲望。第二,改变传统的教法,让学生与学生之间、学生与教师之间在课堂上可以相互讨论,让学生多思考、多提出问题,充分发挥学生的主观能动性,教师不用对学生的提问给出直接回答,可以稍加引导,让学生多独立思考,提出解决问题的方法和设想。最后,教师对知识点进行总结,并对学生的整个学习过程加以评价,让学生注意自己的思考误区,在这样的学习过程中,培养学生的程序设计思想。另外,安排课后的上机操作作业,可以使学生对知识有进一步的巩固。

4.在教学中引入多媒体和网络化教学手段

随着互联网的飞速发展,微信、微博等在学生生活中已经成为不可或缺的部分。因此,借助这些网络教学平台可以突破传统教学存在的时间和空间的限制;学生可以根据自己的时间安排,自由选择使用网络教学平台进行学习的时间;学生在听网络授课时,如有不懂的地方,可以暂停或者回放,这就提供给学生独立思考以及深入学习的便利。通过网络平台,学生可以随时和教师、同学相互交流,探讨问题,提高了学生的学习兴趣。在发现问题、解决问题的过程中,学生不仅学到了知识,感受到了知识的博大精深,还体会到了学习的快乐。总而言之,在教学中引入多媒体和网络化教学手段势在必行。

三、结语

本文针对Matlab程序设计课程,简要地介绍了该课程的教学现状和存在的问题,提出了一些对该课程的教改对策。教师要注重理论和实践的结合,与时俱进,通过使用微信、微博等教学平台增强学生的学习兴趣、主动性及积极性,提高学生的创新能力和实际操作技能,拓展学生的思维方式,使学生在课堂上学习知识、解决問题。

参考文献:

[1]樊春霞.《MATLAB与仿真》课程教学改革的探讨和思考[J].科学创新导报,2012(26):184.

[2]李龙,方智,罗振国.基于Matlab软件的数值分析实践教学研究[J].教育教学论坛,2014(35):203.

学习Matlab 心得体会 篇4

本学期通过对MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用MATLAB,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。

MATLAB是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。在为学习这门课前就听说了他的强大,因为现在的很多模型都是需要这些分析软件的。曾经旁听过学校数学建模的课程,当时老师用的是lingo。对那个只需要U盘携带就可以安装的小东西记忆深刻。等到学习matlab时觉得这才是真正的王道啊。

它不仅有强大的运算功能,还有强大的绘图功能,虽然学习了有一个学习,但是我对他的了解额仅仅是一点点,或许连入门都谈不上。因为我学习时了解到一个现实。就是matlab的学习依赖有比较好的数学功底,其中我看最经常运用到的就是矩阵。我从网上了解到matlab是一门高等数学和计算机技术结合的东西,学习它必须具有相应的数学和计算机知识。然而很可惜,我的书写不是很好。每次讲到这个部分的时候就觉得听说理解无能了。特别是我今年还是大三。虽然这学期的学习的时间短暂,就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。老师只是个指路人,最终的学习还是要靠自己。而且在摸索的过程中,我们能够发现和体会学习的快乐。痛并快乐着是种常态了吧。

自我感觉学习matlab与其说是学习一门软件,更不如说是学习一门语言。用一种数理的语言描述现象,揭示表象下的规律。此外,我认为matlab中的作图功能很强大,不仅简单的函数现象可以明确画出,而且一些点状物,甚至立体图也可以画出。大一上微积分的时候,老师曾经多次在课件中加入用matlab画出的图来。不论是一维二维三维等等,都能很好的画出来。只要能编写出函数式,在短短的几秒之内,他就会呈现在你眼前。另外就是图形的直观性,这是由阴影的制作的。而且可以根据需要,坐标图上加标题,坐标轴标记,文本注释级栅格等,也可以指定图线形式,比如是虚线。颜色也可以自己来定。可以在同一张图上画,也可以单个显示。

在学习的过程中,因为以前学过access中的select语言,觉得就编写这方面是有共性的,但是matlab的编程语言似乎更多更复杂一点,这是由于涉及的数学模型,数学公式更多的原因。可是今年的这门课真的是让我感到没学到什么,估计也是因为我抱着看一看的随意态度来的吧,也没有那种遇到不懂的就一定要弄懂它的决心和毅力。说什么都是借口了,无法掩饰我没有学好它的事实。事实上,我觉得今年这门课的重点并不是让我们掌握这种软件的具体用法,而是主要向我们展示如何用它去解决一些金融问题,数学问题。这点让我很郁闷,因为我不懂得原理,听起来这门课倍感吃力啊。可是嘛,年轻没有什么不可以,又有谁可以断言我接下来的生活中不能好好学习这个东西为自己的工作,学习,生活,研究兴趣带来方便呢。

从大学开学的见闻到现在学习MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个做新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,除了会画几个简单的图形,其他的还是有待提高。从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如不会外语,想学好是非常难的。其实想要学习好一们语言,不能只靠老师,关键是自己。每个人内心深处都是有抵触意识的,不可能把老师的所有都学到。学习这门语言,不光是学习一种语言,更重要的事学习一种方法,一种学习软件的方法,还有学习的态度。

总结一下,学习任何一门语言:态度决定一切。不论是英语还是计算机语言。其实以前上高中的时候接触过这种编程语言,当时记得最头疼的就是循环语句,但是在matlab中这种东西用的就比较少了。语言语句都是很简洁利落的,都是一枪瞄死靶心的那种,很直接,这也让我减轻不少心理负担。

其实学习这种事,与其说学习什么具体的东西,更不如说是学习一种态度,从种种波折中认识到自己的局限性,不足。心情会沮丧,也会豁然开朗。光想不练假把式,不论想的再多,不实际运用还是没有用的。书山有路勤为径,学海无涯苦作舟。华山再高,顶有过路。

几点对于学好matlab很重要:兴趣、悟性、勤奋、坚持。

兴趣,不知道哪位名人说过“兴趣是最好的老师。”我觉得非常有道理,一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践,并在求知、探索、实践中产生愉快的情绪和体验。这样才能主动学习,并且学好到精通。

悟性,通常人认为指顿悟,慧根,我觉得就是对一个问题不断的思索,将自己的体会和感受融合,获得属于自己的知识。有很多事情、问题,都是可以想明白的。只有不停的想,才能想明白,想透彻。

勤奋,一勤天下无难事。从古到今,有多少名人不是有勤奋而得来成功的。现在的年轻人,一代比一代聪明。要不被别人淘汰,要超越别人,只有靠时间堆出来。每天多学一些,多积累一些。学习matlab也一样,想要学会,使用熟练,不花时间练习,写代码,亲自运行调试,是很难掌握好的。

MATLAB学习心得 篇5

专业:通信工程 班级:141 姓名:张焱 学号:2014136123

不知是对老师的好感还是因为专业的需要,当c语言的学习结束后我主动选择了学习Matlab。以前的我从来都没有听说过这个软件,感觉好高大上,也不知道它到底能干什么,不知道它是否会学的很困难。但是经过这一段时间的学习我已经对Matlab有了比较多的认识,可以进行一些简单的画图计算。但这仅仅只是一个开始,它的功能是如此的丰富,用途是如此的广泛,我需要长久深入的去学习。

Matlab的主要功能有数值分析、数字图像处理、数值和符号计算、数字信号处理、工程与科学绘图、通讯系统设计与仿真、控制系统的设计与仿真、财务与金融工程…… 真的是功能强大。MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。就我们通信工程专业而言Matlab的作用十分广泛,十分重要。到大二的时候我们专业还会开MATLAB的专业必修课,由于MATLAB的功能强大,用途广泛我们到时候只学习与通信电子有关的知识,而现在是对MATLAB的全面的了解,以及用它解决一些简单的数学问题。学的还远远不够。

之所以学习MATLAB就是因为它有很多优点。

1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; 2)具有完备的图形处理功能,实现计算结果和编程的可视化;

3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。。。。

MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C语言基础上的,因此语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。而且,我们正学过C语言不久,学习起来还是比较容易的。毕竟C语言是基础嘛!

学习Matlab的时间并不长,不是应为它容易学习,而是时间太少,我们只是做一个基础性的了解,在未来的学习生活中还要继续学习。通过六周每周一次的讲解,到今天位置也就讲完了。现在简单回顾一下:

第一讲:简介。

让我们了解了Matlab的用处和重要性,以及它强大的功能。对我们通信专业的重要意义。

第二讲:向量与矩阵的运算。学了一个学期的线性代数,才知道原来有切看似复杂的计算在Matlab中只不过是例如:解方程组

X1+2X2+3X3=2

3X1-5X2+4X3=0

7X1+8X2+9X3=2

大家可以看到在Matlab中求解

这样的计算神器。一调用几个函数。矩阵方程是如此简单。

第三讲:MATLAB

二维作图

图像是我们理工学科的重难点。数形结合是我们研究问题解决问题的基本思路。通过Matlab的强大画图功能能让我们更加清楚的理解我们所要解决的问题。

于是画图就变得如此简单而又神奇。、第四讲:MATLAB 三维作图

二维图像可以很好地展现,三维图像更是如此。比如有些图形,如墨西哥草帽图、马鞍面…

第五讲:MATLAB 程序设计

我们知道Matlab也是一种计算机语言。它集成了C语言C++等语言的优点,那么编程就非常有必要了。普通的计算可以通过几个简单的函数完成,但稍微复杂一点的计算就需要编程了,Matlab的编程比较简单,有了c语言的基础这点编程不算什么。

第六讲:MATLAB 符号运算

本讲讲了符号运算的核心和常见的六大符号运算的核心。其实我觉得本讲的知识非常重要,至少对我来说是这样。人类所生产的各种东西是为了人类自身更加方便的生活,而最后一讲老师只通过二十分钟左右的讲解就用Matlab解决了高数中的六类计算问题。这让我很惊讶,当然事实就是如此。只是几个函数的简单调用因式分解、计算极限、计算导数、计算不定积分、定积分、反常积分、符号求和、解常微分方程…好强大的计算功能啊!如果熟练掌握那么对我以后学习计算速率的提高会有很大的帮助。

我觉以下几点对于学好Matlab很重要:兴趣、悟性、勤奋、坚持。

(1)兴趣,不知道哪位名人说过“兴趣是最好的老师。”我觉得非常有道理,我曾对于matlab制作动画很感兴趣,并收集了很多例子,在小木虫贴出来后很多人对于matlab制作动画都很感兴趣, 计算模拟版活动---程序模拟动画展示,一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践,并在求知、探索、实践中产生愉快的情绪和体验。这样才能主动学习,并且学好到精通。

(2)悟性,通常人认为指顿悟,慧根,我觉得就是对一个问题不断的思索,将自己的体会和感受融合,获得属于自己的知识。有很多事情、问题,都是可以想明白的。只有不停的想,才能想明白,想透彻。就像我自己解决matlab编程进行DGGE电泳图谱多样性相似性分析,当时没有工具,而且问题必须解决,于是我不停的想,吃饭时,睡觉前,最终终于解决。(3)勤奋,一勤天下无难事。从古到今,有多少名人不是有勤奋而得来成功的。现在的年轻人,一代比一代聪明。要不被别人淘汰,要超越别人,只有靠时间堆出来。每天多学一些,多积累一些。学习matlab也一样,想要学会,使用熟练,不花时间练习,写代码,亲自运行调试,是很难掌握好的。

(4)坚持,认准了的事情,就坚持做到底,直到有所收获。事实上,很多人实现不了自己的目标,很大程度上就是少了一种坚持、非要把事情干到底的精神,他们往往浅尝辄止,因此眼睁睁失去了可能到手的成功。光有兴趣,只有三分钟的热情是很难成事的。很多事情的成功取决于踏平坎坷地坚持的毅力。看准了的事情,如果没有百折不挠的坚持,绝难取得成功。看准的事情就不屈不挠地坚持干下去直至成功,才是智者的唯一选择。每一个人都明白所有梦想的实现都需要努力,然而,很多人只所以没有实现心中的梦想,就在于多了空想、犹豫,少了努力坚持。

对matlab的学习心得 篇6

Matlab的学习心得

通过初步对matlab的学习,我觉得收获很大。我了解到matlab是一个功能很大的数学实验软件,即一个很好的计算机数学软件平台。我在学习matlab主要是围绕实验,初步学习了一些简单的矩阵运算以及简单的图形,在做书上的实验中得到了实践各种矩形的计算为我们提供了很多的方便,在我们的生活也有很大的作用。但现在我所学到的matlab技术还是很初步的,但是我已经了解到matlab的实用性很大,学习好这门技术对我日后的发展有很大的帮助,所以在今后的学习中,我会继续深入学习这门技术。Matlab的功能强大,对我们现在学习的线性代数是非常有帮助的,利用这款软件会是我们原本复杂的计算变得简单明了。Matlab的优点计算方便、快捷、准确、操作方便,流程简单。虽然matlab优点很多,但是我开始对matlab这门技术并不是很了解,开始以为只是一个计算矩形的软件,但是随着学习的深入我对matlab的了解也相应深入,才知道matlab不仅可以运算矩阵,运算处理一些数据,还可以用于编程并且和其他的计算机编程有很大的区别。Matlab是一种专业的计算机程序,主要用于工程科学矩阵数学运算。但我相信在未来的几年里,它会渐渐发展陈一种非常灵活的计算体系,可以解决更多的技术问题。

Matlab是一个高级的矩阵/阵列语言,它包含很多语句,其中有控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行,就象C语言和C++一样可以先定义后使用。并且新版本的MATLAB语言是基于最为流行的C语言和C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因

matlab程序设计及心得体会 篇7

斜齿轮传动以其传动平稳、噪声小、重合度大、承载能力强等特点在各变速场合应用广泛, 传统的设计方法需要对一些参数进行试选然后再修正, 这种设计方法时间耗费大、效率低, 而且设计出来的齿轮一般不是最优方案, 故对斜齿轮的优化设计就显得很有意义。文献[1]对斜齿轮的可靠性进行了优化设计, 文献[2]、[3]对斜齿轮或直齿轮的质量进行了优化设计, 但均未考虑重合度系数在其中的优化, 由于斜齿轮的重合度系数计算式在替换成设计变量表达式后非常复杂, 且惩罚因子需要在每步迭代后进行相应的改变, 故不方便直接使用MATLAB工具箱进行优化, 而通过自行编制的MATLAB程序, 便能很好地利用内点惩罚函数法对其进行优化求解。

1 优化设计理论基础[4]

1.1 惩罚函数法的介绍

对于约束优化问题

惩罚函数法的基本思路, 就是将以上的目标函数和所有约束函数组合构造成一个新的目标函数:

其中:P (X) 为所有约束函数gu (X) 、hv (X) 定义的某种形式的泛函数;r是按给定规律变化的惩罚因子;r P (X) 称为惩罚项, 其作用是确保或促使最优解为可行解。所以原优化问题便转化为

从而可以对该目标函数用无约束优化的方法进行优化求解。当迭代点违反约束或有违反约束倾向, r P (X) 项的值变大, 使得φ (X, r) 的函数值变大, 从而对迭代点违反约束的移动倾向起到了惩罚作用, 引导迭代点朝满足约束条件的方向移动。

1.2 内点惩罚函数法

内点惩罚函数法是将新目标函数定义在可行区域内, 这样它的初始点及后面产生的迭代序列亦必定在可行区域内。内点法的惩罚函数形式为:

2 斜齿轮传动的优化设计

2.1 设计要求

为了与传统的设计方法进行对比, 采用与文献[5]相同的设计要求和基本参数, 其设计条件为:输入功率P=10k W, 小轮转速n=960 r/min, 齿数比u=3.2, 小齿轮材料为40Cr (调质) , 齿面硬度2 80HBS, 大齿轮材料为45钢 (调质) , 齿面硬度240 HBS。工作寿命为15a (设每年工作300d) , 可以得到各许用应力为:[σH]1=540 MPa, [σH]2=523 MPa, [σF]1=303.57 MPa, [σF]2=238.86 MPa, 载荷系数K=1.3。

2.2 建立数学模型

2.2.1 目标函数的建立

以一对齿轮分度圆柱体积之和最小为优化目标, 则其质量最小, 成本最低。故目标函数为

即设计变量可以表示为

2.2.2 约束函数的建立

1) 法面模数的约束。模数太大则齿轮体积偏大, 模数过小则承载能力不足, 根据第一系列的标准模数值可取2≤mn≤8。

2) 螺旋角的约束。由于斜齿轮存在轴向力, 且随螺旋角的增加而增加, 为了不使轴承承受过大的轴向力, 应对螺旋角有所限制, 一般应使8°≤β≤20°。

3) 小齿轮齿数的约束。为了方便制造, 避免发生根切, 可取20≤z1≤30。

4) 齿宽系数的约束。由文献[5]中表10-7可知, 两支撑相对于小齿轮作不对称布置时, 齿宽系数0.7≤φd≤1.15, 而当软齿面仅为大齿轮齿面时, φd应取偏上限值, 故这里可取1≤φd≤1.15。

5) 齿面接触疲劳强度的约束。对于外啮合斜齿轮的齿面接触疲劳强度有:

式中:KH为载荷系数, KH=1.3;T1为转矩, 由功率P及小齿轮转速n可以算得T1=9.948×104N·m;ZH为区域系数, 在法向压力角αn=20°时, 根据螺旋角β的取值范围, 在文献[5]表10-20中每隔一个单位取一个点, 可得到曲线拟合式ZH=-0.000 059β2.518+2.479, 通过代入关键点进行比较验证, 该拟合式在螺旋角为8°~20°时拟合度很好。ZE为弹性影响系数, 配对齿轮材料为锻钢时, ZE=189.8 MPa1/2;Zε为重合度系数, 重合度系数的计算较为复杂, 可由以下各式进行计算:

可以看到, 若将Zε表示为设计变量全部展开, 其表达式将极为复杂, 为了方便计算和编程, 需在程序中引入中间变量。

Zβ为螺旋角系数, Zβ=cos1/2β。[σH]为接触疲劳强度许用应力, 取两齿轮的较小值, [σH]=[σH]2=523 MPa。

6) 齿根弯曲疲劳强度的约束:

式中:KF为载荷系数, KF=1.3;YFa为外齿轮齿形系数, 按当量齿数zv=z/cos3β选取, 通过一系列取点并使用幂函数进行曲线拟合可以得到其拟合公式YFa=20.65 (z/cos3β) -1.092+2.042。Ysa为外齿轮应力修正系数, 按齿轮当量齿数选取, 当法向压力角αn=20°时, 拟合式Ysa=-1.645 (z/cos3β) -0.282+2.258。Yε为重合度系数, 可按下式计算:

式中:Yβ为螺旋角系数, [σF]为弯曲疲劳强度许用应力, 抗弯强度计算式中应取YFa1Ysa1/[σF1]及YFa2Ysa2/[σF2]中的最大值, 由于两齿轮所受弯曲应力不同, 故需分别满足两齿轮的抗弯强度要求。

2.2.3 惩罚函数的建立

由目标函数及约束条件可以得到内点惩罚函数为

1) 选择初始点。根据函数的可行域, 选择初始点。X (0) =[x1, x2, x3, x4]T=[3, 14, 24, 1.1]T。

2) 初始惩罚因子的确定。合理的初始惩罚因子可按下式确定:

当初始点接近某个边界时, 一般建议取L=100, 将初始点代入可得r (0) =2 175 811。

3) 惩罚因子递减系数C的确定。C的大小不是决定性的, 其经典值为C=0.1~0.02, 这里取C=0.1。

4) 终止准则。迭代精度ε1=10-5, ε2=10-3。

2.3 程序计算流程图

2.4 部分MATLAB主程序

其中min NF为内点罚函数法调用, 需自行编写, 这里需要注意在该程序平台采用的是g (X) ≥0的约束模型, 而一般优化设计采用g (X) ≤0, 故需稍作变换。由于篇幅有限, 这里不再将内点惩罚函数程序及梯度法源程序一一列出, 具体方法可参考文献。

2.5 优化结果

由此方法进行优化得到的优化设计结果为:X=[x1, x2, x3, x4]T=[mn, β, z1, d]T=[2.132, 12.459, 26.498, 1]T, 取整后可得X=[2, 12.459, 26.498, 1]T, 而文献[5]使用传统设计方法得到的结果为X′=[2, 12.578, 29, 1]T。

将两组结果代入目标函数进行比较, 可以得到优化设计相对于传统设计方法的体积下降量:

可以看到优化后的体积减少了将近三分之一, 这在实际生产应用中是很有意义的。

3 结论

基于内点惩罚函数法, 充分考虑了重合度系数的计算及其它系数的拟合, 运用MATLAB编写了斜齿轮副体积最小的优化设计源程序, 包括主程序、内点惩罚函数程序、梯度法程序, 将优化结果与传统设计方法得到的结果相比较, 总体积下降了28.80%, 这对实际生产中降低生产成本、提高生产效率具有较大意义。

摘要:斜齿轮传动在机械行业中应用广泛, 基于机械优化设计理论, 以MATLAB为平台, 根据斜齿轮的设计要求和特点, 运用内点惩罚函数法建立了斜齿轮副优化设计的数学模型, 以该对齿轮的体积之和为目标函数进行优化, 并利用MATLAB编写了相关优化程序。在同一设计要求下, 与传统的斜齿轮设计方法对比, 优化设计后的齿轮质量更轻, 体积更小, 更符合实际工况的需求。

关键词:MATLAB,优化设计,惩罚函数,斜齿轮,非线性约束优化

参考文献

[1]陈满意, 陈定方.基于MATLAB的齿轮减速器的可靠性优化设计[J].机械传动, 2002, 26 (3) :34-36.

[2]席平原.应用MATLAB工具箱实现机械优化设计[J].机械设计与研究, 2003, 19 (3) :40-42.

[3]任继华.基于MATLAB的齿轮参数优化设计及其有限元分析[D].赣州:江西理工大学, 2010.

[4]张翔, 陈建能.机械优化设计[M].北京:科学出版社, 2012.

[5]濮良贵, 陈国定, 吴立言.机械设计[M].9版.北京:高等教育出版社, 2013.

[6]机械设计手册编委会.机械设计手册 (齿轮传动) [M].北京:机械工业出版社, 2007.

matlab程序设计及心得体会 篇8

关键词: MATLAB 成绩管理 系统功能 模块介绍

1.背景

MATLAB具有比较强的计算能力和绘图能力,所以采用该软件设计了一个成绩查询系统,用来对学生的成绩进行查询和分析,开发出一套信息管理和查询系统是非常有必要的,可以大大提高管理者的工作效率。

该学生成绩查询系统提供了强大的学生成绩查询管理和分析的功能,便于管理者对学生的成绩信息进行录入、删除、修改、输出等一系列简单的操作。该成绩查询系统不仅适用于学校的成绩管理工作,更胜任大型数据库的管理分析工作,为学校其他方面工作提供很大的便利和支持。

2.成绩查询系统功能

成绩查询系统主要分为下面几项功能:

(1)成绩录入功能模块

成绩查询系统首先能够完成对学生的考试成绩进行录入的任务,并且同时完善学生的课程信息、学生信息等基本情况。

(2)分析信息功能模块

成绩查询系统应该对外部导入的EXCEL表格中所有学生成绩情况进行数据分析,然后得出结果。

(3)绘图功能模块

该系统能够具体分析学生考试成绩的分布情况,根据所有成绩信息绘画出各科成绩的分布曲线。

(4)输出功能模块

学生成绩查询系统应该具有展示学生成绩的功能,应该让学校师生了解自己的考试成绩情况,这些信息包括学生的每一门成绩,班级各科成绩的平均成绩,还有班级每一门成绩的曲线分布情况。根据以上几项功能,该成绩查询系统软件的主要工作步骤是通过以下几个流程完成。

3.系统模块介绍

(1)主界面设定环节

成绩查询系统的GUI界面应该将用户需要的信息让人一目了然地看清,通过matlab指令,利用GUI进行设计对话框,对话框的内容包括:学生的姓名、每一门成绩、班级的平均成绩和成绩分布曲线,对输入任何一组相关成绩信息后均可得到相应的数据,便于工作人员对大量数据进行分析和统计,如下图1所示:

(2)成绩的导入

成绩信息的导入是很有用的,通过将Excel和Matlab联立起来,通过指令程序将成绩信息数据输入Matlab的运行环境之中,成功实现Matlab与Excel的合作,使得输入数据这一环节更简便,与此同时,为后面成绩的输入输出提供数据支撑,如图2所示。

(3)统计数据

数据统计对于该系统来说是一个很重要的环节,通过编将大量的数据信息进行计算分析,然后再得出该数据的平均值,如图3所示:

由上图可以看出该学生的各科成绩,然后点击平均分按钮可以得出该班级该科的平均分。

设计的该系统可以导入chinese,English,math三门成绩,可以分别统计三门成绩各科情况,如图4所示:

(4)绘制成绩分布曲线

作为评价及分析的图像依据,曲线让人一目了然,曲线中包含大量统计信息,软件用户可以通过观察曲线直观地了解学生的成绩分布情况,如图所示。

4.结语

本文是基于MATLAB设计的成绩查询系统,通过利用MATLAB软件,从学生和校方实际需求为出发点,设计简单的成绩查询系统,该成绩查询系统还有待进一步改进。

参考文献:

[1]葛超,王蕾,曹秀爽.Matlab技术大全[M].人民邮电出版社,2014.

[2]尚涛编.Matlab基础及其应用教程[M].电子工业出版社,2014.

[3]蔡旭晖,刘卫国,蔡立燕.Matlab基础与应用教程[M].人民邮电出版社,2009.

[4]熊庆如.Matlab基础与应用[M].机械工业出版社,2014.

上一篇:小组合作学习之新变革下一篇:第一次做饭500字作文五年级