版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三讲 MATLAB的符号运算 matlab 不仅具有数值运算功能,还开发了在matlab环境下实现符号计算的工具包SymbolicMath Toolbox 一、符号运算入门02512 xx:求解一元二次方程例在matlab中利用命令 solve(a*x2+b*x+c=0)可以计算出一元二次方程的解析解。ans = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)对于例1,可运行如下语句:solve(x2+5*x+2=0)即可得到方程的根:ans =-5/2+1/2*17(1/2) -5/2-1/2*17(1/2)(cos22xdxd:求导
2、数例 可以利用matlab求导数的命令diff来解决这个问题 syms x diff(cos(x)2)得到结果: ans = -2*cos(x)*sin(x)badxx23:计算定积分例 可以运行以下两条matlab语句来求得此积分: syms x a b int(x2,a,b)得到结果:ans = 1/3*b3-1/3*a3aydtdy:求解一阶微分方程例4 可以运行以下matlab语句来求解这个微分方程: syms a y dsolve(Dy=a*y)得到结果:ans = C1*exp(a*t) 从上面的例子可以看出,matlab符号运算的主要对象是没有赋值的变量,得到的结果也是文字符号。
3、符号运算是数学理论中的主要运算方式。 与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。一、符号对象的创建1、创建符号常量符号常量是不含变量的符号表达式,用sym命令来创建符号常量。语法:sym(常量)例:a=sym(sin(2)a= sin(2)1、创建符号常量Sym命令也可以把数值转换成某种格式的符号常量;语法:sym(常量,参数)说明:参数可以选择为:d,f,e或r,也可以省略。d 返回最接近的十进制数值(默认32位)f 返回最接近的符号表示r返回最接近的有理数(为系统默认方式)e返回最接近的带有机器浮点误差的
4、有理值1、创建符号常量例:a1=2*sqrt(5)+pia2=sym(2*sqrt(5)+pi)a3=sym(2*sqrt(5)+pi)a4=sym(2*sqrt(5)+pi,d)a5=2*sqrt(5)+pi看看结果有什么不一样?再查看一下各变量的数据类型和存储空间2、创建符号变量和表达式(1)使用sym命令创建符号变量和表达式;语法:创建符号变量:sym(arg,参数) 创建符号表达式:sym(表达式)说明:参数用来设置限定符号变量的数学特性,可以选择为:positive,real,unreal表示:正,实和非实。不限定可以省略。2、创建符号变量和表达式例:x=sym(x,real)y=s
5、ym(y,real)z=x+i*yreal(z)x=sym(x,unreal)real(z)比较一下两个real(z)命令的结果有什么不同?为什么呢?2、创建符号变量和表达式例:f1=sym(a*x2+b*x+c)f1= a*x2+b*x+c上面的语句只创建了f1的符号表达式,没有创建符号变量。也可以用sym命令定义符号变量后,利用符号变量的计算来生成符号表达式。(怎么在matlab中实现?)2、创建符号变量和表达式(2)使用syms命令创建符号变量和符号表达式:语法:syms(arg1,arg2,参数)也可以简写为:syms arg1 arg2 参数说明:参数设置与sym命令相同。该命令可以
6、一次创建多个符号变量2、创建符号变量和表达式例:syms a b c xf2=a*x2+b*x+csyms(a,b,c,x)f3=a*x2+b*x+c上面的语句即创建了符号变量a,b,c,x,又创建了符号表达式,f1,f2,f3符号表达式相同。3、符号矩阵用sym和syms命令都可以创建符号矩阵:例:A=sym(a,b;c,d)和syms a b c dA=a,b;c,d都可以得到下面的结果A=a,bc,d3、符号矩阵考察并思考下面语句的结果:B=a,b;c,d可以把字符串矩阵转换为符号矩阵:C=sym(B)whos看看结果?三、符号形式与数值形式之间的转换1、将符号形式转换为数值形式:主要利
7、用函数eval和numeric来实现r=sym(1+sqrt(5)/2),运行后屏幕显示:r =(1+sqrt(5)/2,是一个符号常量。利用命令eval(r)或者是numeric(r)可以将符号常量转化为数值。看看matlab中可以得到什么结果?其符号表达式为:例如:已知黄金分割数,251r另外还有一个函数sym2poly,实现将多项式转化为它对应的系数向量时也很有用。例如:已知多项式x3-4x+5输入 syms x p=x3-4*x+5可以得到一个符号多项式;运行命令sym2poly(p)可以把该多项式的系数提取出来,做成一个向量。2、将数值形式转化为符号形式主要是利用sym函数来实现例如
8、:p=3.1416 q=sym(p)看看得到什么结果?另外,函数poly2sym实现将某一向量转化为它对应的多项式。例如:a=1 0 -4 5; p=poly2sym(a)看看结果是什么?!三、符号表达式的操作和转换1、符号表达式中自由变量的确定当符号表达式中含有多于一个符号变量时,例如:f=a*x2+b*x+c和f=x2+y2,则只有一个变量是独立变量,其余的符号变量当作常量处理。如果不指定哪个变量是自由变量,matlab将基于以下原则选择一个自由变量:1、符号表达式中自由变量的确定(1)小写字母i和j不能作为自由变量(2)首先选择x作为自由变量;如果没有x,则选择在字母顺序中最接近x的字符
9、变量;如果与x相同距离,则在x后面的优先。(3)大写字母比所有的小写字母都靠后。2、符号表达式的转化与化简1、expand函数将符号表达式展开成多项式形式:2、factor函数将符号表达式写成因式分解的形式;例:f1=sym(x*(x*(x-6)+11)-6)f2=expand(f1)f3=factor(f2)3、simple函数可以寻求包含最少数目字符的表示式简化形式:例:y=sym(cos(x)2-sin(x)2)simple(y) 转化与化简命令中,比较常用的还有horner,collect,simplify等三个命令。请通过matlab帮助或网络查询它们的用法!3、符号表达式的替换利用
10、subs函数可用来进行符号表达式中符号变量的替换。语法:subs(s) %用给定的值替换符号表达式s中的所有变量。 subs(s,new) %用new替换符号表达式s中的自由变量。 subs(s,old,new) %用new替换符号表达式s中的old变量。3、符号表达式的替换例:f=sym(x+y)2+3*(x+y)+5)x=5f1=subs(f)f2=subs(f,3)f3=subs(f,x+y,s)f4=subs(f,x,z)四、求反函数和复合函数1、求反函数语法:finverse(f,v) %对指定自变量v的函数f(v)求反函数。例:f=sym(t*ex)g=finverse(f)g=f
11、inverse(f,t)2、求复合函数运用函数compose可以求符号函数f(x)和g(y)的复合函数。语法:compose(f,g) %求f(x)和g(y)的复合函数f(g(y) compose(f,g,z) %求f(x)和g(y)的复合函数f(g(z)例:f=sym(t*ex)g=sym(a*y2+b*y+c)h1=compose(f,g)h2=compose(g,f)h3=compose(f,g,z)五、符号极限、微积分和级数求和1、符号极限表达式: 函数格式 limit(f) limit(f,x,a) limit(f,x,a,left) limit(f,x,a,right)(limxf
12、ax)(lim0 xfx)(limxfax)(limxfax1、符号极限例:f=sym(1/x)limit(f)limit(f,x,0)limit(f,x,0,left)limit(f,x,0,right)1、符号极限采用极限的方法也可以用来求函数的导数:例:求函数cos(x)的导数syms t xlimit(cos(x+t)-cos(x)/t,t,0)txftxfxft)()(lim)( 02、符号导数函数diff(f)用来求符号表达式的导数语法:diff(f) 求f对自由变量的一阶导数diff(f,t) 求f对变量t的一阶导数diff(f,n) 求f对自由变量的n阶导数diff(f,t,n
13、) 求f对变量t的n阶导数2、符号导数例:f=sym(a*x2+b*x+c)diff(f)diff(f,a)diff(f,2)diff(f,b,3)2、符号导数函数diff也可以用于符号矩阵,其结果是矩阵的每一个元素进行求导运算。例:求导数对符号矩阵xexttx)sin(*22syms t xg=sym(2*t t2;tsin(x) exp(x)diff(f)diff(f,t)3、符号积分函数int可以求符号表达式的积分语法:int(f,t) 求符号变量t的不定积分int(f,t,a,b) 求符号变量t的在a,b区间的定积分,a,b是具体的数值int(f,t,m,n) 求符号变量t的在m,n区
14、间的定积分,m,n是符号3、符号积分例:f=sym(cos(x)int(f)int(f,0,pi/3)int(f,a,b)int(int(f) %求多重积分3、符号积分和微分一样,int对符号矩阵的积分也是将各个元素逐个进行积分。例:syms t xg=sym(2*t t2;tsin(x) exp(x)int(g)int(g,t)int(g,a,b)4、符号级数(1)symsum函数语法:symsum(s,x,a,b)说明:x为自变量,x省略则对默认的自由变量求和;s为符号表达式;a,b为参数x的取值范围。4、符号级数syms x ks1=symsum(1/k2,1,10)s2=symsum(
15、1/k2,1,inf)s3=symsum(xk,k,1,inf)的和和求级数kxxxk222211312114、符号级数(2)taylor函数语法:taylor(F,x,n)说明:x为自变量,F为符号表达式,n为展开的项数,默认为5项例:syms xs1=taylor(exp(x),8)s2=taylor(exp(x)六、符号方程的求解1、代数方程语法:solve(eq,v) 求解方程关于变量v的解。 solve(eq1,eq2,v1,v2,.)求解方程组关于变量v1,v2,的解1、代数方程例:f1=sym(a*x2+b*x+c)solve(f1)solve(f1,a)f2=sym(sin(x)solve(f2)当方程有多个解时,只能得出0附近的有限几个解例:求解方程lnx+x=2。Sym xSolve(log(x)+x=2,x)看看结果,分析原因!1、代数方程例:eq1=sym(x2+2*x+1)eq2=sym(x+3*z=4)eq3=sym(y*z=-1)x,y,z=solve(eq1,eq2,eq3)S=solve(eq1,eq2,eq3)看看最后一句的结果?2、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030药品研发外包服务行业应用前景与商业竞争分析报告
- 2025-2030药品电商服务平台运营模式市场分析及投资机会与发展趋势报告
- 2025-2030羊毛制品产业延伸发展探索及国际市场渠道深耕方案与品牌价值提升技术指南报告
- 基于移动学习的智能教育微课资源开发与实施效果分析教学研究课题报告
- 2026年智慧城市照明管理系统升级技术创新引领照明行业新变革报告
- 2026年交通运输行业自动驾驶公交创新报告
- 中班语言教案反思
- 2025年海南省物流集团有限公司招聘备考题库(含答案详解)
- 2025年河北地质大学第二次公开招聘工作人员65人备考题库(含答案详解)
- 2025年中国信达资产管理股份有限公司招聘备考题库及参考答案详解1套
- 广东深圳市华睿欣能投资控股集团有限公司2026届校园招聘笔试备考题库及答案解析
- 2026浙江省创新投资集团有限公司招聘备考题库含答案详解(能力提升)
- 2026年春节后复工复产“开工第一课”安全生产培训课件
- 探秘黄河-中国的河流(第三课时)设计
- 【初中语文】九年级语文春季开学第一课(新教材统编版)
- Metso造纸机纸机通风系统造纸通风抄纸培训
- 2024年江苏农牧科技职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 十种客户类型及应对技巧分解课件
- 有机肥厂年度计划书怎么写
- 中小学英语教师课堂话语分析研究
- 0-6岁智障儿童康复教育发展性课程评量
评论
0/150
提交评论