matlab讲义nuaa_第1页
matlab讲义nuaa_第2页
matlab讲义nuaa_第3页
matlab讲义nuaa_第4页
matlab讲义nuaa_第5页
已阅读5页,还剩272页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1A3-302东MATLABMATLAB语言语言及其应用及其应用2上机时间:上机时间:10-14周周 周四周四 18:00-20:30上机地点:上机地点:A2-4013考核方式:考试考核方式:考试理论课考勤:理论课考勤:10% 实验:实验:20%期末成绩:期末成绩:70%4MATLAB语言及其应用1. 概论 2. MATLAB应用开发环境3. MATLAB的数值计算功能4. MATLAB的符号计算功能5. MATLAB的可视化功能6. MATLAB程序设计7. Simulink系统仿真5参考书目:1. Communication Systems Simulation

2、with Wireless Application William H .Tranter etc.2. 数字图像处理(MATLAB版)阮秋琦 3.MATLAB在数字信号处理中的应用(第2版) 薛年喜 参考网站:http:/http:/ MATLAB教学网http:/ MATLAB之家61 概论1.1 MATLAB简介 1.2 MATLAB的发展历史1.3 MATLAB的系列产品1.4 MATLAB与Maple的关系1.5 MATLAB应用71.1 MATLAB简介MATLAB是美国MathWorks公司于1984年推出的一个优秀的数学软件。近年来,MATLAB的内容急剧扩充。在原有数值计算和绘

3、图功能的基础上,又在专业水平上不断开拓针对各种应用的工具箱,以及符号计算、文字处理、可视化建模仿真和实时控制等功能。与当今30多个数学类科技应用软件相比,MATLAB功能强大,易学易用,已经广泛应用于科研和工程领域。81.1 MATLAB简介数学类科技软件,就其数学处理的原始内核而言,可分为两大类:数值计算型(如MATLAB)和数学分析型(如Maple)。前者对大批量数据具有较强的管理、计算和可视化能力,运行效率高。后者以符号计算见长,可得到解析符号解和任意精度解(即,相对于数值计算,符号计算不包含任何的机器误差),但在处理大量数据时运行效率低。91.1 MATLAB简介MATLAB涉及的知识

4、面广,内容庞杂,函数众多。在此仅能简要介绍一下它的通用功能。至于MATLAB涉及到某个专业领域的函数和命令,请读者参阅在线帮助或访问MathWorks公司的网站: 101.1 MATLAB简介MATLAB的显著特点:1. 高级的可视化计算工具;2. 可交互 / 可编程的解释性计算机语言;3. 名称含义:MATRIX LABORATORY;4. 内涵:主包 + 工具箱(超过30个);5. 开发语言:FORTRAN C/C+;6. 基本数据单位:列优先的,无需定义的,下标从1开始的,复数矩阵;7. 基本运算有数组运算和矩阵运算之分;111.1 MATLAB简介MATLAB的显著特点(续):8 函数

