MATLAB中的符号运算
MATLAB的符号运算V精简版

ans=[2+y,4+y,6+y]
>> subs(f,x,[1:3]) >> subs(f,{x,y},{[1:3],[5:7]})
ans=[7 10 13]
>> subs(f,{x,y},{a+b,a-b}) >> subs(f,{x,y},{x+y,x-y})
Copyright © CUGB
2024/4/3
Matlab的符号运算
符号对象建立时可以附加属性: real、positive 和 unreal
>> x=sym('x','real') >> k=sym('k','positive') >> x=sym('x','unreal')
表明 x 是实的 表明 k 是正的 去掉 x 的附加属性
Copyright © CUGB 2024/4/3
Matlab的符号运算
符号表达式的建立
>> syms x >> f1=sin(x)+cos(x)
推荐!
>> f2=sym(’sin(x)+cos(x)’)
Copyright © CUGB 2024/4/3
Matlab的符号运算
相关函数
➢ findsym: 查找符号表达式中的符号变量
findsym(f) 按字母顺序列出符号表达式 f 中的所有自由变量 findsym(f,N) 列出 f 中距离 x 最近的 N 个自由变量(i,j 除外)
Matlab的符号运算
其它运算
第3章 MATLAB的符号运算_微分方程求解_符号代数方程

