MATLAB7.0教学2011一及数值运算.ppt_第1页
MATLAB7.0教学2011一及数值运算.ppt_第2页
MATLAB7.0教学2011一及数值运算.ppt_第3页
MATLAB7.0教学2011一及数值运算.ppt_第4页
MATLAB7.0教学2011一及数值运算.ppt_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB 7.0语言应用 一、前言 1 、简介:MATLAB是美国Mathworks公司生产的一 个可以完成各种精确计算和 数据处理的、可视化 的、强大的计算工具。 2、名称的由来: MATLAB 是matrix laboratory 的前三个字母组成,矩阵实验室的意思。 一开始它是一种专门用于矩阵数值计算的软 件。自MATLAB4.0版本问世以来,该软件成为最具 有吸引力,应用最为广泛的科学计算语言。我们这 个课就拿MATLAB7.0版本来讲。 n应用于数值计算、算法开发、数学建模、 应用仿真、数据分析及可视、工程绘图以 及应用开发方面。 n3 、 主要包括 以下六部分: n MATLAB语言 n MATLAB工作环境 n MATLAB 函数库 nMATLAB 绘图 nMATLAB工具箱与simulink n MATLAB应用程序接口。 MATLAB 7.0 的启动与工作界面 nMATLAB 工作界面共包括7个窗口: n1)主窗口、 n2)命令窗口command window : n”为运算提示符,说明系统处于准备状态 n输入命令 n3)命令历史纪录窗口command history: n保留安装以来所有用过的命令,可以查看调用 ,用Edit/clear command history清除 n4)当前目录窗口current directory: n显示改变当前目录,可更改打开文件的路径 5)工作空间窗口workspace: 显示目前内存中存放的变量名、变量存储数据的维数 、变量存储的字节数、变量类型说明。 帮助窗口Help: 评述器窗口Profiler 1.1.3 MATLAB的启动和退出 n启动: n双击MATLAB图标 n在开始菜单中找到MATLAB程序 nMATLAB.exe n退出: n使用简捷键 n命令窗口中输入quit n主窗口文件菜单中选择File/ExitMATLAB 1.2 MATLAB的基本命令与基本函数 n1)基本的系统函数 n例如 cd D:MATLAB7work处理数据 n load ff(文件名) n2)工作区和变量的基本命令 nclear clc (清除窗口命令) nformat输出格式命令 nformat long e:将系统默认的5位数字的显示格式 转换位16位数字加3位指数位的显示格式。 nformat short-恢复系统默认设置 以4位小数的 浮点格式输出。 format long e p p = Column 1 -1.000000000000000e+000 Column 2 0 Column 3 1.000000000000000e+000 Column 4 0 Column 5 -9.093000000000000e-001 p=-1,0,1,0,-0.9093; n3 )MATLAB中的预定义变量 n4) 算数表达式和基本数学函数 nMATLAB的算数表达式由字母或数字用运 算符号联结而成。 n (d*cx+2)/g2.7 n sqrt(d*cx+2) 或 (d*cx+2)0.5 y=sqrt(abs(pi-sin(x)/cosh(a)-ln(x+a) 2.基本赋值和运算 n1简单的数学计算: n 3721+7428/24 nans = n 4.0305e+003 n abs(-27) nans = n 27 n sin(29) 小括号 nans = n -0.6636 n 34,63*(3+2) 一行输入多个表达式 用逗号(显示结 果) 隔开 nans = n 81 nans = n 1080 2)简单赋值运算: n x=18 将18赋值给变量x nx = n 18 n y=3*x2-78 将3*x2-78赋值给变量y ny = n 894 n命令行尾 为分号则屏幕上不显示计算信息 2. 2向量、向量运算 nMATLAB是一门语言,它的运算指令和语 法基于一系列基本的矩阵运算以及它们的 扩展运算。 n2.2. 1向量的创建 n第一种方法是使用冒号来指定数值范围和 相邻值的步长; n第二种方法是指定数值的范围和期望的数 值个数 n第一种方法: nx=s:d:f n其中,s=初值,d=增量或减量值,f=结束 值或终值。可产生如下的行向量x: nx =s+d,s+2d,s+nd n其中,s+nd =f 。 n当d省略时,MATLAB默认d=1。即: nx=s:f n产生向量: nx =s+1,s+2,s+n 向量或矩阵赋值方式:变量名=变量值 (1) 直接输入:如A=(1 ,2 ,3, 4 ,5 ) A=1 2 3 4 5 行向量数字之间用空格隔开 A = 1 2 3 4 5 B=1;2;3;4 列向量数字之间用分号隔开 B = 1 2 3 4 例1:若想创建-2,1,3,5,7,9,10的向量x。 nx=-2,1:2:9,10 n或 x=-2,1,3,5,7,9,10 n若 z=x-1 n z=-3,0,2,4,6,8,9 n 若z=x;z(2)=z(2)/2; n z=-2,0.5,3,5,7,9,10 n 若:z=x;z(2)=z(2)/2;z(3:4)=z(3:4)*3-1; n其中z(3:4)为z的第三个和第四个元素 z=-2,0.5,8,14,7,9,10 例2:确定sin(x)的值,其中x在-x的区间 内以/5的步长变化。 nx=-pi:pi/5:pi; ny=sin(x) ny 0.0000 -0.5878 - 0.9511 -0.9511 -0.5878 0.0000 0.5878 0.9511 0.5878 0.0000 n第二种方法:(指定n个从s到f的等间隔值) ns=linspace(s,f,n) n其中,增量或减量值d由MATLAB通过下式计算得出: n如果没有指定n的值,MATLAB则默认n=100。 n 例如:linspace(1,3,3) nans = n 1 2 3 2.2.2向量的基本运算 (1)向量的加减:用 +、-。 同维向量才可以加、减。相应元素加减 (2)向量与数可以加、减。用 +、-。 数与向量的每个元素进行作用。 (3)向量与数可以相乘。用 *。 (4)向量与数可以相除。向量/数,数./向量。 (5)两个向量点积积。必须须是同维维向量。用dot (a,b)。 (6)两个向量叉积积。cross (a,b),a,b必须须有是3维维且次序不能 颠颠倒,。 (7)混合积积。由以上两个函数实现。dot (a,cross (b,c) 算术操作符: +、-:加,减;可以通用。 *,, , / :分别为矩阵乘,乘方,左除,右除; .*, . , . , ./ :分别为数组乘,乘方,左除,右除; 2.2.3 矩阵的创建 直接输入:如:a=1,3,4;4,3,2. na = n 1 3 4 n 4 3 2 n(2)第二种方法: n两个非常有用的函数可以生成矩阵的元素。 n1、创建一个元素为1的(rc)阶矩阵: 其中r,c分别为行数与列数 n one=ones(r,c) n2、创建一个元素为0的(rc)阶矩阵: n zero=zeros(r,c) nc=eye(3) nc = n 1 0 0 n 0 1 0 n 0 0 1 n d=ones(3) nd = n 1 1 1 n 1 1 1 n 1 1 1 试创建如下矩阵 na= 3:2:11;linspace(20,21,5);ones(1,5) na(1,1) 3 , a(3,4) 1 , a(:,2) 5 20.25 1 na(2,:) 20 20.25 20.5 20.75 21 na(1:3,3:5) 7 9 11;20.5 20.75 21;1 1 1 n例: C=3 0 2 1;-1 4 5 2;3 5 8 7定义矩阵c nC = n 3 0 2 1 n -1 4 5 2 n 3 5 8 7 三、函数可以用于向量或矩阵操作 n sqrt(A) nans = n 1.0000 1.4142 1.7321 2.0000 2.2361 n sin(B) nans = n 0.8415 n 0.9093 n 0.1411 n -0.7568 n who nYour variables are: nA B C ans x y n clear n who n 例 nA1=0:2:10,A2=1:6,A3=0.5:0.5:3 nA1 = n 0 2 4 6 8 10 nA2 = n 1 2 3 4 5 6 nA3 = n 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 n B1=sqrt(A2) nB1 = n1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 n B2=sin(A2) nB2 = n 0.8415 0.9093 0.1411 -0.7568 -0.9589 - 0.2794 n C=A2;B1;B2 nC = n 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 n 1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 n 0.8415 0.9093 0.1411 -0.7568 -0.9589 - 0.2794 n C1=3*C nC1 = n 3.0000 6.0000 9.0000 12.0000 15.0000 18.0000 n 3.0000 4.2426 5.1962 6.0000 6.7082 7.3485 n 2.5244 2.7279 0.4234 -2.2704 -2.8768 - 0.8382 n C2=C1-C/2 nC2 = n 2.5000 5.0000 7.5000 10.0000 12.5000 15.0000 n 2.5000 3.5355 4.3301 5.0000 5.5902 6.1237 n 2.1037 2.2732 0.3528 -1.8920 -2.3973 -0.6985 n A=1 3 6;4 8 9;10 25 78 nA = n 1 3 6 n 4 8 9 n 10 25 78 n det(A) nans = n -147 n AN=inv(A) nAN = n -2.7143 0.5714 0.1429 n 1.5102 -0.1224 -0.1020 n -0.1361 -0.0340 0.0272 例 已知水的黏度随温度的变化公式为 =0/(1+at+bt2) 其中 0=1.78510-3, a=0.03368,b=0.000221, 求水在0,20,40,80时的黏度。 程序如下: miu0=1.785e-3; a=0.03368; b=0.000221; t=0:20:80 miu=miu0./ (1+a*t+b*t.2) 3、矩阵、矩阵运算 矩阵的生成 (1) 直接输入:如:a=1,3,4;4,3,2. (2) 创建M文件输入大矩阵 当矩阵很大时,直接输入显得很笨,出错不易修改.我们 可以编写一个M文件,M文件的扩展名必须是m. 例 编写一个名为matrix.m (名字自己随便起)的M文件 如下: %matrix.m mat=1,2,3,3;3,4,5,1;3,2,1,4;8,9,7,5 在命令窗口中输入matrix,就会运行该文件.查看矩阵 的结构可用size (mat). n matrix nmat = n 1 2 3 3 n 3 4 5 1 n 3 2 1 4 n 8 9 7 5 矩阵运算: (1) +、-、*:加、减、乘运算。 (2)矩阵的除法有两种形式:左除“”和右除/。左除是先计 算逆再做乘法;而右除不计算逆直接进行除法运算,这 样可避免奇异矩阵无法求逆带来的麻烦. n如:A=1,2,3,2;3,2, 4,1;3,1,5,6;2,5,3,2, b=1;3;2;1, 求方程组Ax=b的解。 n 由于rank (A)=rank (B)=4 (B为增广矩阵 B=A,b) n 所以有唯一解,x=Ab,或x=inv (A)*b n又如: A=361,625,961,1444,1936;1,1,1,1,1, b=1;1, 求方程组Ax=b的解. n由于rank (A)=rank (B)=2 (B为增广矩阵),所以有无 穷多个解,MATLAB中用除法解方程组时所得到 的解是所有解中范数最小的一个x=Ab。 (3)矩阵与常数间的运算 +、-、*运算是数与矩阵的每个元素进行运算,除法运 算,只能常数做除数。 (4)矩阵求逆 inv (A)为A的逆 (inverse). (5)求转置矩阵:A . (6)求矩阵的行列式:det (A) , (determinant是行列式)。 (7)矩阵幂运算:用.如A3,表示A*A*A。 (8)矩阵指数运算:expm (A),A为方阵。 (9)矩阵对数运算:logm (A),A为方阵。 如:a=rand (3); %成生一个3阶随机矩阵 b=expm (a) c=logm (b) (10)矩阵开方:sqrtm (a) 。 % Matrix must be square (11)求矩阵呢的秩:rank (a) 。 (12)矩阵的特征值函 eig 给出特征值和特征向量的值 A=7 3 -2;3 4 -1;-2 -1 3 X,Y=eig(A) 说明:X为特征向量矩阵,Y为特征值矩阵 n A=7 3 -2;3 4 -1;-2 -1 3 nX,Y=eig(A) nA = n 7 3 -2 n 3 4 -1 n -2 -1 3 nX = n 0.5774 -0.0988 -0.8105 n -0.5774 0.6525 -0.4908 n 0.5774 0.7513 0.3197 nY = n 2.0000 0 0 n 0 2.3944 0 n 0 0 9.6056 特殊矩阵的生成 (1)zeros (n): 生成 nn阶0矩阵。 (2)zeros (m,n): 生成 mn阶0矩阵。 (3)zeros (size (a): 生成与a阶数相同的0矩阵。 (4) eye (n):生成 n阶单位矩阵。 (5) eye (m,n):生成 mn阶单位矩阵。 (6) eye (size (a):生成与a阶数相同的单位矩阵。 (7) ones (n):生成 n阶全1矩阵。 (8) ones (m,n):生成 mn阶全1矩阵。 (9) ones (size (a):生成与a阶数相同的全1矩阵。 (10)rand (n):生成 nn阶随机矩阵,其元素值在0和1之间。 (11)rand (m,n):生成 mn阶随机矩阵。 (12)rand:生成一个随机数。 (13)rand (size (a):生成与a阶数相同的随机矩阵。 nA = n 11 12 13 14 n 21 22 23 24 n 31 32 33 34 n 41 42 43 44 n求 n(1) A(:,1) (2) A(2,:) n(3) A(:,2:3) (4) A(2:3,2:3) n(5) A(:) (6) A(:,:) n(7) ones(2,2) (8) eye(2) n(9) diag(A) nA=11,12,13,14;21,22,23,24;31,32,33,34;41:44 n A(2:3,2:3) n 22 23 n 32 33 n A(:,2:3) n 12 13 n 22 23 n 32 33 n 42 43 n A(:,1:2:3) nans = n 11 13 n 21 23 n 31 33 n 41 43 nA(:) nans = n 11 n 21 n 31 n 41 n 12 n 22 n 32 n 42 n 13 n 23 n 33 n 43 n 14 n 24 n 34 n 44 n A(:,:) nans = n 11 12 13 14 n 21 22 23 24 n 31 32 33 34 n 41 42 43 44 n ones(2,2) nans = n 1 1 n 1 1 n eye(2) nans = n 1 0 n 0 1 n diag(A) nans = n 11 n 22 n 33 n 44 5、多项式、多项式运算 5.1多项式表示方法 在MATLAB中多项式p (x)=anxn+an-1xn-1 +a0是 以向量p=an ,an-1,a0的形式储存的(从高次幂到 低次幂)。 (1)系数向量直接输输入:例输入多项式x3-5x2+6x- 33. p=1,-5,6,-33; poly2sym (p) %polynomial多项式,将系数向量表示 成符号多项式 p=1,-5,6,-33; poly2sym (p) ans = x3-5*x2+6*x-33 (2)矩阵的特征多项式输入 例 a=1,2,3;2,3,4;3,4,5; p=poly (a); %求a的特征多项式的系数向量 p1=poly2sym (p); %即为a的特征多项式 p = 1.0000 -9.0000 -6.0000 -0.0000 p1 =x3-9*x2-6*x-8399472656541061/2535301200456458802993406410752 (3)由根创建多项式: 例 root=-5,-3+4i,-3-4i; % 是某个多项式的根 p=poly (root) % 求相应的多项式的系数向量 P1=poly2sym (p) %将多项式系数向量表示成符号多项式 n a=1,2,3;2,3,4;3,4,5 n p=poly (a) %求a的特征多项式系数向量 n p1=poly2sym (p) na = n 1 2 3 n 2 3 4 n 3 4 5 np = n 1.0000 -9.0000 -6.0000 -0.0000 n np1 = n nx3-9*x2-6*x-8399472656541061/2535301200456458802993406410752 n 5.2多项式运算: (1)求多项式的值: Polyval(p,x)计算以向量p为系数的多项式在变 量为x时的值 n例 n p=1,11,55,125; n a=1.2 n b=1,2;2,3 n polyval (p,a) npolyvalm (p,b) 例 p=1,11,55,125; a=1.2 b=1,2;2,3 polyval (p,a) %polynomial value 求多项式在1.2的值 (208.5680) polyvalm (p,b) %多项式在b的值 256 232 232 488 (2)求多项式的根 roots(p) 例求多项式 2x4-5x3+6x2-x+9=0的所有根. np=2,-5,6,-1,9 n roots (p) %得到多项式的根 n 1.6024 + 1.2709i n 1.6024 - 1.2709i n -0.3524 + 0.9755i n -0.3524 - 0.9755i (3)多项式乘除运算分别用conv和deconv: (convolution,deconvolution) 例 p1=2,-5,6,-1,9; p2=3,-90,18; p=conv (p1,p2) % 为p1和p2所相应的多项式的乘积多项 式的系数向量 n(p=6 -195 504 -633 225 -828 162) np3=deconv (p,p1) % 为p2 n p4= deconv (p,p2) % 为p1 n poly2sym (p1); n poly2sym (p2); n poly2sym (p) n poly2sym (p3) n poly2sym (p4) % 观看这几个多项式 np3 = 3 -90 18 np4 =2 -5 6 -1 9 npoly2sym (p3) n 3*x2-90*x+18 npoly2sym (p4) n2*x4-5*x3+6*x2-x+9 polyfit (x,y,n) 其中x,y为拟合数据,n为拟合多项式的 阶数。例 用最小二乘法拟合数据 x: 0.50 1.00 1.50 2.00 2.50 3.00 y: 1.75 2.45 3.81 4.80 8.00 8.60 x1=0.5:0.05:3 多项式拟合 nx=0.5,1,1.5,2,2.5,3 , y=1.75,2.45,3.81,4.80,8.00,8.60 n a=polyfit (x,y,2) %用2次多项式拟合上组数据,a 为拟合多项式的系数向量 n x1=0.5:0.05:3 (51维) n y1=a (1)*x1.2+a (2)*x1+a (3) n plot (x1,y1,o) %画出拟合曲线的图形 n hold on %保留上面的图形和坐标,可在该坐标 系中继续作图 n plot (x,y,*) %用*号的形式画出被拟合的数据图 形 MATLAB进行符号运算的主要功能:符号表 达式和符号矩阵的基本操作、符号矩阵的基本 运算、符号微积分运算、符号线性方程求解、 符号微分方程求解、特殊数学符号函数、符号 函数图形等。 三、符号运算 1符号表达式的生成 (1)创建符号函数(用单引号或sym定义 如f=log (x) f =log (x) (2)创建符号方程 如 g=a*x2+b*y2+c=0 a*x2+b*y2+c=0 (3)创建微分方程 如q=Dy-y=x 或者:f=sym (log (x)、g=sym (a*x2+b*y2+c=0)、 q=sym (Dy-y=x) 说明:符号函数也可以用另一方法创建 (该方法不能创建方程): syms x %用syms可以定义多个变量,变量间用空格分开 syms x y u v 2符号与数值之间的转换 vpa函数:如 digits (25) 设置有效数字的精度为 25位有效 数字 vpa (pi+1) 显示在上述digits函数设置下的

温馨提示

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

评论

0/150

提交评论