5、使用灵活:大多数函数或命令的调 用参数和返回参数个数可变;9 开放性设计结构:除内部函数外,所有 主包文件和各种工具包文件都是可读可 改的源文件。用户可通过对其修改或加 入自己编写的文件来构成新的工具包;10 典型的应用领域:矩阵分析、数值计算、信号处理、系统设 计、建模和仿真等。121.1 MATLAB简介例1:最简单的计算器用法:计算 b1)在MATLAB命令窗的提示符后输入需要计算的表达式;(1+2*cos(pi/5)1.3b2)按回车键,MATLAB执行该表达式并给出计算结果如下。ans = 3.49441.3(1 2 cos( /5) 131.1 MATLAB简介例子2:复数运算:已

6、知,试计算z,并给出z的模和相角,其中相角用度数表示。z1=1+2i,z2=3+j*4,z3=complex(5,6),z4=7*exp(pi/8*i)z=z1*z2/z3+z4,zm=abs(z),za=angle(z)*180/pi1 281234431 2 , 3 4 , 5 6, 7, iz zzi zi zi zezzz 141.1 MATLAB简介z1 = 1.0000 + 2.0000iz2 = 3.0000 + 4.0000iz3 = 5.0000 + 6.0000iz4 = 6.4672 + 2.6788iz = 7.0409 + 3.9903izm = 8.0930za =

7、 29.5413151.1 MATLAB简介例子3:字符串操作:统计一段文本中某字符出现的次数。s=input(please input string:,s);c=input(please input a char:,s);n=length(findstr(s,c)please input string: MATLAB is a good thing for everybody.please input a char: in = 2161.1 MATLAB简介例子例子4:A=1 2;3 4;B=2 3;4 5;A*Bans = 10 13 22 291223 A , B , A B 3445矩

8、阵运算:已知求。171.1 MATLAB简介例子5:符号运算:求函数sin(x)(1+x2)关于x的一阶导数。diff(sin(x)*(1+x*x)ans = cos(x)*(1+x2)+2*sin(x)*x181.1 MATLAB简介例子6: 绘制函数y=sinc(x)在区间-5,8上的图形。ezplot(sinc(x),-4,6)-4-20246-0.60.81xsinc(x)191.1 MATLAB简介例子7 数据图示:设有一批数据点(t,y),其中t在区间0,2上以/30等间隔分布,y在每个t上由函数y=sin(t2)计算得到,试绘出这些数据点的图形。t=0:pi/

9、30:pi*2;y=sin(t.2);plot(t,y)201.1 MATLAB简介01234567-1-0.500.51211.1 MATLAB简介例子8:几何应用:已知空间三点A(1,1,-1)、B(3,3,0)、C(5,4,4),求ABC的面积。A=1 1 -1;B=3 3 0;C=5 4 4;AB=B-A;AC=C-A;t=cross(AB,AC); Sn=sqrt(sum(t.2)/2Sf=sqrt(sum(sym(t).2)/2Sn = 4.7170Sf = 1/2*89(1/2)221.1 MATLAB简介例子9:输出声音:用计算机声卡放出标准音阶的7个单频正弦音符。m=1:7;

10、f=262*2.(m-1)/12);%产生产生7个音个音符的频率符的频率fs=8000;t=0:1/fs:.3;y=;%采样频率采样频率8kHz,音符时长,音符时长0.3秒秒for i=1:length(f); y=y,sin(2*pi*f(i)*t); end;sound(y,fs);231.2 MATLAB的发展历史1 70年代(起源):美国新墨西哥大学计 算机系的Cleve Moler,用FORTRAN开 发调用解线性方程LINPACK和特征值问 题EISPACK程序库的子程序库时开发出 了MATLAB 的原型;2 80年代(机遇): Moler 访问斯坦福大 学,与工程师John Li

11、tte合作,用C开发 MATLAB第二代。84年成立MathWorks 公司,Litte为总裁,Moler为首席科学家。 MATLAB正式推向市场。241.2 MATLAB的发展历史3 90年代(大发展):使用平台从DOS扩 展到了 SUN、UNIX、MAC、WINS等; 软件版本也不断更新,目前已推出2007 版;以MATLAB为基础开发的专业性应用软 件和硬件大量涌现;应用日趋广泛。251.3 MATLAB的系列产品261.4 MATLAB与Maple的关系著名的数学软件还有:Ma p l e 、Mathmatica、MathCAD等。由于MATLAB的符号运算借助于Maple内核来实现,

12、所以仅对Maple做一个简单介绍。Maple是加拿大Waterloo大学开发的。它同样包含数值计算、图形显示和内部编程语言。但使它著称于世的是其强大的符号运算能力,它提供的2000余种数学函数涉及到代数、几何、数论、微积分、矩阵、微分方程等领域,而且还在不断发展。271.5 MATLAB应用u应用应用MATLAB/Simulink设计指定构型的设计指定构型的飞行控制律飞行控制律 清华大学清华大学u基于基于MATLAB/Simulink的的AMT电控软电控软件开发流程件开发流程 东风汽车东风汽车u基于基于MATLAB的航电系统一体化设计验的航电系统一体化设计验证平台研究证平台研究u卫星本体和活动

13、部件复合控制研究初探卫星本体和活动部件复合控制研究初探u高 频 数 据 采 集 和 分 析高 频 数 据 采 集 和 分 析 - A D l i n k 与与MATLAB的完美结合的完美结合281.5 MATLAB应用u基于模型的设计思想应用于信号处理和基于模型的设计思想应用于信号处理和通信系统开发通信系统开发u雷达目标与环境信号仿真雷达目标与环境信号仿真uMATLAB在在FPGA开发中的技术与应用开发中的技术与应用u高度集成的飞行代码自动生成技术高度集成的飞行代码自动生成技术 291.5 MATLAB应用MATLAB目前正在各个领域内广泛应用,是工科学生必会的一个强有力的工具;301.5 M

14、ATLAB应用312 MATLAB入门2.1工作环境2.2帮助系统2.3常用命令2.4 常用标点符号2.5特殊变量2.6简单的语法规则2.7举例322.1 工作环境332.1 工作环境1 操作界面 1) command window 2) command history 3) current directory browser 4) workspace browser 5) array editor 6) lauch pad 7) editor/debugger 8) help navigator/browser342.1 工作环境2 file/preferences菜单:设置系统外观 352

