《第二章Matlab软件的数值计算方法知识课件》由会员分享,可在线阅读,更多相关《第二章Matlab软件的数值计算方法知识课件(47页珍藏版)》请在金锄头文库上搜索。
1、第二章 Matlab软件的数值计算方法,本章的讨论重点: 如何利用现有的Matlab数值计算资源,以最简明的方式阐述理论数学、数值数学和 Matlab 计算命令之间的内在联系、使用方法与重要技巧; 对于经过大学数学学习的读者来说,通过本章的学习,可以领悟到Matlab 精良完善的计算命令在数据计算、处理、表达等方面的独特之处,掌握了这些基本知识,对于解决电气工程实际问题的分析与描述,是必不可少的。,概述,2-1-1数值,在Matlab中,数值多采用十进制表示法,如数值3,-99,0.01,在Matlab的命令窗口中或者编辑器窗口中可以直接输入它们,这与其它高级软件没有两样,在Matlab的命令
2、窗口中或者编辑器窗口中需要按照以下形式进行输入或者录入:-1.9e-6、5.41e13。,变量命名规则,(1)变量名第一个字符必须是英文字母; (2)变量名不得包含空格、标点,但可以包含下划线;如A_1,a_54等。 (3)变量的名字不能超过19个字符; (4)变量的名是要区分字母的大小写的。例如:A1、a1代表不同变量。,Matlab默认的预定义变量,2-1-3运算符与表达式,几种基本数学运算符号,如: 加(+)、减(-)、乘(*)、左除(/)、右除()和幂次运算()等数学符号。 在Matlab中,用“/”代表左除运算,即常用除法;用 “”表示右除运算,表达式,(1)Matlab表达式的规则
3、与一般手写算式基本相同: (2)表达式由变量名、运算符和函数名组成; (3)表达式按优先级自左向右运算,括号可改变优先级顺序; (4)优先级顺序由高到低为:指数运算、乘除运算、加减运算; (5)表达式中赋值符“=”和运算符两侧允许有空格。,2-2变量的运算,a+b %求取a和b之和 a-b %求取a和b之差 a/b %求取矩阵a除以矩阵b ab %求取矩阵b除以矩阵a a*b %求取矩阵a和矩阵b之积 a.*b %求取矩阵a和矩阵b之点乘 a3 %求取矩阵a的三次方 a.3 %求取矩阵a中各个元素的三次方 a./b %求取矩阵a中各个元素除以矩阵b各个元素 a.b %求取矩阵b中各个元素除以矩
4、阵a各个元素,2-2-2逻辑运算介绍,A 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( 非连续信号 ),举例2, clear;clc;close; x=linspace(0, 10, 100); %均匀产生100数据 y=sin(x) ; %计算正弦值 z=(y=0).*y ; %将负的正弦值置为0 d=(y c=(
5、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);,半波整流器电路的仿真,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
6、(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(原波形, 整流波形);,全波整流器电路的仿真,clear;clc,clf pi=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;
7、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(原波形, 全波整流波形);,削顶整流正弦半波的计算和图形绘制方法,t=linspace(0,3*pi,600);y=100*sin(t);%产生正弦波 z1=(t2*pi).*y;%获得整流半波 w=(tpi/3%获得削顶整流半波 subplot(1,3,1),plot(t,y,r:),y
8、label(y),title(正弦曲线) subplot(1,3,2),plot(t,z1,r:), xlabel(t),axis(0 10 -100 100),title(整流半波曲线) subplot(1,3,3),plot(t,z2,b-),axis(0 10 -100 100) , title(削顶整流半波曲线),2-3 Matlab中标点符号说明,2-4 多项式的运算命令函数,多项式相乘的命令函数conv 命令格式:p=conv(p1,p2) 说明:它表示多项式p1和p2相乘。,多项式相除的命令函数deconv,命令格式:q,r=deconv(p1,p2) 说明:它表示多项式p1除以
9、p2,商为q,余数为r,即p1=p2q+r。,多项式因式分解的命令函数residue,命令格式(1):r,p,s=residue(Num,Den) 说明:它用于因式分解,余数(又称留数)返回到向量r=r1,r2,r3rn,极点返回到列向量p=p1,p2,p3pn,常数项返回到k。 命令格式(2):num,den=residue(r,p,k) 说明:它可以将部分分式转化为多项式比,即:num(s)/den(s),产生多项式系数向量的命令函数poly,命令格式为:P=poly(A) 说明:若A是方阵,则行向量P为A的特征多项式的系数;若A是行向量,则将A的元素作为多项式的根来构造多项式,其形式为:
10、f(x)=( x-a1)( x-a2)(x-an),P为构造的多项式的系数向量。,多项式拟合的命令函数,多项式拟合又称为曲线拟合,其目的就是在众多的样本点中进行拟合,找出满足样本点分布的多项式。 在Matlab中,拟合多项式的命令格式为: p=polyfit(x,y,n) 说明:x和y为样本点向量,n为所求多项式的阶数,p为求出的多项式。,拟合多项式举例,clear;clc;close; x=0:0.1:2*pi; %生成样本点x y=sin(x)+0.5*rand(size(x); %生成样本 %点y,通过随机矩阵 p=polyfit(x,y,4) %拟合出多项式4阶 y1=polyval(
11、p,x); %求多项式的值 plot(x,y,+,x,y1,-r)%绘制多项式 title(曲线拟合) %曲线,以验证结果,多项式插值的命令函数,多项式插值所用命令有一维的interp1、二维的interp2、三维的interp3。这些命令分别有不同的方法(method),设计者可以根据需要选择适当的方法,以满足系统不同属性的要求。如需得到有关多项式插值命令的更详细的帮助信息,请读者在Matlab命令窗口中键入以下命令: help interp1或者 help interp2或者 help interp3,格式之一:yi=interp1(xs,ys,xi,method),一维数据插值(表格查找
12、)。该命令对原始数据点(xs,ys)之间计算内插值。它找出一元函数f(x)在中间点的数值即插值数据点(xi,yi)。其中函数f(x)由所给数据决定。,method说明,邻近点插值(method = nearest):这种插值方法将插值结果的值设置为最近的数据点的值。 线性插值 (methodlinear),这种插值方法在两个数据点之间连接直线,根据给定的插值点计算出它们在直线上的值,作为插值结果,该方法是interp1命令的缺省方法。 三次样条插值(methodspline):这种插值方法通过数据点拟合出三次样条曲线,根据给定的插值点计算出它们在曲线上的值,作为插值结果。输出结果也最平滑; 立
13、方插值(methodcubic):这种插值方法通过分段立方Hermite插值方法计算插值结果。该方法最占内存,输出结果与三次样条插值spline差不多。,格式之二: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的行数。,多项式插值举例,ys=0, 0.8, 0.7, .6 .
14、9, 1, 0, 0.1, -0.3, -0.7, -0.9, -0.2, -.1, 0, -.4, -.7, 0, 1; %已有的样本点ys xs=0:length(ys)-1; %已有的样本点xs x=0:0.1:length(ys)-1; %新的插值样本点xi y1=interp1(xs,ys,x,nearest); %使用nearest方法插值产生新的样本点yi1 y2=interp1(xs,ys,x,linear); %使用linear方法插值产生新的样本点yi2 y3=interp1(xs,ys,x,spline); %使用spline方法插值产生新的样本点yi3 y4=inter
15、p1(xs,ys,x,cubic); %使用cubic方法插值产生新的样本点yi4 plot(xs,ys,+k,x,y1,:r,x,y2,-m,x,y3,-c,x,y4,-b); %分别绘制不同方法插值产生新的多项式曲线 legend(sampled point,nearest,linear,spline,cubic);title(多项式插值),2-5 数据处理与分析方法,命令格式:plot(x1,y1,option1,x2,y2,option2,) 说明:x1,y1给出的数据分别为x,y轴坐标值,option1为选项参数,以逐点连折线的方式绘制第一个二维图形;同时类似地绘制第二个二维图形,等
16、。,fplot的命令格式,命令格式:fplot(Fun, XMIN XMAX) 说明:它用于绘制类似函数fun=f(x)形式的曲线(即一元函数),只需指明横坐标x的取值范围XMIN XMAX即可。,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的图形。,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)的曲线。,subplot的命令格