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

下载本文档

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

文档简介

MATLAB的基本使用,数学建模选修课之,主要内容:,MATLAB的简介,MATLAB基础,MATLAB之矩阵相关运算,MATLAB之基本数学运算,MATLAB之微积分相关运算,MATLAB之画图,MATLAB的简介,1980年前后,时任美国NewMexico大学计算机科学系主任的CleveMoler教授构思一个名MATLAB(MATrixLABoratory,即矩阵实验室)的交互式计算机语言。1984年MathWorks公司成立,并推出了1.0版。MATLAB语言是由计算数学专家首创的,但是由控制界学者“捧红”的新型计算机语言。随着MATLAB语言的不断发展,它的功能也越来越强大,现在已经成为国际上首选的科学计算软件。,matlab2011A的价格:美国/中国学生版基础箱$99+$29每个工具箱美国政府/商业版基础箱$2100+$1000-$8000不等每个工具箱美国学术版基础箱$500+$200-$500不等每个工具箱,公司网址:,MATLAB的简介,优势:简洁高效性(语句简捷)科学运算功能(以矩阵为基本单元)强大的绘图功能庞大的工具箱与模块集(遗传算法、神经网络、小波分析、模糊逻辑等)强大的动态系统仿真功能(控制论方面)不足:它是解释型语言,其执行速度要比编译型语言慢得多。费用较高,MATLAB基础,界面介绍,MATLAB基础,界面介绍常用常量:MATLAB中的常量都可以重新赋值,但是建议在编程时尽量避免对这些变量重新赋值eps:机器浮点运算误差限;i和j:纯虚数量Inf:正无穷大NaN:不定式pi:变量:以字母开头,字母、数字和下划线的组合,而且区分大小写。变量类型:数值型、符号型、字符串型、其它(多维数组、单元数组、类和对象),MATLAB之基本数学运算,加(),减(-),乘(*),除(/),乘方()常用的数学函数:(注:这些函数在MATLAB7中测试通过,低版本可能有些函数无法使用)sin(x)正弦(变量为弧度)cos(x)余弦(变量为弧度)tan(x)正切(变量为弧度)cot(x)余切(变量为弧度)sind(x)正弦(变量为度数)cosd(x)余弦(变量为度数)tand(x)正切(变量为度数)cotd(x)余切(变量为度数),asin(x)反正弦(返回弧度)acos(x)反余弦(返回弧度)atan(x)反正切(返回弧度)acot(x)反余切(返回弧度)asind(x)反正弦(返回度数)acosd(x)反余弦(返回度数)atand(x)反正切(返回度数)acotd(x)反余切(返回度数)exp(x)exlog(x)以e为底的对数log2(x)以2为底的对数,log10(x)以10为底对数sqrt(x)开方abs(x)取绝对值sign(x)符号函数mod(x,y)返回x除以y的余数sum(A)对向量A元素求和angle(z)复数z的相角(Phaseangle)real(z)复数z的实部imag(z)复数z的虚部conj(z)复数z的共轭复数,round(x)四舍五入至最近整数fix(x)无论正负,舍去小数至最近整数floor(x)地板函数,即舍去正小数至最近整数,下取整ceil(x)天花板函数,即加入正小数至最近整数,上取整,其余函数可以用“helpelfun”和“helpspecfun”命令获得小提示:用“help函数名”或“doc函数名”命令查询相关函数的使用,例如:helpfloor,MATLAB之矩阵的相关运算,矩阵的输入:用括号和分号建立数组;在一行内单个数值可用空格或逗号隔开,而行与行之间要与则用分号字隔开.例:A=1,2,3;5,4,6;9,8,7;B=123;546;987;C=123546987;小提示:若不想让MATLAB每次都显示运算结果,只需在运算式最后加上分号(;)即可,但此条命令实际上已经执行。,注:利用冒号表达式生成向量v=s1:s2:s3表示以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维零矩阵,eye(n)生成n维单位阵eye(m,n)生成m*n维单位阵ones(n)生成n维元素全为1的矩阵ones(m,n)生成m*n维元素全为1的矩阵magic(n)生成n阶幻方pascal(n)生成n阶Pascal矩阵diag(a)(1)若a为向量,则生成以向量a为对角线元素的对角矩阵(2)若a为矩阵,提取a的对角线元素(注:得到的是一个列向量,且a可以不是方阵)diag(v,k)生成主对角线上第k条对角线为v的方阵:(注:v为一个行(列)向量,k可以为负值,负值表示主对角线下),矩阵元素的访问和重新赋值例:a=123;456;7,8,9;a(2,1)%显示第二行第一列的元素a(:,2)%显示第二列a(2,:)%显示第二行a(1:2,2:3)%显示第一、二行和第二、三列构成的子式a(2,:)=;%删除第2行a(a5)=1;%将A中所有大于5的元素赋值为1小提示:在MATLAB中,%后的部分表示注释,矩阵变换例:A=123;456;789;triu(A);%提取上三角tril(A);%提取下三角rot90(A);%将A逆时针旋转90度fliplr(A);%左右对称变换flipud(A);%上下对称变换矩阵的运算a+k%矩阵a加常数ka-k%矩阵a减常数ka+b%矩阵a与矩阵b的和,要求维数相同,k*a%常数k乘矩阵aa*k%矩阵a乘常数ka/k%矩阵a除以常数ka-b%矩阵a与矩阵b的差,要求维数相同a*b%矩阵a与矩阵b的正常积,要求维数满足相乘的条件a.*b%Hadamard积,对应元素乘积,要求矩阵形状必须一致k./a%常数k点除矩阵aa./b%矩阵A点除矩阵ba/b%矩阵a右除bab%矩阵a左除ban方阵a自乘n次,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是由特征值所构成的一个对角阵,其它一些矩阵与向量相关的函数:min(x)向量x的元素的最小值max(x)向量x的元素的最大值mean(x)向量x的元素的平均值median(x)向量x的元素的中位数std(x)向量x的元素的标准差var(x)方差range(x)极差,其它一些矩阵与向量相关的函数:mode(x)众数skewness(X)偏度kurtosis(X)峰度diff(x)向量x的相邻元素的差sort(x)对向量x的元素进行排序hist(x)绘制向量x的直方图,length(x)向量x的元素个数norm(x)向量x到原点的欧氏(Euclidean)距离sum(x)向量x的元素总和prod(x)向量x的元素总乘积cumsum(x)向量x的累积元素总和cumprod(x)向量x的累积元素总乘积dot(x,y)向量x和y的内积cross(x,y)向量x和y的外积,MATLAB之微积分的相关运算,求极限(1)单变量函数极限:limit(fun,x,x0)函数fun在x=x0处的极限limit(fun,x,x0,left或right)函数fun在x=x0处左或右极限例:,Matlab代码:symsxab;%声明三个符号变量f=x*(1+a/x)x*sin(b/x);%定义函数fL=limit(f,x,inf),(2)多变量函数极限:limit(limit(fun,x,x0),y,y0)或limit(limit(f,y,y0),x,x0)二元函数fun在x=x0,y=y0处的极限例:,Matlab代码:symsxya;f=exp(-1/(y2+x2)*sin(x)2/x2*(1+1/y2)(x+a2*y2);limit(limit(f,x,1/sqrt(y),y,inf),求导数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阶偏导数例:,Matlab代码:symsxy;y=x2*sin(x);diff(y,x,10),Matlab代码:symsxy;z=x2+y2+2*x*y;diff(diff(z,x,1),y,1),求积分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代码:symsxyz;f=x*y*z;int(int(int(f,z,0,x*y),y,0,x),x,0,1),代数方程的求解roots(p)多项式求根,其中:p为多项式的系数,按降幂方式形成的行向量例:Matlab代码:p=-25.2-4.87029.81;roots(p)fzero(f,x0)求函数f在x0附近零点;若x0为一个二维向量a,b,则变成求函数f在区间(a,b)内的零点例:Matlab代码:x0=1,2;symsx;f=exp(x)-x-3;fzero(f,x0),solve(f1,f2,f3,)求由f1,f2,f3构成的代数方程组的解,例,Matlab代码symsxyz;f1=x+y+z=2;f2=2*x+y+2*z=2;f3=2*x+2*y+z=5;x,y,z=solve(f1,f2,f3);,Taylor展开taylor(f,x,k)按x=0进行Taylor幂级数展开:(注:k表示显示前k项,常数项,x的一次项,x的二次项,x的k-1次项)taylor(f,x,k,a)按x=a进行Taylor幂级数展开例:,Matlab代码symsxy;y=sin(x);taylor(y,x,5)Taylor(y,x,5,1),级数求和symsum(fk,k,k0,kn)级数求和例,例,Matlab代码:symsk;symsum(-1)(k-1)/k,k,1,Inf),Matlab代码:symsk;symsum(k2,k,1,50);,MATLAB之绘图,直角坐标画二维图plot(x,y)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据,绘图时相当于在屏幕上一个接一个地描点。例:在0x2区间内,绘制曲线,Matlab代码:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*cos(4*pi*x);%注意一定是.*而不是*plot(x,y),由参数方程所确定的函数的二维图,例:绘制抛物方程的图形,Matlab程序代码:t=0:0.01:0.2;x=t;y=t-1/2*9.8*t2;plot(x,y),一个坐标系下画多条曲线,1.plot(x1,y1,x2,y2,x3,y3xn,yn)2.plot(x,y)函数结合holdon命令例如:在0x4区间内,绘制曲线如下两条曲线:,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);holdon;y2=cos(x);plot(x,y2),图的修饰,plot(x1,y1,选项1,x2,y2,选项2,xn,yn,选项n)颜色选项节点选项线形选项bblue.point-solidggreenocircle:dottedrredxx-mark-.dashdotccyan+plus-dashedmmagenta*staryyellowssquarekblackddiamond选项见:helpplot也可以在图像上直接修改,Matlab代码:t=0:0.1:2*pi;y=sin(t);plot(t,y,bo:)plot(t,y,y*:)plot(t,y,r+-),subplot(m,n,p)该函数将当前图形窗口分成mn个绘图区,即每行n个,共m行,区号按行优先编号,且选定第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),极坐标绘图:polar(theta,rho,选项)theta为极角,rho为极径,例:画如下两条曲线,Matlab程序代码:theta=0:0.01:6*pi;rho=5*sin(4*theta/3);polar(theta,rho)figure;%新建一个图片窗口rho=5*sin(theta/3);polar(theta,rho),隐函数绘图:(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和yminyymax绘制f(x,y)=0的图形。ezplot(f,a,b):在区间axb和ayb绘制f(x,y)=0的图形。,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,-44-55)ezplot(x3+y3-5*x*y+1/5,-44),参数方程绘图:参数方程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)的图形。,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),参数方程绘图:参数方程x=x(t)和y=y(t),ezplot函数的调用格式为:ezplot(x,y):在默认区间0t2绘制x=x(t)和y=y(t)的图形。ezplot(x,y,tmin,tmax):在区间tmintM-File,Matlab程序代码:functionoutput=primenum(k)output=0;fori=1:kifisprime(i)output=output+1;endend,例:求100以内素数的个数,调用primenum(10),Matlab程序代码:functionsum,prod=myfun(v)sum=0;prod=1;len=length(v);fori=1:lensum=sum+v(i);prod=prod*v(i);endend,例:求向量V中各个元素的和与积,调用v=1,3,4,6;a,b=myfun(v),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=135710152025303540;,y=924.339.653.5572.9102.6129.6153175.5195.3208.8;,1.输入数据,2.启动曲线拟合工具箱,Start-toolboxes-curvefitting,3、进入曲线拟合工具箱界面“CurveFittingtool”(1)点击“Data”按

温馨提示

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

评论

0/150

提交评论