15、.1 工作环境3 file/set path菜单:设置工作路径 362.1 工作环境4 搜索路径 键入一个变量名、函数或命令后,MATLAB按如下顺序搜索:工作内存中的变量,内部函数,当前目录下的m文件,沿matlabrc.m文件中指定的路径逐个目录寻找m文件。 另外,还可利用命令 path 和 pathtool设置路径。 372.2 帮助系统 MATLAB的在线帮助系统非常完善,且使用方便。相信大家使用后会获益非浅。下面列出常用的帮助命令。 1) intro:示例说明MATLAB的基本功能。 2) demo:精心设计的一组旨在详细介绍MATLAB功能的演示程序。运行这组程序,对照屏幕上的显示

16、,仔细研究实现演示的有关M文件,无论是对新用户还是对老用户来说,都十分有益。用户学习和掌握MATLAB,不可不看这组演示程序。382.2 帮助系统 3) help:最常用的求助指令。它提供绝大部分MATLAB指令的在线说明。其中help显示按主题分类的在线帮助一览表;help help告诉用户有那些在线帮助指令及如何使用它们;help xxx寻找特定主题或函数的帮助信息。 help的工作机理:把指定名字的那个M文件的第一段注释内容显示出来。用户编程采用这种结构时,可以构成自己文件的在线帮助。392.2 帮助系统 4) lookfor:当要查找某种功能而又不知道准确名字时,help就无能为力了。

17、这时可以利用lookfor xxx来获得帮助,它根据用户提供的关键词搜索出一组与之相关的命令。 lookfor的工作机理:对MATLAB目录中的每个M文件注释区的第一行(h1)进行扫描,一旦发现h1中包含有欲查询的字符串,那么就将该文件名及h1显示出来。用户编程时采用这种结构,可以构成自己的lookfor帮助。402.2 帮助系统 5) helpwin:在新窗口中显示可导航的在线帮助系统。 6) helpdesk/helpbrowser:打开独立的帮助子系统。以html样式显示所有的技术文档和资料(包括pdf格式的文档目录)。 7) 在lanch pad中打开帮助和示例。 8) 从help菜单

18、中启动帮助。 9) 通过internet访问其技术支持站点。 10) 其它帮助命令: doc / info / ver / version412.2 帮助系统 推荐几本在线电子图书:1 Getting Started With MATLAB(HTML)2 Using MATLAB(PDF)3 Signal Processing Toolbox Users Guide422.3 常用命令 what:分类列出指定目录(缺省为当前目录)上的文件; which:列出指定文件所在的目录; who:列出工作内存中的变量; whos:详细列出工作内存中的变量; exist:检查指定名字的变量或函数文件是否存

19、在; inmem:列出驻留在内存中的函数; path:显示当前的搜索路径; 432.3 常用命令 quit:退出; exit:退出; c:终止正在运行的程序; clc:命令窗清屏; clear:清除内存变量; clf:清除当前图形窗中的图形对象; :命令行快速编辑命令; !:执行外部程序(如dos命令);442.3 常用命令 dir:显示指定目录中的文件列表; delete:删除文件; cd:改变或显示当前目录; type:显示文本文件的内容 dbtype:带行号显示文本文件的内容; more:定义每屏显示的行数; format:定义数据显示格式;save/load:保存和加载工作区变量;45

