搜档网
当前位置:搜档网 › FORTRAN程序调用MATLAB引擎实现计算可视化

FORTRAN程序调用MATLAB引擎实现计算可视化

FORTRAN程序调用MATLAB引擎实现计算可视化
FORTRAN程序调用MATLAB引擎实现计算可视化

收稿日期:2000205229 

作者简介:聂万胜(1969-),男,内蒙古人,博士,主要研究方向:航空推进理论的科学计算和可视化、飞行器测试发射的科学计算和可视化.

文章编号:1001-9081(2000)11-0060-02

FORTRAN 程序调用M AT LAB 引擎实现计算可视化

聂万胜,庄逢辰,黄 玲,邹 勤

(装备指挥技术学院,北京怀柔101416)

摘 要:探索了FORTRAN 程序调用MAT LAB 函数的基本原理,用实例介绍了调用MAT LAB 引擎函数,实现FORTRAN 程序计算结果的可视化过程。并给出如何编译带有MAT LAB 引擎函数的FORTRAN 程序的具体技术。

关键词:FORTRAN ;MAT LAB ;引擎;可视化中图分类号:TP311.52 文献标识码:A

1 概述

FORTRAN 和C 等高级语言使人们无需直接对

计算机硬件资源进行操作。而被称为第四代计算机语言的M AT LAB ,则利用其丰富的函数资源,代替了C 语言和FORTRAN 的冗长代码,给用户带来了最直观、最简洁的程序开发环境。在欧美很多高校,M AT LAB 已经成为自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;在设计研究单位和工业部门,M AT LAB 被广泛地用于研究和解决各种具体问题。其最主要的特点有:语言简洁,使用方便灵活,程序书写形式自由,库函数极其丰富,图形功能强大。

由于不管是C 语言还是FORTRAN 语言,其图形和可视化功能的实现都需要较为专业的编程水平,所以本文旨在充分发掘M AT LAB 的功能,利用M AT LAB 所提供的接口函数实现FORTRAN 程序的计算结果可视化,充分综合了FORTRAN 程序的执行速度快而M AT LAB 可视化处理简单方便,开发周期短的优点。

2 FORTRAN 调用M A T LAB 函数的原理

由于F ORTRAN 程序和M A T LA B 的运算单位不同,前者以数为运算单位,后者以矩阵为基本的运算单位,所以数据类型不能直接匹配。这就需要调用M A T LA B 所提供的API (应用程序接口)函数把M A T LA B 矩阵类型的输入变量为转化为F ORTRAN 程序可以运行的双精度实型变量,再把F ORTRAN 程序双精度实型变量的运行结果转化为M A T LA B 的矩阵类型输出。在M A T LA B 中是通过把输入输出指针作为函数的参数来调用F ORTRAN 子程序的。用mxCreate 函数来生成M A T LA B 的输出数组,指针plhs (1),(2)指向刚建立的数组;用mxG et 函数取得prhs

(1),(2)指向的数据。下面说明一下它的关键技术。

M AT LAB API 是以一种独特的数据类型mxArray 来工作的。在FORTRAN 中还不能创造这样一种新的数据类型,所以M AT LAB 采用一个指针来与FORTRAN 程序交换数据。通过指针调用各种API 函数从M AT LAB 的mxArray 中取得数据。有这么几层含义:

%val 结构

如果你的FORTRAN 编译器支持%val 结构,有一种不要入口路径的指针类型,直接用mxG etPr 或mxG etPi 来取得数据。可以用%val 把指针内容传给F ortrran 子程序,在这里把它作为一个FORTRAN 的双精度矩阵。如果你的编译器不支持%val 结构,就必须采用mxC opy —路线(如mxC opyPtrT oReal8)获得指针的内容。

变量声明

使用指针必须正确地指明它们的大小,在DEC Alpha 和64位SGI 工作站上,所有指针必须说明为integer 38;在其他平台上,指针须说明为integer 34。如果指针大小说明不正确可能导致应用程序崩溃。

调用mexErrMsgT xt 来检查输入是否有错,检查包括输入数组的个数、类型和大小,以及输出数组的数目是否正确。mx 函数提供了一系列操作M A T LA B 数组的方法(子程序),这些方法可在API 的在线参考中找到。前缀mx 是mxArray 的缩写,它的作用在于使用户可以得到操作M A T LA B 数组的信息。如mxG etPr 可以从M A T LA B 数组中得到其实部,mxG etPi 可以从M A T LA B 数组中得到其虚部,其他方法可以用在M A T LA B 数组和F ORTRAN 数组的数据传递当中。

入口过程必须调用mxCreateFull 、mxCreateS parse 、或mxCreateS tring 来建立返回计算结果所需要的M AT LAB 数组,这些调用的返回值应该被指向指针plhs 的正确元素。如果需要的话,入口过程还可以

第20卷第11期2000年11月

计算机应用C om puter Applications V ol.20,N o.11N ov.,2000

调用mxCalloc来为计算过程分配临时的工作数组。当然也有许多其它函数,它们由mex初始化,如mexCallM AT LAB和mexErrMsgT xt等。

3 MAT LAB引擎的通讯原理

M AT LAB的引擎库提供了一整套允许用户在自己的程序中调用引擎函数的方法,通过这些引擎函数,用户可以在FORTRAN程序或C程序中直接调用M AT LAB的函数和命令,并且可以编译成统一的EXE文件执行。

通过引擎函数调用M AT LAB,实质是把M AT LAB 作为一个ActiveX服务器,也叫M AT LAB计算引擎。当FORTRAN程序调用某个M AT LAB函数或命令时,首先通过引擎函数启动M AT LAB并建立ActiveX通道,然后把这个函数或命令通过ActiveX通道传给M AT LAB,由M AT LAB在后台执行。这一点就要求系统中必须安装好M AT LAB。当然FORTRAN程序与M AT LAB进行数据交换时,采用的是与MEX函数相同的mxArray类型,所以MEX函数的接口函数在这里同样可以使用。

下面给出几个比较重要的FORTRAN程序可以调用的引擎函数的功能说明,其它函数可以通过M AT LAB帮助找到:

 engOpen:启动M AT LAB引擎,建立ActiveX通道;

engClose:关闭M AT LAB引擎,即关闭ActiveX通道;

