




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 matlab的符号运算 matlab 不仅具有数值运算功能,还开发了在matlab环境下实现符号计算的工具包symbolicmath toolbox 符号运算的功能符号表达式、符号矩阵的创建符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程一、符号运算的基本操作1.什么是符号运算与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。特点: 运算对象可以是没赋值的符号变量 可以获得任意精度的解symbolic math toolbox符号运算工具包通过调用maple软件实现符号计算的。maple
2、软件主要功能是符号运算,它占据符号软件的主导地位。 2. 符号变量与符号表达式语法格式1:sym(arg);其中,arg:数字,字符串或表达式;f = sym(sin(x)+5x)f 符号变量名sin(x)+5x 符号表达式 符号标识v符号表达式一定要用 单引号括起来matlab才能识别。 的内容可以是符号表达式,也可以是符号方程。例: f1=sym(ax2+bx+c) 二次三项式 f2= sym(ax2+bx+c=0) 方程 f3=sym(dy+y2=1)微分方程符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算2. 符号变量与符号表达式语法格式2:(1)
3、syms a b c x y;%创建多个符号变量 f1 =a*x2+b*x+c*y;%等价于f1=sym(a*x2+b*x+c*y)(2) syms(a,b,c,x,y); %创建多个符号变量 f2=a*x2+b*x+c*y;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 这就完成了一个符号矩阵的创建。注意:符号矩阵的每一行的两端都有
4、方 括号,这是与 matlab数值矩阵的 一个重要区别。 符号矩阵的修改 a.指令修改v 用a1=subs(a, old, new)来修改v a(*,*)= new例如:例如:a = a, 2*b 3*a, 0a(2,2)=8*b;a3=aa3 = a, 2*b 3*a, 8*ba2=subs(a, b, c) a2 = a, 2*c 3*a, 0 v将数值矩阵转化为符号矩阵 函数调用格式: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 符号矩阵与数值矩阵的转换v将符号矩
5、阵转化为数值矩阵函数调用格式:double(a),eval(a)a = 1/3, 5/210/7, 2/5eval(a)ans = 0.3333 2.5000 1.4286 0.40001.符号表达式的基本运算二、符号运算新版matlab利用重载技术,其基本运算符号与数值计算中的算符几乎完全相同。(1)基本算符:+,-,*,/,分别实现矩阵的加、减、乘、右除、左除和求幂运算。算符.*,./,.,.分别实现元素对元素的乘、除和求幂。算符和.分别实现矩阵的共轭转置和非共轭转置。 (2)关系运算符:在符号对象的比较中没有“大于”、“大于等于”,“小于”,“小于等于”的概念而只有“等于”和“不等于”,
6、分别表示为“=”和“=”,比较的结果用1表示真,0表示假。 1.符号表达式的基本运算 二、符号运算新版matlab利用重载技术,其基本运算符号与数值计算中的算符几乎完全相同.(3)三角函数、双曲函数和它们的反函数:除atan2不能用于符号运算之外,其它三角函数都可用于符号表达式计算. (4)指数、对数函数:函数sqrt(),exp(),expm(),log(),log2()和log10()都能用于符号计算.(5)复数函数:复数共轭conj,实部real,虚部imag和求模abs与数值计算相同,但没有求相位角函数(angle).(6)矩阵函数:函数diag(),triu(),tril(),inv
7、(),det(),rank(),rref(),poly(),expm()和eig()等都能用于符号计算.例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+g h = 3*x2+4*x-12例2:乘除法运算f=cos(x);g= sin(2*x); syms x f=cos(x);g=sin(2*x); h=f/g+f*g h=cos(x)/sin(2*x)+cos(x)*sin(2*x) 2. 任意精度的数学运算 符号计算的显著特点是计算过程中不会出现舍入误差,从而可以得到任意精度的数值解。而数值计算受计算
8、机字长限制,每次数值操作都带截断误差,任何数值计算无论采用什么算法都会产生累积误差。浮点算术运算1/2+1/3 (定义输出格式format long)ans =0.83333333333333符号运算sym(1/2+1/3)ans = 5/6 精确解 任意精度算术运算digits(n) 设置可变精度,默认值32位有效数字。vpa(x,n) 显示可变精度的有效数字位数。digits(25)vpa(1/2+1/3)ans =.8333333333333333333333333vpa(5/6,40) ans =.8333333333333333333333333333333333333333 a=s
9、ym(1/4,exp(1);log(3),3/7)a = 1/4,exp(1)log(3), 3/7vpa(a,10)ans =.2500000000, 2.7182818281.098612289, .4285714286diff(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(被积表达式,积分变量,积分下限, 积分上限) 定积分缺省时为不定积分例1.
10、计算定积分 syms x;f=2*xh=int(f,x,0,2)h=4例2.计算二重不定积分dxdyxexyf=int(int(x*exp(-x*y),x),y)f=1/y*exp(-x*y)ztrans(fn,n,z) 求时域序列fn的z变换iztrans(fz,z,n) 求频域序列fz的z反变换fnlaplace(ft,t,s) 求时域函数ft的拉氏变换fsilaplace(fs,s,t) 求频域fs的拉氏反变换ftfourier(ft,t,w) 求时域ft的付氏变换fwifourier(fw,w,t) 求频域fw的付氏反变换ft例3.计算 f=sym(x*exp(-x*10)的z变换f=
11、ztrans(f,x,z)f=z*exp(-10)/(z-exp(-10)2例4. 计算指数函数eat。用拉氏反变换法计算。eat的公式为: eat = l-1(si-a)-1系统矩阵a= 3210tttttttteeeeeeee22222222eat =结果: 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) b=ilaplace(b,s,t) 4. 极限,序列求和和泰勒级数1. limit(f,x,a)
12、计算符号表达式f(x)在xa时的极限值;limit(f,x,a,right)或limit(f,x,a,left) 计算f(x)的单侧极限;2. symsum(f,n,a,b) 计算符号表达式f(n)在n取遍a,b区间所有整数时的和;3. taylor(f,x, order,n, expansionpoint,a) 计算符号表达式f(x)在a点的n-1阶taylor展开多项式;例1:求f=1/x+1在x 时的极限值syms x f=1/x+1h=lim(f,x,inf)例2:求级数1+2+n+的和syms nf=nh=symsum(f,n,1,10)例3:求f=ex在x=2处的4阶taylor展
13、开syms xf=exp(x)h=taylor(f,x, order,5, expansionpoint,2)5.符号代数方程求解 matlab符号运算能够解一般的线性方程、非线性方程及一般的代数方程、代数方程组。当方程组不存在符号解时,又无其他自由参数,则给出数值解。命令格式:solve(f) 求一个方程的解solve(f1,f2, fn) 求n个方程的解 例1. 方程 ax2+bx+c=0 求解syms a b c x;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)计
14、算机格式aacbb242一般格式例2. 符号方程cos(x)=sin(x) 的解f1=solve(cos(x)=sin(x),x),f1 =1/4*pi solve(f , b ) 对指定变量b求解ans =-(a*x2+c)/x例3. 解方程组 x+y+z=1 x-y+z=2 2x-y-z=1syms x y z;g1=x+y+z-1,g2=x-y+z-2,g3=2*x-y-z-1f=solve(g1,g2,g3,x,y,z)f=solve(x+y+z=1,x-y+z=2,2*x-y-z=1x,y,z)f.z = 5/6, f.y = -1/2, f.x = 2/3f=solve(x+y+z
15、=1,x-y+z=2,2*x-y-z=1)f = x: 1x1 sym f.x ans =2/3 y: 1x1 sym f.y ans =-1/2 z: 1x1 sym f.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/66. 符号微分方程求解 用一个函数可以方便地得到微 分方程的符号解符号微分方程求解指令:dsolve命令格式:dsolve(f,g)f 微分方程,可多至12个微分方程的求 解;g为初始条件默认自变量为 x,可任意指定自变量t, u等微分方程的各阶导数项以大写字母d表示 dtdydx
16、dy22dtydnndtyd22dxydnndxyd或或或y的一阶导数 dyy的二阶导数 d2yy的 n 阶导数 dnyy1,y2=dsolve(x1,x2,xn) 返回 微分方程的解一阶微分方程dsolve(dx=y,dy=x,x(0)=0,y(0)=1)ans =x(t) = (exp(t)-exp(-t)/2, y(t) = (exp(-t)+exp(t)/2二阶微分方程dsolve(d2y=-a2*y,y(0)=1,dy(pi/a)=0)ans =cos(a*x)微分方程组求解注:eq1,eq2,.为微分方程或微分方程组,cond1,cond2,.,是初始条件或边界条件,v是独立变量,默认的独立变量是t。 函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。dsolve(eq1,eq2,., cond1,cond2,., v)x,y=dsolve(dx+2*x-dy=10*cos(t),dx+dy+2*y=4*exp(-*t),x(0)=2,y(0)=0,t)例1:求的通解。例2.y=dsolve(d2y+2*dy+2*y=0,y(0)=1,dy(0)=0)ans =exp(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 终止转让土地协议书
- 欠费付款协议书模板
- 园区道路使用协议书
- 旧房维修协议书样本
- 口腔会员服务协议书
- 失物丢失赔偿协议书
- 托管机构入托协议书
- 玉石定制协议书范本
- 政府收回土地协议书
- 清理搬运垃圾协议书
- 检验科2025年度临床指导计划
- 2025四川泸天化弘旭工程建设有限公司社会招聘3人笔试参考题库附带答案详解
- 小学部编版语文六年级下册第四单元《综合性学习:奋斗的历程》说课课件(含教学反思)
- 甘肃省卫生健康委公务员考试招聘112人往年题考
- 2024年茂名市茂南区村后备干部招聘笔试真题
- 2025年云南省中考模拟英语试题(原卷版+解析版)
- 急救知识课件
- 成都设计咨询集团有限公司2025年社会公开招聘(19人)笔试参考题库附带答案详解
- 2025年中考历史试题图解及答案
- 河南农商银行系统招聘真题2024
- 电网工程设备材料信息参考价(2024年第四季度)
评论
0/150
提交评论