20、2.3 常用命令date , clock:显示日期和时间; tic / toc:启动和终止秒表; flops:累计浮点运算的次数; size:返回变量每一维的大小; length:length(A)=max(size(A)注意:MATLAB命令区分大小写 命令中不能包含中文字符462.4 常用标点符号 : :表示全部元素构成的长列,或表示某一维上的全部元素; , :两个作用,矩阵元素间分隔符,指令间分隔符; ; :两个作用,矩阵行间分隔符;指令间分隔符,抑制运算结果的回显; :续行符; % :注释符,注释可用中文; :字符串 :放在函数名前形成函数句柄。472.5 特殊变量 ans:保存最新的

21、运算结果; eps:浮点数的相对精度; pi:3.1415926; inf:无穷大( realmax),1/0; nan:非数,0/0、/、0; i / j: 虚数单位;realmin/realmax :正浮点数的范围; nargin / nargout:函数输入输出参数的 个数。482.5 特殊变量注意: MATLAB没有保留字,用户可任意修改前述变量的数值。也可随时使用clear命令恢复这些特殊变量的预定义值。 建议不要随意更改他们的预定义值。492.6 简单的语法规则 变量 数字 运算符 表达式 函数 在MATLAB中,数据的存储和运算都是以双精度进行的,其精度为16位小数,范围是1e-

22、3081e308 函数名不保留,用户可重定义,或用clear命令恢复预定义。503 MATLAB的数值计算功能3.1数值矩阵的创建3.2常用数组运算和矩阵运算3.3向量和矩阵的基本操作3.4稀疏矩阵3.5解线性和非线性方程组3.6多项式操作3.7数据插值3.8数据分析3.9微分方程的数值解以及数值积分3.10 求解优化问题513.1 数值矩阵的创建1 直接输入2 用内部函数产生例例14 生成魔方阵生成魔方阵A=magic(3),sa=sum(A) A = 8 1 6 3 5 7 4 9 2sa = 15 15 15 3 用M文件中的自定义函数产生4 用MAT文件保存和获取矩阵523.1 数值矩

23、阵的创建例例15 用用M文件生成矩阵文件生成矩阵 编写文本文件MyVar.M,其内容为 x=1 2 3;y=3 2 1; 在MATLAB指令窗中,输入MyVar,向量x和y就会自动生成,供以后显示和调用。533.1 数值矩阵的创建4 用MAT文件保存和获取矩阵 有时需要把当前工作内存中的一些有用数据长久地保存下来,这时可用save和load指令使MAT文件发挥作用。 MAT文件是MATLAB保存数据的一种标准格式,默认为二进制文件。 为了让其它程序也可使用MATLAB的输出数据,save和load指令也可用于标准的文本文件。543.1 数值矩阵的创建几个特殊矩阵的生成: 1 零阵 zeros(

24、r,c) 2 全1阵 ones(r,c) 3 单位阵 eye(r,c) 4 随机阵 rand(r,c) ;rand(state, x) 5 正态分布随机阵 randn(r,c) 6 空阵 7 对角阵 diag(M,x)553.1 数值矩阵的创建例16 对角阵 m= -1:1; M1= diag(m), m1= (diag(M1,0) M2=magic(3) m2= (diag(M2,0), m3= (diag(M2,1)M1 = -1 0 0 0 0 0 0 0 1 m1 = -1 0 1M2 = 8 1 6 3 5 7 4 9 2 m2 = 8 5 2 m3 = 1 7563.1 数值矩阵的

25、创建例17 高维数组clear; a=reshape(1:24,2,3,4)d=ndims(a),s=size(a),l=length(a) a(:,:,1) = 1 3 5 2 4 6a(:,:,2) = 7 9 11 8 10 12a(:,:,3) = 13 15 17 14 16 18a(:,:,4) = 19 21 23 20 22 24d = 3s = 2 3 4l = 4 573.2 常用数组运算和矩阵运算数组运算和矩阵运算是MATLAB数值运算中的两大类运算。矩阵运算按矩阵运算法则运算。数组运算对矩阵中的元素逐个进行,其运算符前有小黑点。关系运算和逻辑运算仅对数组进行。各种运算的

26、优先权由低到高分别为逻辑运算、关系运算、算术运算。MATLAB提供了大量的数组函数、矩阵函数和关系逻辑函数。583.2 常用数组运算和矩阵运算例例18 范数,秩,行列式的值,特征值范数,秩,行列式的值,特征值 和特征向量和特征向量a=1:9;A=reshape(a,3,3)anorm=norm(a,3)Arank=rank(A)Adet=det(A)Av,Ad=eig(A) 593.2 常用数组运算和矩阵运算A = 1 4 7 2 5 8 3 6 9anorm = 2.6515Arank = 2Adet = 0Av =0.4645 0.8829 0.40820.5708 0.2395 -0.8

27、1650.6770 -0.4039 0.4082Ad =16.1168 0 00 -1.1168 00 0 0.0000例例18 范数,秩,行列式的值,特征值和 特征向量(续)603.2 常用数组运算和矩阵运算例19 矩阵运算和数组运算 A=1,2;3,4; B=2,3;4,5; C=A*B, D=A.*B, E=A2, F=A.2 C = 10 13 22 29D = 2 6 12 20E = 7 10 15 22F = 1 4 9 16613.2 常用数组运算和矩阵运算例例20 关系运算函数x=-2:1:2, x1=1./xfx=find(x=0), fxg=find(x0)fx1=fin

28、d(x1),fx2=find(abs(x1)0.1& abs(x1)5), A1all=all(A(:,1)5), Aany=any(A5), A1any=any(A(:,end)5) A = 8 1 6 3 5 7 4 9 2Aall = 0 0 0A1all = 0Aany = 1 1 1A1any = 1 633.2 常用数组运算和矩阵运算提醒: help 命令可列出分类的帮助主题; help matfun 命令列出基本的矩阵运算函数; help elfun 命令列出基本的数组运算函数。643.3 向量和矩阵的基本操作1 向量的生成:冒号法;线性等分指令; 对数等分指令。例例22 生成距

29、离等分的一维行向量生成距离等分的一维行向量a=0:1:3, b=linspace(0,3,5),c=logspace(0,3,5) a = 0 1 2 3b = 0 0.75 1.50 2.25 3.00c = 1.0e+003 *0.0010 0.0056 0.0316 0.1778 1.00 653.3 向量和矩阵的基本操作2 基本访问规则663.3 向量和矩阵的基本操作3 基本操作 1) 插入 2) 重新排列 3) 提取 4) 合并 / 复制 5) 按列拉长 6) 置空 / 置零 7) 用单个下标操作 8) 用逻辑数组操作 9) 按指定条件求子数组 10) 矩阵结构变换:变维;旋转;翻转

