收藏 分享(赏)

MATLAB软件简介.doc

上传人:Marleyazariah 文档编号:21759345 上传时间:2024-04-22 格式:DOC 页数:18 大小:115.98KB
下载 相关 举报
MATLAB软件简介.doc_第1页
第1页 / 共18页
MATLAB软件简介.doc_第2页
第2页 / 共18页
MATLAB软件简介.doc_第3页
第3页 / 共18页
MATLAB软件简介.doc_第4页
第4页 / 共18页
MATLAB软件简介.doc_第5页
第5页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、1 MATLAB软件简介1.1 概述MATLAB是美国Math Works 公司开发的大型数学计算软件,它具有强大的矩阵处理功能和绘图功能,已经广泛地应用于科学研究和工程技术的各个领域在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算。这些运算一般来说难以用手工精确和快捷地进行,而要借助计算机编制相应的程序做近似计算。MATLAB的主要功能具体包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一便于使用的集成环境中。在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。MATLAB语言的这一特点大

2、大降低了对使用者的数学基础和计算机语言知识的要求,而且使编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝。综上所述,Matlab语言有如下特点: 1编程语言接近人的思维方式,编程效率高,易学易懂 它是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比其他计算机语言更加接近我们书写计算公式的思维方式,用Matlab编写程序犹如在演算纸上排列出公式与求解问题。因此,Matlab语言也可通俗地称为演算纸式科学算法语言由于它编写简单,所以编程效率高,易学易懂。 2程序调试方便灵活, Matlab语言是一种解释执行的语言,它灵活、方便,其调试程序手段丰富,调试速度快,

3、需要学习时间少。Matlab语言与其它语言相比,省去了编辑、编译、连接以及执行和调试四个步骤。它把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度。 Mat1ab语言不仅是一种语言,广义上讲是一种该语言开发系统,即语言调试系统。 3.源程序开放,库函数丰富,扩展能力强 高版本的Matlab语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,而且Matlab的库函数同用户文件在形成上一样,所以用户文件也可作为Matlab的库函数来调用。因而,用户可以根据自己的需要方便地建立和扩充新的库函数

4、,以便提高Matlab使用效率和扩充它的功能。4程序语言简洁,准确,涵义丰富 Mat1ab语言中最基本最重要的成分是函数,其一般形式为:一个函数由函数名,输入变量和输出变量组成,同一函数名F,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义。这不仅使Matlab的库函数功能更丰富,使得Matlab编写的M文件简单、短小而高效。 5矩阵和数组运算高效方便 Matlab语言中规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变地照搬到数组间的运算,这使得程序设计的自由度大。另外,它不需定义数组的维数,并给出矩阵函数、特殊

5、矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。在此基础上,高版本的Matlab已逐步扩展到科学及工程计算的其它领域。6方便的而强大的绘图功能 Matlab的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标,半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。这种为科学研究着想的设计是通用的编程语言所不及的。 总之,Matlab语言的设计思想

6、可以说代表了当前计算机高级语言的发展方向。1.2 MATLAB函常用数汇总函数名 功能描述addpath 增加一条搜索路径rmpath 删除一条搜索路径demo 运行Matlab演示程序type 列出.M文件doc 装入超文本文档version 显示Matlab的版本号help 启动联机帮助what 列出当前目录下的有关文件lasterr 显示最后一条信息whatsnew 显示Matlab的新特性lookfor 搜索关键词的帮助which 造出函数与文件所在的目录path 设置或查询Matlab路径管理变量与工作空间用命令 clear 删除内存中的变量与函数pack 整理工作空间内存disp

7、显示矩阵与文本save 将工作空间中的变量存盘length 查询向量的维数size 查询矩阵的维数load 从文件中装入数据who,whos 列出工作空间中的变量名文件与操作系统处理命令 cd 改变当前工作目录edit 编辑.M文件delete 删除文件matlabroot 获得Matlab的安装根目录diary 将Matlab运行命令存盘tempdir 获得系统的缓存目录dir 列出当前目录的内容 tempname 获得一个缓存(temp)文件! 执行操作系统命令窗口控制命令 echo 显示文件中的Matl中的命令more 控制命令窗口的输出页面format 设置输出格式启动与退出命令 ma

8、tlabrc 启动主程序quit 退出Matlab环境startup Matlab自启动程序运算符号与特殊字符+ 加 . 续行标志- 减 , 分行符(该行结果不显示)* 矩阵乘 ; 分行符. 向量乘方 矩阵转置kron 矩阵kron积 . 向量转置 矩阵左除 = 赋值运算/ 矩阵右除 = 关系运算之相等. 向量左除 = 关系运算之不等./ 向量右除 关系运算之小于: 向量生成或子阵提取 关系运算之大于 矩阵生成 = 关系运算之大于等于 & 逻辑运算之与xor 逻辑运算之异成逻辑函数 all 测试向量中所用元素是否为真is*(一类函数) 检测向量状态.其中*表示一个确定的函数(isinf)any

