MATLAB自学实用基础教程课件(PPT 61页)_第1页
MATLAB自学实用基础教程课件(PPT 61页)_第2页
MATLAB自学实用基础教程课件(PPT 61页)_第3页
MATLAB自学实用基础教程课件(PPT 61页)_第4页
MATLAB自学实用基础教程课件(PPT 61页)_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB的基本使用数学建模选修课之第1页,共61页。主要内容:MATLAB的简介MATLAB基础MATLAB之矩阵相关运算MATLAB之基本数学运算 MATLAB之微积分相关运算MATLAB之画图第2页,共61页。MATLAB的简介 1980年前后,时任美国New Mexico大学计算机科学系主任的Cleve Moler教授构思一个名MATLAB(MATrix LABoratory,即矩阵实验室)的交互式计算机语言。 1984年MathWorks公司成立,并推出了1.0版。MATLAB语言是由计算数学专家首创的,但是由控制界学者“捧红”的新型计算机语言。随着MATLAB语言的不断发展,它的

2、功能也越来越强大,现在已经成为国际上首选的科学计算软件。第3页,共61页。matlab 2011A的价格:美国/中国学生版 基础箱$99+$29每个工具箱美国政府/商业版 基础箱$2100+$1000-$8000不等每个工具箱美国学术版基础箱$500+$200-$500不等每个工具箱公司网址:/ /目前最高版本:R2014BMATLAB的简介第4页,共61页。优势:简洁高效性(语句简捷)科学运算功能(以矩阵为基本单元)强大的绘图功能庞大的工具箱与模块集(遗传算法、神经网络、小波分析、模糊逻辑等)强大的动态系统仿真功能(控制论方面)不足:它是解释型语言,其执行速度要比编译型语言慢得多。费用较高第

3、5页,共61页。MATLAB基础界面介绍第6页,共61页。MATLAB基础界面介绍常用常量:MATLAB中的常量都可以重新赋值,但是建议在编 程时尽量避免对这些变量重新赋值 eps:机器浮点运算误差限; i和j:纯虚数量Inf:正无穷大 NaN:不定式pi:变量:以字母开头,字母、数字和下划线的组合,而且区分 大小写。 变量类型:数值型、符号型、字符串型、 其它(多维数组、单元数组、类和对象 )第7页,共61页。MATLAB之基本数学运算 加(),减(-),乘(*),除(/),乘方()常用的数学函数:(注:这些函数在MATLAB7中测试通过,低版本可能有些函数无法使用)sin(x) 正弦(变量

4、为弧度) cos(x) 余弦(变量为弧度)tan(x) 正切(变量为弧度)cot(x) 余切(变量为弧度)sind(x)正弦(变量为度数)cosd(x)余弦(变量为度数) tand(x) 正切(变量为度数)cotd(x)余切(变量为度数)第8页,共61页。asin(x)反正弦(返回弧度) acos(x) 反余弦(返回弧度)atan(x)反正切(返回弧度)acot(x)反余切(返回弧度)asind(x) 反正弦(返回度数)acosd(x) 反余弦(返回度数)atand(x) 反正切(返回度数) acotd(x) 反余切(返回度数)exp(x) ex log(x) 以e为底的对数log2(x) 以

5、2为底的对数 第9页,共61页。log10(x) 以10为底对数sqrt(x)开方 abs(x) 取绝对值 sign(x)符号函数 mod(x,y) 返回x除以y的余数 sum(A) 对向量A元素求和angle(z) 复数z的相角(Phase angle) real(z) 复数z的实部 imag(z) 复数z的虚部 conj(z) 复数z的共轭复数 第10页,共61页。round(x) 四舍五入至最近整数 fix(x) 无论正负,舍去小数至最近整数 floor(x) 地板函数,即舍去正小数至最近整数,下取整ceil(x) 天花板函数,即加入正小数至最近整数,上取整其余函数可以用“help el

