第一篇:MATLAB论文
MATLAB与在信号与系统中的应用
姓名:江肥 班级:*** 学号:***
摘要:论文通过MATLAB在信号与系统中的应用实例,探讨了MATLAB在信号与系统中的应用方法和技巧,对运用计算机软件完成“信号与系统”课程的波形绘制,微分方程的求解,信号与系统分析具有较好的参考价值。
关键字:MATLAB应用 信号与系统 微分方程
引言
“信号与系统”课程是一门实用性较强、涉及面较广的专业基础课,是电子信息类专业学生的必修课程。它是将学生从电路分析的知识领域引入信号处理与传输领域的关键性课程,对后继专业课起着承上起下的作用。该课程的基本方法和理论大量运用于计算机信息处理的各个领域,特别是通信、图像处理、数字信号分析等领域,应用更为广泛。MATLAB作为一个辅助类的软件可以很好的完成数值计算、信号与系统分析的可视化建模及仿真调试。
1.用MATLAB绘制信号的波形
运用MATLAB绘图,可以很快速和简便的得到响应函数的波形图,通过分析响应的波形将对信号的分析有更深入的了解。
用MATLAB绘制f(t)=e(t+3)-2e(t),其中e(t)为step函数 解:在MATLAB窗口中输入如下命令
f=sym('heaviside(t+3)-2*heaviside(t)')ezplot(f,[-5,4]), hold on,plot([0,0],[-1,1]), axis([-5,4,-1.1,1.1]),hold off 结果如图1:
图1
从图1可以清楚的看到f(t)的时域关系图。
2.利用MATLAB解微分方程
在信号与系统中,连续时间系统处理连续时间信号,通常用微分方程来描述这类系统,也就是系统的输入与输出之间通过他们时间函数及其对时间t的各阶导数的线性组合联系起来。因此,在信号与系统中,求解微分方程对于研究连续时间系统的时域分析非常的重要。下面本文选择了一种简便的方法来处理这类问题,运用MATLAB的方法。
求解线性微分方程
y’’’+5y’’+4y’+7y=3u’’+0.5u’+4u
在输入u(t)为单位脉冲及单位阶跃信号时的解。
解:两边进行拉普拉斯变换(脉冲输入U(S)=1;单位阶跃U(S)=1/S)3s20.5s4B(s)y(s)3u(s)
s5s24s7A(s)
求脉冲响应:A=[1 5 4 7];B=[3 0.5 4];[r ,p,k]=residue(B,A)时域解:t=0:0.2:10 y=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t)+r(3)*exp(p(3)*t);plot(t,y)得到的波形图如图2-1
图2-1 求阶跃响应:
打开MATLAB中的simulink模块,建立一个模型文件,命名为”li.mdl”。如图2-2
图2-2
单击仿真按钮,然后返回MATLAB中输入一下命令,即可得到如图2-3
图2-3
传统求系统阶跃响应和冲激响应的方法都是对传递函数进行拉氏变换,再和激励函数的拉氏形式相乘,左后求反变换。不仅工程量大,而且得出的结果不直观;本文采用MATLAB建模的方式解决问题,不但简单,而且非常直观的反映了响应函数的特性。
3.根据传递函数求系统的零极点分布,单位冲激响应,单位阶跃响应以及幅频特性
在分析系统的静态和动态特性时,常常可以通过对传递函数进行分析,从而解决系统是否稳定等问题,然而传统的分析方法,常常要借助于人工计算,不仅工作量比较大,而且效率也比较低。而MATLAB解决了这一难题,本文通过调用MATLAB内部的函数进行计算,非常的高效的得到了零级点分布,单位冲激响应,单位阶跃响应以及幅频特性,非常的直观。
例:传递函数是
1H(s) s32s22s1
解:首先建立一个m文件,并且命名为“li.m”
clear
t=0:0.01:10;
num=[1];
den=[1 2 2 1];
sys=tf(num,den)
poles=roots(den)
figure(1),pzmap(sys);%零级点分布
h1=impulse(num,den,t);
figure(2),plot(t,h1);%单位冲激响应的波形
title(‘Impulse Response’)%加标题
h2=step(num,den,t);
figure(3),plot(t,h2);%单位阶跃响应波形
[H,w]=freqs(num,den);
figure(4),plot(w,abs(H));%幅频特性图
xlabel(‘omega’)
title(‘magni tude Response’)%加标题
运行结果是
Transfer function:
---------------------s^3 + 2 s^2 + 2 s + 1
poles =
-1.0000
-0.5000 + 0.8660i
-0.5000-0.8660i 零极点分布如图3-1所示
图3-1
单位冲激响应的波形如图3-2所示
图3-2 单位阶跃响应波形如图3-3所示
图3-3
幅频特性如图3-4所示
如图3-4 结束语
MATLAB软件是目前比较流行的一套商业数学软件,在数值计算、信号处理方面尤为突出。它的出现给信号与系统分析中一些理论的掌握提供了很大的方便,利用其先进的计算机软件环境,可将信号与系统、信号处理中的很多定理直观化、可视化,这对学习这些理论非常有利。
参考文献:
【 1 】燕庆明.信号与系统教程[M].北京:高等教育出版社,2004 【 2 】楼顺天.基于MATLAB的系统分析与设计——信号处理.西安:西安电子科技大学出版社,2001 【 3 】梁红.信号与系统分析及MATLAB实现.北京:电子工业出版社,2002 【 4 】郑君里.信号与系统(第二版).北京:高等教育出版社,2000
第二篇:《MATLAB及应用》课程教学改革探讨论文
课程是指学校学生所应学习的学科总和及其进程与安排课程。下面是小编为你带来的《MATLAB及应用》课程教学改革探讨论文,欢迎阅读。
摘要:面对质量工程建设,《MATLAB及应用》的数学面临如何调整步伐适应社会需求的问题。本文就《MATLAB及应用》课程的教学内容和教学方法与教学手段的改革进行了探讨。
关键词:MATLAB;教学改革;探讨改革教学内容,找准MATLAB与专业课的结合点
MATLAB是一种高性能的数值计算和可视化软件,学会使用并不是最终目的,关键是利用MATLAB提供的功能用于分析计算,将其引入《汽车理论》等课程教学中。就可以解决学生在学习中所投入精力与教学目标偏离的矛盾,使学生从繁重的手工数学运算中解脱出来,将学习重点放在对课程的基本概念、方法和原理的理解和运用上。而且可以运用MATLAB分析、讨论信号处理的典型问题时,对一些概念和理论,通过图形对比,使学生从理论认识进一步深入到感性理解。
(1)MATLAB运算功能强大,提供的向量、数组、矩阵运算,复数运算,求解高次方程,常微分方程购数值积分运算、最优化方法等,这些都是在汽车理论里经常遇到的计算课题。
(2)MATLAB语言语句简单,极其容易学习与使用。汽车理论本身就有很多理论问题需要研究,再要为学习某种语言及其语法花太多的时间与精力是不可取的。MATLAB正好具有语言简单、掌握方便的特点,是一个理想的工具。MATLAB的强大方便的图形功能,可以使得重复、繁琐计算与绘制图形的笨重劳动被简单、轻而易学的计算操作所代替。而且数据计算准确,图形绘制精密,这是过去从事本专业的人所追求与期盼的事情。
(3)在教学过程中,将MATLAB语言和汽车理论有机结合起来,既降低了汽车理论的抽象性、增强了直观性,又让学生在课堂教学中轻松学会使用最先进的编程工具。例如,在汽车数学模型章节中,调用MATLAB的示例程序中的一些汽车模型。让学生在SIMULINK环境中对这些模型进行仿真,逐步了解一个部件是如何组成,各个环节模型又是怎样的。相互关系怎样,系统又是如何运作的。既深化了汽车系统方面的概念,又学习了如何使用仿真工具SIM-ULINK。课后借助MATLAB工具,给学生布置一些MXTLAB习题,有利于培养学生应用计算机辅助分析和设计系统的综合能力。改革教学方法
2.1 上好第一堂课
从教学经验来看,良好的开端是成功的一半,因此第一节课非常关键。第一堂课的主要任务是让学生对本课程内容有个全面的了解,激发学生对这门课的学习兴趣。在第一节课的教学中,以往年学生所做毕业设计为例,依次介绍GUI的应用、系统仿真波形、数学运算、频谱分析等,让学生对课程内容、为什么要学习MATLAB有一个感性的认识;同时,还演示了一些用LabVIEW开发的仪器面板,让学生对虚拟仪器有个初步的概念,了解虚拟仪器在汽车电子上的应用,从而激发学生的学习兴趣,使学生认识到学习该课程的重要性,为后面的学习起到抛砖引玉的作用。
2.2 改变考核方式
在以往的教学偏重于知识素质的培养,考核的方式是考试+平时作业+实验,其中考试占大部分(70%),对培养学生的综合能力重视不够。尝试对考核方式进行了调整,增大实验环节比重,特别是将实验《MATLAB应用程序设计》进行扩充,要求学生努力编写一个简单的仿真程序,相当于一个简化版的课程设计,完全按照课程设计要求考核学生。这样虽然增加了老师的工作量,又能够促进学生学会使用图书馆检索、互联网查询等先进手段和渠道获得最新的知识和信息。相对更深入地理解所学知识,也会为《汽车理论》课程设计打下了好的基础。加快质量工程建设
3.1 教材建设
目前没有针对教学内容的合适教材,现有的教材一方面内容过多,一方面与汽车系专业课程联系不密切,因此迫切需要一本结合自身教学的教材。教师们已经做了很多前期工作,已完成自编讲义《MATLAB在汽车上的应用》,将MATLAB汽车理论课程紧密相连,用了2年,效果非常好。
3.2 实践环节建设
本着重实践的思想,加大实践环节比重。30学时的课程分出9学时让学生做实验,其中3学时验证性实验,6学时设计性实验,学生动手时间长了,加深了课程知识的理解。并且,在此基础上计划拟增设小课程设计,让学生任选专业课某环节,进行SIMULINK仿真,系统仿真占这两年学生毕业设计课题中很大一部分。3年来的教学实践发现,达到预期效果,学生们在《汽车理论》课程设计中取得良好成绩,并能够在毕业设计中从事基于MATLA的相关课题。结束语
结合学校,改革教学内容,加强实践教学、提高学生综合素质为主要教学目标,从而优化了教学过程。学生在掌握课程本身的同时,也掌握了一门重要的开发语言,为后继专业课程的学习打下了坚实的基础。
参考文献
[1]张学标.专业教学改革的风向标.南京:江苏教育,2010(3).[2]胡爱娜,等.《计算机网络》课程教学改革探索.北京:中国科教创新导刊,2010(22).[3]李楚琳.理论力学教学改革的实践与思考.十堰:湖北汽车工业学院学报,2004(4).
第三篇:matlab
MATLAB
MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.在新的版本中也加入了对C,FORTRAN,c++ ,JAVA的支持.可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用,非常的方便。
MATLAB的基础是矩阵计算,但是由于他的开放性,并且mathwork也吸收了像等软件的优点,使MATLAB成为一个强大的数学软件
当前流行的MATLAB 6.5/7.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充
MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.Matlab的官方网站:http://
Matlab的优势和特点
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
(2)简单易用的程序语言
Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如距阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(4)出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使他不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(5)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,他们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特色就是他有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
(7)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5。
(8)Matlab常用工具箱介绍(英汉对照)
Matlab Main Toolbox——matlab主工具箱
Control System Toolbox——控制系统工具箱
Communication Toolbox——通讯工具箱
Financial Toolbox——财政金融工具箱
System Identification Toolbox——系统辨识工具箱
Fuzzy Logic Toolbox——模糊逻辑工具箱
Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱
Image Processing Toolbox——图象处理工具箱
LMI Control Toolbox——线性矩阵不等式工具箱
Model predictive Control Toolbox——模型预测控制工具箱
μ-Analysis and Synthesis Toolbox——μ分析工具箱
Neural Network Toolbox——神经网络工具箱
Optimization Toolbox——优化工具箱
Partial Differential Toolbox——偏微分方程工具箱
Robust Control Toolbox——鲁棒控制工具箱
Signal Processing Toolbox——信号处理工具箱
Spline Toolbox——样条工具箱
Statistics Toolbox——统计工具箱
Symbolic Math Toolbox——符号数学工具箱
Simulink Toolbox——动态仿真工具箱
Wavele Toolbox——小波工具箱
例如:控制系统工具箱包含如下功能:
连续系统设计和离散系统设计
状态空间和传递函数以及模型转换
时域响应(脉冲响应、阶跃响应、斜坡响应)
频域响应(Bode图、Nyquist图)
根轨迹、极点配置
1.补充新的内容:
MATLAB R2007b正式发布了!MATLAB 2007b于2007年秋节正式发布,TMW正式发布了MATLAB R2007b,新版本涵盖:Simulink
7、新产品Simulink Design Verifier、Link for Analog Devices VisualDSP以及82个产品模块的更新升级及Bug修订。从现在开始,MathWorks公司将每年进行两次产品发布,时间分别在每年的3月和9 月,而且,每一次发布都会包含所有的产品模块,如产品的new feature、bug fixes和新产品模块的推出。
在R2007b中(MATLAB 7.4,Simulink 6.6),主要更新了多个产品模块、增加了多达350个新特性、增加了对64位Windows的支持,并新推出了.net工具箱。R2007b, released on March 1, 2007, includes updates to MATLAB and Simulink, two new products released since R2007b, and updates and bug fixes to 82 other products.R2007b adds support for the Intel®based Mac, Windows Vista™, and 64-bit Sun Solaris™ SPARC platforms.这次的升级做了重大的增强,也升级了以下各版本,提供了MATLAB、SIMULINK的升级以及其他最新的模块的升级。这个Matlab 2007版本不仅仅提高了产品质量,同时也提供了新的用于数据分析、大规模建模、固定点开发、编码等新特征。其中MATLAB Builder for.net扩展了MATLAB Compiler的功能,主要有:可以打包MATLAB函数,使网络程序员可以通过C#,VB.net等语言访问这些函数;
创建组件来保持MATLAB的灵活性;
创建COM组件;
将源自MATLAB函数的错误作为一个标准的管理异常来处理。
R2007b 提供了重大的新功能: 直接在命令行使用 Real-Time Workshop 的 嵌入式 MATLAB 函数的 C 代码生成。另外,Simulink 中的嵌入式 MATLAB 函数块支持多 M 文件中的算法。
MATLAB R2007b新版本中,产品模块进行了一些调整,MATLAB Builder for COM的功能集成到MATLAB Builder for.net中去了,Finacial Time Series Toolbox的功能集成到Financial Toolbox中了。MATLAB 将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用 MATLAB 产品的开放式结构,可以非常容易地对 MATLAB 的功能进行扩充,从而在不断深化对问题认识的同时,不断完善 MATLAB 产品以提高产品自身的竞争能力。
作为和Mathematica、Maple并列的三大数学软件。其强项就是其强大的矩阵计算以及仿真能力。要知道Matlab的由来就是Matrix + Laboratory = Matlab,所以这个软件在国内也被称作《矩阵实验室》。每次MathWorks发布Matlab的同时也会发布仿真工具Simulink。在欧美很多大公司在将产品投入实际使用之前都会进行仿真试验,他们所主要使用的仿真软件就是Simulink。Matlab提供了自己的编译器:全面兼容C++以及 Fortran两大语言。所以Matlab是工程师,科研工作者手上最好的语言,最好的工具和环境。Matlab 已经成为广大科研人员的最值得信赖的助手和朋友!
常用函数一览:(参考《微积分》及《线性代数》,高等教育出版社)eye()--->化为单位阵
*--->内积、乘法
sqrt()-->求向量的模,求平方根
acos()--->arccos()反三角余弦
inv()--->求矩阵的逆,求倒数
[P,D]=eig(A)--->eig(A)求A的特征值与特征向量,D对角线元素为A的特征值,P每列
为A的对应于D的特征向量
syms x---->定义变量x
limit(u^2,u,inf)---->求u趋于无穷时u^2的极限
exp(x)---->e^x
NaN--->不存在limit(1/x,x,0,'left')---->求x趋向于0的左极限
diff()----->求导数
pretty(ans)---->将结果整理成书写形式
diff(exp(a*x),x,3)---->求e^(ax)的三阶导数
ezplot()---->绘图,括号内为函数
int(1/(1+x),x,0,1)--->求函数从0到1的积分
double()--->求具体数值
dsolve()---->解常微分方程
Dy---->y'一阶导数
D2y---->y''二阶导数
{syms x y
maple('readlib(mtaylor)');
maple('mtaylor(sqrt(1-x^2-y^2),[x=0,y=0],6)')}---->马克劳林展开式至四次项,泰勒展开式,可缺省[x=0,y=0]
S=symsum(u,t,a,b)--->表示t从a到b对u求和(级数),当只有t一个变量时t可以省略
clear all---->清空缓存
{syms n k Sn;
n=9000;
Sn=0;
for k=1:n
Sn=Sn+log(1+1/k^2);
end
fprintf('%f,(n=%d)',Sn,n)}---->求级数 见课本微积分(2)94页
r=taylor(f,n,x,a)---->表示将函数f展开成(x-a)的n-1阶泰勒级数,x为展开式的符号变量
第四篇:MATLAB实验小结论文 数学建模
数学建模论文
题 目 求π的近似值的数学建模问题
学 院 材料科学与工程
专业班级
学生姓名
成 绩
年 05 月 20
MATLAB
2010 日
摘要 这个学期,我们开了MATLAB的课程,因为是一个人做所以作业选择书上一道相关的题目,并参考了一些资料。
任务
求π的近似值
分析
1111这个公式求π的近似值,直到某一项的绝对值小于10-6为止。4357采用MATLAB的循环来求
实验程序
x=1;y=0;i=1;while abs(x)>=1e-6 y=y+x;x=(-1)^i/(2*i+1);i=i+1;end format long,pi=4*y 可以用实验结果 pi =
3.14***92 收获
得出的π值已经非常接近真实的值了,学好MATLAB可以提高我们的效率。
参考文献
数学模型(第三版)姜启源著 高等教育出版社 MATLAB实验
第五篇:matlab习题
1.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。a=rand(1,20);
max1=max(a)%用max函数求最大值
min1=min(a)%用max函数求最大值
%以下用循环方法求解:
max2=a(1);min2=a(1);for i=2:20 if a(i)>max2 max2=a(i);end
if a(i) end max2 min2 调用MATLAB的max函数、min函数来实现: >> a=rand(1,20)zuidazhi=max(a)zuixiaozhi=min(a) a = Columns 1 through 8 0.7513 0.2551 0.5060 0.6991 Columns 9 through 16 0.1493 0.2575 0.8407 0.2543 Columns 17 through 20 0.1966 0.2511 0.6160 0.4733 zuidazhi = 0.9593 zuixiaozhi = 0.8909 0.9593 0.8143 0.2435 0.5472 0.1386 0.9293 0.3500 0.1386 2.求Fibonacci数列 (1)大于4000的最小项。 (2)5000之内的项数。(1)function t=fibonacc1 f=[1,1];n=2;while 1 f=[f,f(n-1)+f(n)];n=length(f);if f(n)>4000 break;end end t=f(n);return (2)function n=fibonacc2 f=[1,1];n=2;while 1 f=[f,f(n-1)+f(n)];n=length(f);if f(n)>4000 break;end end n=n-1;return 3.写出下列程序的输出结果: 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 21A0 S Ans=108 1、解方程组Ax=b,分别用求逆解法与直接解法求其解。 121000121000,10b0 0 012100 00120A=[2-1 0 0 0;-1 2-1 0 0;0-1 2-1 0;0 0-1 2-1;0 0 0-1 2];b=[1;0;0;0;0];x=inv(A)*b 2、编一个m程序,求N阶方阵A的行列式的值 function s=mydet(A)n=size(A); if(n(1)~=n(2)) return;end n=n(1);if(n==1)s=A; return;end s=0; for i=1:n s=s-(-1)^i*A(1,i)*mydet(A(2:n,[1:i-1 i+1:n]));end 3.今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。p1=[1.0 0.0 0.0-2.0 1.0];p2=[0.0 0.0 1.0 4.0-0.5];p1x=poly2sym(p1);p2x=poly2sym(p2);p=p1x+p2x 4.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为: x=[ 1 ] 而经过颠倒处理后x中数据的次序应该为: x=[ 9 ] x=[ 1 3 5 7 9 ] xx=rot90(rot90(x)) 1.在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。x = 0:pi/10:2*pi;y = sin(x).*cos(5*x)plot(x,y) 2.在[0 2π]范围内绘制以Y轴为对数的二维曲线图。 y=|1000sin(4x)|+1 x=linspace(0,2*pi,100);y=abs(1000*sin(4*x))+1;semilogy(x,y) 3.把自己姓名中的各个拼音字母(小写)所对应的ASCII值转换为二进制序列,并用二进制脉冲绘图表示出来 mingzi='shaopengpeng';% b=dec2bin(int8(s))b=double(mingzi)c=dec2bin(b)c=c' stem(str2num(c(:)))Matlab介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB应用非常之广泛! MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。 优势特点: 1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; 2)具有完备的图形处理功能,实现计算结果和编程的可视化; 3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; 4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。 习题 第三讲 1.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。 用循环结构的程序: >> a=[1 3 5-1 20 23-8 39-3 7-4-11 34-31 12 13 33-43-50 45] c=a(1);d=a(1);for n=1:20;if a(n)>c b=a(n);c=a(n);else b=c;end;end;for n=1:20;if a(n) 5-1 20 23-8 39-3 7-4-11 34-31 12 13 33 Columns 18 through 20 -43-50 45 结果 b = c = 调用MATLAB的max函数、min函数来实现:的程序 >> a=[1 3 5-1 20 23-8 39-3 7-4-11 34-31 12 13 33-43-50 45] b=max(a);d=min(a);b d 运行结果: a = Columns 1 through 17 5-1 20 23-8 39-3 7-4-11 34-31 12 13 33 Columns 18 through 20 -43-50 45 结果 b = d = 2.求Fibonacci数列 (1)大于4000的最小项。 (2)5000之内的项数。 3、写出下列程序的输出结果: 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 运行结果: s= 108 第四章习题 1、解方程组Ax=b,分别用求逆解法与直接解法求其解。 21000 121001A 01210b0 00121, 0 0001200 2、编一个m程序,求N阶方阵A的行列式的值。 3、今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。 4.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为: x=[ 1 ] 而经过颠倒处理后x中数据的次序应该为: x=[ 9 ] 第五章习题 1.在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。 x=0:pi/100:2*pi;y=sin(x).*cos(5*x);plot(x,y)10.80.60.40.20-0.2-0.4-0.6-0.8-101234567 2.在[0 2π]范围内绘制以Y轴为对数的二维曲线图。 y=|1000sin(4x)|+1 x=(0:0.01:2*pi); y=abs(1000*sin(4*x))+1;semilogy(x,y); ***00200001234567 3、把自己姓名中的各个拼音字母(小写)所对应的ASCII值转换为二进制序列,并用二进制脉冲绘图表示出来 a='shaopengpeng';b=dec2bin(a);stem(str2num(b(:))) 心得体会 Matlab是一个强大的数学工具,它的应用广泛,涉及到各个领域.它使用起来十分方便,不用麻烦去定义变量.它的绘图能力很强,甚至可以模拟出三维视图.矩阵是它应用的核心,许多工程繁琐的运算都需要靠矩阵来化简,这正是它的生命力所在.但是,他的函数很多,开始学时记的比较痛苦,我已经深深感觉到了.不过看多了也就熟了,感觉和学五笔差不多.它的语法简单,像我学过C语言的学起来还是蛮容易的.它的数组定义十分符合自然,是从1开始的,数组元素的调用也很接近数学的表达.此外,函数的名字也很符合英文规则,反正我用得很开心就是了.9 通过学习matlab,我又一次锻炼了自己的思维.它学起来得心应手也让我明白了学习一门语言(c语言)对学习其他语言的帮助指导作用.同时,它也加强了我理论联系实际的能力.这是一个专业课的基础工具,学好它是必要的