9、 测试向量中是否有真元素exist 检验变量或文件是否定义logical 将数字量转化为逻辑量find 查找非零元素的下标语言结构与调试编程语言 builtin 执行Matlab内建的函数global 定义全局变量eval 执Matlab语句构成的字符串nargchk函数输入输出参数个数检验feval 执行字符串指定的文件script Matlab语句及文件信息functionMatlab函数定义关键词控制流程 break 中断循环执行的语句if 条件转移语句case 与switch结合实现多路转移otherwise多路转移中的缺省执行部分else 与if一起使用的转移语句return 返回调

10、用函数elseif 与if一起使用的转移语句switch 与case结合实现多路转移end 结束控制语句块warning 显示警告信息error 显示错误信息while 循环语句for 循环语句交互输入 input 请求输入menu 菜单生成keyboard 启动键盘管理pause 暂停执行面向对象编程 class 生成对象isa 判断对象是否属于某一类double 转换成双精度型superiorto 建立类的层次关系inferiorto 建立类的层次关系unit8 转换成8字节的无符号整数inline 建立一个内嵌对象调试函数dbclear 清除调试断点dbstatus 列出所有断点情况db

11、cont 调试继续执行sbtype 列出带命令行标号的.M文件dbquit 退出调试模式dbup 改变局部工作空间内容dbstack 列出函数调用关系基本矩阵 eye 产生单位阵rand 产生随机分布矩阵linspace 构造线性分布的向量randn 产生正态分布矩阵zeros 产生零矩阵ones 产生元素全部为1的矩阵 : 产生向量特殊向量与常量 ans 缺省的计算结果变量non非数值常量常由0/0或Inf/Inf获得computer 运行Matlab的机器类型nargin 函数中参数输入个数eps 精度容许误差(无穷小)nargout 函数中输出变量个数flops 浮点运算计数realma

12、x 最大浮点数值inf 无穷大realmin 最小浮点数值inputname 输入参数名varargin 函数中输入的可选参数cat 向量连接reshape 改变矩阵行列个数diag 建立对角矩阵或获取对角向量rot90 将矩阵旋转90度fliplr 按左右方向翻转矩阵元素tril 取矩阵的下三角部分triu 取矩阵的上三角部分repmat 复制并排列矩阵函数复数函数 abs 绝对值函数imag 求虚部函数angle 角相位函数real 求实部函数conj 共轭复数函数数值处理 fix 沿零方向取整round 舍入取整floor 沿-方向取整rem 求除法的余数ceil 沿+方向取整sign

13、符号函数其他特殊数学函数 airy airy函数erfinv 逆误差函数expint 指数积分函数gammainc 非完全gamma函数gammaln gamma对数函数beta beta函数 gcd 最大公约数lcm 最小公倍数betaln beta对数函数ellipke 完全椭圆积分pow2 基2标量浮点数erf 误差函数rat 有理逼近rats 有理输出坐标转换 cart2pol笛卡儿坐标到极坐标转换pol2cart 极坐标到笛卡儿坐标转换cart2sph 笛卡儿坐标到球面坐标换sph2cart球面坐标到笛卡儿坐标转换矩阵函数cond 求矩阵的条件数rcond LINPACK倒数条件估计

14、det 求矩阵的行列式rref 矩阵的行阶梯型实现norm 求矩阵的范数rrefmovie 消元法解方程演示null 右零空间subspace 子空间orth 正交空间trace 矩阵的迹rank 求矩阵的秩线性方程 chol Cholesky分解pinv 求伪逆矩阵inv 矩阵求逆qr 矩阵的QR分解lscov 最小二乘方差lu 矩阵的LU三角分解qrinsert QR分解中插入一行特征值与奇异值 banlance改进特征值精度的均衡换qz QZ算法求矩阵特征值cdf2rdf复块对角阵到实块对角换rdf2cdf实块对角阵到复块对角阵换eig 求矩阵的特征值和特征向量schur Schur分解

15、poly 求矩阵的特征多项式矩阵函数 expm 矩阵指数函数sqrtm 矩阵平方根数据分析与Fourier变换函数cumprod 向量累积prod 对向量中各元素求积cumsum 向量累加max 求向量中最大元素min 求向量中最小元素std 求向量中各元素标准差mean 求向量中各元素均值sum 对向量中各元素求和median 求向量中中间元素trapz 梯形法求数值积分微分计算 del2 离散Laplace变换gradient 梯度计算diff 差分于近视微分滤波与卷积 Conv 卷给与多项式乘法filter 一维数字滤波conv2 二维卷积filter2 二维数字滤波Deconv因式分解