6、fun”和“help specfun”命令获得小提示:用“help 函数名”或“doc 函数名”命令查询相关函数的使用,例如:help floor 第11页,共61页。MATLAB之矩阵的相关运算 矩阵的输入:用括号和分号建立数组;在一行内单个数值可用空格或逗号隔开,而行与行之间要与则用分号字隔开. 例:A=1,2,3;5,4,6;9,8,7;B=1 2 3;5 4 6;9 8 7;C=1 2 35 4 69 8 7;小提示:若不想让MATLAB每次都显示运算结果,只需在运算式最后加上分号(;)即可,但此条命令实际上已经执行。第12页,共61页。注:利用冒号表达式生成向量v=s1:s2:s3表

7、示以s1为起始值,s2为步长,每隔一个s2取一个点,直至不超过s3的最大值,生成一个向量。缺省s2则认为步长为1.注:利用linspace函数生成向量linspace(a,b,n)此函数也生成一个向量,以a为第一个元素,以b为最后一个元素,共n个点;与a:(b-a)/n-1:b等价几种特殊矩阵的生成zeros(n)生成n维零矩阵zeros(m,n)生成m*n维零矩阵第13页,共61页。eye(n)生成n维单位阵eye(m,n)生成m*n维单位阵ones(n)生成n维元素全为1的矩阵ones(m,n)生成m*n维元素全为1的矩阵magic(n) 生成n阶幻方pascal(n) 生成n阶Pasca

8、l矩阵diag(a)(1)若a为向量,则生成以向量a为对角线元素的 对角矩阵(2)若a为矩阵,提取a的对角线元素(注:得到的是一个列向量,且a可以不是方阵) diag(v,k) 生成主对角线上第k条对角线为v的方阵:(注:v为一个行(列)向量,k可以为负值,负值表示主对角线下)第14页,共61页。矩阵元素的访问和重新赋值例:a=1 2 3;4 5 6;7,8,9;a(2,1) %显示第二行第一列的元素a(:,2) %显示第二列a(2,:) %显示第二行a(1:2,2:3) %显示第一、二行和第二、三列构成的子式a(2,:)=;%删除第2行a(a5)=1;%将A中所有大于5的元素赋值为1 小提示

9、:在MATLAB中,%后的部分表示注释第15页,共61页。矩阵变换例:A=1 2 3;4 5 6;7 8 9;triu(A);%提取上三角tril(A);%提取下三角rot90(A);%将A逆时针旋转90度fliplr(A);%左右对称变换flipud(A);%上下对称变换矩阵的运算a+k%矩阵a加常数ka-k%矩阵a减常数ka+b%矩阵a与矩阵b的和,要求维数相同第16页,共61页。k*a%常数k乘矩阵aa*k%矩阵a乘常数ka/k%矩阵a除以常数ka-b%矩阵a与矩阵b的差,要求维数相同a*b%矩阵a与矩阵b的正常积,要求维数满足相乘的条件a.*b%Hadamard积,对应元素乘积,要求矩

10、阵形状必须一致 k./a%常数k点除矩阵aa./b%矩阵A点除矩阵ba/b%矩阵a右除bab%矩阵a左除ban方阵a自乘n次第17页,共61页。a.n矩阵a中每个元素的n次方a 矩阵a的Hermit转置inv(a)矩阵a的逆,要求a为方阵det(a)方阵a的行列式:trace(a)矩阵a的迹,注:这里a不必是方阵rank(a)矩阵a的秩eig(a)方阵a的特征值poly(a)结果是一个行向量,从最后一个开始往前,分别为常数、x一次项的系数、x二次项系数,v,d=eig(a)方阵a的特征值及特征向量,其中v是特征向量,d是由特征值所构成的一个对角阵第18页,共61页。其它一些矩阵与向量相关的函数

11、:min(x)向量x的元素的最小值 max(x)向量x的元素的最大值 mean(x)向量x的元素的平均值 median(x)向量x的元素的中位数 std(x)向量x的元素的标准差 var(x)方差range(x)极差第19页,共61页。其它一些矩阵与向量相关的函数:mode(x)众数skewness(X) 偏度kurtosis(X) 峰度diff(x)向量x的相邻元素的差 sort(x)对向量x的元素进行排序hist(x) 绘制向量x的直方图第20页,共61页。length(x)向量x的元素个数 norm(x)向量x到原点的欧氏(Euclidean)距离 sum(x)向量x的元素总和 prod