engG etM atrix:从M AT LAB引擎得到M AT LAB数组值;

engPutM atrix:把一个M AT LAB数组传给M AT LAB引擎;

engEvalS tring:执行一个M AT LAB命令;

engOutputBu ffer:建立一个缓冲区以储存M AT LAB的文本

输出。

4 调用MAT LAB引擎的编译和连接

4.1 FORTRAN调用M AT LAB引擎的编译技术

本文所使用的FORTRAN编译器是M icros oft F ortran P owerS tation4.0。在M AT LAB的子目录bin下面有一个批处理文件mex.bat,利用这个批处理文件调用FORTRAN编译器,会自动实现对M AT LAB引擎的调用编译和连接,非常方便,不需要设置编译开关和环境变量。具体步骤如下:

1)选择FORTRAN编译器:在M AT LAB工作空间执行MEX-SET UP。找到所安装的FORTRAN编译器,并按提示选择正确的序号,选择完毕系统会给出设置正确的提示。

2)编译FORTRAN程序并调用M AT LAB引擎:在编译器选择完毕以后,系统处于DOS命令方式下,这时就可以执行下述命令:MEX-f d f50engmatopts.bat+文件名(带后缀.f),编译成功后就生成与源文件同名的exe文件,也就实现了FORTRAN程序对M AT LAB命令的调用。4.2 浮点运算例外的特殊考虑

某些特定的数学操作会导致不确定的结果,如被0除就得到不确定的IEEE值,in f,当执行了这样的操作就发生了一次浮点运算例外(a floating-point exception)。因为M AT LAB采用的是IEEE模型,所以就支持诸如in f和NaN这样的不确定值。这就决定了M AT LAB不能对浮点运算例外模糊化。而且一些编译器的默认设置也是能对浮点运算例外模糊化,所以要对这方面的问题特别注意,确保引擎应用的正确性。

4.3 实例说明

下面这一简单程序完整地说明了怎样从FORTRAN程序调用M AT LAB引擎函数,以简单的代码就可以实现计算结果的可视化:

 program main

C在DEC Alpha和SGI64位平台上integer用integer38代替 integer engOpen,engG etM atrix,mxCreateFull,mxG etPr

 integer ep,T,D,result

C其他变量在这里说明

 double precision time(10),dist(10)

 integer stat,tem p

 data tim e/1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0/

 ep=engOpen(′matlab′)

 if(ep.eq.0)then

write(6,3)′Can′′t start M AT LAB engine′

stop

 endif

 T=mxCreateFull(1,10,0)

 call mxSetName(T,′T′)

 call mxC opyReal8T oPtr(time,mxG etPr(T),10)

C把变量T放到M AT LAB工作区

 call engPutM atrix(ep,T)

C执行一个简单的函数

 call engEvalS tring(ep,′D=.5.3(-9.8).3T.^2;′)

C结果绘图

 call engEvalS tring(ep,′plot(T,D);′)

 call engEvalS tring(ep,′title(′′位置———时间′′)′)

 call engEvalS tring(ep,′xlabel(′′时间(秒)′′)′)

 call engEvalS tring(ep,′ylabel(′′位置(米)′′)′)

C下面的控制使我们有足够的时间可以看清楚所画图

 print3,′T ype0to Exit′

 print3,′T ype1to continue′

 read(3,3)tem p

 if(tem p.eq.0)then

print3,′EXIT!′

stop

 end if

 call engEvalS tring(ep,′close;′)

 D=engG etM atrix(ep,′D′)

 call mxC opyPtrT oReal8(mxG etPr(D),dist,10)

 print3,′M AT LAB com puted the following distances:′

 print3,′time(s)distance(m)′

 do10i=1,10

print20,time(i),dist(i)

20 format(′′,G10.3,G10.3)

10 continue

16

第11期聂万胜等:FORTRAN程序调用MAT LAB引擎实现计算可视化

文章编号:1001-9081(2000)11-0062-04

检测低层网络攻击的方法

刘志宏,殷肖川

(空军工程大学电讯工程学院,陕西西安710077)

摘 要:常规的操作系统因缺乏充足的审计数据使基于主机的入侵检测系统无法检测到低层网络攻击,而基于网络的入侵检测系统因只依靠网上数据流而不能检测到所有攻击。文中分析了几种低层IP 攻击,在此基础上提出在操作系统的审计记录中添加部分审计数据,使基于主机的入侵检测系统能检测到低层网络攻击。

关键词:低层网络攻击;入侵检测;审计数据中图分类号:TP393.08 文献标识码:A

随着计算机应用技术的迅速发展,计算机和网

络已深入到人们的生活中,随之而来的安全问题日益严重。传统的计算机安全方法是用禁止策略来进行防御,大量例子已经表明这种策略本身是不充分的。入侵检测系统(I DS )通过检查特定攻击模式、独立事件、配置问题、欺骗程序、存在缺陷的程序和其它黑客可能利用的漏洞来检测与安全相关的活动。

公共入侵检测框架[1](C omm on Intrusion Detection

Framew ork -CI DF )定义了一个入侵检测系统应包含的各种组件。这些组件包括事件产生器(E 盒)、分析引擎(A 盒)、存储机构(D 盒)和响应方法(C 盒)。图1描述了各个组件之间的联系。

E 盒是整个I DS 的传感机构,为整个系统的其它部分提供可供分析的事件。A 盒则分析E 盒提供的原始事件,从中提取有用信息。D 盒用来存储安全信息,以备后用。某些I DS 只对攻击产生报警,但

收稿日期:2000205229 

作者简介:刘志宏(1967-),男,湖南沅江人,工程师,硕士,主要研究方向:计算机网络及网络安全; 殷肖川(1962-),男,湖北武汉人,教授,主要研究方向:计算机网络及网络信息安全、密码学. call mxFreeM atrix (T ) call mxFreeM atrix (result ) stat =engClose (ep ) stop end

以上示例中的所有函数在M AT LAB 的Help Desk 中都有更详细的介绍,这里不再详述。运行文件名为feng.exe ,直接执行的结果如图1所示

图1

上述运行文件feng.exe 使用起来很简单,可以在M AT LAB 工作空间中直接运行,也可以在Windows

系统下的任何地方执行,只要路径设置正确,都可以