16、与多项式乘法方差处理 corrcoef 相关系数计算Fourier变换 abs 绝对值函数angle 相角函数ifft 离散Fourier逆变换cplxpair 依共轭复数对重新排序ifft2 二维离散Fourier逆变换fft 离散Fourier变换unwrap 相角矫正fft2 二维离散Fourier变换1.3 MATLAB基本xy平面绘图命令由于此次课程设计主要要用到xy平面绘图命令。因此下面通过几个例子着重介绍MATLAB基本xy平面以及xyz空间的各项绘图命令,拓展包含一维曲线及二维曲面的绘制、列印及存档。plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点

17、的x 及y座标。下例可画出一条正弦曲线如图1.1所示。close all; x=linspace(0, 2*pi, 100); % 100个点的x座标 y=sin(x); % 对应的y座标 plot(x,y); 图1.1若要画出多条曲线,只需将座标对依次放入plot函数即可: plot(x, sin(x), x, cos(x); 如图1,2所示。 图1.2若要改变颜色,在座标对後面加上相关字串即可:plot(x, sin(x), c, x, cos(x), g); 如图1.3所示。 图1.3 若要同时改变颜色及图线型态(Line style),也是在座标对後面加上相关字即可: plot(x,

18、sin(x), co, x, cos(x), g*); 如图1.4所示。 图1.4小整理:plot绘图函数的叁数 字元 颜色字元 图线型态y 黄色. 点k 黑色o 圆w 白色x xb 蓝色+ +g 绿色* *r 红色- 实线c 亮青色: 点线m 锰紫色-. 点虚线- 虚线。图形完成後,我们可用axis(xmin,xmax,ymin,ymax)函数来调整图轴的范围:axis(0, 6, -1.2, 1.2); 如图1.5所示。 图1.5此外,MATLAB也可对图形加上各种注解与处理:如图1.6所示。 xlabel(Input Value); % x轴注解 ylabel(Function Valu

19、e); % y轴注解 title(Two Trigonometric Functions); % 图形标题 legend(y = sin(x),y = cos(x); % 图形注解 grid on; % 显示格线 图1.6我们可用subplot来同时画出数个小图形於同一个视窗之中:如图1.7所示。 subplot(2,2,1); plot(x, sin(x); subplot(2,2,2); plot(x, cos(x); subplot(2,2,3); plot(x, sinh(x); subplot(2,2,4); plot(x, cosh(x); 图1.7MATLAB还有其他各种二维绘图

20、函数,以适合不同的应用,详见下表。 其他各种二维绘图函数:bar 长条图; errorbar 图形加上误差范围; fplot 较精确的函数图形 polar 极座标图; hist 累计图; rose 极座标累计图stairs 阶梯图; stem 针状图; fill 实心图feather 羽毛图; compass 罗盘图; quiver 向量场图 2 RC串联电路正弦稳态特性的理论分析2.1 电路中各电流、电压的约束关系遵循基尔霍夫定律基尔霍夫定律阐明了电路中各电流、电压的约束关系,对任何电路都适用。因而。基尔霍夫节点电流定律(KCL)和基尔霍夫回路电压定律(KVL)在正弦交流电路中均成立。其相量

21、形式分别为 :KCL相量形式: =0 表示流出任意节点的各支路电流相量的代数和恒等于零。 KVL相量形式: =0表示沿任意闭合回路绕行一周,各支路电压相量的代数和恒等与零。2.2 一阶RC串联电路的理论分析动态电路中无外施激励电源,仅由动态元件初始储能所产生的响应,成为动态电路的零输入响应。RC串联电路如图2.1所示: S=(t=0)图2.1在如图所示的电路中,开关S闭合前,电容C已充电,电压uc=Uo。开关闭合后,电容存储的能量将通过电阻以热能的形式释放出来。现把开关动作时刻取为计时起点(t=0)。开关闭合后,由KVL得: 将 代入方程,有 上式为一阶齐次微分方程,初始条件uC (0-) =

22、 uC(0+) =Uo,令此方程的通解为uC=Aept ,代入上式后有 (RCp+1)Aept=0相应的特征方程为: RCp+1=0特征根为: p=-1/RC根据初始条件,以此代入Uc=Aept,则可求得积分常数 A=UC(0+)=Uo这样求得满足初始值的微分方程的解为由欧姆定律,易得电路中的电流、电压分别为 所以 PC=-uci代入初始数据UO=2V,R=2,C=0.5F计算得: uc=2e-t i=e-t Pc=-2e-2t由计算结果可以看出,uc,i,Pc都是关于t的指数函数。它们按照指数规律衰减。其衰减的快慢取决于指数中1/RC的大小。3 程序设计开始3.1 程序设计框图结束调用sub

23、plot()和plot()函数绘出Pc(t)的图像调用subplot()和plot()函数绘出i(t)的图像调用subplot()和plot()函数绘出uc(t)的图像根据公式定义uc,i,Pc定义Uo,R,C,t定义函数RC 图3.13.2 程序代码function RC() %定义函数 RC Uo=2;R=2;C=0.5; %设定元件参数t=0:0.001:4; %设置时间步进长度为0.001s,仿真时间为4sw=1/(R*C); %设置w参数Uc=Uo*exp(-w*t);i=(Uo/R)*exp(-w*t);Pc=-(Uo*Uo/R)*exp(-2*w*t);%分别定义Uc,i,Pcs

24、ubplot (1,3,1),plot(t,Uc);%画出Figurel二维图形窗,1行3列的第1个子图的波形subplot (1,3,2),plot(t,i); %画出Figurel二维图形窗,1行3列的第 2个子图的波形subplot (1,3,3),plot(t,Pc); %画出Figurel二维图形窗,1行3列的第3个子图的波形4 程序运行结果及图表分析和总结 uc i Pc 图4.1 图4.2 图4.3 图形分析: 由图所示,uc,i ,Pc都是关于t的指数函数。它们均随着t单调递减,而且要经过无限长的时间才能衰减为零。总结: (1)uc,i ,Pc都是关于t的指数函数。 (2)uc

25、,i ,Pc按照指数规律衰减。其衰减的快慢程度取决于指数中1/RC的大小。 (3)RC的大小反映了一阶电路过度过程的进展速度,它是反映过渡过程特性的一个重要的量。5 课程设计的心得体会MATLAB课程设计是本学期接触到的第一个课程设计。由于以前对课程设计没有什么了解,而且MATLAB软件之前也从未接触过,因而起初感觉比较迷茫。后来,经过自己漫漫地摸索并向身边的同学请教,我逐步掌握了MATLAB的一些基本的使用方法和程序代码的编写规则。通过这次课程设计,我在各个方面都有了一定的收获。首先,MATLAB课程设计需要用到MATLAB软件。MATLAB是用于数值计算和图形处理的的科学计算系统环境。MA

26、TLAB是一个高级的矩阵/阵列语言,它包含控制语句,函数,数据结构,输入和输出,面向对象编程等特点。MATLABd 程序编写时和C语言的程序编写差不多,同样需要先画出流程图,然后编程序源代码,最后在MATLAB中运行,得到我们所需要的随时间变化的关系图像。MATLAB语言基于C+语言,因而可移植性好,可拓展性极强。通过此次课程设计,我对MATLAB软件加深了了解和认识,对软件的操作也有了一定的掌握。其次,由于是初次编写MATLAB语言程序,刚开始的时候出现了许多的错误,运行一直不成功。后来拿着自己编写的程序到同学那里请教,经过反复几次修改,最终程序运行成功。这次课程设计让我认识到严谨的作风和虚

27、心请教的心态对于工科学生的重要性。最初程序一直运行不成功的原因就是自己不够细心,在程序代码上漏掉了几个看似不起眼的符号。另外,自己对MATLAB语言的组织规则的理解也不够深入,最终导致自己程序调试过程中浪费了大量的精力。此外,我觉得耐心也是在做课程设计过程中对自己的考验。自己在程序出现错误仍找不出原因就在于缺少足够的耐心。第三,对基本原理的理解和掌握必须深入、透彻。不管是基于什么的课程设计,都离不开课本的基础知识。要想更快更好地掌握一门新的知识就必须对原有的基础知识有一个牢固、全面的掌握。MATLAB虽然对于我们来说是全新的,但是基于MATLAB的应用课程设计用到的却都是以前课本上学过的内容。

28、如果对书上的基本原理都没有一个十分清晰的认识,那么编写起程序来将是十分吃力的。一阶RC电路的动态特性是大一下学期学过的内容,已经过去很长时间。刚开始我试图不翻课本直接去做。后来发现自己做起来十分的困难。因为一些原理和公式的推导过程已经随着时间的增长逐渐淡忘了。所以对自己要做什么,要用到什么都不清楚。最后,无论做什么都要有虚心请教的态度。自己不懂的一定要主动去问。我在在做课程设计的过程中就遇到了不少自己不明白的问题。有时自己想了很久仍然得不到答案,后来在同学的帮助下蔡顺利解决。所以在以后的学习和工作中虚心请教是必需的。另外,团队的合作和团结意识也是十分重要的。6 参考文献1 邱关源. 电路. 高等教育出版社. 20012 李翰逊. 电路分析基础. 高等教育出版社. 20023李翰逊. 简明电路分析基础. 高等教育出版社. 20024张纪成. 电路与电子技术. 电子工业出版社. 20025刘崇新. 电路学习指导书. 高等教育出版社. 20006周守昌. 电路原理(上、下册). 高等教育出版社. 19997周守昌. 电路理论基础. 高等教育出版社. 2002

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报