matlab第二讲数值计算和符号计算.ppt

(40页)

'matlab第二讲数值计算和符号计算.ppt'
Matlab基础应用*第二讲 数值计算和符号运算Matlab基础应用*1.数值计算1.1 矩阵和数组基础创建矩阵元素标识矩阵操作矩阵函数1.2 矩阵和数组的计算Matlab基础应用*1.3 多项式运算 MATLAB语言把多项式表达成一个行向量,该向量中的元素是按降幂排列多项式各项系数的,如果缺某次幂项,则该次幂项系数为0。 f(x)=anxn+an-1xn-1+…… a1x+a0 用行向量 p=[an an-1 …… a1 a0]表示。多项式 行向量Matlab基础应用*可用polyval函数,计算多项式在变量为特定值的结果。1.3.1 多项式求值例2:计算x=0:0.5:3时,p(x)=x3+21x2+20x值。解:>>p1=[1 21 20 0];>>x=0:0.5:3;>>polyval(p1,x) 0 15.3750 42.0000 80.6250 132.0000 196.8750 276.0000Matlab基础应用*1.3.2多项式求根 ---求方程的解例3:p(x)=x3-6x2-72x-27 在MATLAB利用函数:roots解: >>p=[1 -6 -72 -27] >>r=roots(p) r =12.1229 -5.7345 -0.3884Matlab基础应用*1.3.3 部分分式展开利用residue函数来实现部分分式展开。语法:[r,p,k]=residue(B,A) 其中:B,A分别为分子、分母多项式系数行向量; r为[r1,…rn]留数行向量; p为[p1…pn]极点行向量; k为直项行向量。Matlab基础应用*1.3.4 多项式乘除运算多项式的乘法语法:p=conv(p1,p2)说明:p是多项式p1和p2的乘积多项式。多项式的除法语法:[q,r]=deconv(p1,p2)说明:p1被p2除,商为多项式q,余数式为r。Matlab基础应用*1.3.4 多项式乘除运算(续)例4:a(x)=x2+2x+3; b(x)=4x2+5x;求c=a(x)*b(x)。解:>>a=[1 2 3];b=[4 5 0];>>c=conv(a,b)c = 4 13 22 15 0>>[d,r]=deconv(c,a)d = 4 5 0r = 0 0 0 0 0Matlab基础应用*(1)字符串用字符数组来存储,以单引号‘ ’来界定。(2)常见的字符串函数: length(str):计算字符串的长度; double(str):查看字符串的ASCII码; char(x):将ASCII码转换成字符串形式; strcmp(x,y):比较两字符串是否相同; strcat(s1,s2,…):字符串级连函数; findstr(x,x1):查找x中是否有x1;(3)执行字符串: eval(str)命令 例1:str1=‘a=2*3’; eval(str1) a=61.4 字符串Matlab基础应用*(1)元胞数组的基本单元是元胞,每个元胞可存放不同类型(矩阵、数组、字符串等)的数据,以{ }来界定。(2)元胞数组的创建: 方法1:直接创建 如:A={‘THIS’,[3 4];ones(3),{‘ONE’,‘TWO’}} 方法2:由各元胞创建 如:A(1,1)={‘THIS’} A(1,2)={[3 4]} A(2,1)={ones(3)} A(2,2)={{‘ONE’,‘TWO’}} (3)元胞数组元素内容的获取: X=A{2,1} X=[1 1 1; 1 1 1; 1 1 1] 1.5 元胞数组Matlab基础应用*(1)结构数组的基本组成是结构,每个结构都包含某一对象的多个域,以‘.’来标识域。(2)结构数组的创建: 方法1:TU(1)=struct(‘name’,‘曲线1’,‘color’,’red’,…) 方法2:TU(1).name=‘曲线1’; TU(1).color=‘red’ TU(1).shape=‘sin’; TU(1).position=[0 pi] TU(2).name=‘曲线2’; TU(2).color=‘blue’ TU(2).shape=‘cos’; TU(2).position=[0 2*pi](3)结构数组元素内容的获取:用‘.’号来获取 X=TU(2).shape X=cos1.6 结构数组Matlab基础应用*1.7 数据分析遵循的原则: (1)如果输入是向量,则按整个向量进行 计算。 (2)如果输入的是矩阵,则按列进行运算。 因此:一定要将需要分析的数据按列进行分类。若已有的矩阵是按行进行分类的,可用矩阵的旋转使矩阵变成按列进行分类.Matlab基础应用*函数名功能max(X)矩阵中各列的最大值。min(X)矩阵中各列最小值。mean(X)矩阵中各列平均值。std(X)矩阵中各列标准差,指各元素与该列平均值(mean)之差的平方和开方。median(X)矩阵中各列的中间元素。var(X)矩阵中各列的方差。C=cov(X)矩阵中各列间的协方差。[S,k]=sort(X,n)沿第n维按模增大重新排序,k为S元素的原位置。1.7.1数据统计和相关分析Matlab基础应用*函数名功能diff(X,m,n)沿第n维求第m阶列向差分。差分是求相邻行(列)之间的差,结果会减少一行(列)[fx,fy]=gradient(Z)对Z求x、y方向的数值梯度。sum(X)矩阵各列元素的和。cumsum(X,n)沿第n维求累计和cumprod(X,n)沿第n维求累计乘积trapz(x,y)梯形法求积分近似于求元素和,把相邻两点数据的平均值乘以步长表示面积。x为自变量,y为函数。cumtrapz(x,y,n)用梯形法沿第n维求函数y对自变量x累计积分。1.7.2 差分与积分Matlab基础应用*1.7.3 卷积和快速傅立叶变换--离散序列卷积Conv: 计算向量的卷积。 conv2:计算二维(矩阵或二维数组)卷积。deconv:解卷积运算。 快速傅立叶变换 fft:一维快速傅立叶变换。 ifft:一维快速傅立叶逆变换。Matlab基础应用*课程导入求半径为5的圆的面积数值运算: >>r=5 >>s=pi*r^2 s = 78.5398如果要求求解。省略部分。略时按digits给定的 精度Matlab基础应用*>>a1=2/3a1= 0.6667 %数值型>>a2=sym(‘2/3’)a2=2/3>>digitsdigits=32 %默认的32位有理数型vpa(a2) ans =.66666666666666666666666666666667>>a3=vpa(‘2/3’,15)a3=0.666666666666667 %VPA型例6:Matlab基础应用*2.2.5 数值对象与符号对象的相互转换将数值对象转化为符号对象 格式:sym(s)或vpa(s),其中s为数值对象 例7:>> A = [2.5,1.8;1/1.6,3/5] >> B = sym(A)或B = vpa(A,n)将符号对象转化为数值对象 格式:numeric(s)或double(s)或eval(s), 其中s为符号对象 例8:>>a1=sym(‘2*sqrt(5)’) >>a2=eval(a1) ans=4.4721Matlab基础应用*2.3.符号表达式的操作(1)当符号表达式中含有多个符号变量时,例如“f=x+y”,则只有一个变量是独立变量,其余的符号变量当作常量来处理。(2)若没有指定自由变量,MATLAB按如下规则选择自由变量:小写i和j不能做自由变量选择自由变量的顺序:首选x,没有x选择字母顺序离x最近的字符变量;若与x距离相同,则在x后面的优先。大写字母比小写字母都靠后函数确定自由变量: 语法:findsym(EXPR,1)2.3.1 自由变量的确定Matlab基础应用*2.3.2 符号表达式的函数操作合并、化简、展开等函数collect(f):将表达式 f中相同幂次的项合并;factor(f):将表达式 f因式分解;simplify(f):利用代数中的函数规则对表达式化简;expand(f):将符号表达式展开成多项式的形式反函数和复合函数finverse(f,v):求指定变量v的函数f(v)的反函数compose(f,g,z):求 f(x)和g(y)的复合函数f(g(z))Matlab基础应用*2.3.3 符号表达式的替换subs函数用来对符号表达式中的符号变量或字符串进行替换,从而化简符号表达式。语法:(1)subs(s) %用给定值替换s中赋值的变量(2)subs(s,'old', 'new') s ——为符号表达式; old ——为旧符号变量; new ——为新值或表达式;Matlab基础应用*用subs函数对符号表达式 进行替换。例9:>>f=sym(‘(x+y)^2+3*(x+y)+5’)>>x=5; >>f1=subs(f) f1 = (5+y)^2+3*(5+y)+5 >>f2=subs(f,’x+y’,’z’) f2 = z^2+3*z+5 Matlab基础应用*2.4 符号方程求解代数方程代数方程的求解由函数solve实现:语法:solve(f) 求解符号方程f solve(f1,…,fn) 求解由f1,…,fn组成的代数方程组 常微分方程使用函数dsolve来求解常微分方程语法: dsolve(‘eq’, ‘cond’, ’v‘) dsolve('eq1, eq2,…', 'cond1','cond2', ...', 'v')Matlab基础应用*例10:1.求代数方程a*x*x+b*x+c=0的解>> f=sym('a*x*x+b*x+c=0')>>solve(f) 2.求微分方程y‘=x的通解,指定x为自由变量。>>dsolve( ‘ Dy=x ’,‘x’) %注意y’的输入方法3.求微分方程y’’=1+y’的特解,加初始条件y(0)=1,y’(0)=0>>dsolve(' D2y=1+Dy’, 'y(0)=1’,’Dy(0)=0' )4.微分方程组的通解>>[x,y]=dsolve('Dx=y+x,Dy=2*x') 注意微分表达式和初始条件的输入方法。 Matlab基础应用*2.5 符号微积分符号微分语法:diff(f) ——求f对自由变量的一阶微分diff(f,’v’) ——求f对符号变量v的一阶微分diff(f,’v’,n) ——求f对符号变量v求n阶微分符号积分语法:int(f,’v’) ——求表达式f的对符号变量v的不定积分int(f,’v’,a,b) ——求表达式f的对符号变量v的在(a,b)范围内定积分Matlab基础应用*例11:Matlab基础应用*例12:Matlab基础应用*2.6 符号积分变换F=fourier(f,t,w)——求时域函数f(t)的傅立叶变换F(w)f=ifourier(F,w,t)——求频域函数F(w)的傅立叶反变换 傅立叶(Fourier)变换及其反变换F=laplace (f,t,s)——求时域函数f(t)的拉普拉斯变换f=ilaplace (F,s,t)——求频域函数F的拉普拉斯反变换 拉普拉斯(Laplace)变换及其反变换 Z变换及其反变换F=ztrans(f,n,z)——求时域序列f(n)的Z变换f=iztrans(F,z,n)——求频域序列F的Z反变换Matlab基础应用*MATLAB提供了十多个绘图命令,可以很容易地将符号表达式图形化,这些命令开头为“ez”(1)绘制符号函数的二维曲线语法:ezplot(f,[xmin,xmax],fig)说明:f:是将要画的符号函数;[xmin,xmax]:是自变量范围,默认值为[-2pi,2pi];fig:是指定的图形窗口,默认为当前窗口。(2)绘制符号函数的三维曲线ezplot3(x,y,z,[tmin,tmax],’animate’)说明:x,y,z分别为符号函数x(t),y(t),z(t);[tmin,tmax]为t的范围,可省略;‘animate’用来设置动画的绘制曲线过程,可省略。2.7 符号函数的可视化Matlab基础应用*1.计算f(t)=1/t的Fourier变换F>>syms t w>>F=fourier(1/t,t,w)2.求1/(s+2)的拉普拉斯的反变换>>syms s t>>f1=ilaplace(1/(s+2),s,t)>>ezplot(1/(s+2))3.求函数f=2n的Z变换>>syms n z >>f=2*n>>Fz=ztrans(2*n,n,z)例13:Matlab基础应用*扩展阅读符号极限和符号级数图形化的符号函数计算器Maple接口
关 键 词:
计算 matlab 数值 符号 第二
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:matlab第二讲数值计算和符号计算.ppt
链接地址: https://www.wenku365.com/p-48121246.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开