或syms a b c x
f='a*x^2+b*2+c'
9/46
数组、矩阵与符号矩阵(P51)
m1=sym('[ab bc cd ; de ef fg ; h l j]') m2=sym('[1 12;23 34]') 例:
– >>A=hilb(3) A= 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000
dx dx2
例6:已知函数
f
= x2 sin 2 y 求
df
df ,
d2 f ,
dx dy dxdy
例7:已知函数
f
=
xe y y2
求
ff ,
xy
见example3_12
23/46
df
例8:已知导函数
= ax 求原函数
dx
b
例9:已知导函数 f (x) = x2 求 f (x)dx a
例10:计算重积分I = 2 d a r2 sin dr ?
– 例:>>rho=1+sqrt(5)/2; >>sym(rho,’d’); ans= 2.1180339887498949025257388711907
11/46
符号对象转换为数值对象的函数double(), vpa() 1、double()
这种格式的功能是将符号常量转换为双精度数值 2、vpa()
创建符号对象与函数命令(P50)
1、函数命令sym()格式 格式1 s=sym(a)(a代表一个数字值、数值矩阵、数值表达式 格式2 s=sym(‘a’)(a代表一个字符串)
Matlab教学第四章 MATLAB符号运算(Symbolic)

>> y=dsolve('Dy+2*x*y=x*exp(-x^2)','x') >> syms x; diff(y)+2*x*y - x*exp(-x^2)
f2=2*(u+2)
ans=14 ans=2*((a+2)+2) f3=2*x+2*y ans=6
符号矩阵
使用 sym 函数直接生成 >> A=sym('[1+x, sin(x); 5, exp(x)]') 将数值矩阵转化成符号矩阵 >> B=[2/3, sqrt(2); 5.2, log(3)]; >> C=sym(B) 符号矩阵中元素的引用和修改 >> A=sym('[1+x, sin(x); 5, exp(x)]'); >> A(1,2) % 引用 >> A(2,2)=sym('cos(x)') % 重新赋值
符号对象的基本运算
基本函数
三角函数与反三角函数、指数函数、对数函数等
sin、cos、tan、cot、sec、csc、… asin、acos、atan、acot、asec、 acsc、…
exp、log、log2、log10、sqrt abs、conj、real、imag
rank、det、inv、eig、lu、qr、svd
How 中记录的为简化过程中使用的方法。
f
2*cos(x)^2sin(x)^2
(x+1)*x*(x-1)
R
HOW
3*cos(x)^2-1 simplify
x^3-x combine(tri g)
matlab符号运算函数大全

3.1 算术符号操作命令+、-、*、.*、\、.\、/、./、^、.^、’、.’功能符号矩阵的算术操作用法如下:A+B、A-B 符号阵列的加法与减法。
若A与B为同型阵列时,A+B、A-B分别对对应分量进行加减;若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减。
A*B 符号矩阵乘法。
A*B为线性代数中定义的矩阵乘法。
按乘法定义要求必须有矩阵A的列数等于矩阵B的行数。
即:若A n*k*B k*m=(a ij)n*k.*(b ij)k*m=C n*m=(c ij)n*m,则,i=1,2,…,n;j=1,2,…,m。
或者至少有一个为标量时,方可进行乘法操作,否则将返回一出错信息。
A.*B 符号数组的乘法。
A.*B为按参量A与B对应的分量进行相乘。
A与B必须为同型阵列,或至少有一个为标量。
即:A n*m.*B n*m=(a ij)n*m.*(b ij)n*m=C n*m=(c ij)n*m,则c ij= a ij* b ij,i=1,2,…,n;j=1,2,…,m。
A\B 矩阵的左除法。
X=A\B为符号线性方程组A*X=B的解。
我们指出的是,A\B近似地等于inv(A)*B。
若X不存在或者不唯一,则产生一警告信息。
矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须是相容的。
A.\B 数组的左除法。
A.\B为按对应的分量进行相除。
若A与B为同型阵列时,A n*m.\B n*m=(a ij)n*m.\(b ij)n*m=C n*m=(c ij)n*m,则c ij= a ij\ b ij,i=1,2,…,n;j=1,2,…,m。
若若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。
A/B 矩阵的右除法。
X=B/A为符号线性方程组X*A=B的解。
我们指出的是,B/A粗略地等于B*inv(A)。
若X不存在或者不唯一,则产生一警告信息。
第八讲MATLAB符号计算

% 定义符号变量 % 定义数值变量
% 计算符号表达式值 % 计算数值表达式值
% 计算符号表达式值 % 计算数值表达式值
% 计算符号表达式值 % 计算数值表达式值
ans = 1/2*3^(1/2) ans = 0.8660 ans = 2*2^(1/2)
ans = 2.8284 ans =(3+2^(1/2))^(1/2) ans = 2.1010
(2)syms函数
syms函数的一般调用格式为:
syms var1 var2 … varn 函数定义符号变量var1,var2,…,varn等。用这 种格式定义符号变量时不要在变量名上加字符 分界符(‘),变量间用空格而不要用逗号分隔。
>> syms a b c d
❖ 符号计算的结果是符号或符号表达式,如果其 中的符号要用具体数值代替,可以用subs函数, 例如将A中的符号a以数值5代替,可以用
8.1 符号计算基础
MATLAB中符号计算函数是数值计算函数的重载, 符号计算工具箱采用的函数和数值计算的函数有一 部分同名,为得到准确的在线帮助,应该用 help sym/函数名 例如: help sym/inv
8.1.1 符号对象
1. 建立符号变量和符号常数 (1)sym函数
sym函数用来建立单个符号变量和符号表达式,例如, a=sym(‘a’) 建立符号变量a,此后,用户可以在表达式 中使用变量a进行各种运算。 >> rho = sym('(1+sqrt(5))/2')
8.3 符号积分
8.3.1不定积分
在MATLAB中,求不定积分的函数是int,其调 用格式为:int(f,x)
int 函数求函数 f 对变量 x 的不定积分。参数x可 以缺省,缺省原则与diff函数相同。
matlab符号运算

第2章符号运算- Presentation Transcript1.第二章符号运算o MA TLAB 的数学计算=数值计算+符号计算o其中符号计算是指使用未定义的符号变量进行运算,而数值计算不允许使用未定义的变量。
2. 1. 符号变量、符号表达式和符号方程的生成o使用sym 函数定义符号变量和符号表达式o使用syms 函数定义符号变量和符号表达式3. 2 、用syms 创建符号变量o使用syms 命令创建符号变量和符号表达式o语法:o syms(‘arg1’, ‘arg2’, …, 参数) % 把字符变量定义为o% 符号变量o syms arg1 arg2 …, 参数% 把字符变量定义为符号变量的简洁形o% 式o说明:syms 用来创建多个符号变量,这两种方式创建的符号对象是相同的。
参数设置和前面的sym 命令相同,省略时符号表达式直接由各符号变量组成。
4.使用syms 函数定义符号变量和符号表达式▪>> syms a b c x▪>> f = a*x^2 + b*x + c▪ f =▪a*x^2 + b*x + c▪>> g=f^2+4*f-2▪g =▪(a*x^2+b*x+c)^2+4*a*x^2+4*b*x+4*c-2▪>>ex02015.符号方程的生成▪>> % 符号方程的生成▪>> % 使用sym 函数生成符号方程▪>> equation1='sin(x)+cos(x)=1'▪equation1 =▪sin(x)+cos(x)=1▪>>6. 2.2 符号形式与数值形式的转换o 1 、将符号形式转换为数值形式:o eval 与numerico例:a1='2*sqrt(5)+pi'o a1 =o2*sqrt(5)+pio b2=numeric(a2) % 转换为数值变量o b2 =o7.6137o b3=eval(a1)o b3 =o7.61377. 2.2 符号形式与数值形式的转换▪ 2 、数值形式转换为符号形式▪p=3.1416;▪q=sym(p)▪执行后屏幕显示:▪q=3927/1250▪numeric(q)▪屏幕显示:▪ans =▪ 3.14168. 2.2 符号形式与数值形式的转换3 、多项式与系数向量之间的转换3.1 sym2poly: 将多项式转化为对应的系数向量例:syms x p; p=x^3-4*x+5; sym2poly(p) 执行后屏幕显示:ans= 1 0 -4 5 9. 2.2 符号形式与数值形式的转换o 3 、多项式与系数向量之间的转换o 3.2 poly2sym: 将向量转化为对应的多项式o例o a=[1 0 -4 5];o poly2sym(a)o执行后屏幕显示o ans=o x^3-4*x+510. 3. 符号表达式( 符号函数) 的操作o(1) 符号表达式的四则运算o syms xo f=x^3-6*x^2+11*x-6;o g=(x-1)*(x-2)*(x-3);o h=x*(x*(x-6)+11)-6;o f+g-ho执行后输出:o ans =o x^3-6*x^2+11*x+(x-1)*(x-2)*(x-3)-x*(x*(x-6)+11)11.(1) 符号表达式的四则运算▪>> syms x y a b▪>> fun1=sin(x)+cos(y)▪fun1 =▪sin(x)+cos(y)▪>> fun2=a+b▪fun2 =▪a+b▪>> fun1+fun2▪sin(x)+cos(y)+a+b▪>>fun1*fun2▪ans =▪(sin(x)+cos(y))*(a+b)12.o(1) 将表达式中的括号进行展开: expando(2) 将表达式进行因式分解:factoro(3) 将一般的表达式变换为嵌套的形式:hornero(4) 将表达式按某一个变量的幂进行集项:collecto(5) 化简表达式:simplifyo(6) 化简表达式,使之成为书写长度最短的形式:simple13.o同一个数学函数的符号表达式的可以表示成三种形式,例如以下的f(x) 就可以分别表示为:o多项式形式的表达方式:o f(x)=x^3+6x^2+11x-6o因式形式的表达方式(factor) :o f(x)=(x-1)(x-2)(x-3)o嵌套形式的表达方式(horner) :o f(x)=x(x(x-6)+11)-614.集项-合并符号表达式的同类项o>> syms x y▪>> collect(x^2*y + y*x - x^2 - 2*x)▪ans =▪(y-1)*x^2+(y-2)*xo>> syms x y▪>> collect(x^2*y + y*x - x^2 - 2*x,y)▪ans =▪(x^2+x)*y-x^2-2*x15.符号多项式的嵌套(horner )▪>> syms x▪>> fun1=2*x^3+2*x^2-32*x+40▪fun1 =▪2*x^3+2*x^2-32*x+40▪>> horner(fun1)▪ans =▪40+(-32+(2+2*x)*x)*x▪>> fun2=x^3-6*x^2+11*x-6▪fun2 =▪x^3-6*x^2+11*x-6▪>> horner(fun2)▪ans =▪-6+(11+(-6+x)*x)*x16.符号表达式的化简(simplify)▪>> syms x▪>> fun1=(1/x+7/x^2+12/x+8)^(1/3)▪fun1 =▪(13/x+7/x^2+8)^(1/3)▪>> sfy1= simplify (fun1)▪sfy1 =▪((13*x+7+8*x^2)/x^2)^(1/3)▪>> sfy2= simple (sfy1)▪sfy2 =▪(13/x+7/x^2+8)^(1/3)17.subs 函数用于替换求值▪>> syms x y▪ f = x^2*y + 5*x*sqrt(y)▪ f =▪x^2*y+5*x*y^(1/2)▪>> subs(f, x, 3)▪ans =▪9*y+15*y^(1/2)▪>> subs(f, y, 3)▪ans =▪3*x^2+5*x*3^(1/2)▪>>subs(f,{x,y},{1,1})ex0202 ex0203 ex020418. 4 、反函数的运算(finverse )▪>> syms x y▪>> f = x^2+y▪ f =▪x^2+y▪>> finverse(f,y)▪ans =▪-x^2+y使用格式: 1 、g=finverse(f):f,g 均为单变量x 的符号函数; 2 、g=finverse(f,t) 返回值g 的自变量取为t ;19. 5 复合函数的运算(compose)▪>> syms x y z t u▪>> f = 1/(1 + x^2);▪>> g = sin(y);▪>> h = x^t;▪>> p = exp(-y/u) ;▪>> compose(f,g)▪ans =▪1/(1+sin(y)^2)▪>> compose(f,g,t)▪ans =▪1/(1+sin(t)^2)使用格式:Compose(f,g) % 返回当f=f(y) 和g=g(x) 时的复合函数f(g(x)) Compose(f,g,t) % 返回的复合函数以t 为自变量,即有f(g(t))20. 6 函数的极限、导数与积分o(1 )函数极限-limit 函数的使用o(2 )函数求导-diff 函数的使用o(3 )符号积分-int 函数的使用21.o符号极限(limit)假定符号表达式的极限存在,Symbolic Math Toolbox 提供了直接求表达式极限的函数limit ,函数limit 的基本用法如下表所示。
第三讲MATLAB的符号运算

④计算所需的时间较长。
• Symbolic Math Toolbox——符号运算工具包通过调用
Maple软件实现符号计算的。
• Maple软件——主要功能是符号运算,它占据符号软件
的主导地位。
2. 字符串与符号变量、符号常量
字符串对象 f = 'sin(x)+5x'
由符号变量构成的符号函数和 符号方程
• 符号表达式是由符号常量、符号变量、符号函
数运算符以及专用函数连接起来的符号对象。
• 包括:符号函数和符号方程。判断看带不带等
号。 例:syms x y z; f1=x*y/z;
f2=x^2+y^2+z^2; f3=f1/f2;
e1=sym('a*x^2+b*x+c')
factor(x^3-y^3)
• simplify( ) 该函数是一个强有力的具有
普遍意义的工具,它利用Maple化简规则 对表达式进行简化。
例:S=sym('[(x^2+5*x+6)/(x+2);sqrt(16)]')
simplify(S)
• simple( ) 用几种不同的算术简化规则对
符号表达式进行简化,使其用最少的字 符来表示。
行是自变量 x 的取值范围和常数 a 的值。
• 第四行只对 f 起作用,如求导、积分、简
化、提取分子和分母、倒数、反函数。
• 第五行是处理 f 和 a 的加减乘除等运算。
• 第六行前四个进行 f 和 g 之间的运算,后
三个分别是:求复合函数;把 f 传递给 ; swap是实现 f 和 g 功能的交换。
第三章 MATLAB符号运算

第3章 MATLAB符号计算符号计算则是可以对未赋值的符号对象(可以是常数、变量、表达式)进行运算和处理。
MATLAB具有符号数学工具箱(Symbolic Math Toolbox),将符号运算结合到MATLAB的数值运算环境。
符号数学工具箱是建立在Maple软件基础上的。
3.1 符号表达式的建立3.1.1 创建符号变量和表达式Symbolic Math Toolbox规定在进行符号计算时,首先要定义基本的符号对象然后才能进行符号运算。
创建符号变量和符号表达式可以使用sym和syms命令。
1. 使用sym命令创建符号变量和表达式语法:sym(‘变量’,参数) %把变量定义为符号对象2.使用syms命令创建符号变量和符号表达式语法:syms(‘arg1’, ‘arg2’, …,参数) %把字符变量定义为符号变量syms arg1 arg2 …,参数%把字符变量定义为符号变量的简洁形式说明:syms用来创建多个符号变量,这两种方式创建的符号对象是相同的。
参数设置和前面的sym命令相同,省略时符号表达式直接由各符号变量组成。
说明:参数用来设置限定符号变量的数学特性,可以选择为’positive’、’real’和’unreal’,’positive’表示为“正、实”符号变量,’real’表示为“实”符号变量,’unreal’表示为“非实”符号变量。
如果不限定则参数可省略。
【例3.1】创建符号变量,用参数设置其特性。
>> syms x y real %创建实数符号变量>> z=x+i*y; %创建z为复数符号变量>>real(z) %复数z的实部是实数xans =x【例3.2】创建符号表达式。
>> f1=sym('a*x^2+b*x+c')f1 =a*x^2+b*x+c【例3.3】使用syms命令创建符号变量和符号表达式。
>> syms a b c x %创建多个符号变量>>f2=a*x^2+b*x+c %创建符号表达式f2 =a*x^2+b*x+c3.1.2符号表达式的代数运算符号运算与数值运算的区别主要有以下几点:▪传统的数值型运算因为要受到计算机所保留的有效位数的限制,它的内部表示法总是采用计算机硬件提供的8位浮点表示法,因此每一次运算都会有一定的截断误差,重复的多次数值运算就可能会造成很大的累积误差。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
symvar( ' sin(omega) ' ) % ' omega ' is not a singlee character。 ans= x
symvar( ' 3*i+4*j ' ) % i and j are equel to sqrt(-1) ans= x symvar( ' y+3*s ' , ' t ' ) ans= s % find the variable closest to t rather than x
提取分子和分母
如果表达式是一个有理分式(两个多项式之比), 或是可以展开为有理分式(包括哪些分母为1的 分式),可利用numden来提取分子或分母。例 如,给定如下的表达式:
m x2 f ax
2
b x
g
3 2
x2
2 3
x
3 5
h
x 3
2
2x 1
3x x 1
3 k2 4 2 x
subs(f,' alpha ',' a ') % substitute ' alpha ' for ' a ' in f ans= alpha*x^2+b*x+c g=' 3*x^2+5*x-4 ' g= 3*x^2+5*x-4 % create another function
h=subs(g,' 2 ',' x ') % substitute ' 2 ' for ' x ' in g h=18 isstr(h) % show that the result is a symbolic expression ans= 1
MATLAB中的符号运算
2004.8.4
MATLAB所具有的符号数学工具箱与其 它所有工具不同,它适用于广泛的用 途,而不是针对一些特殊专业或专业 分支。另外,MATLAB符号数学工具 箱与其它的工具箱区别还因为它使用 字符串来进行符号分析,而不是基于
数组的数值分析。
符号数学工具箱是操作和解决符号表达式的
MATLAB符号函数可用多种方法来操作这些表达式 diff( ' cos(x) ' ) ans= -sin(x) % differentiate cos(x) with respect to x M=sym( ' [a,b;c,d] ' ) M= [a,b] [c,d] % create a symbolic matrix M determ(M) ans= a*d-b*c % find the determinant of the symbolic matrix
符号表达式
符号表达式是代表数字、函数、算子和变量
的MATLAB字符串,或字符串数组。不要求变
量有预先确定的值,符号方程式是含有等号 的符号表达式。符号算术是使用已知的规则 和给定符号恒等式求解这些符号方程的实践, 它与代数和微积分所学到的求解方法完全一 样。符号矩阵是数组,其元素是符号表达式。
符号表达式
符号数学工具箱(函数)集合,有复合、简化、
微分、积分以及求解代数方程和微分方程的
工具。另外还有一些用于线性代数的工具, 求解逆、行列式、正则型式的精确结果,找 出符号矩阵的特征值而无由数值计算引入的 误差。工具箱还支持可变精度运算,即支持 符号计算并能以指定的精度返回结果。
符号数学工具箱中的工具是建立在功 能强大的Maple之上。它最初是由加拿大的 滑铁卢(Waterloo)大学开发的。当要求 MATLAB进行符号运算时,它就请求Maple 去计算并将结果返回到MATLAB命令窗口。 因此,在MATLAB中的符号运算是MATLAB 处理数字的自然扩展。
ans=
x^n*log(x)
diff( ' sin(omega) ' )
% differentiate using the default variables (x)
ans= 0 diff( ' sin(omega) ' , ' omega ' )
% specify the independent variable
变量替换
假设有一个以x为变量的符号表达式,并希望将变 量转换为y。MATLAB提供一个工具称作subs,以便 在符号表达式中进行变量替换。其格式为subs(f, new,old),其中f是符号表达式,new和old是字符、 字符串或其它符号表达式。‘新’字符串将代替表 达式f中各个‘旧’字符串。 f= ' a*x^2+b*x+c ' % create a function f(x) f= a*x^2+b*x+c subs(f,' s ',' x ') % substitute ' s ' for ' x ' in the expression f ans= a*s^2+b*s+c
ans= cos(omega)
符号表达式运算
一旦创建了一个符号表达式,或许想以某些方式改变它; 也许希望提取表达式的一部分,合并两个表达式或求得表
达的数值。有许多符号工具可以帮助完成这些任务。
所有符号函数(很少特殊例外的情况)作用到符号表达式和 符号数组,并返回符号表达式或数组。其结果有时可能看 起来象一个数字,但事实上它是一个内部用字符串表示的 一个符号表达式。可以运用MATLAB函数isstr来找出像似 数字的表达式是否真是一个整数或是一个字符串。
g= ' 3/2*x^2+2/3*x-3/5 ' % rationalize and extract the parts g= 3/2*x^2+2/3*x-3/5 [n,d]=numden(g) n= 45*x^2+20*x-18 d= 30 h= ' (x^2+3)/(2*x-1)+3*x/(x-1) ' % the sum of rational polynomials h= (x^2+3)/(2*x-1)+3*x/(x-1) [n,d]=numden(h) % rationalize and extract n= x^3+5*x^2-3 d= (2*x-1)*(x-1)
上面的第一个例子的符号表达式是用单引号 以隐含方式定义的。它告诉MATLAB ' cos(x) ' 是一个字符串并说明diff( ' cosx ' )是一个符 号表达式而不是数字表达式;而在第二个例 子中,用函数sym显式地告诉MATLAB M=sym( ' [a,b;c,d] ' )是一符号表达式。 在MATLAB可以自己确定变量类型的场合下, 通常不要求显式函数sym。
标准代数运算
很多标准的代数运算可以在符号表达式上 执行,函数symadd、symsub、symlnul和 symdiv为加、减、乘、除两个表达式, sympow将一个表达式上升为另一个表达 式的幂次。
例如: 给定两个函数
f 2 x 2 3x 5
g x2 x 7
f= ' 2*x^2+3*x-5 ' % define the symbolic expression f= 2*x^2+3*x-5 g= ' x^2-x+7 ' g= x^2-x+7 symadd(f,g) % find an expression for f+g ans= 3*x^2+2*x+2 symsub(f,g) % find an expression for f-g ans= x^2+4*x-12 symmul(f,g) % find an expression for f*g ans= (2*x^2+3*x-5)*(x^2-x+7) symdiv(f,g) % find an expression for f/g ans= (2*x^2+3*x-5)/(x^2-x+7) sympow(f, ' 3*x ' ) % find an expression for ans= (2*x^2+3*x-5)^3**
2 x 1 3 3x 4
在必要时,numden将表达式合并、有理化并返回所得的分 子和分母。进行这项运算的MATLAB语句是:
m= ' x^2 ' % create a simple expression m= x^2 [n,d]=numden(m) % extract the numerator and denominator n= x^2 d= 1 f= ' a*x^2/(b-x) ' % create a rational expression f= a*x^2/(b-x) [n,d]=numden(f) % extract the numerator and denominator n= a*x^2 d= b-x
符号变量
当字符表达式中含有多于一个的变量时,只有一个变
量是独立变量。如果不告诉MATLAB哪一个变量是独
立变量,MATLAB将基于以下规则选择一个: 在符号表达式中缺省的独立变量是唯一的,除去i和j 的小写字母,不是单词的一部分。如果没有这种字 母,就选择x作为独立变量。如字符不是唯一的,就 选择在字母顺序中最接近x的字母。如果有相连的字 母,就选择在字母表中较后的那一个。
如果利用规则symvar不能找到一个缺省独立变量, 它便假定无独立变量并返回x。这一结论对含有由 多个字母组成的变量,如:alpha或s2的表达式,