通过双击该文件执行。

可见,通过调用M AT LAB 引擎来对FORTRAN 程序的计算结果进行可视化处理是非常容易实现的。

5 结束语

本文对FORTRAN 程序调用M AT LAB 函数的全过程进行了探索,分析了FORTRAN 程序通过M AT LAB 引擎调用与M AT LAB 进行数据传递的方法,并给出了一个非常简单的可视化处理程序,关于FORTRAN 语言的各种大型应用程序如何调用M AT LAB 函数,以最终实现图形界面的美好设计和计算结果的复杂可视化处理过程,其方法是基本一致的,仅仅是用到的函数更多更复杂而已。

参考文献

[1] 冯耀霖.M icros oft FORTRAN powerS tation V4.0入门

[M].西安:西安电子科技大学出版社,1999.[2] M AT LAB Application Program Interface G uide [Z ],

M athw orks Inc.,1998.

[3] M AT LAB Application Program Interface Reference M anual

[Z].M athw orks Inc.,1998.

[4] 张丽娟,陈骏.M AT LAB 与C 语言接口的实现[J ].计

算机应用研究,1999,(1).

第20卷第11期2000年11月

计算机应用C om puter Applications V ol.20,N o.11N ov.,2000

MATLAB 与C C + + 、FORTRAN语言混合编程

MATLAB 与C/ C + + 、FORTRAN语言混合编程摘要:对MATLAB 与C/ C + + 和FORTRAN 语言进行混合编程的常用方法进行了介绍,分析了其实现方式和各自的利弊,并用实例对MEX 文件实现方式进行了较详细的论述. 关键词: MATLAB ; C/ C + + ; FORTRAN ; 混合编程 中图分类号: TP313 文献标识码: A 文章编号:16722948X(2004) 0620547205 1 混合编程的意义及其实现方式 1. 1 混合编程的意义 MATLAB 语言具有功能强大、开发效率高等诸 多优点, 已在工程实际中得到广泛应用, 但是与 FORTRAN、C/ C + + 等语言相比,其执行效率较低, 特别是当程序中含有大量循环语句(例如迭代计算) 时,MATLAB 就有些力不从心, 速度很慢, 而运用 FORTRAN 等擅长数值计算语言进行编程,其运行效 率高. 一方面,如果放弃MATLAB 强大功能和数量 众多的应用工具箱,无疑是资源的极大浪费. 另一方 面,针对工程实际,人们用FORTRAN、C/ C + + 语言 已编写了大量实用程序,如果将其重新改写成M 文 件移植到MATLAB 环境中,不仅要花费大量的时间 和精力,而且有时还降低了其运行效率. 可否将二者 优势互补呢? 混合编程就是其有效的解决途径. 1. 2 混合编程的实现 正是考虑到上面这些原由,MATLAB 系统提供 了其应用程序接口(Application Program Interface) 来 解决这些问题. API 主要包括3 部分:MEX 文件——— 外部程序调用接口,用来在MATLAB 环境下调用 FORTRAN、C/ C + + 语言编写的程序;MAT 文件应 用程序———数据输入输出接口,用于MATLAB 系统 与外部环境之间互传数据; 计算引擎函数库——— MATLAB 处于后台作为一个计算引擎,与其它应用 程序建立客户机/ 服务器关系,在其它应用程序中调 用[1 ,2 ] . 1. 2. 1 MEX 文件 MEX 文件是按照一定格式,用FORTRAN 或C/ C + + 语言编写的源程序,在MATLAB 下借助相应 的编译器,生成的动态链接函数的统称. 在Windows 操作系统下,是用MATLAB 附带的批处理mex. bat 来编译生成文件后缀名为. dll (Dynamic Link Li2 brary) 动态链接库文件,该文件可在MATLAB 环境 下,像命令函数一样直接运行和调用,使用起来极为 方便. 采取MEX 文件方式,是重复利用已有FOR2 TRAN、C/ C + + 程序,让MATLAB 和FORTRAN、

潮流计算(matlab)实例计算

潮流例题:根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择Matlab进行设计)。 2.在给定的电力网络上画出等值电路图。 3.运用计算机进行潮流计算。 4.编写设计说明书。 一、设计原理 1.牛顿-拉夫逊原理 牛顿迭代法是取x0 之后,在这个基础上,找到比x0 更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新

的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。 牛顿—拉夫逊迭代法的一般步骤: (1)形成各节点导纳矩阵Y。 (2)设个节点电压的初始值U和相角初始值e 还有迭代次数初值为0。 (3)计算各个节点的功率不平衡量。 (4)根据收敛条件判断是否满足,若不满足则向下进行。 (5)计算雅可比矩阵中的各元素。 (6)修正方程式个节点电压 (7)利用新值自第(3)步开始进入下一次迭代,直至达到精度退出循环。 (8)计算平衡节点输出功率和各线路功率 2.网络节点的优化 1)静态地按最少出线支路数编号 这种方法由称为静态优化法。在编号以前。首先统计电力网络个节点的出线支路数,然后,按出线支路数有少到多的节点顺序编号。当由n 个节点的出线支路相同时,则可以按任意次序对这n 个节点进行编号。这种编号方法的根据是导纳矩阵中,出线支路数最少的节点所对应的行中非零元素也2)动态地按增加出线支路数最少编号在上述的方法中,各节点的出线支路数是按原始网络统计出来的,在编号过程中认为固定不变的,事实上,在节点消去过程中,每消去一个节点以后,与该节点相连的各节点的出线支路数将发生变化(增加,减少或保持不变)。因此,如果每消去一个节点后,立即修正尚未编号节点的出线支路数,然后选其中支路数最少的一个节点进行编号,就可以预期得到更好的效果,动态按最少出线支路数编号方法的特点就是按出线最少原则编号时考虑了消去过程中各节点出线支路数目的变动情况。 3.MATLAB编程应用 Matlab 是“Matrix Laboratory”的缩写,主要包括:一般数值分析,矩阵运算、数字信号处理、建模、系统控制、优化和图形显示等应用程序。由于使用Matlab 编程运算与人进行科学计算的思路和表达方式完全一致,所以不像学习高级语言那样难于掌握,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。 二、设计内容 1.设计流程图

