欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第二讲 MATLAB的数值计算.ppt

    • 资源ID:1870351       资源大小:267.50KB        全文页数:60页
    • 资源格式: PPT        下载积分:25金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要25金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第二讲 MATLAB的数值计算.ppt

    第三讲 MATLAB的符号运算, matlab 不仅具有数值运算功能,还开发了在matlab环境下实现符号计算的工具包SymbolicMath Toolbox,符号运算的功能,符号表达式、符号矩阵的创建符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程,一、符号运算的基本操作,什么是符号运算与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。,特点: 运算对象可以是没赋值的符号变量 可以获得任意精度的解Symbolic Math Toolbox符号运算工具包通过调用Maple软件实现符号计算的。maple软件主要功能是符号运算, 它占据符号软件的主导地位。,2. 符号变量与符号表达式,f = 'sin(x)+5x'f 符号变量名sin(x)+5x 符号表达式' ' 符号标识符号表达式一定要用' ' 单引 号括起来matlab才能识别。,' ' 的内容可以是符号表达式,也可以是符号方程。例: f1='ax2+bx+c' 二次三项式 f2= 'ax2+bx+c=0' 方程 f3='Dy+y2=1' 微分方程符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算,3.符号矩阵的创建 数值矩阵A=1,2;3,4 A=a,b;c,d 不识别用matlab函数sym创建矩阵(symbolic的缩写)命令格式:A=sym(' ') 符号矩阵内容同数值矩阵 需用sym指令定义 需用' '标识,例如:A = sym('a , 2*b ; 3*a , 0') A = a, 2*b 3*a, 0 这就完成了一个符号矩阵的创建。注意:符号矩阵的每一行的两端都有方 括号,这是与 matlab数值矩阵的一个重要区别。,用字符串直接创建矩阵,模仿matlab数值矩阵的创建方法 需保证同一列中各元素字符串有相 同的长度。,例:A =' a,2*b' '3*a, 0' A = a, 2*b 3*a, 0, 符号矩阵的修改,a.直接修改 可用、 键找到所要修改的矩阵,直接修改 b.指令修改 用A1=sym(A,'new') 来修改。 用A1=subs(A, 'new', 'old')来修改 A1=subs(S, 'old' ,'new'),例如:A = a, 2*b 3*a, 0A1=sym(A,2,2, '4*b') A1 = a, 2*b 3*a, 4*b,A(2,2)='4*b'A3 = a, 2*b 3*a, 4*b,A2=subs(A1, 'c', 'b') A2 = a, 2*c 3*a, 4*c,将数值矩阵转化为符号矩阵 函数调用格式:sym(A)A=1/3,2.5;1/0.7,2/5A = 0.3333 2.5000 1.4286 0.4000sym(A)ans = 1/3, 5/210/7, 2/5, 符号矩阵与数值矩阵的转换,将符号矩阵转化为数值矩阵函数调用格式: numeric(A)A = 1/3, 5/210/7, 2/5numeric(A)ans = 0.3333 2.5000 1.4286 0.4000,符号矩阵运算 数值运算中,所有矩阵运算操作指令都比较直观、简单。例如:a=b+c; a=a*b ;A=2*a2+3*a-5等。 而符号运算就不同了,所有涉及符号运算的操作都有专用函数来进行,二、符号运算,符号矩阵运算的函数:symadd(a,d) 符号矩阵的加symsub(a,b) 符号矩阵的减symmul(a,b) 符号矩阵的乘symdiv(a,b) 符号矩阵的除sympow(a,b) 符号矩阵的幂运算symop(a,b) 符号矩阵的综合运算,例1:f= '2*x2+3*x-5' g= 'x2+x-7'h= symadd(f,g)h= 3*x2+4*x-12例2:f='cos(x)'g= ' sin(2*x)'symop(f,'/',g,'+',f,'*',g) ans =cos(x)/sin(2*x)+cos(x)*sin(2*x),例1:f= 2*x2+3*x-5; g= x2+x-7;>> syms x>> f=2*x2+3*x-5; g= x2+x-7;>> h=f+gh = 3*x2+4*x-12例2:f=cos(x);g= sin(2*x);>> syms x>> f=cos(x);g=sin(2*x);>> f/g+f*gans =cos(x)/sin(x)+cos(x)*sin(x),符号运算函数:symsize 求符号矩阵维数charploy 特征多项式determ 符号矩阵行列式的值eigensys 特征值和特征向量inverse 逆矩阵transpose 矩阵的转置jordan 约当标准型simple 符号矩阵简化,2. 任意精度的数学运算,在symbolic中有三种不同的算术运算:数值类型 matlab的浮点算术运算有理数类型 maple的精确符号运算vpa类型 maple的任意精度算术运算,浮点算术运算1/2+1/3 (定义输出格式format long)ans =0.83333333333333符号运算sym(1/2)+(1/3)ans = 5/6 精确解,任意精度算术运算digits(n) 设置可变精度,缺省16位vpa(x,n) 显示可变精度计算digits(25)vpa(1/2+1/3)ans =.8333333333333333333333333,vpa(5/6,40) ans =.8333333333333333333333333333333333333333 a=sym('1/4,exp(1);log(3),3/7')a = 1/4,exp(1)log(3), 3/7vpa(a,10)ans =.2500000000, 2.7182818281.098612289, .4285714286,diff(f) 对缺省变量求微分diff(f,v) 对指定变量v求微分diff(f,v,n) 对指定变量v求n阶微分int(f) 对f表达式的缺省变量求积分int(f,v) 对f表达式的v变量求积分int(f,v,a,b) 对f表达式的v变量在(a,b) 区间求定积分,3. 符号微积分与积分变换,int('被积表达式','积分变量','积分上限', '积分下限') 定积分,缺省时为不定积分,mtaylor(f,n) 泰勒级数展开ztrans(f) Z变换Invztrans(f) 反Z变换Laplace(f) 拉氏变换Invlaplace(f) 反拉氏变换fourier(f) 付氏变换Invfourier(f) 反付氏变换,例1.计算二重不定积分,F=int(int('x*exp(-x*y)','x'),'y')F= 1/y*exp(-x*y)例2.计算 f='x*exp(-x*10)'的Z变换 F=ztrans(f) F= z*exp(-10)/(z-exp(-10)2,>> syms x y>> F=int(int(x*exp(-x*y),x),y)F =1/y*exp(-x*y)>> syms x>> f=x*exp(-x*10);>> F=ztrans(f)>> F=ztrans(x*exp(-x*10);F =z*exp(-10)/(z-exp(-10)2,例3. 计算指数函数eAt。用拉氏反变换法计算eAt的公式为: eAt = L-1(SI-A)-1系统矩阵A=,结果:,>> a=0 1;-2 -3;>> syms s>> b=(s*eye(2)-a)b = s, -1 2, s+3>> B=inv(b) (s+3)/(s2+3*s+2), 1/(s2+3*s+2) -2/(s2+3*s+2), s/(s2+3*s+2),>> b11=ilaplace(sym(b,1,1);b(1,1)=b11;>> b12=ilaplace(sym(b,1,2);b(1,2)=b12;>> b21=ilaplace(sym(b,2,1);b(2,1)=b21;>> b22=ilaplace(sym(b,2,2);b(2,2)=b22;>> bb = -exp(-2*t)+2*exp(-t), exp(-t)-exp(-2*t) -2*exp(-t)+2*exp(-2*t), 2*exp(-2*t)-exp(-t),4.符号代数方程求解,matlab符号运算能够解一般的线性方程、非线性方程及一般的代数方程、代数方程组。当方程组不存在符号解时,又无其他自由参数,则给出数值解。命令格式:solve(f) 求一个方程的解Solve(f1,f2, fn) 求n个方程的解,例1. f = ax2+bx+c 求解f='a*x2+b*x+c' solve(f) 对缺省变量x求解ans =1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2-4*a*c)(1/2),计算机格式,一般格式,例2. 符号方程cos(x)=sin(x) tan(2*x)=sin(x)求解f1=solve('cos(x)=sin(x)'),f1 =1/4*pi,solve(f , 'b' ) 对指定变量b求解ans =-(a*x2+c)/x,f3= matlab4.2的解 0 pi atan(1/2*(-2*3(1/2)(1/2),1/2+1/2*3(1/2) atan(-1/2*(-2*3(1/2)(1/2),1/2+1/2*3(1/2) atan(1/2*2(1/2)*3(1/4)/(1/2-1/2*3(1/2)+pi -atan(1/2*2(1/2)*3(1/4)/(1/2-1/2*3(1/2)-pi,f2=solve('tan(2*x)=sin(x)')f2 =matlab4.2的解 0acos(1/2+1/2*3(1/2)acos(1/2 -1/2*3(1/2),numeric(f3)ans = 0 3.1416 0 + 0.8314i 0 - 0.8314i 1.9455 -1.9455,numeric(f2)ans = 0 0 + 0.8314i 1.9455 matlab4.2与6.1的对比,例3. 解方程组 x+y+z=1 x-y+z=2 2x-y-z=1g1='x+y+z=1',g2='x-y+z=2',g3='2*x-y-z=1'f=solve(g1,g2,g3)f=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')f =z = 5/6, y = -1/2, x = 2/3,f=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')f = x: 1x1 symf.x ans =2/3 y: 1x1 symf.y ans =-1/2 z: 1x1 symf.z ans =5/6 x,y,z=solve('x+y+z=1','x-y+z=2','2*x-y-z=1') x = 2/3 y =-1/2 z =5/6,5. 符号微分方程求解 用一个函数可以方便地得到微分方程的符号解符号微分方程求解指令:dsolve命令格式:dsolve(f,g)f 微分方程,可多至12个微分方程的求解;g为初始条件默认自变量为 'x',可任意指定自变量't', 'u'等微分方程的各阶导数项以大写字母D表示,y1,y2=dsolve(x1,x2,xn) 返回 微分方程的解,一阶微分方程dsolve('Dx=y','Dy=x','x(0)=0','y(0)=1')ans =x(t) = sin(t), y(t) = cos(t)二阶微分方程dsolve('D2y=-a2*y','y(0)=1','Dy(pi/a)=0')ans =cos(a*x),例3.,y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')ans =exp(-x)*cos(x)+exp(-x)*sin(x)ezplot(y) 方程解y(t)的时间曲线图,求该方程的解,三、maple函数符号运算的扩展,maple是专门进行数学运算的软件工具, 具有超强的符号运算能力,提供了 几乎包括所有数学领域的专用函数matlab依赖于maple的内核与函数库,扩 展了自己的符号运算功能。 matlab还设计了对maple库函数的调用功能使得已有的maple数学功能,可以扩充matlab中,作为自身符号运算能力的扩展。,1. maple内核访问函数,可以访问maple内核的matlab函数: maple 访问maple内核函数 mapleinit maple函数初始化 mpa maple函数定义 mhelp maple函数帮助命令 procread maple函数程序安装,. maple 的调用格式,maple('表达式') 将表达式送至maple内核,返回符号表达式结果。maple ('函数',变量1,变量2) 调用maple函数,传递给定变量。,例1. 展开5阶 bernoulli 多项式,计算 x=3 时bernoulli 数。a=maple('bernoulli(5,x)')a =-1/6*x+5/3*x3+x5-5/2*x4a=maple('bernoulli(5,3)')a =85,例2. 化简三角函数式sin2x+cos2xa=maple('simplify(sin(x)2+cos(x)2);')a =1例4. 求f(t)=e-3tsint的拉式变换f=maple('laplace(exp(-3*t)*sin(t),t,s);')f =1/(s+3)2+1),例4. 寻找二次多项式的完全平方 f (x) = x2+2x+2a=maple('completesquare(x2+2*x+2)')a =completesquare(x2+2*x+2),将工具包装入内存,maple('with(student);')a=maple('completesquare(x2+2*x+2)')a =(x+1)2+1,maple软件中的所有函数,在初始化时并没有完全装入内存,可用readlib指令把库函数读入内存,或用with指令将应用工具包装入内存。调用格式maple('readlib(函数名);')maple('with(工具包名);'),例5.求sin(x2+y2)在x=0,y=0处泰勒级数展开式,8阶截断。maple('mtaylor(sin(x2+y2),x=0,y=0,8)')ans =mtaylor(sin(x2+y2),x = 0, y = 0,8)maple('readlib(mtaylor);')maple('mtaylor(sin(x2+y2),x=0,y=0,8)')ans =x2+y2-1/6*x6-1/2*y2*x4-1/2*y4*x2-1/6*y6,2. mpa maple变量定义,任何一个matlab定义的函数f,可使用mpa语句直接调用,还可把 f 定义成maple变量v。maple的工作空间与matlab工作空间是相互独立的, 所以f 与v是属于不同工作空间中的变量mpa的调用格式: mpa('v',f) mpa v f,f为matlab工作空间中已存在的变量,例. 电磁力计算公式为试I=0.5,x=0.1邻域展开泰勒级数,3阶截断,令常数 ,1.直接调用maple('readlib(mtaylor);')maple('mtaylor(k*I2/x2,I=0.5,x=0.1,3);'),2.定义符号函数f(matlab6.1无map函数)f='k*I2/x2'maple('mtaylor(f,I=0.5,x=0.1,3);')ans =mtaylor(f,I = .5, x = .1,3)mpa('u',f)maple('mtaylor(u,I=0.5,x=0.1,3);')ans =25.*k-.50e3*k*(x-.1)+.10e3*k*(I-.5)+7500.000000000000*k*(x-.1)2+.1e3*k*(I-.5)2-.20e4*k*(I-.5)*(x-.1),注意:matlab符号运算时,可以识别matlab定义的符号变量,但在调用 maple 函数时,需将matlab变量定义为maple变量后,所调用的函数方可识别和执行,3.mhelp maple函数帮助命令, mhelp 是协助检索maple库函数的专用命令调用格式:mhelp 相关词条例如: mhelp intro maple介绍 mhelp maple maple命令格式 mhelp tutorial maple入门 mhelp index maple检索,工具词条函数词条,mhelp index 用于工具包检索,library maple标准库函数packages 应用工具包libmisc 其它库函数statements maple语句描述expressions maple表达式datatypes maple数据格式tables maple表格和阵列procedures maple程序misc maple其它应用,一般帮助文本主要包括以下部分FUNCTION 函数功能说明CALLING SEQUENCE 调用格式PARAMETERS 调用参数说明SYNOPSIS 语法说明EXAMPLES 应用举例SEE ALSO 相关词条,4.maple库函数maple库函数共分四类maple内部函数:驻留函数任何条件下都可调用 mhelp indexinternal maple的外部函数读库定义部分: 调用时先执行读库命令,因此与内部函 数一样可直接调用 mhelp indexexternal, maple的外部函数读库装入部分 maple其余外部函数需要在使用前执行maple('readlib(函数名);')命令将其装入内存 mhelp indexlibmisc maple的惰性函数不能直接调用,还需一些函数如mod,evala,evalf 等才能调用 mhelp indexintert,小 结 本节介绍了matlab语言的符号运算功能,通过学习应该掌握:掌握如何创建、修改符号矩阵掌握符号运算功能maple函数调用mhelp检索,

    注意事项

    本文(第二讲 MATLAB的数值计算.ppt)为本站会员(创****公)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开