30、673.3 向量和矩阵的基本操作A = 1 3 4 2b = 1 3 1 3 4 2 4 2 1 3 1 3 4 2 4 2 例例23 插入与复制A=magic(2); b=repmat(A,2,2),A(2,2)=0; A(3,3)=1683.3 向量和矩阵的基本操作例例24 各种操作综合A=1 2 3; 4 5 6; 7 8 9B=A(3:-1:1,:),C=A(2 1 3,3,1,2),D=A(2 1,3,2),E=D D, F=D(:);F,E(:,2,4)=,G=E(2:4)693.3 向量和矩阵的基本操作A = 1 2 3 4 5 6 7 8 9B = 7 8 9 4 5 6 1

31、2 3C = 6 4 5 3 1 2 9 7 8 D = 6 5 3 2 E = 6 5 6 5 3 2 3 2ans = 6 3 5 2 E = 6 6 3 3 G = 3 6 3 例例24 各种操作综合(续)703.3 向量和矩阵的基本操作例例25 用逻辑数组操作: rand(seed,0); a=rand(1,5),b=a=0.5,a(b) a=0.2190 0.047 0.6789 0.6793 0.9347b= 1 1 0 0 0ans = 0.2190 0.0470注意:逻辑数组和访问数组规模必须一致713.3 向量和矩阵的基本操作例例26 按指定条件求子数组 a=10:-1:1;

