当前位置:
文档之家› 第三章MATLAB语言的符号计算
第三章MATLAB语言的符号计算
2019/4/2 22
3.3 方程求解
3.3.1 代数方程 利用符号表达式解代数方程所需要的函数为solve(f) 解符号方程式f 例3-5求一元二次方程的根
区别solve(f)和solve(f,a)
solve(f)按默认变量求解符号方程式, solve(f,a)指定要求解的变量是a
>> syms a b c x >> f=sym(a*x^2+b*x+c)
>> F1=sym('x+y+z=10'); >> F2=sym('x-y+z=0'); >> F3=sym('2*x-y-z=-4'); >> [x,y,z]=solve(F1,F2,F3)
2019/4/2 24
3.3.2 常微分方程
MATLAB解常微分方程式的函数为 Dsolve(‘equation’,’condition’) Equation表示常微分式, condition为初始条件。 Equation中用D来表示求微分,D后跟的数字表示几重微 分,数字后的变量为因变量。
例3-7求微分方程y’=5 的通解。
>> dsolve('D2y=5*y','y(0)=0')
2019/4/2 25
3.1 符号变量和符号表达式
变量特点,自变量的默认原则(findsym)
合并、化简、展开等函数,反函数,复合函数,表达式替换函 数(collect,factor,simplify,numden,finverse,compose,subs)
2019/4/2
14
3.2 微积分
3.2.1 极限
求极限是微积分的基础,limit函数
表达式 函数格式 备注
lim f (x)
x a
Limit(f,x,a)
若a=0且是对x求极限,可 简写为Limit(f)
左趋近于a 右趋近于a
lim
x a x a
f ( x) Limit(f,x, a,’left’)
符号表达式的定义
f=sym(‘a*x^2+b*x+c’)
符号表达式一定要用'' 单引 号括起来MATLAB才能识别。
2019/4/2
5
' ' 的内容可以是符号表达式,也可以是符号方程。 例:
f1=sym('a*x^2+b*x+c')—— 二次三项式 f2= sym('a*x^2+b*x+c=0') —— 方程
2019/4/2
进入Maple核心,把结果返回MATLAB。 对Maple函数进行数值运算。 列出能被Mfun计算的Maple函数 寻求关于Maple的库函数及其调用方法的帮助 加载Maple程序
用赋值语句中给定值替换表达式中所有同名变量 用符号或数值变量new替换s中的符号变量old
11
subs (s, old, new)
2019/4/2
>>clear >> f1 =sym('(exp(x)+x)*(x+2)'); >> f2 = sym('a^3-1'); >> f3 = sym('1/a^4+2/a^3+3/a^2+4/a+5'); >> f4 = sym('sin(x)^2+cos(x)^2'); >> f5=collect(f1) >>factor(f5) >>expand(f1) >>factor(f2) >> [m,n]=numden(f3) %m为分子,n为分母 %
% 对默认的自变量x求微分 %对x求二次微分 %对a求微分 %对a求二次微分
Diff(diff(f),a)
% 对x和a求偏导
微分函数也可以作用于符号矩阵,其结果是对矩阵的每一
个元素进行微分运算。
2019/4/2 18
3.2.3 积分
求积分的函数是int,相关的函数语法
int(f) 返回f对预设独立变量的积分值; int(f,’t’) 返回f对独立变量t的积分值; int(f,a,b) 返回f对预设独立变量的积分值,积分区间为[a,b], a和b为数
7
自变量的默认原则
有x存在,认为x为自变量,将a,b,c等作为常量参数。
可以利用函数findsym来查询
符号表达式 a*x^2+b*x+c
1/(4+cos(t)) 4*x/y 2*a+b
2019/4/2
默认自变量
x
t
x b
8
算术运算
>>clear >>f1 = sym('1/(a-b) '); >>f2 = sym('2*a/(a+b) '); >>f3 = sym(' (a+1)*(b-1)* (a-b) '); >> f1+f2 >> f1*f3 >> f1/f3
3.2 微积分
极限:limit 微分:diff
积分:int
级数:symsum 和taylor
3.3 方程求解
代数方程 常微分方程
2019/4/2 26
maple函数——符号运算的扩展
maple——是专门进行数学运算的软件工具,具有超强的符号运算能力,提
供了几乎包括所有数学领域的专用函数
MATLAB——利用了maple的内核与函数库,扩展了自己的符号运算功能。 MATLAB还设计了对maple库函数的调用功能,使得已有的maple数学功能 可以扩充到MATLAB中,作为自身符号运算能力的扩展。 要进一步利用maple资源,以下五个命令不可不提: maple mfun mfunlist mhelp
diff(f,t,n)求f对独立变量t的n次微分值
例3-1
已知
f (x) ax2 bx c
求 f ( x ) 的微分
2019/4/2 17
Syms a b c x F=sym(‘a*x^2+b*x+c’)
diff(F)
Diff(f) Diff(f,2) Diff(f,a) Diff(f,a,2)
syms命令方法 >> clear >> syms a b c x >> whos Name Size a 1x1 b 1x1 c 1x1 x 1x1
2019/4/2
Bytes Class 126 sym object 126 sym object 126 sym object 126 sym object
f (x) ax bx c
2
>>solve(f)
2019/4/2
23
解代数方程组
Solve(f1,f2,…fn)解由f1,f2…fn组成的代数方程组 例3-6
x y z 10 求方程 的解 x y z 0 2 * x y z 4
第一步定义符号表达式
2019/4/2 2
数值运算在运算前必须先对变量赋值,再参加运算。 符号运算不需要对变量赋值就可运算,运算结果以标准的符
号形式表达。
2019/4/2
3
2019/4/2
4
3.1 符号变量和符号表达式
使用sym函数可以创建符号变量和表达式 符号变量的定义
x=sym(‘x’) 函数法 syms a b c x 命令法
2019/4/2
%符号和 %符号积 %符号商
9
syms u v w z Eq=u*z^2+v*z+w; result_1=solve(Eq) findsym(Eq,1)
%
result_1 = -u*z^2-v*z ans = w
result_2 = 1/2/u*(-v+(v^2-4*u*w)^(1/2)) 1/2/u*(-v-(v^2-4*u*w)^(1/2))
去计算并将结果返回给Matlab。 Matlab的符号数学工具箱可以完成几乎所有得符号 运算功能。这些功能主要包括:符号表达式的运算,符号
表达式的复合、化简,符号矩阵的运算,符号微积分、符
号函数画图,符号代数方程求解,符号微分方程求解等。 此外,工具箱还支持可变精度运算,既支持符号运算并以 指定的精度返回结果。
Limit(f,x, a,’right’)
lim f (x)
2019/4/2
15
2019/4/2
16
3.2.2 微分
求微分的函数是diff,相关的函数语法
用diff(f)求f对预设独立变量的一次微分值 diff(f,t)求f对独立变量t的一次微分值
diff(f,n)求f对预设独立变量的n次微分值
>> F=sym('a*x^2+b*x+c')
>> int(F) int(F,’x’)
int(F,'x',0,2)
%返回f对预设独立变量的积分值 %返回f对独立变量t的积分值
%返回f对独立变量t的积分值,积分区间为[a,b],
%a和b为数值式
int(F,‘m’,‘n’)
%返回f对预设独立变量的积分值;积分区间为
2019/4/2 13