创建符号数字,变量和表达式
这个例子展示了如何创建符号数字、变量和表达式。要学习如何使用符号数学,请参见执行符号计算.
创建具有精确表示的符号数字
可以使用。创建符号数字信谊
.符号数是精确的表示,不像浮点数。
使用创建符号数字信谊
并将它们与相同的浮点数进行比较。
a1Sym = sym(1/3)
a1Sym =
A1 = 1/3
A1 = 0.3333
a2Sym = sym(pi)
a2Sym =
A2 = PI
A2 = 3.1416
符号数以精确的有理数形式表示,而浮点数则是十进制近似值。
符号数的计算是精确的。通过发现来证明这种精确性sin(π)
象征和数字上。符号结果是精确的,而数值结果是近似值。
bSym = sin(sym(pi))
bSym =
B = sin(pi)
B = 1.2246e-16
当你使用信谊
对于数值输入,数值表达式首先计算为MATLAB®默认双精度数,这可能不太准确。然后,信谊
应用于那个双精度数。若要表示一个精确的数字,而不计算为双倍精度,请使用带引号的字符向量。例如,创建一个符号数字来精确地表示一个非常大的整数。
inaccurateNum = sym(123456789012345678)
inaccurateNum =
accurateNum = sym(“123456789012345678”)
accurateNum =
还可以创建符号复数,方法是将数字的虚部指定为1我
,2我
等等。
信谊(1234567 + 1i)
ans =
要了解有关数字的符号表示的更多信息,请参见数字到符号转换.
创建具有可变精度的符号数字
可以使用。创建具有可变精度浮点算术的符号数vpa
.默认情况下,vpa
计算值为32位有效数字。
piVpa = vpa(pi)
piVpa =
当你使用vpa
在数值表达式上,例如日志(2)
时,表达式首先求值为MATLAB默认双精度数,其有效数字小于32位。然后,vpa
应用于该双精度数,其精度可能较低。若要获得更精确的结果,请将表达式中的双精度数转换为符号数信谊
然后使用vpa
以可变精度评估结果。例如,查找日志(2)
具有17位和20位精度。
vpaOnDouble = vpa(log(2))
vpaOnDouble =
vpaOnSym_17 = vpa(log(sym(2)),17)
vpaOnSym_17 =
vpaOnSym_20 = vpa(log(sym(2)),20)
vpaOnSym_20 =
当转换较大的数字时,使用引号准确地表示它们。
inaccurateNum = vpa(123456789012345678)
inaccurateNum =
accurateNum = vpa(“123456789012345678”)
accurateNum =
创建符号变量
您可以使用任何一种方法创建符号变量信谊
或信谊
.这些函数的典型用法包括:
信谊
-创建编号的符号变量,MATLAB函数中的符号变量,或其值与MATLAB工作区中的名称不同的符号数字。信谊
——创建新鲜的用于交互式符号工作流的符号变量,即在MATLAB命令行或MATLAB实时脚本中创建符号变量。一个新鲜的符号变量没有任何假设。
的信谊
命令是命令的简写信谊
语法,但是这两个函数处理假设的方式不同。信谊
在创建变量时清除假设。但是,使用信谊
不明确它的假设。
创建符号变量x和y使用信谊
而且信谊
,分别。
信谊xY = sym(“y”)
y =
第一个命令创建一个符号变量x
在MATLAB工作区中使用该值
赋值给变量x
.第二个命令创建一个符号变量y
用值
.
与信谊
,可以在一条命令中创建多个变量。创建变量一个
,b
,c
.
信谊一个bc
创建符号变量数组
如果要创建带有编号符号变量的MATLAB数组,请使用信谊
的语法更方便信谊
语法。因此,使用信谊
创建由许多编号的符号变量组成的数组。
清理工作区。创建包含符号变量的行向量
然后赋值给MATLAB变量一个
.在MATLAB工作区中显示变量。
clear A = sym(“一个”20 [1])
一个=
谁
名称大小字节类属性A 1x20 8 sym
一个
是一个1
——- - - - - -20.
20个符号变量的数组。
通过结合信谊
而且信谊
,您可以在MATLAB工作区中使用相应的变量名创建许多新的符号变量。
清理工作区。创建新的符号变量a1,…, a10
并为它们分配MATLAB变量名a1,…, a10
,分别。在MATLAB工作区中显示变量。
明确的符号(信谊(“一个”,[1 10]))
名称大小字节分类属性a1 1x1 8 sym a10 1x1 8 sym a2 1x1 8 sym a3 1x1 8 sym a4 1x1 8 sym a5 1x1 8 sym a6 1x1 8 sym a7 1x1 8 sym a8 1x1 8 sym a9 1x1 8 sym
MATLAB工作区包含10个MATLAB变量,这些变量都是符号变量。
的信谊
命令是信谊
语法,它的典型用途是为交互式符号工作流创建新的符号变量。使用信谊
语法来创建以下内容:
MATLAB函数中的符号变量
许多编号的符号变量
在MATLAB工作空间中,值与其名称不同的符号变量
符号数字,如
信谊(5)
从以前使用的具有相同名称的符号变量继承假设的符号变量
创造象征性的表达
假设您想使用一个符号变量来表示黄金比例 .
使用信谊
创造黄金比例。
=(1 +根号下(sym(5)))/2;
现在你可以对φ
.例如:
F = ^2 - - 1
f =
接下来,假设你想研究二次函数
.首先,创建符号变量一个
,b
,c
,x
.
信谊一个bcx
然后,创建一个象征性的表达f
它表示算术表达式
.
F = a*x²+ b*x + c
f =
求二次方程
为
通过使用解决
.
X_0 = solve(f == 0,x)
从=
还可以将数学函数应用于算术表达式。例如,应用第一类贝塞尔函数 到算术表达式 求它对的导数 .
J_0 = besselj(0,f)
J_0 =
DJ_0 = diff(J_0,x)
DJ_0 =
若要在符号表达式中创建符号数,请使用信谊
.不要使用信谊
创建一个常量的符号表达式。例如,要创建一个值为的表达式5
,输入F = sym(5)
.命令F = 5
没有定义f
作为一种象征性的表达。
还可以使用str2sym
当从文本文件中读取表达式或精确指定数字时。
重复使用符号对象的名称
如果将变量设置为符号表达式,然后应用信谊
命令到变量,MATLAB从变量中删除之前定义的表达式。
例如,创建一个符号表达式f
.
信谊一个bF = a + b
f =
如果你重新创建f, MATLAB会删除这个值
从表达式中f
.
信谊ff
f =
您可以使用信谊
命令清除之前在MATLAB会话中分配给它们的定义变量。信谊
清除变量的假设。这些假设(可以是实的、整数的、有理的和正的)与符号对象分开存储。但是,使用信谊
不明确它的假设。有关更多信息,请参见删除符号对象和他们的假设.