已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章 MATLAB的符号运算 5.1 符号对象的创建 5.2 基本的符号运算 5.3 符号微积分 5.4 符号方程的求解 5.1 符号对象的创建(定义) MATLAB提供了一种数据类型: 符号型数 据, 可以进行符号运算,是符号运算的对象, 因此也把符号数据称为符号对象。 符号对象可以是符号变量、符号常量、符 号表达式或符号矩阵。 符号对象要先定义,后引用。 如何定义符号变量、符号常量、符号表达 式或符号矩阵? 用sym函数、syms函数可以将运算量定义 为符号型数据。 sym函数 syms函数 (一)建立符号变量和符号常数 1、sym函数 主要功能:创建单个符号变量。 调用形式: 符号变量名 = sym(符号字符串) 将符号字符串创建为一个符号变量,符号变量的 值就是该符号字符串,符号字符串 可以是 常量、变量、函数或表达式。 注意:每次调用该函数,只能定义一个符号变量。 使用方法举例 a=sym(a) %将a创建为符号变量,以a作为输出变量名 a= a b=sym(b) x=sym(x) y=sym(y) 符号变量的名字不一定和字符串中的字母相同 例如: m=sym(y) Sym函数可以定义符号常数: k1=sym(9);k2=sym(3); %定义符号变量 r1=9;r2=3; %定义数值变量 k1+sqrt(k2) %符号计算(精确的数学表达式) ans = 9+3(1/2) r1+sqrt(r2) %数值计算(近似为一个有限小数) ans = 10.7321 2、syms函数 syms函数的功能与sym函数类似。但syms函数可以在一 个语句中同时定义多个符号变量,其一般格式为: syms arg1 arg2 argN 将 arg1, arg2, argN 定义为符号变量。 例如: syms a b c d x y 使用方便、书写简洁、意义清楚,一般提倡使用syms创建 符号变量。 (二) 定义符号表达式 符号表达式由符号变量、函数、算术运算符等 组成。符号表达式的书写格式与数值表达式相 同。 有三种定义方法: 用sym函数定义 用syms函数定义(用已定义的符号 变量组成符号表达式) 用单引号定义 f1=sym(3*x2-5*y+2*x*y+6) f1 = 3*x2-5*y+2*x*y+6 syms x y (必须先定义 x y ) f2=3*x2-5*y+2*x*y+6 f2 = 3*x2-5*y+2*x*y+6 f3=3*x2-5*y+2*x*y+6 f3 = 3*x2-5*y+2*x*y+6 例如,将数学表达式 定义为符号表达式 y= 1+sqrt(5*x)/2 y = 1+sqr(5*x)/2 f=sym(1+sqrt(5*x)/2) f = 1+sqrt(5*x)/2 syms x v=1+sqrt(5*x)/2 v = 1+1/2*5(1/2)*x(1/2) (三)定义符号矩阵 使用sym和syms函数可以创建符号矩阵,可以直 接输入或从数值矩阵转换。 例2:创建一个符号矩阵两种方法 m=sym(a,b;c ,d) m = a, b c, d syms a b c d n= a, b ;c ,d n = a, b c, d 注意: 符号矩阵与普通矩阵的区别: 命令窗口的显示形式不同; 工作空间窗口显示的变量图标不 同。 建立符号矩阵 Z=sym( a3-b3,sin(alp)2+cos(alp)2;(15*x*y-3*x2)/(x- 5*y),78); Z = a3-b3, sin(alp)2+cos(alp)2 (15*x*y-3*x2)/(x-5*y), 78 syms a b x y alp Z1= a3-b3,sin(alp)2+cos(alp)2;(15*x*y-3*x2)/(x-5*y),78 Z1 = a3-b3, sin(alp)2+cos(alp)2 (15*x*y-3*x2)/(x-5*y), 78 (四)符号表达式中符号变量的确定 在数学表达式中,一般习惯于使用排在字母表前面的 字母作为变量的系数(常数),而用排在后面的字母(如 x,y,z)表示变量。例如: f=ax2+bx+c 表达式中,将x看作自变量,a,b,c通常被认为是常数, 用作变量的系数。 i,j 通常表示虚数单位,在符号运算中不能用作自变量 在MATLAB中引用符号表达式时,有符号常量和符号变量,如何确定谁 是符号自变量呢?可以由用户可以指定;若用户没有指定符号变量,则自 动使用findsym函数默认的变量作为函数的变量参数。 findsym函数的原则为:自变量为在字母顺序排列的位置上最接近x的小写 字母(除了i和j之外)。如果式子中没有上述字母,则x会被视为默认的自 变量。如下表: 符号表达式 默认自变量 a*x2+b*x+c x 1/(4+cos(t) t 4*x/y x 2*a+b b 2*i+4*j x 查询符号表达式的默认自变量 findsym函数可以查询表达式中使用的符号变量个数及 变量名。 引用格式为: findsym( f, n) 说明:f 为用户定义的符号函数, n为正整数,表示查询变量的个数。 n值省略时表示查询符号函数中全部系统默认变量。 【例3 】查询符号函数 中的系统默认变 量。 syms a b n t x % 定义符号变量 f=a*xn+b*t; % 给定符号表达式 findsym(f,1) % 在f函数中查询1个系统默认变量 ans= x 表示f函数中查询的1个系统默认变量为x。 findsym(f,2) ans= x, t findsym(f,5) ans= x, t,n,b,a 以最接近x顺序排列的5个默认自变量 findsym(f) ans= a,b,n,t,x 返回 f表达式中按字母顺序排列的全部自变 量 5.2 基本的符号运算 符号表达式的四则运算 2. 符号表达式的因式分解、展开、分式 通分 3. 符号表达式的化简 1. 符号表达式的四则运算 symadd(f1,f2) f1+f2 symsub (f1,f2) f1-f2 symmul (f1,f2) f1*f2 symdiv (f1,f2) f1/f2 sympow (f1,f2) f1f2 f=2*x2+3*x-5 g=x2-x+7 symadd(f,g) ans = 3*x2+2*x+2 symsub(f,g) ans = x2+4*x-12 symmul(f,g) ans = (2*x2+3*x-5)*(x2-x+7) symdiv(f,g) ans = (2*x2+3*x-5)/(x2-x+7) sympow(f,3*x) ans =(2*x2+3*x-5)(3*x) 2. 符号表达式的因式分解、展开、分式通 分 因式分解函数为 factor 调用格式为: factor(s) 举例 符号表达式的展开 函数为 expand 调用格式为:expand (s) 举例 同类项合并函数为 collect 调用格式为: collect(s,n) 举例 S为符号表达式,n为要合并系数的自变量 符号表达式的分式通分函数为 numden 调用格式为: n,d=numden(s) 举例 n 为通分后的分子,d为分母 3. 符号表达式的化简 表达式的化简函数为 simple、simplify 调用格式为: simplify (s) 使用Maple的化简规则化简函数 r,how=simple (s) 用多种方法寻找符号表达 式s的最简型, r为返回的化简形式, how为化简过程使用 的主要方法 举例 【例1】 对表达式 进行因式分解 syms x f=factor(x9-1) f= (x-1)*(x2+x+1)*(x6+x3+1) pretty(f) %按照类似书写习惯的方式显示 (x-1) (x2+x+1) (x6+x3+1) 【例2】 对大整数12345678901234567890进行因式分解 factor(sym (12345678901234567890) 【例3】 展开表达式 和 syms x y f=(x+1)5; expand(f) ans= x5+5*x4+10*x3+10*x2+5*x+1 f=sin(x+y); expand(f) ans= sin(x)*cos(y)+cos(x)*sin(y) 【例4】 对表达式 分别 将自变量x和t的同类项合并 syms x t f=x*(x*(x-6)+12)*t; collect(f) ans= t*x3-6*t*x2+12*t*x collect(f,t) ans= x*(x*(x-6)+12)*t 【例5】 对表达式 进行通分 syms x y f=x/y+y/x; n,d=numden(f) n= x2+y2 d= y*x 【例6】对表达式 进行化简 syms x f=sin(x)2+cos(x)2; simplify(f) ans= 1 【例7】将表达式 用嵌套形式表示。 syms x horner(x3-6*x2+11*x-6) ans = -6+(11+(-6+x)*x)*x 2. 符号表达式的替换 通过符号替换使表达式的输出形式简化,得到一个 简单的表达式 符号表达式的替换函数有:subexpr 、 subs 调用格式: y,sigma=subexpr(s,sigma) 用变量sigma的值替换表达式s中重复出现的字符串 ,y返回替换后的结果。 调用格式: r=subs(s,old,new) 举例 用新的符号变量new代替表达式s中的变量old,r为返 回替换后的结果。 【例8】分别用新变量替换表达式 a+b 和表达式 中的变量 syms a b subs(a+b,a,5) ans= 5+b subs(cos(a)+sin(b),a,b,sym(alpha),2) ans= cos(alpha)+sin(2) 1. 符号极限 函数limit用于求符号函数f的极限。系统可以 根据用户要求,计算变量从不同方向趋近于指 定值的极限值。该函数的格式及功能: 5.3 符号微积分 limit(f,x,a):求符号函数f(x)的极限值。即计算当变量 x趋近于常数a时, f(x)函数的极限值。 limit(f,a):求符号函数f(x)的极限值。由于没有指定符 号函数f(x)的自变量,则使用该格式时,符号函数f(x)的变 量为函数findsym(f)确定的默认自变量,即变量x趋近于a。 limit(f):求符号函数f(x)的极限值。符号函数f(x)的变量 为函数findsym(f)确定的默认变量;没有指定变量的目标值 时,系统默认变量趋近于0,即a=0的情况。 limit(f,x,a,right):求符号函数f的极限值。right表 示变量x从右边趋近于a。 limit(f,x,a,left):求符号函数f的极限值。left表示变 量x从左边趋近于a。 【例1】求极限 syms x; %定义符号变量 f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/sin(x)3; %确定符号表达式 w=limit(f) %求函数的极限 w = -1/2 符号微分 diff函数用于对符号表达式求微分。该函数的一般引用格式 为: diff(s,v,n) 其中:s为符号表达式,n为正整数,v为变量。 说明: diff(s,v,n)或diff(s,n,v)求符号表达式s对于自变 量v求n阶微分。 diff(s)求符号表达式s对于默认自变量的一阶微分。 diff(s,v)求符号表达式s对于自变量v的一阶微分。 diff(s,n)求符号表达式s对于默认自变量求n阶微分。 【例2】求下列函数: f=xx的导数和3次导数 syms x %定义符号变量 f=xx diff(f) diff(f,3) 3符号积分 函数int可以实现符号表达式的积分。其 引用格式为: int(s ,v,a,b) a、b表示定积分运算的下限和上限。 int(s,v,a,b)求符号表达式s对于自变量v从a到b的定积分 。 int(s,a,b) 求符号表达式s对于默认自变量从a到b的定积 分。 int(s) 求符号表达式s对于默认自变量的不定积分。 int(s,v) 求符号表达式s对于自变量v 的不定积分。 【例3】求下述积分。 求积分: syms x int(1/(1+x2) ans = atan(x) 【例4】定义一个符号函数 fxy=(a*x2+b*y2)/c2 ,分别求 该函数对x、y的导数和对x的积分。 syms a b c x y %定义符号变量 fxy=(a*x2+b*y2)/c2; %生成符号函数 diff(fxy,x) %符号函数fxy对x求导数 ans =2*a*x/c2 diff(fxy, y) %符号函数fxy对y求导数 ans =2*b*y/c2 int(fxy, x) %符号函数fxy对x求积分 ans =1/c2*(1/3*a*x3+b*y2*x) 4. 符号求和(级数求和) 表达式求和(级数求和)运算是数学中常见的 一种运算。 函数symsum可以实现表达式求和。该函数的引用时, 应确定级数的通项式s,变量的变化范围a和b。该函数的 引用格式为: symsum(s, a,b) 【例5】求级数的和: 1/12+1/22+1/32+1/42+ 找出通项式: syms k symsum(1/k2,1,Inf) %k值为1到无穷大 ans = 1/6*pi2 其结果为:1/12+1/22+1/32+1/42+ =2/6 思考: 5. Taylor级数展开 Taylor级数展开由函数taylor实现。其调用格式为: taylor(f): 计算表达式f在默认自变量等于0处的5阶Taylor级 数展开式。 taylor(f,n,v): 计算表达式f在默认自变量v=0处的n-1阶 Taylor级数展开式。 taylor(f,n,v,a): 计算表达式f在默认自变量v=a处的n-1阶 Taylor级数展开式。 【例6】求表达式 的5 阶Taylor级数展开式 syms x f=1/(5+cos(x) r=taylor(f) r= 1/6+1/72*x2 解代数方程(组)的函数为solve 格式为: solve(expr) solve(expr,var) solve(expr1,expr2,.,exprN,var1,var2,.varN) solve(expr1,expr2,.,exprN) expr1,expr2,.,exprN为代数方程组,var1,var2,.varN为未知数( 自变量)。 说明: 若不指明符号表达式expr1,expr2,.,exprN的值,系统默认为0。例 如给出一个表达式x2-3*x-8,则系统将按x2-3*x-8=0进行运算;故应 将等号右侧的数值移过来。 5.4 符号方程的求解 1. 代数方程求 解 【例7】解代数方程:a*x2-b*x-6=0 syms a b x solve(a*x2-b*x-6) solve(a*x2-b*x 6) ans = 1/2/a*(b+(b2+24*a)(1/2) 1/2/a*(b-(b2+24*a)(1/2) 即该方程有两个根: x1=1/2/a*(b+(b2+24*a)(1/2); x2=1/2/a*(b-(b2+24*a)(1/2) 【例8】求解代数方程组 syms x y x f=x2-y2+z-10; g=x+y-5*z; h=2*x-4*y+z; x,y,z=solve(f,g,h) s=solve(f,g,h); s.x, s.y, s.z x=-19/80+19/240*2409(1/2) -19/80-19/240*2409(1/2) y=-11/80+11/240*2409(1/2) -11/80-11/240*2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋权属转移协议书
- 房屋租凭定金协议书
- 房屋维修与合同范本
- 房屋装修搬运协议书
- 房屋转移协议书模板
- 房屋验收合格协议书
- 房管所网签合同范本
- 手工乐园转让协议书
- 手机典当抵押协议书
- 手机管理协议书模板
- 2025年及未来5年中国植筋锚固胶市场全面调研及行业投资潜力预测报告
- 双方合作股东协议书
- 2025“黑龙江人才周”校园引才活动绥化市人才引进389人参考题库附答案
- 浙江省卓越高中联盟2025-2026学年高二上学期11月联考英语试题含答案
- 2025年骨科护理答辩模板题目及答案
- 建筑工程委托代建合同模板
- 思政课129运动课件
- 企业公共关系管理维护方案
- 江苏省2024-2025学年高二上学期12月学业水平合格性考试调研生物试题(解析版)
- 体系专员工作汇报
- 苏教版四年级数学上册各单元的知识要点
评论
0/150
提交评论