32、 k=find(isprime(a), a(k) k = 4 6 8 9ans = 7 5 3 2723.3 向量和矩阵的基本操作例例27 结构变换:变维;旋转;翻转 A=1:6;7:12, B=reshape(A,3,4), C=rot90(B), 逆时针旋转逆时针旋转90度度 D=fliplr(C), 左右翻转左右翻转 E=flipud(D) 上下翻转上下翻转733.3 向量和矩阵的基本操作A = 1 2 3 4 5 6 7 8 9 10 11 12B = 1 8 4 11 7 3 10 6 2 9 5 12C = 11 6 12 4 10 5 8 3 9 1 7 2D = 12 6 11

33、 5 10 4 9 3 8 2 7 1E = 2 7 1 9 3 8 5 10 4 12 6 11例例27 结构变换:变维;旋转;翻转(续)743.4 解线性和非线性方程组例例28 求如下一元实值函数的零点step1:编写描述方程的函数文件esin.mfunction y=esin(t)y=exp(-0.5*t).*sin(t+pi/6);step2:输入指令fzero(esin,10) ans = 8.9012)6sin(5.0tet753.4 解线性和非线性方程组例29 解线性数值方程 Ax=b,xA=bA=magic(3);b=ones(3,1); x=Ab %左除左除b=ones(1,

34、3); x=b/A %右除右除 x = 0.0667 0.0667 0.0667x = 0.0667 0.0667 0.0667763.4 解线性和非线性方程组例30 解非线性(包括线性)数值方程组5 0123 7logsin32zyxzxzyxy773.4 解线性和非线性方程组例30 解非线性(包括线性)数值方程组(续) step1:编写描述方程组的m文件myxyz.m function q=myxyz(p) x=p(1);y=p(2);z=p(3); q=zeros(3,1); q(1)=sin(x)+y2+log(z)-7; q(2)=3*x+2y-z3+1; q(3)=x+y+z-5;

35、 step2:在命令行中运行以下指令 xyz0=ones(1,3); xyz=fsolve(myxyz,xyz0) xyz = 0.5991 2.3959 2.0050783.5 多项式操作多项式表示方式的约定: 按降幂排列的多项式 P(x) 用其系数行向量表示。如 P(x)=x3-2x-5用1 0 2 -5 表示。 函数ploy(p) 所得多项式满足关系式: (x-p1)(x-p2)(x-pn) = a0 xn + a1x(n-1)+ + an 函数poly2str(p,s)给出形如 s3 - 2 s - 5的多项式字符串。793.5 多项式操作例例31 多项式的加减乘除 p=conv(1

36、2 2,conv(1 4,1,1) q1,r1=deconv(p,1,4) q2,r2=deconv(p,1,3) p = 1 7 16 18 8 q1= 1 3 4 2 r1= 0 0 0 0 0 q2= 1 4 4 6 r2= 0 0 0 0 -10 803.5 多项式操作例例32 多项式的根,多项式的特定变量值 p=1,-6,-72 -27; ps=poly2str(p,s) r=roots(p); pr=poly(r); prs=poly2str(pr,s) p56=polyval(p,5 6) ans = 12.1229 -5.7345 -.3884 p56 = -412 -459

37、813.5 多项式操作r = 1.1274 + 1.1513i 1.1274 - 1.1513i -0.0232 - 0.0722i -0.0232 + 0.0722i 0.7916p = -1.7680 + 1.2673i -1.7680 - 1.2673i 0.4176 + 1.1130i 0.4176 - 1.1130i -0.2991 k = 例例33 部分分式展开:b/a = r/(s-p)+k b=3 2 5 4 6; a=1 3 4 2 7 2; r,p,k=residue(b,a)823.5 多项式操作例例34 多项式微分 a=1:3; b=1:4; c=polyder(a)

38、d=conv(a,b), e=polyder(a,b), q,d=polyder(a,b) c = 2 2 d = 1 4 10 16 17 12 e = 5 16 30 32 17 q =-1 -4 -10 -4 -1 d = 1 4 10 20 25 24 16 833.5 多项式操作例例35 多项式拟合误差函数 x=0:0.1:2.5; y=erf(x); p=polyfit(x,y,6) x=0:0.1:5; y=erf(x);f=polyval(p,x); plot(x,y,bo,x,f,r-); axis(0 5 0 2); legend(拟合曲线,原始数据,2); p = 0.0

39、084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004xtdtexerf022)(843.5 多项式操作例例35 多项式拟合误差函数(续) 01234500.81.82拟 合 曲 线原始 数 据853.6 数据插值拟合与插值的区别:拟合是寻找“平滑”曲线最好地表现带噪声的“测量数据”,并不要求拟合曲线穿过这些“测量数据”点。插值是在认定所给“基准数据”完全正确的情况下,“平滑”地估算出“基准数据”之间其它点的函数值。插值技术广泛应用于信号和图像处理领域。插值的算法很多,详细说明请参阅在线帮助。863.6 数据插值例例

40、36 一元插值函数 x=0:8;y=sin(x); xi=1.5;yi=sin(xi) yi1=interp1(x,y,xi,linear) yi2=interp1(x,y,xi,spline) yi3=interp1(x,y,xi,cubic) xi=0:.1:8; li=interp1(x,y,xi); si=interp1(x,y,xi,spline); ci=interp1(x,y,xi,cubic); plot(x,y,o,xi,li,b-,. xi,ci,k:,xi,si,r-); legend(init,linear,. cubic,spline)873.6 数据插值例例36 一

41、元插值函数(续) 012345678-1-0.500.511.5initlinearcubicsplineyi = 0.9975yi1 = 0.8754yi2 = 0.9878yi3 = 0.9760883.7 数据分析数据分析指令的两条约定: 输入宗量是向量时,运算对整个向量进行;输入宗量是矩阵时,运算按列进行。 常用的统计指令有max、mean、min、sort、hist、std、var、cov、corrcoef等。 常用的差分和累计指令有diff、gradient、 prod、sum、trapz、cumprod、cumsum、cumtrapz等。893.7 数据分析A = 8 1 6 3

42、 5 7 4 9 2B = 3 1 2 4 5 6 8 9 7C = 1 6 8 3 5 7 2 4 9d = 9e = 362880 例例37 矩阵元素的排序,最大值,阶乘 A=magic(3), B=sort(A,1), C=sort(A,2) d=max(max(A), e=prod(1:d)903.7 数据分析例例38 统计频数直方图 y=randn(10000,1); hist(y,30) -4-3-2-1012340100200300400500600700800913.8 微分方程数值解及数值积分MATLAB求定积分的函数有quad、quad8、quadl和dblquad(用于二

43、重积分)等,它们使用的数值方法分别是自适应递归Simpson公式、自适应递归Newton-Cotes公式和自适应递归Lobatlo公式。例例40 数值积分 dttet305.0)6sin(923.8 微分方程数值解及数值积分例例40 数值积分(续) step1:定义积分公式的m文件esin.m function y=esin(t) y=exp(-0.5*t).*sin(t+pi/6); step2:输入操作命令 s=quad(esin,0,3*pi) s8=quad8(esin,0,3*pi) sf=int(exp(-0.5*t)*sin(t+pi/6), 0,3*pi) s = 0.9008

44、4083649438 s8= 0.90084078582242sf=0.900840787818886190953236329238933.9 求解优化问题优化问题可以归结为求目标函数的极值问题。优化问题分为两大类:无约束最优化问题,形如min(f(x);约束最优化问题,形如min(f(x) s.t G(x)0。其中f(x)是多元实值函数,称为目标函数;G(x)为向量值函数。优化的方法很多,MATLAB采用的有单纯形法、BTGS拟牛顿法、非线性最小二乘法等。943.9 求解优化问题例例41 一元函数的极值(5pi/4,pi/4) f=2*exp(-x)*sin(x); fplot(f,0 8)

45、 xmin=fminbnd(f,2,5), x=xmin; ymin=eval(f) xmax=fminbnd(- f,0,3), x=xmax;ymax=eval(f) xmin = 3.9270 ymin = -0.0279 xmax = 0.7854 ymax = 0.6448953.9 求解优化问题例例41 一元函数的极值(续)012345678-0.60.7963.9 求解优化问题例例42 多元函数的极值(三种方法) f=100*(x(2)-x(1)2)2+ (1-x(1)2; x0=1.1 1.1; x1=fmins(f,x0), x2=fmi

46、nu(f,x0), x3=leastsq(f,x0) x1 = 1.0000 1.0000 x2 = 1.0000 1.0000 x3 = 1.0379 1.0773212212)1(100 xxx973.9 求解优化问题例例43 例42的约束优化问题 x1=2 ;x2=2 step1:定义描述问题的函数文件fun.m function f,g=fun(x) f=100*(x(2)-x(1)2)2+ (1-x(1)2; g(1)=x(1)-2; g(2)=x(2)-2; step2:输入指令 x0=1.1 1.1;x=constr(fun,x0) x = 1.0001 1.0002983.9

47、求解优化问题MATLAB中的最优化函数使用了一个参数向量OPTIONS。OPTIONS中有些元素用来控制算法,有些元素是计算结束后的输出参量。用户可以使用这些参数的缺省值,也可以事先指定某项参数,以改善终止规则,提高解的精度。OPTIONS的缺省值是由FOPTIONS函数设置的。993.9 求解优化问题下面列出OPTIONS中几个最常用的元素:1003.9 求解优化问题例例44 等式和不等式约束的优化问题010 05 . 10 s.t ) 1242(),(212121212212221211xxxxxxxxxxxxaxexxfx1013.9 求解优化问题例例44 等式和不等式约束的优化问题(续

48、) step1:定义描述问题的函数文件feu.m function f,g=feu(x,a) f=exp(x(1)*(a*x(1)2+2*x(2)2+ 4*x(1)*x(2)+2*x(2)+1); g(1)=x(1)+x(2); g(2)=-x(1)*x(2)-10; g(3)=1.5+x(1)*x(2)-x(1)-x(2); step2:输入指令 x0=-1 1;a=4; x,y=constr(feu,x0,. options,a); xmin=x, ymin=y(8) xmin = -1.2247 1.2247 ymin = 1.8951 1024 MATLAB的符号计算功能4.1 符号计

49、算入门4.2 符号矩阵的创建4.3 符号矩阵的操作和运算4.4 因式分解、展开和化简4.5 符号微积分4.6 求解符号代数方程组4.7 求解符号微分方程4.8 积分变换4.9 直接调用Maple函数4.10 符号函数计算器1034.1 符号计算入门MATLAB以Maple内核为计算引擎,将符号运算集成到它的数值运算环境中。MATLAB包含两个相关的工具箱:基本符号工具箱和扩展符号工具箱。基 本 符 号 工 具 箱 提 供 1 0 0 多 个MATLAB函数,方便用户调用Maple内核,包括调用Maple的线性代数工具包。扩展符号工具箱则允许用户调用Maple所有的非图形工具包和编程特性,以及用

50、户自定义过程。1044.1 符号计算入门用户可以通过编写M文件来对Maple函数和Maple环境进行直接操作。符号工具箱引入了符号对象;而数值运算中的数据被称为数值对象。符号工具箱重载了MATLAB中的许多数值计算函数,故使用方便。获取符号函数的在线帮助用 help sym/function 或 mhelp function。清除maple空间用maple clear 或 maple restart命令。1054.1 符号计算入门1 创建符号变量和符号表达式: 例例44 sym(x), rho=sym(1+sqrt(5)/2) f=rho2-rho-1, fs=simplify(f) syms

51、 a b c; syms d e real ans = x rho = (1+sqrt(5)/2 f = (1/2+1/2*5(1/2)2- 3/2-1/2*5(1/2) fs = 01064.1 符号计算入门2 符号对象和数值对象之间的转换: 例例45 rho=sym(1+sqrt(5)/2); a=double(rho) b=sym(1+sqrt(5)/2,r) digits(5); c=sym(1+sqrt(5)/2,d) a = 1.6180 b = 7286977268806824*2(-52) c = 1.6180 1074.1 符号计算入门注意: 1) 符号计算中出现的数字也都是

52、当作符号处理的; 2)符号表达式对空格很敏感,请不要在字符间乱加修饰性空格符; 3) 为了得到最简结果,可能要多次使用命令simplify和和simple。 4) 数值对象不能参与符号运算,符号对象不能参与数值运算。 5)换识别不同数据对象的指令有:class,isa,whos等。1084.1 符号计算入门3 确定符号表达式中自由变量的规则: 1)只对除i和j以外的单个小写英文字母进行搜索; 2)默认x是首选变量; 3)其余小写字母被选中为自由变量的次序是,在字母表中,靠x距离近的优先;在x之后的优先。命令findsys可对表达式中的自由符号变量或指定数目的独立自由变量自动认定。1094.2

53、符号矩阵的创建 sym指令 字符串输入法:同列字符串长度相同 数值矩阵转换为符号矩阵例例46 A=sym(1/(a+x), sin(x);. 1, exp(x)B=1/(a+x),sin(x);. 1 ,exp(x) C=1 1.5;2 2.5, D=sym(C)1104.3 符号矩阵的操作和运算 符号矩阵的操作和运算(包括数组运算和矩阵运算)与数值矩阵的操作和运算雷同。 下面仅举例介绍符号函数特有的复合函数和反函数。 例例47 syms x y z t u v; h = xt; p = exp(-y/u); fz=compose(h,p,x,y,z), fi=finverse(exp(u-2

54、*v),u) fz = exp(-z/u)t fi = 2*v+log(u)1114.4 因式分解、展开和化简例例48 a=sym(s+1)/(s2+5*s+6); b=factor(a), syms x; a=sym(x+1)3); c=expand(a) a=-1/4*x*exp(-2*x)+3/16*exp(-2*x); d1=collect(a,exp(-2*x), d2=collect(a,x) a=x3-6*x2+11*x-6; e=horner(a) a=sym(sin(x)2+3*x+cos(x)2-5); b=sym(1-a2)/(1-a); A=a,b;simplify(A

55、);simple(A) 1124.4 因式分解、展开和化简例例48 b = (s+1)/(s+3)/(s+2) c = x3+3*x2+3*x+1 d1 = (-1/4*x+3/16)*exp(-2*x) d2=-1/4*x*exp(-2*x)+3/16*exp(-2*x) e = -6+(11+(-6+x)*x)*xans = -4+3*x, a+1ans = -4+3*x, a+1注:因式操作仅针对矩阵中的元 素进行。1134.5 符号微积分例例49 求导数 y=sym(sin(a*x); a=diff(y), b=diff(y,2) c=diff(y,x,2), d=diff(y,a,1

56、) a = cos(a*x)*a b = -sin(a*x)*a2 c = -sin(a*x)*a2 d = cos(a*x)*x1144.5 符号微积分例例50 求jacobian行列式 zzrzyyryxxrxrzyx),(),(1154.5 符号微积分例例50 求jacobian行列式(续) syms r l f; x = r*cos(l)*cos(f); y = r*cos(l)*sin(f); z = r*sin(l); J = jacobian(x;y;z,r l f) detJ = simple(det(J) J = cos(l)*cos(f) , -r*sin(l)*cos(f

57、) , -r*cos(l)*sin(f) cos(l)*sin(f) , -r*sin(l)*sin(f) , r*cos(l)*cos(f) sin(l), r*cos(l), 0 detJ = -cos(l)*r2 1164.5 符号微积分例例51 求极限 syms x n; limit(1 + x/n)n,n,inf) limit(1/x,x,0,left) ans = exp(x) ans = -infxnxxnn1 ; )1(limlim01174.5 符号微积分例例52 积分 syms x k real; f = exp(-(k*x)2); int(f,x,-inf,inf) an

58、s = signum(k)/k*pi(1/2)dxekx2)(1184.5 符号微积分例例53 多重积分 syms x y z F2=int(int(int(x2+y2+z2, z,sqrt(x*y),x2*y), y,sqrt(x),x2),x,1,2); VF2=vpa(F2,10) VF2 = 224.9215357dzdydxzyxxxyxxy 2122222)(1194.5 符号微积分例例54 级数求和 s1=symsum(x2,x,0,10) s2 = symsum(xk,k,0,inf) s1 = 385 s2 = -1/(x-1)01002 ; kkxxx1204.5 符号微积

59、分例例55 Taylor级数展开 syms x; f=sym(sin(x)*exp(-x); ft=taylor(f,x,6,0),pretty(ft) t=-2:0.05:2; y=subs(f,x,t); plot(t,y,-r); hold on; ezplot(ft,-2 2) ft = x-x2+1/3*x3-1/30*x5 2 3 5 x - x + 1/3 x - 1/30 x1214.5 符号微积分例例55 Taylor级数展开(续) -2-1.5-1-0.500.511.52-8-7-6-5-4-3-2-10 xx-x2+1/3 x3-1/30 x51224.6 求解符号代数

60、方程组符号运算中,可以使用“”来求解线性方程组。但它同时也提供了一个功能强大的指令solve,能解一般线性代数方程组、非线性方程组和超越方程组。当方程组不存在符号解,且又无其它自由参数时,solve给出数值解。使用solve时,要求未知数的个数和方程的个数一致。1234.6 求解符号代数方程组例例56 用solve解方程 s=solve(2*x2=( x-1), n=double(s), s=vpa(n,10) s = 1/4+1/4*i*7(1/2) 1/4-1/4*i*7(1/2) n = 0.2500 + 0.6614i 0.2500 - 0.6614i s = .25000+.6614

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论