12、(x)向量x的元素总乘积 cumsum(x)向量x的累积元素总和 cumprod(x)向量x的累积元素总乘积 dot(x,y)向量x和y的内积 cross(x,y)向量x和y的外积第21页,共61页。MATLAB之微积分的相关运算 求极限(1)单变量函数极限:limit(fun,x,x0)函数fun在x=x0处的极限limit(fun, x, x0, left或right)函数fun在x=x0处左或右极限例:Matlab代码:syms x a b;%声明三个符号变量f=x*(1+a/x)x*sin(b/x) ;%定义函数fL=limit(f,x,inf)第22页,共61页。(2)多变量函数极限

13、:limit(limit(fun,x,x0),y,y0)或limit(limit(f,y,y0),x,x0)二元函数fun在x=x0,y=y0处的极限例:Matlab代码:syms x y a;f=exp(-1/(y2+x2)*sin(x)2/x2*(1+1/y2)(x+a2*y2);limit(limit(f,x,1/sqrt(y),y,inf) 第23页,共61页。求导数diff(f,x)函数f关于x导数diff(f,x,n)函数f关于x的n阶导数diff(diff(f,x,m),y,n) 或 diff(diff(f,y,n),x,m)二元函数f关于x求m阶偏导数,关于y求n阶偏导数例:

14、Matlab代码:syms x y;y=x2*sin(x);diff(y,x,10)Matlab代码:syms x y;z=x2+y2+2*x*y;diff(diff(z,x,1),y,1)第24页,共61页。求积分int(f,x)函数f的不定积分int(f,x,a,b)函数f的定积分(注:a,b可以是inf或-inf)int(int(int(f,x,a,b),y,c,d),z,e,g)函数f的重积分:其中f为x,y,z的函数,x,y,z为变量,a,b,c,d,e,g 是x,y,z的上下限例Matlab代码:syms x y z;f=x*y*z; int(int(int(f,z,0,x*y),

15、y,0,x),x,0,1)第25页,共61页。代数方程的求解roots(p)多项式求根,其中:p为多项式的系数,按降幂方式形成的行向量例:Matlab代码:p=-2 5.2 -4.8 7 0 2 9.8 1;roots(p) fzero(f,x0)求函数f在x0附近零点;若x0为一个二维向量a,b,则变成求函数f在区间(a,b)内的零点例:Matlab代码:x0=1,2;syms x;f= exp(x)-x-3 ;fzero(f,x0) 第26页,共61页。solve(f1,f2,f3,)求由f1,f2,f3构成的代数方程组的解例Matlab代码syms x y z;f1= x+y+z=2 ;

16、f2= 2*x+y+2*z=2 ;f3= 2*x+2*y+z=5 ;x,y,z=solve(f1,f2,f3);第27页,共61页。Taylor展开taylor(f,x,k) 按x=0进行Taylor幂级数展开:(注:k表示显示前k项,常数项,x的一次项,x的二次项,x的k-1次项)taylor(f,x,k,a)按x=a进行Taylor幂级数展开例:Matlab代码syms x y;y=sin(x);taylor(y,x,5)Taylor(y,x,5,1)第28页,共61页。级数求和symsum(fk,k,k0,kn)级数求和例例Matlab代码:syms k;symsum(-1)(k-1)/

17、k,k,1,Inf)Matlab代码:syms k;symsum(k2,k,1,50);第29页,共61页。MATLAB之绘图 直角坐标画二维图plot(x,y)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据,绘图时相当于在屏幕上一个接一个地描点。例:在0 x2区间内,绘制曲线 Matlab代码:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*cos(4*pi*x); %注意一定是.*而不是*plot(x,y)第30页,共61页。由参数方程所确定的函数的二维图例:绘制抛物方程的图形Matlab程序代码:t=0:0.01:0.2;x=t;y=t-1/2*9.8*t2

18、;plot(x,y)第31页,共61页。一个坐标系下画多条曲线1.plot(x1,y1,x2,y2,x3,y3xn,yn)2.plot(x,y)函数结合hold on命令例如:在0 x4区间内,绘制曲线如下两条曲线: Matlab代码1:x=0:pi/100:4*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2)Matlab代码2:x=0:pi/100:4*pi;y1=sin(x);plot(x,y1);hold on;y2=cos(x);plot(x,y2)第32页,共61页。图的修饰plot(x1,y1,选项1,x2,y2,选项2,xn,yn,选项n)颜色选项 节