MATLAB精通科学计算_偏微分方程求解

一、Maple V 系统 Maple V是由Waterloo大学开发的数学系统软件,它不但具有精确的数值处理功能,而且具有无以伦比的符号计算功能。Maple V的符号计算能力还是MathCAD和MATLAB等软件的符号处理的核心。Maple提供了2000余种数学函数,涉及范围包括:普通数学、高等数学、线性代数、数论、离散数学、图形学。它还提供了一套内置的编程语言,用户可以开发自己的应用程序,而且Maple自身的2000多种函数,基本上是用此语言开发的。 Maple采用字符行输入方式,输入时需要按照规定的格式输入,虽然与一般常见的数学格式不同,但灵活方便,也很容易理解。输出则可以选择字符方式和图形方式,产生的图形结果可以很方便地剪贴到Windows应用程序内。 二、MATLAB 系统 MATLAB原是矩阵实验室(Matrix Laboratory)在70年代用来提供Linpack和Eispac k软件包的接口程序,采用C语言编写。从80年代出现3.0的DOS版本,逐渐成为科技计算、视图交互系统和程序语言。MATLAB可以运行在十几个操作平台上,比较常见的有基于W indows 9X/NT、OS/2、Macintosh、Sun、Unix、Linux等平台的系统。 MATLAB程序主要由主程序和各种工具包组成,其中主程序包含数百个内部核心函数,工具包则包括复杂系统仿真、信号处理工具包、系统识别工具包、优化工具包、神经网络工具包、控制系统工具包、μ分析和综合工具包、样条工具包、符号数学工具包、图像处理工具包、统计工具包等。而且5.x版本还包含一套几十个的PDF文件,从MATLAB的使用入门到其他专题应用均有详细的介绍。 MATLAB是数值计算的先锋,它以矩阵作为基本数据单位,在应用线性代数、数理统计、自动控制、数字信号处理、动态系统仿真方面已经成为首选工具,同时也是科研工作人员和大学生、研究生进行科学研究的得力工具。MATLAB在输入方面也很方便,可以使用内部的E ditor或者其他任何字符处理器,同时它还可以与Word6.0/7.0结合在一起,在Word的页面里直接调用MATLAB的大部分功能,使Word具有特殊的计算能力。 三、MathCAD 系统 MathCAD是美国Mathsoft公司推出的一个交互式的数学系统软件。从早期的DOS下的1. 0和Windows下的4.0版本,到今日的8.0版本,功能也从简单的数值计算,直至引用Map le强大的符号计算能力,使得它发生了一个质的飞跃。 MathCAD是集文本编辑、数学计算、程序编辑和仿真于一体的软件。MathCAD7.0 Profe ssional(专业版)运行在Win9X/NT下,它的主要特点是输入格式与人们习惯的数学书写格式很近似,采用WYSWYG(所见所得)界面,特别适合一般无须进行复杂编程或要求比较特殊的计算。MathCAD 7.0 Professional 还带有一个程序编辑器,对于一般比较短小,或者要求计算速度比较低时,采用它也是可以的。这个程序编辑器的优点是语法特别简单。 MathCAD可以看作是一个功能强大的计算器,没有很复杂的规则;同时它也可以和Wor d、Lotus、WPS2000等字处理软件很好地配合使用,可以把它当作一个出色的全屏幕数学公式编辑器。 四、Mathematica 系统 Mathematica是由美国物理学家Stephen Wolfram领导的Wolfram Research开发的数学系统软件。它拥有强大的数值计算和符号计算能力,在这一方面与Maple类似,但它的符

实验五_MATLAB计算的可视化

实验五 MATLAB 计算的可视化(一) 实验目的 1. 熟练掌握MATLAB 二维曲线的绘制 2.掌握图形的修饰 3.掌握三维图的绘制 4.了解各种特殊图形的绘制 内容与步骤 1.在同一幅图形窗口中分别绘制y1=sin(t)和y2=cos(t)二条函数曲线,t 的取值范围为[0,10]。y1用红色虚线表示,y2用蓝色实线表示,横坐标轴名称为“时间t ”,纵坐标轴名称为“正弦、余弦”,整个图形的标题为“正弦和余弦曲线”。在坐标(1.7*pi ,-0.3)处添加文字“sin(t)”, 在坐标(1.6*pi ,0.8)处添加文字“cos(t)”,并在右上角添加图例,其运行界面图如下图所示。之后并尝试修改坐标轴刻度。 2.用subplot 命令在同一个窗口的不同子窗口绘制曲线y=sin(t),y1=sin(t+0.25) y2=sin(t+0.5),其中t=[0 10]。 3.绘制三维曲线:?? ? ??=≤≤==)cos()sin()200() cos()sin(t t t z t t y t x π (注意:用plot3命令) 4.三维网线图:绘制z=sin(y)cos(x) 三维网线图。 5. 三维曲面图 绘制22y x z +=的三维曲面图,x 在[-5,5]范围,y 在[-5,5]范围。将曲面图颜色用shading 命令连续变化,并用颜色标尺显示色图(使用函数colorbar 生成)。生成的图形如下图所示。

6.请绘制一个饼形图,数据如下表所示 7. 用semilogx命令绘制传递函数为1//(s+1)(0.5s+1)的对数幅频特性曲线,横坐标为w,纵坐标为Lw,w的范围为10-2-103,按对数分布。

fortran与matlab如何连接

编译环境配置: projects -> setting ->link -> Object/library modulus kernel32.lib libmx.lib libmat.lib libeng.lib integer engOpen,mxCreateDoubleMatrix,mxGetPr,engPutArray,engGetArray integer ep,p_matX,p_matY,p_matfi0,p_mat_ux,p_mat_uy,p_nbound integer status %启动引擎 ep=engOpen('matlab') if (ep .eq. 0) then write(6,*) 'Can''t start MA TLAB engine' stop endif % 在Matlab下执行语句 if (engEvalString(ep,'i_contour=0;').ne.0) then write(6,*) 'engEvalString failed' stop endif % 建立数组指针 pmatX=mxCreateDoubleMatrix(ndiv,ndiv,0) % 建立该数组在Matlab工作空间的名字 call mxSetName(pmatX, 'matX') % 从Matlab工作空间获取变量建立连接fi0(Matlab)→ p_matfi0 (Fortran) p_matfi0=engGetArray(ep,'fi0'); (注: p_matfi0指针是联系Fortran变量和Matlab变量的通道和桥梁) % 更新Fortran数组p_matfi0 (Fortran)→fi0 (Fortran) call mxCopyPtrToReal8(mxGetPr(p_matfi0),fi0,(nx+2)*(ny+2)) % fi0 (Fortran)→ p_matfi0 (Fortran) call mxCopyReal8ToPtr(fi0,mxGetPr(p_matfi0),(nx+2)*(ny+2)) % p_matfi0 (Fortran)→fi0(Matlab) status = engPutArray(ep,p_matfi0) if (status.ne.0) then write(6,*) 'engPutMatrix failed'

科学计算与MATLAB语言(第四课)

第四讲绘图功能

作为一个功能强大的工具软件,Matlab 具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。

4.1 二维图形 一、plot函数 函数格式:plot(x,y)其中x和y为坐标向量函数功能:以向量x、y为轴,绘制曲线。【例1】在区间0≤X≤2 内,绘制正弦曲线Y=SIN(X),其程序为: x=0:pi/100:2*pi; y=sin(x); plot(x,y)

一、plot函数 【例2】同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。

一、plot函数 (一)线型与颜色 格式:plot(x,y1,’cs’,...) 其中c表示颜色,s表示线型。 【例3】用不同线型和颜色重新绘制例4.2图形,其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,'go',x,y2,'b-.') 其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。

