欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Matlab基础重点资料库.doc

    • 资源ID:809278       资源大小:560KB        全文页数:94页
    • 资源格式: DOC        下载积分:14金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要14金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Matlab基础重点资料库.doc

    MATLABMATLAB 讲义讲义 第一章第一章 MATLABMATLAB 系统概述系统概述1.11.1 MATLABMATLAB 系统概述系统概述MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用 C 语言编写。 特点: (1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而 且矩阵无需定义即可采用。 (2)语句书写简单。 (3)语句功能强大。 (4)有丰富的图形功能。如 plot,plot3 语句等。 (5)提供了许多面向应用问题求解的工具箱函数。目前,有 20 多个工具箱函数,如信号处理、图 像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。 (6)易扩充。1.21.2 MATLABMATLAB 系统组成系统组成(1)MATLAB 语言 MATLAB 语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同 时 MATLAB 又具有面向对象编程特色。MATLAB 语言包括运算符和特殊字符、编程语言结构、字符串、文 件输入/输出、时间和日期、数据类型和结构等部分。 (2)开发环境 MATLAB 开发环境有一系列的工具和功能体,其中大部分具有图形用户界面,包括 MATLAB 桌面、命 令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。 (3)图形处理 图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形 命令,供用户自由制作、控制图形特性之用。 (4)数学函数库 有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。 MATLAB 数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学 分析和付里叶变换、多项式和二重函数等。 (5)MATLAB 应用程序接口(API) MATLAB 程序可以和 C/C+语言及 FORTRAN 程序结合起来,可将以前编写的 C/C+、FORTRAN 语言程 序移植到 MATLAB 中。1.31.3 MATLABMATLAB 的应用范围包括:的应用范围包括:MATLAB 的典型应用包括: 数学计算 算法开发 建模、仿真和演算 数据分析和可视化 科学与工程绘图 应用开发(包括建立图形用户界面) 以矩阵为基本对象 第二章第二章 MatlabMatlab 基础基础2.12.1 MATLABMATLAB 快速入门快速入门(1)搜索路径 搜索路径也被看作是 MATLAB 的路径,其包含的文件被认为在路径上。搜索路径设置存放在文件 pathdef.m 中,称为当前目录,当要在 MATLAB 中打开一个文件时,就以当前目录为开始点。 当输入一变量 value 时,MATLAB 的搜索路径次序:value 是否为变量value 是否为内部函数当前目录中是否存在 value.m 文件搜索路径上是否存在 value.m 文件 path 函数可以控制 MATLAB 的目录搜索路径,主要使用的格式:path 显示当前的搜索路径p=path 把当前的搜索路径存到字符变量 P 中path('newpath') 设置路径为'newpath'path(path,'newpath') 向当前路径添加一个新目录 addpath 函数向 MATLAB 的搜索目录中添加一个新目录。addpath 路径名 path(path,路径名):增加搜索路径 rmpath 函数从 MATLAB 的搜索路径删除一个目录。rmpath 路径名:删除路径 还可以利用菜单:File->setpath(路径浏览器)what:显示出搜索路径上的文件名what 路径名:路径名中的文件名type value:显示变量内容edit 文件名:对 m 文件进行编辑 (2)工作空间(Workspace) 工作空间是一个重要而且比较抽象的概念,它是指运行 MATLAB 程序或命令所生成和存储在内存中 的所有变量和 MATLAB 提供的常量构成的集合。通过使用函数、运行 M 文件和装载保存的工作空间,可 以向工作空间增加变量。 save 保存整个工作空间或一部分变量,使用方式:save workspace as 文件名 或save 文件名 变量名 load 恢复工作空间,使用方式: load workspace load 文件名 工作空间浏览器:File->Show Workspace 还有一组命令来管理这些变量。who,whos:显示出工作空间中的变量列表。clear 变量名:清除变量 (3)MATLAB 命令窗口 输入命令和输出结果。 如输入:help 函数名a=62.22.2 矩阵、变量、运算和表达式矩阵、变量、运算和表达式(1)矩阵的输入 A直接输入: 注意:(1)行元素间用空格或逗号(, )隔开;(2)行与行之间用分号(;)或回车;(3)整个元素列表用括起。 直接输入的矩阵为一全局变量,一直保存在内存中。 例: a=1 2 3;4 5 6a=1 2 34 5 6 a=1,2,3;4,5,6;7,8,9 a=1 2 3; 4 5 6; 7 8 9 矩阵元素:可以灵活地描述矩阵元素, 矩阵元素 ai,j 按列存放通过下标单独对元素赋值 例:a(1,1)=1,a(3,2)=a(1,1) 得到 a =1 a =1 00 00 1 即自动形成一个 3 行 2 列矩阵,对未赋值的元素充值 0。 矩阵的元素可以用任意形式的表达式例:算术表达式 x=-1,sqrt(5),(2+7)4x = 1.0e+003 * -0.0010 0.0022 6.5610 大矩阵可以用小矩阵作为元素例:a=1 2;3 4 b=a a+5;a-5 zeros(size(a)例:A=1,2,3;4,5,6 A =1 2 34 5 6 B=A;7,8,9 B =1 2 34 5 67 8 9 可以从矩阵中抽取某些元素构成新矩阵 C=A(1:2,:) C =1 2 34 5 6 例:a=3,4,5;6,7,8 b=+2,4*5,6 c=sin(0.5*pi),sqrt(4),0 d=a;b;c 复数的表示 MATLAB 支持复数的运算,复数的虚部用 i 或 j 表示。 例:a=1+2i 或 a=1+2j 二者表示的结果一样。 复数可以直接运算, 例:a=3+4i;b=5+6ja+b 输出:ans=8.0000+10.0000i 复数运算的一些常用函数:abs 返回复数的模angle 返回复数的相角conj 返回共轭复数imag 返回复数的实部real 返回复数的虚部 B.用语句或函数产生:a=randn(5,5) 产生正态分布 5*5 的随机矩阵。 C.用 M-文件或外部数据文件产生: M-文件是一个以.m 为后缀的文本文件,文件内容为一系列 MATLAB 命令,在 MATLAB 环境下键入该文 件名(不包括后缀) ,文件中的全部命令会依次逐个执行;M-文件名(不包括后缀)相当于一个宏命令. 例如:一个名为 magik.m 的文件包含了如下的内容, (假设 magik.m 在当前目录下) A = 16.0 3.0 2.0 13.05.0 10.0 11.0 8.09.0 6.0 7.0 12.04.0 15.0 14.0 1.0 在 Matlab 环境下执行如下命令: magik A A =16 3 2 135 10 11 89 6 7 124 15 14 1 D.用矩阵编辑器创建和修改矩阵: 使用 File->Show workspace (2)矩阵运算 运算符 +,-,*,/(右除),(左除) 和(幂)。 右除:C=A/B 即 C 满足 CB=A,当 B 可逆时,A/B=AB-1 左除:C=AB 即 C 满足 AC=B,当 A 可逆时,AB=A-1B 幂 An = A*A; A 必须是方阵。 例:矩阵的加减法:a=1:3;4:6;7:9b=a; c=a+b; c=a-b注:矩阵相加减必须有相同的维数。 例:矩阵的点乘运算,运算时矩阵必须为方阵,且只能与数字运算。d=a*b 必须符合 m*n 与 n*l 的结构。d=a.*b 矩阵的点乘运算 例:(左除):AB=inv(A)*B,其中 inv(A)表示 A 逆阵,例如求解 AX=B。A=1 0 0;0 4 0;0 0 9;B=1 2 3;0 1 0;0 1 1;X=AB/(右除): A/B=A*inv(B),例如求解 XA=B。X=B/A (3)变量与表达式 Matlab 的赋值语句有两种形式: 其一为:=表达式; 其二为:表达式,将表达式的值赋于一个自动定义的变量 ans。 注:A:如果以;结尾,则不显示计算结果,否则显示计算结果。B:除保留字外,变量可以用字母开头,后跟 19 个字母或数字。变量名区分大小写,变量使用 时不需要先定义,也不必定义变量的类型。 可以用 who 或 whos 来显示已定义的变量 例如: who Your variables are: A B C a ans whosName Size Bytes ClassA 2x3 48 double arrayB 3x3 72 double arrayC 2x3 48 double arraya 3x2 48 double arrayans 1x1 8 double array Grand total is 28 elements using 224 bytes 一些常用的变量 pi 3.14159265 / 值 i sqrt(-1 ) /虚数单位 j same as i eps floating-point relative precision, 2.2204e-016 /容量变量 realmin smallest floating-point number, 2.2251e-308 /最小浮点数 realmax largest floating-point number, 1.7977e+308 /最大浮点数 inf infinity (任意一个非零数除以 0) /正无穷大 nan Not-a-number (0/0 或 inf-inf) /非数如: r=1/0 r=inf 1/r ans=0(4)矩阵的其他简单运算:A: 矩阵转置inv(A):A-1sum(A):得到一个行向量,其元素为 A 的每一列的和 a=1 2 3;4 5 6 sum(a) sum(a)diag(A):得到一个列向量,其元素为 A 的对角元 sum(diag(a)冒号(:)运算符:a:b:c:生成一个由等差数列构成的行向量 X,X(i+1)-X(i)=b 例:0:pi/4:pi ans =0 0.7854 1.5708 2.3562 3.1416如果省略 b,则等差数列的公差为 1 a=0:0.05:1 x=linspace(0,1,75) a=1:4;b=1:2:7;c=b,a等比数列:logspace(0,2,11) 创建起点为 10,终点为 102,11 个元素,公比为 100.2矩阵的变换:rot90: 矩阵逆时针旋转 n*90 度。fliplr: 矩阵左右翻转。flipud: 矩阵上下翻转。稀疏矩阵的存储:sparse(A):用于把完全矩阵压缩为稀疏矩阵。A=0,1,0,0;0,3,0,4;5,0,0,0;0,0,0,7sparse(A)ans=(3,1) 5(1,2) 1(2,2) 3(2,4) 4(4,4) 7sparse(i,j,u):函数直接造成稀疏矩阵,i,j 为向量分别对应行号和列号,u 也为向量,存 储非元素的值.i=1,2,2,3,4j=2,2,4,1,4u=1,3,4,5,7A=sparse(i,j,u)full 函数把稀疏矩阵还原为完全矩阵。 (5)数组及其运算:数组可以看作是行向量,实质为阵列运算。是元素对元素的运算,用句号(.)来区别。数组和矩阵之间的区别在于运算规则不同,矩阵运算由线性代数规则来定义。运算符:+,-和.*, ./, .,.A.*B:A 与 B 对应的元素相乘A.B:B 的元素除以 A 的相应元素A./B: A 的元素除以 B 的相应元素A.B:A 的元素为底,B 的相应元素为幂的数组如:a=1:3;4:6;7:9b=a; c=a+b; c=a-b查看下列运算的结果:a*b a.*b a/b a./b ab a.b ab(指数和底数均为矩阵,无法求解) a.b a a.2.32.3 基本数学函数基本数学函数abs(绝对值或复数模) sqrt (平方根) real(复数的实部) imag (复数的虚部) conj(复数的共轭) round (舍入为最接近的整数) /round(-0.5)=-1 round(0.4)=0 fix (向 0 方向舍入为整数) /fix(0.99)=0 fix(1.01)=1 floor (向负无穷大舍入为整数) /floor(-0.5)=-1 floor(0.5)=0 ceil (向正无穷大舍入为整数) /ceil(-0.5)=0 ceil(0.6)=1 sign (符号函数) rem(x,y) (取余数函数) /得到 x/y 的余数,rem(11,4)=3 sin cos tan asin atan /三角函数都是面向阵列中的元素操作,角度单位均为弦度。 atan2(y,x) /-pi 五角星标记p 六边形标记h 注:1.连接节点的线型如果空缺则表示点与点之间没有直线相连;2如果不指定作图的颜色,自动循环使用 y,m,c,r,g,b,w 7 种颜色画线 plot 的最典型的调用方式是三元组参数:plot(x,y,color-style-marker) 例:plot(t,y,'b+', t, y2,'k-X', t,y3,'r-*') 例: x,y,z=peaks; /多输出函数,函数可产生多个输出值,输出值之间用逗号分开。 contour(x,y,z,20,k) hold on pcolor(x,y,z) shading interp 其中:peaks:根据 Gauss 分布(正态分布)得到 3 个 49 阶矩阵contour:用相同的颜色画 20 条等高线,pcolor:将(x,y)点上的颜色设置成 zshading interp:设置渲染方式, 例:x=0:0.25:5; y1=x.0.1;y2=x.0.5; y3=x.0.8;y4=x; y5=x.1.5;y6=x.2; y7=cos(x);y8=sin(x);hold onplot(x,y1,yo,x,y2,mx,x,y3,c+,x,y4,rs);plot(x,y5,gh,x,y6,bd,x,y7,w0.8 figure('position',100 100 size(RGB,2), size(RGB,1);image(RGB);set(gca,'position',0 0 1 1 );例:load clownimwrite(X,map,'clown.bmp');3.193.19 动画制作动画制作用 MATLAB 产生动画序列有二种方法:第一种方法是先保存多幅不同的图片,然后连续回播;第二 种方法是连续不断地擦除并重画屏幕对象,在重画时屏幕对象不断变化,实现动画效果。这二种方法各 有优缺点。前者适于来不及快速重画的场合,它只是回放预先准备的画面。后者用到了画、擦、重画技 术,适于表现精度不高能够快速重画的场合。 例 1:使用 moviein 函数建立动画图形。 axis equal m=moviein(8); set(gca,'nextplot','replacechildren') for j=1:8plot(fft(eye(j+8)m(:,j)=getframe; end set(gca,'nextplot','replacechildren') movie(m,10) 例 2: h = uicontrol('style','slider','position',.10 50 20 300,'Min',1,'Max',16,'Value',1) for k = 1:16plot(fft(eye(k+16)axis equalset(h,'Value',k)M(k) = getframe(gcf); end 例:使用擦除模式绘制动画图形。 a=-8/3 0 0; 0 -10 10; 0 28 -1; y=35 -10 -7' h=0.01; p=plot3(y(1),y(2),y(3),'.','erasemode','none','markersize',5); axis(0 50 -25 25 -25 25); hold on for i=1:4000a(1,3)=y(2); a(3,1)=-y(2);ydot=a*y; y=y+h*ydot;set(p,'Xdata',y(1),'Ydata',y(2),'Zdata',y(3)drawnowi=i+1; end第四章第四章 控制流控制流4.14.1 关系运算:关系运算:MATLIB 有六种关系运算符: >= = = 结果 1 表示 true, 0 表示 false。 其中 >=只用于操作数的实部比较,= =用于比较实部和虚部。 A.当两个变量是标量时,a 和 b 的关系成立,结果为 1,否则结果为 0。 B.当比较 a 和 b 是两个维数相同的数组时,按相同位置比较,结果是一个维数和 a 相同的数组,其 元素由 1 和 0 组成。 C.当比较的一个是数组 a,一个是标量 b 时,则把标量 b 和数组 a 的每一个元素按标量关系逐个比 较,结果是一个维数和 a 相同的数组,其元素由 1 和 0 组成。 如:a=rand(5);b=a c=a=b; c=a>b c=a>1;c=a>0;c=a>0.5 x=(1:10);t=x>54.24.2 逻辑运算:逻辑运算:| |(或)(或), 0 0.001xans=0 01 0y=1 0;1 0z1=x for i=1:n for j=1:nif i=ja(i,j)=2;elseif min(i,j)=1a(i,j)=1;elsea(i,j)=0;end end end disp(The matrix A is);disp(a) 执行时: The matrix A is 2 1 1 1 1 2 0 0 1 0 2 0 1 0 0 2 例:(test1.m) for i=1:mfor j=1:na(i,j)=1/(i+j-1);end end 例:for i=9.8:3:-9i end 执行时:i=9.800 i=6.800 3.800 i=0.800 i=-2.200 i=-5.200 i=-8.200 例:s=abcdefghijkfor i=s i end %i 分别等于 s 中和每一个字符。 例:c=aaa,bbb,ccc for i=ci end i=aaa i=bbb i=ccc 例:在循环中,可以改变循环变量的值,但它不会改变循环的次数. r=1 for k=1:19 k=k+1; r=r*k; end 例:可利用数组(阵列)任意指定循环变是的值.(ex25.m) varx=7 3 10 5; vary=zeros(size(v); k=0; for x=varx k=k+1 vary(k)=x.2; end disp(v,w) 例:(ex31.m)求 100-200 之间的素数。 for m=101:2:200k=fix(sqrt(m);for i=2:k+1if rem(m,i)=0break;endendif i>=k+1disp(m)end end4.54.5 while-endwhile-end 循环循环 不定次数重复的循环执行语句。 格式:while 循环体end 例:求 1000 以下的菲波纳契数(ex26.m) f=1 1; i=1; while f(i)+f(i+1) 0.1a=a/2;end4.64.6 switch-endswitch-end 语句:语句:情况切换语句,case 语句中可以采用多个值。 语句格式: switch (变量或表达式)case v1语句case v2语句.otherwise语句 end 例: switch (rem(n,4)=0) + (rem(n,2)=0)case 0.case 1.case 2.otherwiseerror('This is impossible')end例:switch var2case -2,-1disp(var2 is negative one or two)case 1,2,3.otherwisedisp(var2 is other value) end4.74.7 breakbreak 语句:语句:一个跳出循环的命令,导致最内层的 while,for,if 语句终止。 例:(test3.m) a = 0; fa = -inf; b = 3; fb = inf; while b-a > eps*bx = (a+b)/2;fx = x3-2*x-5;if fx = 0breakelseif sign(fx) = sign(fa)a = x; fa = fx;elseb = x; fb = fx;end endx4.84.8 try.catchtry.catch 语句语句用于捕获程序运行中出现的错误,语法如下: try 语句,.语句,catch 语句,.语句 end 在正常情况下,程序只执行 try 和 catch 之间的语句,在执行上述语句发生错误时,程序将执行 catch 和 end 之间的语句,在这里可以利用 lasterr 获得错误信息进行处理,如再发生错误,除非嵌套 了另一个 try.catch,否则程序将中断执行。4.94.9 returnreturn 语句语句return 语句终止当前的命令序列,把控制返回到调用函数或键盘。4.104.10 输入输入/ /输出语句输出语句获得用户输入 input:显示一段信息,并读取用户输入。 语法:x=input(提示信息,“输入类型“),缺省为 double 型。 例:a=input(Please input a member)a=input(Please input a char,s) 暂停执行,等待用户按键 pause:程序暂停执行。 语法:pause(n)pause 其中:n 为暂停的秒数。 建立完整的图形界面:菜单输入函数 menu。 例:(ex27.m)s=menu('color selection','red','greed','blue','yellow','black')switch(s)case 1scolor='red'case 2scolor='green'case 3scolor='blue'case 4scolor='yellow'case 5scolor='blue'otherwisedisp('error');end scolor运行结果:输出函数 print,printopt4.114.11 自定义函数:自定义函数:用 M 函数自定义函数,函数 M 文件必须以函数的名称来作为文件名,M 文件的格式如下: =() 自变量和因变量都可以是矩阵或几个矩阵。 M 文件的第一行包括 function,该文件就是函数文件,函数和命令文件的区别是:命令文件的变量 用完后保存在内存,而函数文件文件内定义的量仅在函数文件内部起作用。函数文件有多个输出变量时, 用括起,有多个输出变量时,用()括起。 例:(quroot.m) function x=quroot(a) if abs(a(1) > epsd=a(2)2-4*a(1)*a(3);if d >= 0e=sqrt(d);f=2*a(1);x(1)=(-a(2)+e)/f;x(2)=(-a(2)-e)/f;end elseif abs(a(2) > epsx=-a(3)/a(2); elseerror('coefficient error!') end 函数调用为: a=1 2 1 x=quroot(a) x=-1 -1/*子函数调用*/ function mean, stdev = stat(x) n=length(x); mean = avg(x,n); stdev = sqrt(sum(x-avg(x,n).2)/n);function mean = avg(x,n)mean = sum(x)/n;在函数文件中可以包含多个函数,其中第一个函数称为主函数,其函数名与文件名相同,它可以由 其它文件引用,其它函数称为子函数,它只能由函数中的主函数和其它子函数引用。 函数中有两个永久变量nargin,nargout 表示引用函数时给出的输入变量数和输出变量数。 function c=testrg1(a,b)if(nargin=1)c=a.2;else (nargin=2)c=a*b;end 输入一个变量时,计算这一变量的平方数 输入二个变量时,计算这两个变量的积。 函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身。 例:求 n!(ex33.m)function y=ex33(n) %求 n!if n0s=s '+'elses=s '-' a=-a;endendif a=1|d=0s=s num2str(a);if d>0s=s '*'endendendif d>=2s=s 'x' int2str(d);elseif d=1s=s 'x'end d=d-1;end end 此时,调用char(p)将的如下结果: char(p) ans=x3-2*x-55.定义显示输出 定义显示输出的文件名为display。很多类的显示输出定义非常简单,仅仅是输出变量名,并将变量的 值转换为字符(调用函数char)输出。现为类polynom定义一个简单的显示输出文件 polynom/display.m. function display(p) disp(' '); disp(inputname(1),' ='); disp(' '); disp(' ' char(p) disp(' ');4.154.15 重载与继承重载与继承重载包括三个方面的内容:算法的重载,操作符的重载和函数的重载。重载,实际是建立一系列特 定的M文件,以指定MATLAB在操作自定义类对象时的具体操作。如polynom对象加法的重载例子。有 polynom对象p,q,当遇到p+q时,将自动在polynom路径下寻找plus.m文件,如果文件存在,执行文件。 要重载这个文件,实质就是建立这个文件。function r=plus(p,q) p=polynom(p); q=polynom(q); k=length(q,c)-length(p.c); r=polynom(zeros(1,k) p.c+zeros(1,-k) q.c);第五章第五章 MATLABMATLAB 基本应用领域基本应用领域5.15.1 线性代数线性代数主要进行线性方程的求解、矩阵求逆、LU 分解、QR 分解、矩阵求幂、矩阵指数函数、求特征值及 奇异值分解。 1.MATLIB 中的矩阵 矩阵定义为二维实或复阵列。矩阵的加、减、乘、除、转置运算是最基本的运算,它们应符合维数 一致的限制。 2.线性代数方程求解 一般线性方程可表示成:AX=B XA=B 当矩阵 A 为方阵时,它的解为 X=AB (X=inv(A)B)或 X=B/A。 当矩阵 A 为非奇异时,线性方程的解唯一;当矩阵 A 为奇异时,线性方程的解要么不存在,要么不 唯一。a=1 -2 -3 -4;2 1 -1 1;-1 0 -1 2;3 -3 4 -5; b=1 1 1 1' x=ab 当矩阵 A 为(m*n)维矩阵,且 m>n 时,方程 AX=B 中,方程个数多于变量个数,因此应采用最小二乘 法来求解。 例:(ex32.m)对一组测量数据:t=0 0.3 0.8 1.1 1.6 2.3 y=0.82 0.72 0.63 0.6 0.55 0.5 拟用延迟指数函数来拟合这组数据:y(t)c1+c2e-t 得 6 个方程,而未知数仅有 c1、c2 两个。应采用最小二乘法来求解。A=ones(size(t) exp(-t) c=Ay T=0:.1:2.5; Y=ones(size(T)exp(-T)*c; plot(T,Y,-,t,y,o) 3.矩阵求逆 det(A):函数可求矩阵 A 的行列式值。 inv(A): 函数可求矩阵 A 的逆矩阵值。 pinv(A):用于计算非方阵的伪逆。 4.LU、QR 分解 通过高斯对消或 LU 分解法,可将任意方阵表示成一个下三角阵与一个上三角阵的乘积:A=LU。a=1:3;4:6;4 2 6 l,u=lu(a) 得到 det(a)=det(l)*det(u)inv(a)=inv(u)*inv(l) 5.矩阵求幂和矩阵指数矩阵求幂如 A2,B3可以用 A2,B3sqrtm(A):计算 A 的开方expm(A):计算矩阵 A 的指数 eA 6.特征值与特征向量矩阵 A 的特征值 和特征矢量 ,满足 A=。eig(A)求矩阵 A 的特征值 。 7.一元多项式的运算 (1)一元多项式的表示和创建 任意一个多项式都可以用一个行向量来表示,它的系数是按降序排列: 例:x3-6*x2+11*x-6 表示为 p=1 6 11 6poly2sym(p,x) 则 ans=x3-6*x2+11*x-6 poly2sym(p,x)函数:多项式的符号表示。 poly()函数:若 A 是 n*n 矩阵,则 p=poly(A),p 为 A 的特征多项式,是 n+1 维向量,第一个元素的 值一定是 1。而特征多项式的根就是 A 的特征值。u=r1,r2,r3,.rm poly(u)=(x-r1)(x-r2).(x-rm) 例:A=6 11 6;1 0 0;0 1 0;p=poly(A);p=1.0 6.0 11.0 6.0roots(p) %求多项式的根与 eig(A)相同。 例:求 1,2,-3 为根的多项式u=1 2 3p=poly(u) poly2sym(p) % x3-7*x+6 (b)多项式的基本运算 多项式的加减运算: MATLIB 中没有多项式加减的函数,可以自编函数。 例:(qq.m)function yy=qq(x,y) nx=length(x); % x=reshape(x,1,nx) ny=length(y); %y=reshape(y,1,ny); n=max(nx,ny) cc=zeros(1,n); if nx>nycc(1,(nx-ny+1):nx)=y;yy=x+cc; elseif nxepscc=conv(1 -c,1 -conj(c);y=y;cc;r(find(abs(r-conj(c)epscc=0 0 s;y=y;cc; endD.最大公约式和最小公倍式 最大公约式和最小公倍式是整系数多项式的两个比较重要的概念,MATLAB 本身并没有提供来求多项 式的最大公因式和最小公倍式的函数。自编函数 gcd.m,利用循环相除法求最大公约式。最小公倍式利 用两个多项式的乘积除以二者的最大公因式即可以得到最小公约式。 例:最大公约式和最小公倍式的自编函数(gcd.m)function y=gcd(f,g) while isempty(f)if abs(f(1)0 可以用 limit 函数来求。 diff 函数:差分和导数逼近。如果 diff 的表达式或可变参数是数值,MATLAB 就计算数组中元素间 的差分;如果参数是符号字符串或变量,MATLAB 就对其表达式进行微分。 例:数值向量和差分。x=0:0.1:1;y=-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2; %试验数据p=polyfit(x,y,2) %多项式的二阶拟合pd=polyder(p) %多项式求导pd=-19.6217 20.1293 说明:y=-9.8108x2+20.1293x-0.0317 的微分是 dy/dx=-19.6217x+20.1293。 例:符号表达式的微分。f=log(x)f 函数的导数为 diff(f)ans=exp(x) 例:求 f(x)=(x+exsinx)1/2 的导数函数表示为:f=(x+exp(x)*sin(x)(1/2) %符号表达式diff(f)结果为:ans =1/2/(x+exp(x)*sin(x)(1/2)*(1+exp(x)*sin(x)+exp(x)*cos(x) 例:diff(f,n)求函数的 n 阶导数,阶数太高时,可能导致死机。求 y=e-2xcos(3x1/2)的 4 阶导数。函数表示为:y=exp(-2*x)*cos(3*(x(1/2)diff(y,4)pretty(ans) 多元函数的求导 在 diff 函数中加入对所求变量的说明即可。 格式:diff(f,变量,n) 例:f=x*sin(exp(y(1/2)/z;diff(f,y);pretty(ans); 对抽象函数的求导 与其它函数求导的步骤一样,先说明函数的自变量,再说明函数的形式,最后用 diff 函数求导。 积分:求一条曲线,一个空间曲面及空间曲体在一定坐标系下对应的面积或体积。 主要使用 int 函

    注意事项

    本文(Matlab基础重点资料库.doc)为本站会员(一***)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开