19、点选项 线形选项b blue . point - solidg green o circle : dottedr red x x-mark -. dashdot c cyan + plus - dashed m magenta * stary yellow s squarek black d diamond选项见:help plot也可以在图像上直接修改 Matlab代码:t=0:0.1:2*pi;y=sin(t);plot(t,y,bo:)plot(t,y,y*:)plot(t,y,r+-)第33页,共61页。subplot(m,n,p)该函数将当前图形窗口分成mn个绘图区,即每行n个,共m

20、行,区号按行优先编号,且选定第p个区为当前活动区。在每一个绘图区允许以不同的坐标系单独绘制图形。Matlab程序代码:x=0:0.05:4;y1=x;y2=x2;y3=x3;y4=x4;subplot(2,2,1),plot(x,y1)subplot(2,2,2),plot(x,y2)subplot(2,2,3),plot(x,y3)subplot(2,2,4),plot(x,y4)第34页,共61页。极坐标绘图: polar(theta,rho,选项)theta为极角,rho为极径例:画如下两条曲线Matlab程序代码:theta=0:0.01:6*pi;rho=5*sin(4*theta/

21、3);polar(theta,rho)figure;%新建一个图片窗口rho=5*sin(theta/3);polar(theta,rho)第35页,共61页。隐函数绘图: (1) 对于函数f=f(x),ezplot函数的调用格式为:ezplot(f):在默认区间-2x2绘制f=f(x)的图形。ezplot(f,a,b):在区间axb绘制f=f(x)的图形。(2) 对于隐函数f=f(x,y),ezplot函数的调用格式为:ezplot(f):在默认区间-2x2和-2y2绘制 f(x,y)=0的图形。ezplot(f,xmin,xmax,ymin,ymax):在区间xminxxmax和yminy