一、plot函数 (二)图形标记 在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。 title(‘加图形标题'); xlabel('加X轴标记'); ylabel('加Y轴标记'); text(X,Y,'添加文本');

流体力学简单计算MATLAB程式

用matlab进行编程计算 第一问: z=30;p1=50*9.8*10^4;p2=2*9.8*10^4;jdc=0.00015;gama=9800;d=0.257;L=50000 ;mu=6*10^(-6); hf=z+(p1-p2)/(0.86*gama) xdc=2*jdc/d; beta=4.15;m=1; Q=(hf*d^(5-m)/(beta*mu^m*L))^(1/(2-m)); v=4*Q/(pi*d^2); Re=v*d/mu; Re1=59.7/xdc^(8*xdc/7); Re2=(665-765*log(xdc))/xdc; i=hf/L; if Re<3000 Q=Q; elseif 3000

《Matlab与科学计算》作业 2010010099

《Matlab与科学计算》作业 第一章MATLAB环境 1、MATLAB通用操作界面窗口包括哪些?命令窗口、历史命令窗口、当前目录窗口、工作空间窗口各有哪些功能? 答:MATLAB通用操作界面窗口包括:命令窗口、历史命令窗口、当前目录浏览器窗口、工作空间窗口、变量编辑器窗口、M文件编辑/调试器窗口、程序性能剖析窗口、MATLAB帮助。 命令窗口是MATLAB命令操作的最主要窗口,可以把命令窗口当做高级的“草稿纸”。在命令窗口中可以输入各种MATLAB的命令、函数和表达式,并显示除图形外的所有运算结果。 历史命令窗口用来记录并显示已经运行过的命令、函数和表达式,并允许用户对它们进行选择、复制和重运行,用户可以方便地输入和修改命令,选择多行命令以产生M文件。 当前目录窗口用来设置当前目录,可以随时显示当前目录下的M、MKL等文件的信息,扬文件类型、文件名、最后个修改时间和文件的说明信息等,并可以复制、编辑和运行M文件及装载MAT数据文件。 工作空间窗口用来显示所有MATLAB工作空间中的变量名、数据结构、类型、大小和字节数。 2、熟悉课本中表格1.4、1.5、1.6、1.7、1.8的内容。 3、如何生成数据文件?如何把数据文件中的相关内容输入到工作空间中,用实例进行操作。 生成数据文件:

把数据文件中的相关内容输入到工作空间中: 结果: 4、在工作空间中可以通过哪些命令管理变量,写出每种语法的具体操作过程。答:(1)把工作空间中的数据存放到MAT数据文件。 语法:save filename 变量1 变量2 ……参数。 (2)从数据文件中取出变量存放到工作空间。 语法:load filename 变量1 变量2 ……。

《MATLAB与科学计算》期末论文

盐城师范学院《MATLAB与科学计算》期末论文 2016-2017学年度第一学期 用MATLAB解决解析几何的图形问题 学生姓名吴梦成 学院数学与统计学院 专业信息与计算科学 班级数15(5)信计 学号 15213542

用MATLAB 解决解析几何的图形问题 摘 要 将 MATLAB 的图形和动画功能都用于解析几何教学,可使教学形象生动。以图形问题为例,详细给出了实例的程序编写和动画实现过程 。在解析几何教学中有一定的应用价值。 【关键词】: MATLAB ; 解析几何 ;图形 ; 动 画;编程 1 引 言 在解析几何的教学中,使用传统的教学方法。许多曲线及曲面的形成过程与变换过程只通过传统的教师讲授静态图示就很难形象生动地表示出来 。在解析几何教学中使用MATLAB 软件辅助教学,不仅可以很容易绘制出复杂的立体图形。把曲线、曲面的形成和变化过程准确地模拟出来 ,而且还能够对它们进行翻转 、旋转 ,甚 至还能够轻而易举地实现图形的动画效果!这对提高教学效率和培养学生的空间想象能力可起到事半功倍的效果。下面结合实例从几个方面说明MATLAB 在解析几何画图方面的应用。 2 利用 MATLAB 绘制三维曲线 在空间解析几何中,各种曲线和曲面方程的建立都离不开图形 ,而空间曲线和曲面图形既难画又费时。借助MATLAB 的绘图功能 ,可以快捷 、 准确地绘出图形,使教学变得形象 、生动 。有利于学生观察三维空间图形的形状 , 掌握图形的性质 。 一 般地 ,MATLAB 可用plot3,ezplot3,comet3等函数来各种三维曲线 。 例如画螺旋曲线的图形,其参数方程设为 :t at cos x =,t b sin t y -=,ct =z 。使用 plot3语句画螺旋曲线图形的方法如下( 设a =2 ,b=4,c=3): );*3),sin(*.*4),cos(*.*2(3;*10:50/:0t t t t t plot pi pi t -= MATLAB 用两条简单的语句就可以画出螺旋 曲线(图1),但上述方法是静态的 ,为了体

实验4、matlab的计算可视化和GUI设计

p345 subplot(2,2,1) t1=0:0.1:2; y1=sin(2*pi*t1); plot(t1,y1); title('y=sin(2\pit)') 练习: subplot(2,2,2) t2=0:0.1:2; y2=[exp(-t2);exp(-2*t2);exp(-3*t2)]; plot(t2,y2) axis([0 2 -0.2 1.2]); title('y=e-t,y=e-2t,y=e-3t') 练习: subplot(2,2,3); t3=[0 1 1 2 2 3 4]; y3=[0 0 2 2 0 0 0]; plot(t3,y3); axis([0 4 -0.5 3]); title('脉冲信号') 练习: subplot(2,2,4); t4=0:0.1:2*pi; plot(sin(t4),cos(t4));

axis([-1.2 1.2 -1.2 1.2]); axis equal; title('圆') 练习: P346 x=0:0.1:20; zeta=0 y1=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt( 1-zeta^2)*x+acos(zeta)); plot(x,y1) zeta=0.3; y2=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt( 1-zeta^2)*x+acos(zeta)); hold on plot(x,y2,'r:') zeta=0.5; y3=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt( 1-zeta^2)*x+acos(zeta)); plot(x,y3,'g*') zeta=0.707; y4=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt( 1-zeta^2)*x+acos(zeta)); plot(x,y4,'m-') title('二阶系统曲线') legend('\zeta=0','\zeta=0.3','\zeta=0.5','\zeta=0. 707') grid on gtext('\zeta=0') gtext('\zeta=0.3') gtext('\zeta=0.5') gtext('\zeta=0.707') ginput(3) zeta = ans = 2.6037 0.9035 13.1106 2.0029 4.2166 1.0380 P347 h_fig=gcf h_axis=gca h_line1=gco h_title=get(gca,'title') h_text2=findobj(h_fig,'string','\zeta=0.3') h_fig = 1 h_axis = 151.0018 h_line1 = 1 h_title = 152.0018 h_text2 = Empty matrix: 0-by-1 set(h_line1,'linewidth',5)

