Download presentation
Presentation is loading. Please wait.
1
MATLAB数学实验 第七章 符号计算
2
第七章 MATLAB符号计算 7.1 符号对象 7.2 符号矩阵和符号函数 7.3 符号微积分 7.4 符号方程和符号微分方程
7.5 便捷函数作图 7.6 符号计算局限性和Maple调用
3
7.1 符号对象 1、符号对象的定义 s=sym(str) 将数值或字符串str转化为 符号对象s, 数值为有理表示;
s= sym(num,’d’) 将数值表达式转化为符号 表达式,数值用十进制表示; 比较: a=pi^2, b=‘pi^2’, c=sym(pi^2),d= sym(pi^2,’d’), e=sym(b) syms var1 var2 定义var1, var2, 为符号变量 subs(s, old, new) 将符号表达式s中的符号 变量 old用new代替
4
digits(n) 将数值计算精度设为n位; x=vpa(s) 求s的数值结果 x=vpa(s,n) 采用n位计算精度求s的数值 结果
2 .计算精度和数据类型转换 digits(n) 将数值计算精度设为n位; x=vpa(s) 求s的数值结果 x=vpa(s,n) 采用n位计算精度求s的数值 结果 double(s) 将符号对象转化为双精度数值 char(s) 将符号对象转化为字符串 例 pi与2^10000
5
7.2 符号矩阵和符号函数 1.矩阵 MATLAB大部分矩阵和数组运算符及指令都可以用于符号如:inv,./,.\,eig等
2.符号函数计算 factor(expr) 对expr作因式分解 expand(expr) 将expr展开 collect(expr,v) 将expr按变量v合并同类项 simple(expr) 将expr化简
6
g=finverse(f,v) 求函数f(v)的反函数g(v)
fg=compose(f, g) 求函数f(v)和g(v)的 复合函数f(g(v)) [n,d]=numden(expr) 分式通分, n返回分子,d返回分母 funtool 函数分析图形界面 例1. 已知 f (x,y) = (x-y)3, g(x,y) = (x+y)3 求 h= f*g 并展开。 解 »syms x y;f=(x-y)^3;g=(x+y)^3; » h=f*g,s=expand(h),s2=subs(s,y,x^2+x+1)
7
7.3 符号微积分 例2 1.极限和级数 limit(s,x,a) 返回符号表达式s当x->a时的极限
limit(s,x,a,’right’) 返回s当x->a时的右极限 limit(s,x,a,’left’) 返回s当x->a时的左极限symsum(s,n,a,b) 返回符号表达式s表示的通 项当自变量n由a到b的和。 例2
8
2. 微分 diff(s,x) 返回符号表达式s对x的导函数diff(s,x,n) 返回s对x的n阶导函数。 taylor(s,n,a,x) 返回符号表达式s在a点 Taylor展开到n-1次式.自变量为x taylortool Taylor 分析图形界面
9
jacobian(f,x) 返回向量函数 f的Jacobian矩阵 例3 计算(1) (2) 的Jacobian矩阵; (3)函数g(x)=lnx sinx在x=1的5次Taylor展开
10
3. 积分 int(s) 符号表达式s的不定积分. int(s,v) 符号s关于变量v的不定积分. int(s,a,b) 符号表达式s的定积分, a,b分别为上﹑下限. int(s,v,a,b) 符号表达式s关于变量v从 a到b的定积分. 当系统求不出解析解,会自动求原点附近的一个近似解。
11
例4 计算积分 (1)不定积分 (2) 定积分 (3) 定积分 (无解析解)
12
(无解析解) (4) 定积分 (5)重积分 (6)广义积分
13
7.4 符号方程和符号微分方程 1.代数方程 s=solve(表达式1, 表达式2, , 表达式n,
通过阅读其域得到 当系统求不出解析解,会自动求原点附近的一个近似解。
14
例5 解方程 (1) 二次方程ax2+bx+c=0; (2) 无解析解 x2-3x+ex=2; (3) 方程组 这里y, z是未知量。
15
2. 常微分方程 s=dsolve('方程1 ', '方程2 ',…, '初始条件1 ', '初始条件2',,'自变量'). 均用字符串方式表示, 自变量缺省值为t. 导数用D表示, 2阶导数用D2表示,以此类推. s返回解析解. 方程组情形,s为一个符号结构.
16
例6 (1)求y'=ay+b的通解; (2)初值问题y’ = y-2t/y,y(0)=1; (3)高阶方程 y’’=cos(2x)-y, y(0)=1,y’(0)=0 (4)边值问题 xy’’-3y’=x2, y(0)=0,y(5)=0 (5)方程组 f ’=f+g,g’=-f+g, f(0)=1,g(0)=2 (6)无解析解 y’=x+y2,y(0)=0
17
7.5 便捷函数作图 1. 函数曲线图 ezplot(F, [a,b]) 作函数F在[a,b]上的图 F可以是显函数、隐函数或参变量函数
1. 函数曲线图 ezplot(F, [a,b]) 作函数F在[a,b]上的图 F可以是显函数、隐函数或参变量函数 其表示可以是字符串、函数句柄、 Inline 函数或匿名函数. [a,b] 缺省为[-2*pi, 2*pi]
18
ezpolar(F, [a,b]) 作极坐标函数F()在 a<<b上的图, [a,b] 缺省值为[0, 2*pi] ezplot3(x,y,z,[a,b]) 作曲线x=x(t),y=y(t),z=z(t)在a<t<b上 的图, [a,b]的缺省值为[0, 2*pi] 2 .函数曲面图 ezmesh(z, [a,b,c,d]) 作函数z(x,y)在 a<x<b, c<y<d上的图
19
ezmesh(x,y,z,[a,b,c,d]) 作参变量函数x(s,t),y(s,t), z(s,t)在 a<s<b,c<t<d上的图 函数用字符串、函数句柄、Inline函数 或匿名函数 ezmesh(, n) 网格用n2个节点, n的缺省值为60. 类似命令有ezsurf, ezcontour等
20
7.6 符号计算局限性和Maple调用 符号计算局限性 (1)许多问题没有解析解,一般无法用符号计算求解; (2)速度太慢,尤其是高维问题;
(3)数值近似求解算法参数设置不够灵活,往往不能满足实际需要; (4)不能处理离散数据分析、最优化等常见工程问题。
21
例7 求解微分方程 y’=t+sin(y), y(0)=1, 0<t<1 (符号运算无法求解)
例8 求方程组 的实根 (符号运算求不到实数解)
22
MATLAB的符号工具箱提供了几个命令连接Maple, 以扩展其计算能力。
例9 计算 B(n)= 的逆和行列式 (符号求解很慢) 2.Maple的调用 MATLAB的符号工具箱提供了几个命令连接Maple, 以扩展其计算能力。 mhelp Maple函数 查阅Maple函数帮助 maple(‘Maple命令’) 执行Maple命令
23
mfunlist 能用mfun调用的Maple的 特殊函数列表 procread 读入Maple程序
例10 求f (x,y)=e-xy的在x=1,y=0的三阶Taylor 展开式 例11 求f (x,y)=xy 的极值, 约束条件x2+y2+a2=1. a为参数
24
习题 ex2, ex3, ex4, ex5, ex6, ex10, ex13
Similar presentations