22、ymax绘制f(x,y)=0的图形。ezplot(f,a,b):在区间axb和ayb绘制f(x,y)=0的图形。 第36页,共61页。Matlab程序代码:ezplot(sin(x)ezplot(sin(x),-3,3)ezplot(x3+y3-5*x*y+1/5)ezplot(x3+y3-5*x*y+1/5,-4 4 -5 5)ezplot(x3+y3-5*x*y+1/5,-4 4)第37页,共61页。参数方程绘图:参数方程x=x(t)和y=y(t),ezplot函数的调用格式为:ezplot(x,y):在默认区间0t2绘制x=x(t)和y=y(t)的图形。ezplot(x,y,tmin,t

23、max):在区间tminttmax绘制x=x(t)和 y=y(t)的图形。Matlab程序代码:ezplot(8*cos(t),4*sqrt(2)*sin(t),0,2*pi)ezplot(8*cos(t),4*sqrt(2)*sin(t)ezplot(8*cos(t),4*sqrt(2)*sin(t),0,pi)第38页,共61页。参数方程绘图:参数方程x=x(t)和y=y(t),ezplot函数的调用格式为:ezplot(x,y):在默认区间0t2绘制x=x(t)和y=y(t)的图形。ezplot(x,y,tmin,tmax):在区间tminttmax绘制x=x(t)和 y=y(t)的图形

24、。Matlab程序代码:ezplot(8*cos(t),4*sqrt(2)*sin(t),0,2*pi)ezplot(8*cos(t),4*sqrt(2)*sin(t)ezplot(8*cos(t),4*sqrt(2)*sin(t),0,pi)第39页,共61页。三维曲线:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,xn,yn,zn,选项n) Matlab程序代码:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);例:画出如下曲线第40页,共61页。三维曲面:已知二元函数z=f(x,y)调

25、用格式:x,y=meshgrid(v1,v2);%生成网格数据,其中v1与v2为X轴与Y轴的分割方式.z=f(x,y);%计算zmesh(x,y,z)%绘制网格图surf(x,y,z)%绘制表面图 surfl(x,y,z)%光照下的三维曲面 waterfall(x,y,z)%瀑布型三维图形第41页,共61页。例:画Matlab程序代码:x,y=meshgrid(0:31);d2=(x-16).2+(y-16).2;z=1./(1+d2.2/200);mesh(x,y,z)surf(x,y,z)surfl(x,y,z)waterfall(x,y,z)第42页,共61页。例:画Matlab程序代码

26、:x,y=meshgrid(-4:0.5:4);z=sqrt(x.2+y.2);surf(x,y,z);axis equal;第43页,共61页。例:画Matlab程序代码:x,y=meshgrid(-4:0.5:4);z=x.2+y.2;surf(x,y,z)第44页,共61页。例:画Matlab程序代码:x,y=meshgrid(-10:0.5:10,-10:0.5:10);z=x.2-2*y.2;surf(x,y,z);第45页,共61页。例:画Matlab程序代码:x,z=meshgrid(-1:0.05:1,0:0.05:2);y1=sqrt(1-x.2);y2=-sqrt(1-x.

27、2);mesh(x,y1,z);hold on;mesh(x,y2,z);axis equal;第46页,共61页。MATLAB之微分方程 dsolve(e,c,v)其中:e为微分方程,c为初值条件,v为微分方程中的自变量,省略时按缺省原则处理,以小写的为自变量。常用符号:Dy表示D2y表示Dy(0)表示D3y+D2y+Dy-x+5=0表示例:求Matlab程序代码:dsolve(Dy=1+y2,y(0)=1) 第47页,共61页。例:求 Matlab程序代码:jx=dsolve(Dy=2*y+3*x,Dx=y-2*x,y(0)=1,x(0)=2);jx.yjx.x第48页,共61页。MATL

28、AB之程序设计 程序设计的三种结构:顺序结构循环结构(forwhile)选择结构(ifelse;switch)1.Matlab中的循环之forfor语句的一般结构 for i=V,循环结构体,end从向量V中取一个值执行循环体遍取V中的值是否第49页,共61页。例:求Matlab程序代码:s=0;for k=1:1:100s=s+k4;ends例:求向量 元素的四次方的和Matlab程序代码:s=0;v=2,4,7,9;for k=vs=s+k4;ends第50页,共61页。2.Matlab中的循环之whilewhile语句的一般结构 while(条件式),循环结构体,endWhile中条件满

29、足执行循环体是否第51页,共61页。例:求Matlab程序代码:s=0;k=0;while(k New - M-File第54页,共61页。Matlab程序代码:function output = primenum(k)output=0;for i=1:kif isprime(i) output=output+1;endend例:求100以内素数的个数调用primenum(10)第55页,共61页。Matlab程序代码:function sum,prod = myfun(v)sum=0;prod=1;len=length(v);for i=1:lensum=sum+v(i);prod=prod*v(i);endend例:求向量V中各个元素的和与积调用v=1,3,4,6;a,b=myfun(v)第56页,共61页。MATLAB工具箱之曲线拟合 现在有11个点,(1,9)、(3,24.3)、(5,39.6)、(7,53.55)、(10,72.9)、(15,102.6)、(20,129.6)、(25,153)、(30,175.5)、(35,195.3)、(40,208.8)请用这11点拟合一条曲线,使得这条曲线离这条曲线尽可能近。过程:x=1 3 5 7 10 15 20 25 30 35 40;y=9 24.3 39.6 53.55 72.9 1

温馨提示

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

评论

0/150

提交评论