1、工程实践IMatlab编程,北京理工大学机电学院,自我介绍,姓名:宋承天 单位:机电工程系 办公室:3#219 电话:13683303585 Email:,Matlab语言:绪论,1.1 什么是Matlab 1.2.1 Matlab的发展历史 1.2.2 Matlab的组成 1.2.3 Matlab的应用 1.2.4 Matlab基本特性实例 1.2 学习的主要内容,实际问题,1.1 什么是Matlab,Matlab软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。 Matlab是英文Matrix Laboratory(矩阵实验室)的缩写。,1.1 什么是Mat
2、lab,1.1.1 Matlab发展历史 1980年,Matlab1.0(免费) 1984年,Matlab1.0(商业版) 1992年,Matlab 4.0 1994年,Matlab 4.2 1997年,Matlab 5.0 1999年,Matlab 5.3 2000年,Matlab 6.0 2002年,Matlab 6.5 2004年,Matlab 7.0,MATLAB语言与其它语言的关系仿佛和C语言与汇编语言的关系一样,计算机语言的发展,标志着计算机语言向“智能化”方向发展 被称为第四代编程语言,1.1 什么是Matlab,1.1.2 Matlab的组成 Matlab主包 MATALB语言
3、体系 MATLAB工作环境 图形句柄系统 MATLAB数学函数库 MATLAB应用程序接口(API) Simulink 工具箱,1.1 什么是Matlab,1.1.3 Matlab的功能和应用 应用Matlab进行高效率的科学计算 数据分析和挖掘 算法的扩展和研究 建模和仿真 可视化和图象处理 程序设计和应用软件开发,MATLAB的应用领域,工业研究与开发 数学教学,特别是线性代数 数值分析和科学计算方面的教学与研究 电子学、控制理论和物理学等工程和科学学科方面的教学与研究 经济学、化学和生物学等计算问题的所有其他领域中的教学与研究,1.1 什么是Matlab,1.1.4 Matlab基本特性
4、实例 例1 二维和三维函数 用简短的MATLAB命令计算并绘制在 0x6范 围内的sin(2x)、sin(x2)和sin2x。 x=linspace(0,6); y1=sin(2*x); y2=sin(x.2); y3=(sin(x).2; plot(x,y1,x,y2,x,y3),函数f(x, y) = cos (x)sin (y)的图形 x=0:0.2:3*pi; y=0:0.25:5*pi; xx,yy=meshgrid(x,y); f=cos(xx).*sin(yy); subplot(2,2,1); surf(f); subplot(2,2,2); mesh(f); subplot(
5、2,2,3); waterfall(f); subplot(2,2,4); contour(f);,例2 函数分析在1x1.5区间内绘制这个函数,并找出 这个区间的极小值 function y=func(x) y=x.*exp(x.2)-exp(x.2)-sin(x.3); mpoint=fmin(func,0.5,1), 其结果为: mpoint =0.8954,例3 线性系统与特征值 x=Ab 其结果为: x=1.4818-0.46060.3848,EigenVectors,EigenValues=eig(A) 结果为: EigenVectors =-0.3129 0.9482 -0.05
6、530.7756 0.2887 0.5613-0.5482 -0.1328 0.8258 EigenValues =-1.2305 0 00 3.4445 00 0 7.7860,例4. 曲线拟合与插值 如果有两个向量x和y表示的x-y平面上的一组点, 那么,可以对它们进行插值点或者拟合一条曲线。 令 x=1 1.5 3 4 5 6 6.5 7 8; y=1.2 1 1.7 2.5 2 2.3 2.5 3 3.1;,p1=polyfit(x,y,1); linc=polyval(p1,x); plot(x,linc,x,y,x),p7=polyfit(x,y,7); xx=1:0.25:8;
7、polc=polyval(p7,xx); plot(xx,polc,x,y,x),例5 统计,例6 傅立叶变换与信号分析,x=linspace(0,2*pi,64); signal=5*sin(x)+2*sin(5*x); signal_noise=5*sin(x)+2*sin(5*x)+randn(size(x); subplot(2,2,1); plot(x,signal,x,signal_noise); transf=fft(signal); transf_noise=fft(signal_noise); filttransf(1:9)=transf_noise(1:9); filttr
8、ansf(56:64)=transf_noise(56:64); filtsig=ifft(filttransf); filt_noise=ifft(transf_noise); subplot(2,2,2); plot(x,transf_noise); subplot(2,2,3); plot(x,filttransf); subplot(2,2,4); plot(x,filtsig,x,filt_noise),1.2 本课程的主要内容,基础准备及入门 数值数组及其运算 字符串数组、元胞数组和构架数组 数值计算 数据和函数可视化 M文件和函数句柄 图形用户界面制作,学习目标,了解MATLAB,能够熟练掌握数学(矩阵)运算,简单编程,简单的数据处理及基本图形绘制.,参考书,考核方式,作业 上机实验 考试,