Matlab与科学计算样题(加主观题答案)

Matlab 与科学计算考试样题(客观题) 1 下面的MATLAB 语句中正确的有: a) 2a =pi 。 b) record_1=3+4i c) a=2.0, d) c=1+6j 2. 已知水的黏度随温度的变化公式如下,其中a=0.03368,b=0.000221,计算温度t 为20,30,40度时的粘度分别是: 2 1at bt μμ=++0μ为0℃水的黏度,值为31.78510-?;a 、b 为常数,分别为0.03368、0.000221。 3. 请补充语句以画出如图所示的图形: [x,y]=meshgrid(-2:0.1:2, -2:0.1:2)。 Z=x.*exp(-x.^2-y.^2)。 。 a) Plot3(x,y,Z) b) plot3(x,y,Z) c) mesh(x,y,Z) d) plot3(x,y,z) 2 a) 0.4900 1.2501 0.8560 b) 0.8560 1.2501 0.4900 c) -0.6341 3.8189 -3.7749 d) 3.8189 -3.7749 2.8533 解释说明:

>> x=0.5:0.5:3.0。 >> y=[1.75,2.45,3.81,4.80,8.00,8.60]。 >> a=polyfit(x,y,2) a = 0.4900 1.2501 0.8560 >> x1=[0.5:0.25:3.0]。 >> y1=a(1)*x1.^2+a(2)*x1+a(3) >> plot(x,y,'*') >> hold on >> plot(x1,y1,'--r') 5. 求方程在 x=0.5附近的根. 21 x x += a) 0.6180 b) -1.1719e-25 c) -1 d) -1.6180 6. 用Newton-Cotes方法计算如下积分 1 5 x? (a)133.6625 (b)23.8600 (c) 87.9027 (d) -1.6180 7. y=ln(1+x),求x=1时y" a) -0.25 b) 0.5 c) -0.6137 d) -1.6137 8.某公司用3台轧机来生产规格相同的铝合金薄板。取样测量薄板的 厚度,精确至‰厘M。得结果如下: 轧机1:0.236 0.238 0.248 0.245 0.243 轧机2:0.257 0.253 0.255 0.254 0.261 轧机3:0.258 0.264 0.259 0.267 0.262 计算方差分析结果,并判定各台轧机所生产的薄板的厚度有无显著的差异? a) p=1.3431e-005,没有显著差异。

matlab计算结果的可视化

