资源预览内容
第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
第9页 / 共47页
第10页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1Matlab软件的数值计算方法本章的讨论重点:本章的讨论重点:如何利用现有的如何利用现有的Matlab数值计算资源,以数值计算资源,以最简明的方式阐述理论数学、数值数学和最简明的方式阐述理论数学、数值数学和 Matlab 计算命令之间的内在联系、使用方计算命令之间的内在联系、使用方法与重要技巧;法与重要技巧;对于经过大学数学学习的读者来说,通过对于经过大学数学学习的读者来说,通过本章的学习,可以领悟到本章的学习,可以领悟到Matlab 精良完善精良完善的计算命令在数据计算、处理、表达等方的计算命令在数据计算、处理、表达等方面的独特之处,掌握了这些基本知识,对面的独特之处,掌握了这些基本知识,对于解决电气工程实际问题的分析与描述,于解决电气工程实际问题的分析与描述,是必不可少的。是必不可少的。 概述概述 2Matlab软件的数值计算方法2-1-1数值数值 在在Matlab中,数值多采用十进制表示法,中,数值多采用十进制表示法,如数值如数值3,-99,0.01,在,在Matlab的命令窗的命令窗口中或者编辑器窗口中可以直接输入它们,口中或者编辑器窗口中可以直接输入它们,这与其它高级软件没有两样,在这与其它高级软件没有两样,在Matlab的的命令窗口中或者编辑器窗口中需要按照以命令窗口中或者编辑器窗口中需要按照以下形式进行输入或者录入:下形式进行输入或者录入:-1.9e-6、5.41e13。3Matlab软件的数值计算方法2-1-2语句与变量语句与变量 最常用的格式为:变量最常用的格式为:变量=表达式表达式;或直接简化为:表达式或直接简化为:表达式;通过等于符号通过等于符号“=”将表达式的值赋予变量。将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则只要在语句之如果希望结果不被显示,则只要在语句之后加上一个分号(后加上一个分号(;)即可。此时尽管结果)即可。此时尽管结果没有显示,但它依然被赋值并在没有显示,但它依然被赋值并在Matlab工工作空间中分配了内存。作空间中分配了内存。 4Matlab软件的数值计算方法变量命名规则变量命名规则 (1)变量名第一个字符必须是英文字母;)变量名第一个字符必须是英文字母;(2)变量名不得包含空格、标点,但可以)变量名不得包含空格、标点,但可以包含下划线;如包含下划线;如A_1,a_54等。等。(3)变量的名字不能超过)变量的名字不能超过19个字符;个字符;(4)变量的名是要区分字母的大小写的。)变量的名是要区分字母的大小写的。例如:例如:A1、a1代表不同变量。代表不同变量。 5Matlab软件的数值计算方法Matlab默认的预定义变量默认的预定义变量 预定义变量含义预定义变量含义ans计算结果的缺省变量名NaN或nan非数,如0/0eps浮点计算的相对精度nargin函数输入宗量数目Inf或inf无穷大,如1/0nargout函数输出宗量数目i或j虚单元i=j=sqrt(-1)realmax最大正实数pirealmin最小正实数6Matlab软件的数值计算方法2-1-3运算符与表达式运算符与表达式 几种基本数学运算符号,如:几种基本数学运算符号,如:加(加(+)、减()、减(-)、乘()、乘(*)、左除)、左除(/)、右除()、右除()和幂次运算()和幂次运算()等数)等数学符号。学符号。在在Matlab中,用中,用“/”代表左除运算,即代表左除运算,即常用除法;用常用除法;用 “”表示右除运算表示右除运算 7Matlab软件的数值计算方法表达式表达式 (1)Matlab表达式的规则与一般手写算式基本表达式的规则与一般手写算式基本相同:相同:(2)表达式由变量名、运算符和函数名组成;)表达式由变量名、运算符和函数名组成;(3)表达式按优先级自左向右运算,括号可改)表达式按优先级自左向右运算,括号可改变优先级顺序;变优先级顺序;(4)优先级顺序由高到低为:指数运算、乘除)优先级顺序由高到低为:指数运算、乘除运算、加减运算;运算、加减运算;(5)表达式中赋值符)表达式中赋值符“=”和运算符两侧允许有和运算符两侧允许有空格。空格。 8Matlab软件的数值计算方法2-2变量的运算变量的运算 a+b %求取求取a和和b之和之和a-b %求取求取a和和b之差之差a/b %求取矩阵求取矩阵a除以矩阵除以矩阵bab %求取矩阵求取矩阵b除以矩阵除以矩阵aa*b %求取矩阵求取矩阵a和矩阵和矩阵b之积之积a.*b %求取矩阵求取矩阵a和矩阵和矩阵b之点乘之点乘a3 %求取矩阵求取矩阵a的三次方的三次方a.3 %求取矩阵求取矩阵a中各个元素的三次方中各个元素的三次方a./b %求取矩阵求取矩阵a中各个元素除以矩阵中各个元素除以矩阵b各个元素各个元素a.b %求取矩阵求取矩阵b中各个元素除以矩阵中各个元素除以矩阵a各个元素各个元素9Matlab软件的数值计算方法2-2-2逻辑运算介绍逻辑运算介绍 A & B表示逻辑与运算;表示逻辑与运算;A | B表示逻辑或运算;表示逻辑或运算;A 表示逻辑非运算。表示逻辑非运算。xor(A,B)表示逻辑异或运算。表示逻辑异或运算。 在处理逻辑运算时,运算元只有两个值即在处理逻辑运算时,运算元只有两个值即0和和1,所以,所以如果指定的数为如果指定的数为0,MATLAB认为其为认为其为0,而任何数不等于,而任何数不等于0,则认为是,则认为是1。 10Matlab软件的数值计算方法2-2-2逻辑运算介绍逻辑运算介绍 A=5 -4 0 -0.5,B=0 1 0 9& 与 A&B=0 1 0 1 A&1=1 1 0 1| 或 A|B=1 1 0 1 A|1=1 1 1 1 非 A=0 0 1 0 1=011Matlab软件的数值计算方法2-2-3关系表达式与表达式函数关系表达式与表达式函数Matlab 中有以下关系:大于(中有以下关系:大于()、小于)、小于(= (大于等于)和(大于等于)和 clear;clc;close; x=linspace(0, 10, 100); % 在在0和和10之间,之间,均匀产生均匀产生100个数据个数据 y=sin(x) ; % 计算正弦计算正弦值值 z=(y=0).*y ; % 将负的正将负的正弦值置为弦值置为0 z=z+0.5*(y z=(x plot(x, z); xlabel( x ),ylabel( z=f(x) ),title( 非连续信号非连续信号 )13Matlab软件的数值计算方法14Matlab软件的数值计算方法举例举例2 clear;clc;close; x=linspace(0, 10, 100); %均匀产生均匀产生100数据数据 y=sin(x) ; %计算正计算正弦值弦值 z=(y=0).*y ; %将负的正弦值将负的正弦值置为置为0 d=(y c=(z+0.5).*(y0) ; %当当y0时,时,c等于等于z+0.5 plot(x, d, - ) hold on; plot(x,c, -. ); hold on plot(x,y, :); xlabel( x ); ylabel( d,c,y );title( 非连续信号非连续信号 );legend(d, c, y); 15Matlab软件的数值计算方法16Matlab软件的数值计算方法半波整流器电路的仿真半波整流器电路的仿真 clear;clc,clf% clf可以清除图形窗口中的图形可以清除图形窗口中的图形pi=3.14159265;vp=10;%循环命令循环命令 for i=1:1:101; t(i)=(i-1)*6*pi/100; vi(i)=vp*sin(t(i); if vi(i)= 0.7 vo(i)=vi(i)-0.7; else vo(i)=0; end end plot(t,vi, .-,t,vo,+); grid on; axis(0 6*pi -vp vp); xlabel(t); ylabel(vin 与与 vout); title(半波整流器半波整流器); legend(原波形原波形, 整流波形整流波形);17Matlab软件的数值计算方法18Matlab软件的数值计算方法全波整流器电路的仿真全波整流器电路的仿真 clear;clc,clfpi=3.14159265; vp=10;%循环命令循环命令 for i=1:1:301; t(i)=(i-1)*6*pi/300; vi(i)=vp*sin(t(i); if vi(i) 0.7 vo(i)=vi(i)-0.7; else vo(i)=0; end if vi(i) = -0.7 vo(i)=abs(vi(i)+0.7); end end plot(t,vi, .-,t,vo,+); grid on; axis(0 6*pi -vp vp); xlabel(t); ylabel(vin 与与 vout); title(全波整流器全波整流器); legend(原波形原波形, 全波整流波形全波整流波形); 19Matlab软件的数值计算方法20Matlab软件的数值计算方法削顶整流正弦半波的计算和图形绘削顶整流正弦半波的计算和图形绘制方法制方法t=linspace(0,3*pi,600);y=100*sin(t);%产生正弦波产生正弦波 z1=(t2*pi).*y;%获得整流半波获得整流半波w=(tpi/3&t7*pi/3&t help interp1或者或者 help interp2或或者者 help interp3 31Matlab软件的数值计算方法格式之一:格式之一:yi=interp1(xs,ys,xi,method) 一维数据插值(表格查找)。该命令对原一维数据插值(表格查找)。该命令对原始数据点(始数据点(xs,ys)之间计算内插值。它找)之间计算内插值。它找出一元函数出一元函数f(x)在中间点的数值即插值数据在中间点的数值即插值数据点(点(xi,yi)。其中函数)。其中函数f(x)由所给数据决定。由所给数据决定。 32Matlab软件的数值计算方法method说明说明邻近点插值邻近点插值(method = nearest):这种插值方法将插:这种插值方法将插值结果的值设置为最近的数据点的值。值结果的值设置为最近的数据点的值。线性插值线性插值 (methodlinear),这种插值方法在两,这种插值方法在两个数据点之间连接直线,根据给定的插值点计算出它个数据点之间连接直线,根据给定的插值点计算出它们在直线上的值,作为插值结果,该方法是们在直线上的值,作为插值结果,该方法是interp1命令的缺省方法。命令的缺省方法。三次样条插值三次样条插值(methodspline):这种插值方法:这种插值方法通过数据点拟合出三次样条曲线,根据给定的插值点通过数据点拟合出三次样条曲线,根据给定的插值点计算出它们在曲线上的值,作为插值结果。输出结果计算出它们在曲线上的值,作为插值结果。输出结果也最平滑;也最平滑;立方插值立方插值(methodcubic):这种插值方法通过分:这种插值方法通过分段立方段立方Hermite插值方法计算插值结果。该方法最占插值方法计算插值结果。该方法最占内存,输出结果与三次样条插值内存,输出结果与三次样条插值spline差不多。差不多。33Matlab软件的数值计算方法格式之二:格式之二:yi = interp1(xs,ys,xi) 说明:返回插值向量说明:返回插值向量yi,每一元素对应于参,每一元素对应于参量量xi,同时由向量,同时由向量xs与与ys的内插值决定。的内插值决定。参量参量xs指定数据指定数据ys的点。若的点。若ys为一矩阵,为一矩阵,则按则按ys的每列计算。的每列计算。yi是阶数为是阶数为length(xi)*size(ys,2)的输出矩阵。的输出矩阵。格式之三:格式之三:yi = interp1(ys,xi)说明:假定说明:假定xs=1:N,其中,其中N为向量为向量ys的长的长度,或者为矩阵度,或者为矩阵ys的行数。的行数。 34Matlab软件的数值计算方法多项式插值举例多项式插值举例 ys=0, 0.8, 0.7, .6 .9, 1, 0, 0.1, -0.3, -0.7, -0.9, -0.2, -.1, 0, -.4, -.7, 0, 1; %已有的样本点已有的样本点ysxs=0:length(ys)-1; %已有的样本点已有的样本点xsx=0:0.1:length(ys)-1; %新的插值样本点新的插值样本点xiy1=interp1(xs,ys,x,nearest); %使用使用nearest方法插值方法插值产生新的样本点产生新的样本点yi1y2=interp1(xs,ys,x,linear); %使用使用linear方法插值产方法插值产生新的样本点生新的样本点yi2y3=interp1(xs,ys,x,spline); %使用使用spline方法插值产方法插值产生新的样本点生新的样本点yi3y4=interp1(xs,ys,x,cubic); %使用使用cubic方法插值产生方法插值产生新的样本点新的样本点yi4plot(xs,ys,+k,x,y1,:r,x,y2,-m,x,y3,-c,x,y4,-b); %分别绘制不同方法插值产生新的多项式分别绘制不同方法插值产生新的多项式曲线曲线legend(sampled point,nearest,linear,spline,cubic);title(多项式插值多项式插值) 35Matlab软件的数值计算方法36Matlab软件的数值计算方法2-5 数据处理与分析方法数据处理与分析方法 命令格式:命令格式:plot(x1,y1,option1,x2,y2,option2,)说明:说明:x1,y1给出的数据分别为给出的数据分别为x,y轴坐标轴坐标值,值,option1为选项参数,以逐点连折线的为选项参数,以逐点连折线的方式绘制第一个二维图形;同时类似地绘方式绘制第一个二维图形;同时类似地绘制第二个二维图形,制第二个二维图形,等。等。 37Matlab软件的数值计算方法fplot的命令格式的命令格式 命令格式:命令格式:fplot(Fun, XMIN XMAX)说明:它用于绘制类似函数说明:它用于绘制类似函数fun=f(x)形式形式的曲线(即一元函数),只需指明横坐标的曲线(即一元函数),只需指明横坐标x的取值范围的取值范围XMIN XMAX即可。即可。 38Matlab软件的数值计算方法ezplot的命令格式的命令格式 命令格式:命令格式:ezplot(f,min,max) 说明:用于绘制函数形式为说明:用于绘制函数形式为f = f(x)在自变在自变量量x为为min x max范围时的曲线。范围时的曲线。命令格式:命令格式:ezplot(f,xmin,xmax,ymin,ymax) 说明:在平面矩形区域说明:在平面矩形区域xminxxmax, yminy ymax上画出函数上画出函数f(x,y)=0的图的图形。形。 39Matlab软件的数值计算方法ezplot3的命令格式的命令格式 命令格式命令格式(1):):ezplot3(x,y,z)说明:在缺省的范围说明:在缺省的范围0t2内画空间参数形内画空间参数形式的曲线式的曲线x=x(t)、y=y(t)与与z=z(t)的图形。的图形。命令格式(命令格式(2):):ezplot3(x,y,z,tmin,tmax) 说明:在指定的范围说明:在指定的范围tmin t tmax内画内画空间参数形式为空间参数形式为x=x(t)、y=y(t)与与z=z(t)的的曲线。曲线。40Matlab软件的数值计算方法subplot的命令格式的命令格式 命令格式:命令格式:subplot(mnk)或者或者subplot(m,n,k)说明:它表示分割图形显示窗口,说明:它表示分割图形显示窗口,m表示上表示上下分割个数,下分割个数,n表示左右分割个数,表示左右分割个数,k为子为子图编号。图编号。 41Matlab软件的数值计算方法分割图形命令使用方法举例分割图形命令使用方法举例subplot(2,2,1), fplot(humps,0, 1); title(图形图形1)f = inline(abs(exp(-j*x*(0:9)*ones(10,1);subplot(2,2,2), fplot(f,0, 2*pi); title(图形图形2)subplot(2,2,3), fplot(tan(x),sin(x),cos(x),2*pi*-1, 1, -1, 1); title(图形图形3)subplot(2,2,4), fplot(sin(1 ./ x), 0.01, 0.1,1e-3); title(图形图形4)42Matlab软件的数值计算方法43Matlab软件的数值计算方法方程(组)求解方程(组)求解 solve 的命令格式:的命令格式:命令格式(命令格式(1):):g=solve (eqn)说明:它表示用来计算单一的方程,说明:它表示用来计算单一的方程,eqn表表示输入的方程,示输入的方程,g为输出方程的解。为输出方程的解。命令格式(命令格式(2):):g=solve (eqn, var)说明:它表示用来计算单一的方程,说明:它表示用来计算单一的方程,eqn表表示输入的方程,示输入的方程,g为输出方程的解,为输出方程的解,var用用来指明待求变量。来指明待求变量。 44Matlab软件的数值计算方法接前接前命令格式命令格式(1):):g=solve (eqn1,eqn2,.,eqnN)说明:它表示用来计算方程组,说明:它表示用来计算方程组,eqn1,eqn2,.,eqnN为输入的方程组,为输入的方程组,g为输出方程组的解。为输出方程组的解。命令格式(命令格式(2):):g=solve (eqn1,eqn2,.,eqnN,var1,var2,.,varN)说明:它表示用来计算方程组,说明:它表示用来计算方程组,eqn1,eqn2,.,eqnN为输入的方程组,为输入的方程组,g为输出方程组的解,为输出方程组的解,var1,var2,.,varN用用来指明每个方程的待求变量。来指明每个方程的待求变量。 45Matlab软件的数值计算方法常用于信号处理方面的命令函数常用于信号处理方面的命令函数 命令函数描述命令函数描述conv卷积conv22维卷积fft快速傅立叶变换fft22维快速傅立叶变换ifft快速傅立叶反变换ifft22维快速傅立叶反变换filter离散时间滤波器filter22维离散时间滤波器abs幅值angle四个象限的相角unwrap在360边界清除相角突变nextpow22的下一个较高幂次fftshift把FFT结果平移到负频率上46Matlab软件的数值计算方法谢谢!谢谢!谢谢!谢谢!47Matlab软件的数值计算方法
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号