第三讲 MATLAB的符号运算

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
f=sym(‘argv’,flagv)中‘argv’是 字符时,flagv可取以下“限定性”选项:
real、positive 和 unreal
>> x=sym('x','real')
表明 x 是实符号变量
>> k=sym('k','positive') >> x=sym('x','unreal')
把字符argv1、 argv2定义为基 本符合对象
同时说明多个符号变量(对象), 上述格式的简洁形式
7
f=sym(argn,flagn) 中的argn是数值或数值表达 式时,flagn可取以下选择: ‘d’ 最接近的十进制浮点精确表示; ‘e’ 带(数值计算时)估计误差的有理表示; ‘f’ 十六进制浮点表示; ‘r’ 最接近有理表示,缺省选项。
符号运算的功能
符号表达式、符号矩阵的创建 符号线性代数 因式分解、展开和化简 符号代数方程求解 符号微积分 符号微分方程
1
本节目标
理解符号运算的有关概念 掌握使用符号运算解决符号推导、微积分、方 程等问题的方法
2
一、符号运算的基本操作
符号运算与数值运算的区别 ※ 数值运算中必须先对变量赋值,然后才能参与运算。 ※ 符号运算无须事先对独立变量赋值,运算结果以标
表明 k 是正、实符号变量 去掉 x 的附加属性
9
例: a1=[1/3,pi/7,sqrt(5),pi+sqrt(5)]
%a1是数值常数 a2=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)]) %最接近的有理表示 a2=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)],‘e’) %´带估计误差的有理表示 a2=sym(‘[1/3,pi/7,sqrt(5),pi+sqrt(5)]’) %绝对准确的符号数值表示
%符号和 %符号积 %符号商
5
特点:
运算对象可以是没赋值的符号变量 可以获得任意精度的解
Symbolic Math Toolbox——符号运算工具包通过调用 Maple软件实现符号计算的。 maple软件——主要功能是符号运算,它占据符号软件的 主导地位。
6
符号对象的定义sym、 syms
准的符号形式表达。
3
符号变量和符号表达式
符号变量和符号表达式在使用前必须说明
sym函数
>>f1=sym(‘ax^2+bx+c’) 号表达式
%创建符号变量f1和一个符
syms
>> clear
>> syms a b c x
>> whos
Name Size
Bytes Class
a
1x1
126 sym object
14
符号表达式中自变量的确定规则:
只对除i和j以外的单个小写英文字母进行 搜索; 默认x是首选自变量; 其余字母被选为自变量的搜索次序是:在 英文字母表中靠近x的字母优先,距离相同 时排在x之后的字母优先
15
符号表达式和字符串中的自变量
f='sin(x+y)';symvar(f) %返回字符串表达式中的自变量; fs=sym(f),findsym(fs) %返回符号表达式中的自变量; ans = 'x' 'y‘ ans = x, y
s
1x17
34 char array
s1 1x17
34 char array
17
3.符号矩阵的创建
数值矩阵A=[1,2;3,4]
A=[a,b;c,d] —— 不识别
用matlab函数sym创建矩阵(symbolic 的缩写)
函数 f=sym(arg) f=sym(argn,flagn) f=sym(‘argv’,flagv) syms(‘argv1’, ‘argv2’) syms argv1 argv2
说明
把数值、字符串或表达式arg转 换为符号对象f
把数值或数值表达式argn转换为 指定格式(flagn)的符号对象
按flagv把字符串转换args为指 定格式的符号对象
10
2. 符号变量与符号表达式
f =sym('sin(x)+5x’)
f —— 符号变量名
sin(x)+5x—— 符号表达式
'
'—— 符号标识
符号表达式一定要用' ' 单引号括 起来matlab才能识别。
11
' ' 的内容可以是符号表达式,也可以 是符号方程。 例1:
f1='ax^2+bx+c' —— 二次三项式 f2= 'ax^2+bx+c=0' —— 方程 f3='Dy+y^2=1' ——微分方程 ※符号表达式或符号方程可以赋给符号变 量,方便以后调用;也可以不赋给符号变 量直接参与运算
12
例2
x=sym(‘x’) %用sym一次只能定义 一个符号变量 syms a b c %syms可同时定义多个 变量 syms r m real %定义表示实数的符号 变量(默认为复数) z=r+i*m;conj(z) %conj求共轭复数 ans=
r-i*m
13
rho=sym(‘(1+sqrt(5))/2’); f=rho^2-rho-1,fs=simplify(f) f= (1/2+1/2*5^(1/2))^2-3/21/2*5^(1/2) fs = 0 用simple或simplify对符号表达式或函 数进行化简
b
1x1
126 sym object
c
1x1
126 sym object
x
1x1
126 sym object
4
符号表示式的运算
算术Biblioteka Baidu算
>>clear >>f1 = sym('1/(a-b) '); >>f2 = sym('2*a/(a+b) '); >>f3 = sym(' (a+1)*(b-1)* (a-b) '); >> f1+f2 ans = 1/(a-b)+2*a/(a+b) >> f1*f3 ans = (a+1)*(b-1) >> f1/f3 ans = 1/(a-b)^2/(a+1)/(b-1)
16
符号对象与字符串之间的转换
>> s='5+sin(x)+exp(y)^2';
>> fs=sym(s),s1=char(fs)
fs =5+sin(x)+exp(y)^2
s1=5+sin(x)+exp(y)^2
>> whos s fs s1
Name Size
Bytes Class
fs 1x1
158 sym object
相关文档
最新文档