第五讲计算结果的可视化 本节介绍MATLAB 的两种基本绘图功能:二维平面图形和三维立体图形。 5.1 二维平面图形 5.1.1 基本图形函数 plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制 曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线, 当x 为m× n 矩阵时,就由n 条曲线。 (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。 (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,… 元素为纵坐标值绘 制多条曲线。 例5.1.1 画出一条正弦曲线和一条余弦曲线。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 图5.1.1 函数plot 绘制的正弦曲线 在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专 门提供了这方面的参数选项(见表5.1.1),我们只要在每个坐标后加上相关字符串,就可实 现它们的功能。 - 2 - 表5.1.1 绘图参数表 色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式 y 黄- 实线. 点<小于号 m 紫:点线o 圆s 正方形 c 青-. 点划线x 叉号 d 菱形 r 红- - 虚线+ 加号h 六角星 g 绿* 星号p 五角星 b 蓝v 向下三角形 w 白^ 向上三角形 k 黑>大于号 例如,在上例中输入 >> plot(x,y1,'r+-',x,y2,'k*:') 则得图5.1.2 图5.1.2 使用不同标记的plot 函数绘制的正弦曲线 5.1.2 图形修饰 MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。 表5.1.2 图形修饰函数表

(完整版)matlab基本语句

第2章M ATLAB程序设计 MATLAB语言为解释型程序设计语言。在程序中可以出现顺序、选择、循环三种基本控制结构,也可以出现对M-文件的调用(相当于对外部过程的调用)。 由于 MATLAB开始是用FORTRAN语言编写、后来用 C语言重写的,故其既有FORTRAN的特征,又在许多语言规则方面与C语言相同。 2.1 顺序结构语句 在顺序结构语句中,包括表达式语句、赋值语句、输入输出语句、空语句等。

2.1.1 表达式语句 格式: 表达式,%显示表达式值 表达式;%不显示表达式值 表达式%显示表达式值 如: x + y, sin(x); –5 最后的表达式值暂保存在变量ans中。 2.1.2 赋值语句 格式: v =表达式,%结果送v并显示v v =表达式;%结果送v不显示v v =表达式%结果送v并显示v 2.1.3 空语句 格式: , ; 2.1.4 输入语句

1、input语句(实际上是函数) 格式1: input(提示字符串) 功能: 显示提示字符串,可输入数字、字符串(两端用单引号括起)、或表达式 格式2: input(提示字符串,'s') 功能: 显示提示字符串,并把输入视为字符串 2、yesinput语句 格式: yesinput(提示字符串,缺省值,值范围) 功能: 显示提示字符串和缺省值,若只打入回车则以缺省值作为输入值,若输入的值不在指定范围内则认为输入无效,B并等待用户重新输入。 如: t=yesinput('指定线的颜色',… 'red','red|blue|green') 运行结果如下: 指定线的颜色(red):yellow %不在值内

中国矿业大学 实验六 MATLAB数据可视化

实验六MATLAB数据可视化 一、实验目的 掌握MATLAB 二维、三维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。 二、实验内容 (1) 二维图形绘制。 (2) 三维曲线和三维曲面绘制。 三、实验步骤 1.二维图形绘制 (1) 二维图形绘制主要使用函数plot。 >> clear all; >> x=linspace(0,2*pi,100); >> y1=sin(x); >> plot(x,y) >> hold on >> y2=cos(x) >> plot(x,y) >> hold off

注:hold on 用于保持图形窗口中原有的图形,hold off解除保持。 (2) 函数plot 的参数也可以是矩阵。 >> close all >> x=linspace(0,2*pi,100); >> y1=sin(x); >> y2=cos(x); >> A=[y1 ; y2]'; >> B=[x ; x]' >> plot(B,A)

(3) 选用绘图线形和颜色。>> close all >> plot(x,y1,'g+',x,y2, 'r:') >> grid on

(4) 添加文字标注。 >> title('正弦曲线和余弦曲线') >> ylabel('幅度') >> xlabel('时间') >> legend('sin(x)', 'cos(x)') >> gtext('\leftarrowsinx')

(5) 修改坐标轴范围。 >> axis equal >> axis normal >> axis([0 pi 0 1.5]) 程序如下: x=linspace(0,2*pi,100); y1=sin(x); y2=cos(x); A=[y1 ; y2]'; B=[x ; x]' plot(B,A) plot(x,y1,'g+',x,y2, 'r:') axis equal axis normal axis([0 pi 0 1.5])

Matlab中文教程共63页

MatLab简介 MATLAB是什么? 典型的使用包括: 数学和计算 算术发展模型, 模拟,和原型 数据分析,开发,和可视化 科学和工程图学 应用发展包括图形用户界面设计 MATLAB表示矩阵实验室。 MATLAB系统 MATLAB系统由5主要的部分构成: 1. MATLAB语言。这是高阶的矩阵/数组语言,带控制流动陈述,函数,数据结构,输入/输出,而且面向目标的编程特点。 Ops 操作符和特殊字符。 Lang 程序设计语言作。 strfun 字符串。 iofun 输入/输出。

timefun 时期和标有日期。 datatypes数据类型和结构。 2. MATLAB工作环境。这是你作为MATLAB用户或程序编制员的一套工具和设施。 3. 制图这是MATLAB制图系统。它为2维上,而且三维的数据可视化,图象处理,动画片制作和表示图形包括高阶的指令在内。它也为包括低阶的指令在内,允许你建造完整的图形用户界面(GUIs),MATLAB应用。制图法功能在MATLAB工具箱中被组织成5文件夹: graph2d 2-的维数上的图表。 graph3d 三维的图表。 specgraph 专业化图表。 graphics 制图法。 uitools 图形用户界面工具。 4. MATLAB的数学的函数库。数学和分析的功能在MATLAB工具箱中被组织成8文件夹。 elmat 初步矩阵,和矩阵操作。 elfun 初步的数学函数。 specfun 专门的数学函数。 matfun 矩阵函数-用数字表示的线性的代数。 datafun 数据分析和傅立叶变换。 polyfun 插入物,并且多项式。

Matlab与工程计算 第二章 Matlab矩阵及其运算

第2章Matlab矩阵及其运算 2.1 Matlab变量 2.2 Matlab数值矩阵 2.3 运算符 2.4 基本数学函数 2.5 稀疏矩阵 2.6 矩阵分析 2.8 字符串 2.9 结构数据 2.10 细胞矩阵

2.1 Matlab变量 1. 变量命名规则 在MATLAB 6.5中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。在MATLAB中,变量名区分字母的大小写。 2.变量赋值 变量=表达式 3.预定义变量 i,j,pi,eps,realmin,realmax,inf,NaN 预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。

内存变量的管理 1.指令操作法 who whos clear 2. 现场菜单操作法 3. 内存变量文件(.mat) save [文件名] [变量名表] [-append][-ascii] load [文件名] [变量名表] [-ascii] help save help load

数值数据的输出格式 MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。 在一般情况下,MATLAB内部每一个数值数据元素都是用双精度数来表示和存储的。 数据输出时用户可以用format命令设置或改变数据输出格式。format 命令的格式为: format格式符 其中格式符决定数据的输出格式 help format

2.2 MATLAB数值矩阵 2.2.1 矩阵的建立 1.直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。

科学计算与MATLAB

单元测验已完成成绩:100.0分 1 【单选题】 MATLAB一词来自()的缩写。 ?A、 Mathematica Laboratory ?B、 Matrix Laboratory ?C、 MathWorks Lab ?D、 Matrices Lab 我的答案:B得分:50.0分 2 【单选题】 下列选项中能反应MATLAB特点的是()。 ?A、 算法最优 ?B、 不需要写程序 ?C、 程序执行效率高 . .

?D、 编程效率高 我的答案:D得分:50.0分 单元测验已完成成绩:96.4分 1 【单选题】 当在命令行窗口执行命令时,如果不想立即在命令行窗口中输出结果,可以在命令后加上()。 ?A、 冒号(:) ?B、 逗号(,) ?C、 分号(;) ?D、 百分号(%) 我的答案:C得分:7.1分 2 【单选题】 fix(264/100)+mod(264,10)*10的值是()。 ?A、 86 . .

?B、 62 ?C、 423 ?D、 42 我的答案:D得分:7.1分 3 【单选题】 在命令行窗口输入下列命令后,x的值是()。 >> clear >> x=i*j ?A、 不确定 ?B、 -1 ?C、 1 ?D、 i*j 我的答案:B得分:7.1分 . .

4 【单选题】 使用语句x=linspace(0,pi,6)生成的是()个元素的向量。 ?A、 8 ?B、 7 ?C、 6 ?D、 5 我的答案:C得分:7.1分 5 【单选题】 ceil(-2.1)的结果为()。 ?A、 -2 ?B、 -3 ?C、 1 . .

?D、 2 我的答案:A得分:7.1分 6 【单选题】 eval('sqrt(4)+2')的值是()。 ?A、 sqrt(4)+2 ?B、 4 ?C、 2 ?D、 2+2 我的答案:B得分:7.1分 7 【单选题】 已知a为3×5矩阵,则执行完a(:,[2,4])=[]后()。 ?A、 a变成行向量 ?B、 a变为3行2列 . .

【原创】MATLAB实验报告-第二次-用MATLAB实现计算数据可视化-北京交通大学

MATLAB 上机实验报告( 2 ) 实验内容: 一、试用如下几种方法来建立向量,观察结果 ( 1) x=1:5, x=(1:5) ' 实验结果:x=1:5是行向量,x=(1:5)是列向量.且1为初始值,5为终止值,默认的步长为 1. >> x=1:5 1 2 3 4 5 >> x=(1:5)' x = 1 2

3 4 5 ( 2) x=0:pi/4:pi 实验结果:x=0:pi/4:pi 指的是x=(0,0.25*pi,0.50*pi,0.75*pi,pi). 其中pi为圆周率初始值为0,终止值为pi,步长为pi/4. >> x=0:pi/4:pi x = 0 0.7854 1.5708 2.3562 3.1416 (3)x=(0:0.2:3) ', y=e-x)p.(*sin(x) 实验结果:x的初始值为0,终止值为3,步长为0.2.而函数y表示将x向量中的每一个数代入函数y=e%x)*sin(x)得到的函数值组成的向量. >> x=(0:0.2:3)', y=exp(-x).*sin(x)

x = 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000

0.1627 0.2610 0.3099 0.3223 0.3096 0.2807 0.2430 0.2018 0.1610 0.1231 0.0896 0.0613 0.0383 0.0204 0.0070 (4) k=linspace(-pi,pi,5), k=logspace(-3,-1,5) 实验结果:k=linspace(-pi,pi,5)产生的是初始值为-pi,终止值为 pi,元素总数为5的行向量,即k的步长为pi/2. k=logspace(-3,-1,5产生的是初始值为10八(-3),终止值为10八(-1),元素总数为5的列向量.

实验二MATLAB计算的可视化

课程实验报告 学年学期2011-2012学年第1学期 课程名称MATLAB与科学计算 实验名称实验二MATLAB计算的可视化实验室测量测绘实验中心计算机室专业年级热动113 学生姓名白治朋 学生学号2011012106 提交时间2013年10月23日 成绩 任课教师许景辉、牛亚斌 水利与建筑工程学院

实验二 MATLAB 计算的可视化 1、目的和要求 (1)熟练掌握MATLAB 二维曲线、三维图形的绘制。 (2)熟练掌握各种特殊图形的绘制。 (3)熟练掌握三维图形绘制命令。 (4)了解GUI 设计的一般过程和方法。 2、内容和步骤 参见教材实验四。 3、实验报告提交要求 (1) x=[1 2 3],y=[1 2;2 3;5 8],z=[2 6 9;3 8 8;1 5 7],绘制plot (x ,y )、plot (x ,z ),说明其各 自绘制的内容。 (2) 绘制如下图形,建立figure (2),绘图同样曲线,但标题为“你的姓名(黑体,16号字)”, 在x 坐标和y 坐标上分别标识学号和班级名称,并将网格线打开。 数组X 的列个数与矩阵y 的行个数相同, plot ( x ,y )绘制的是x 为横坐标y 的每列为纵坐标的图像。如图1。 图1 数组X 的列个数与方阵z 的行列个数相同,plot (x ,z )绘制的是x 为横坐标z 的每列为纵坐标的图像。如图2。 图2

(3)演示P133页,例题4.17 。

(4)完成课本P336图S 4.1实验,并用.m文件显示其程序内容。 (5)完成P302第四章例题4.

(6)通过绘制二阶系统阶跃响应,综合演示图形标识,请注释每条命令的含义。 clf; %清除图形窗口 t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t); % 数据准备 tt=t(find(abs(y-1)>0.05)); %找出符合条件(y-1)的绝对值>0.05的对应t,赋值给tt ts=max(tt); %ts为tt中最大值ts=9.6133 plot(t,y,'r-','LineWidth',3) %画曲线t-y,红色实线,线粗3磅 axis([-inf,6*pi,0.6,inf]) %设置坐标轴范围。x轴下限自动产生,上限为6*pi;y轴下限0.6,上限自动产生 set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)]) %二维坐标刻度设置。x轴刻度线取2*pi,4*pi,6*pi,y轴取0.95,1,1.05,max(y) grid on %显示坐标刻度线 title('\it y = 1 - e^{ -\alphat}cos{\omegat}') %用斜体1书写图名 text(13.5,1.2,'\fontsize{12}{\alpha}=0.3') %图形标识,添加文字注释。在x=13.5,y=1.2处,字体大小12磅,标注α=0.3 text(13.5,1.1,'\fontsize{12}{\omega}=0.7') %图形标识,添加文字注释。在x=13.5,y=1.1处,字体大小12磅,标注ω=0.7 hold on; %保持原有图形 plot(ts,0.95,'bo','MarkerSize',10); %在x=ts,y=0.95处画蓝色的空心圆圈,大小为

相关主题