380 likes | 502 Views
MatLab 及其数学应用. MatLab and its Maths Guides. 一、 MatLab 概述. Mat rix Lab oratory. 20 世纪 70 年代中期 ,Cleve Moler 和其同事在美国国家科学基金的资助下研究开发了调用 LINPACK 和 EISPACK 子程序库 , 并于 1984 年编写了便于使用 LINPACK 和 EISPACK 的接口程序,并将该程序取名为 MatLab 。由美国 MathWorks 公司推向市场以来,现已成为国际公认的最优秀的工程应用开发环境。
E N D
MatLab及其数学应用 MatLab and its Maths Guides
一、MatLab 概述 • Matrix Laboratory 20世纪70年代中期,Cleve Moler和其同事在美国国家科学基金的资助下研究开发了调用LINPACK和EISPACK子程序库,并于1984年编写了便于使用LINPACK和EISPACK的接口程序,并将该程序取名为MatLab。由美国 MathWorks公司推向市场以来,现已成为国际公认的最优秀的工程应用开发环境。 MatLab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。
MatLab的主要功能 • 2001年初推出了MatLab6.0正式版,不仅在数值计算、符号运算和图形处理等功能上进一步加强,而且又增加了一些工具箱。目前MatLab已拥有数十个工具箱:控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱、偏微分方程工具箱等。 • MatLab语言的算法先进,许多功能函数都带有算法的自适应性,且运算速度快捷。 • MatLab编程容易、效率高,调试方便、简单,人机交互性强。 • MatLab的数值计算功能包括:矩阵运算、多项式和有理分式运算、数据统计分析、数值积分、优化处理等。还可以通过符号计算得到问题的解析解。
MatLab除了命令行的交互式操作以外,还可以程序方式工作。使用MatLab可以很容易地实现C语言的几乎全部功能,包括Windows图形用户界面的设计。 • MatLab提供了两个层次的图形命令:一种是对图形句柄进行的低级图形命令,另一种是建立在低级图形命令之上的高级图形命令。利用MatLab的高级图形命令可以轻而易举地绘制二维、三维,并可进行图形和坐标的标识、视角和色彩精细控制等操作。
MatLab运行环境与安装 • 硬件: 一般要求奔腾以上的处理器、128MB以上内存、足够的硬盘可用空间(随安装组件的多少而定)、CD-ROM驱动器、鼠标等。 • 软件: Windows xp and its compatible
二、MatLab特色举例 • 考虑两个矩阵 A 和 B 的乘积问题 在C语言中要实现两个矩阵的乘积需要一组双重(或三重)循环。多重循环当然是矩阵乘积所必需的.
MatLab矩阵符号积分 • 求 :积分指令对符号函数矩阵的作用。 syms a b x;f=[a*x,b*x^2;1/x,sin(x)]; disp('The integral of f is'); int(f) The integral of f is [ 1/2*a*x^2, 1/3*b*x^3] [ log(x),-cos(x)]
MatLab 多重符号积分 求积分 注意:内积分上下限都是函数。 syms x y z; F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2) VF2=vpa(F2) F2 = 1610027357/6563700-6072064/348075*2^(1/2)+14912/4641*2^(1/4)+64/225*2^(3/4) VF2 = 224.92153573331143159790710032805
MatLab 三维云图 • 考虑一个二元函数 如何用三维图形的方式表现出这个曲面? >> [x,y] = meshgrid(-3:1/8:3); z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2)- 10*(x/5 - x.^3 - y.^5)... .*exp(-x.^2-y.^2)- 1/3*exp(-(x+1).^2 - y.^2); surf(x,y,z), shading interp; colorbar
MatLab 绘图——透视效果 透视 效果 [X0,Y0,Z0]=sphere(30); X=2*X0;Y=2*Y0;Z=2*Z0; surf(X0,Y0,Z0); shading interp; hold on, mesh(X,Y,Z),colormap(hot), hold off; hidden off; axis equal,axis off
MatLab绘图——镂空效果 镂空效果 t=linspace(0,2*pi,100); r=1-exp(-t/2).*cos(4*t); [X,Y,Z]=cylinder(r,60); ii=find(X<0&Y<0); Z(ii)=NaN; surf(X,Y,Z);colormap(spring),shading interp light('position',[-3,-1,3],'style','local') material([0.5,0.4,0.3,10,0.3])
MatLab绘图——镂空效果 镂空效果 P=peaks(30); P(18:20,9:15)=NaN; surfc(P);colormap(summer) light('position',[50,-10,5]),lighting flat material([0.9,0.9,0.6,15,0.4])
MatLab 多维切割效果 clf;[X,Y,Z,V]=flow; x1=min(min(min(X))); x2=max(max(max(X))); y1=min(min(min(Y))); y2=max(max(max(Y))); z1=min(min(min(Z))); z2=max(max(max(Z))); sx=linspace(x1+1.2,x2,5); sy=0; sz=0; slice(X,Y,Z,V,sx,sy,sz); view([-33,36]);shading interp; colormap jet; alpha('color') alphamap('rampdown') alphamap('increase',.1) colorbar axis off
MatLab 绘图——光照 光照 处理
MatLab 绘图——浓淡变化 浓淡 处理
三、MatLab 工具箱 • 偏微分方程工具箱 pdetool • 优化工具箱 最小化问题, 线性规划, 无约束/有约束… • 概率论与数理统计工具箱 概率密度函数,累加/逆累加分布, 随机数…
四、 MatLab命令窗口 ① MatLab主窗口:主要包括6个下拉菜单和10个按钮控件。 ② 命令窗口:其中 “ >> ”为运算提示符,表示MatLab正处于准备状态。当在提示符后输入一段算式并按Enter键后,MatLab将给出计算结果,然后再次进入准备状态。 ③ 历史窗口:在默认设置状态下,历史窗口中会保留自安装起所有命令的历史记录,并标明了使用时间;双击某一行命令,则可在命令窗口中执行该行命令。 ④ 当前目录窗口:在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。此窗口有四个 按钮键。
File菜单项: New命令:用于建立M文件、图形窗口。 Open命令:打开一个已经建立的M文件。 SaveWorkspaceAs命令:把当前工作空间的所有变量用后缀为.m的文件保存起来。
Help菜单项: • Help Window命令:打开MatLab的帮助窗口。 • Help Desk(HTML)命令:打开系统WWW浏览器,并显示MatLab的帮助桌面。 • Demos命令:可以通过演示MatLab提供的例子来熟悉相关部分的用法。 Examples and Demos命令:可以通过演示MatLab提供的例子来熟悉相关部分的用法。 • About MatLab命令:打开关于MatLab 的版本和版权等信息。
MatLab帮助系统 1. Help命令 >>help <程序或主题名> 2. Demos命令 >>demos 或者 help 菜单下的demos
■命令窗口的工具栏 工具栏提供了一些命令按钮,使用命令按钮可使操作更快捷、更方便。 新建 剪切 粘贴 浏览器 新仿真模型 打开 复制 撤消 路径浏览器 帮助
■命令窗口编辑区 命令编辑区用于输入命令和显示计算结果。键入命令并按下回车键后,MatLab就会解释执行所输入的命令,并在命令后面给出计算结果。 例如: 输入: a=[1,1.5,2,9,7;0,3.6,0.5,-4,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20] 将显示一个5X5的矩阵。
MatLab中变量赋值有两种形式: (1) 变量=表达式 (2) 表达式 其中“表达式”是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。 [注]第二种语句形式下,将表达式的值赋给MatLab的永久变量ans
数据显示格式 short (缺省) ~ 小数点后4位, long ~ 15位数字, short e ~ 5位科学计数, long e ~ 15位科学计数 通过File下子菜单Preferences选择;用format加格式选择 常用 格式
MatLab 基本语法 >> p=7.1 >> x=-4.92 >>p=7.1, x=-4.92 % 不同语句之间逗号分割
最简单的计算器用法 【例1】求 的算术运算结果。 用键盘在MatLab指令窗中输入以下内容 >> (12+2*(7-4))/3^2 ans = 2
【例2】简单矩阵 的输入步骤。 >>A = [1,2,3; 4,5,6; 7,8,9] %一行输入 A = 1 2 3 4 5 6 7 8 9 也可以A=[1,2,3 4,5,6 7,8,9] %分行输入
【例3】 S=1-1/2+1/3-1/4+ ... 1/5-1/6+1/7-1/8 %表达式分行输入 S = 0.6345
【例4】 ii2=2; ii3=3; jj=1.5; T=ii2/ii3^jj T =0.3849 format long T T = 0.38490017945975
变量命名规则 • 不可超过31个字符,多余部分将被忽略掉。 • 变量名要求以大写或小写字母开头,后面可跟大小写字母,数字和下划线。 • 字符间不可有空格。 • 变量名对于大小写敏感。 • 多余变量用clear 变量名清除掉。
使用MatLab的一些建议 1.尽可能使用帮助文件。 2.在文本编辑器中编写程序和函数并保存为m文件。 3.程序和函数尽可能使用图形化开发手段。 4.尽量减少由程序和函数组成的表达式的数目。 5.采用另一种手段验证程序或函数输出结果的正确性。