主要内容

信谊

创建符号变量,表达式,函数,矩阵

已移除对非有效变量名且不定义数字的字符向量的支持。要创建符号表达式,首先创建符号变量,然后对它们使用操作。例如,使用信谊x;X + 1而不是Sym ('x + 1')exp(信谊(π))而不是信谊(exp (pi)),信谊f (varN var1…)而不是f(var1,…,varN) = sym('f(var1,…,varN)')

描述

例子

x=符号(<一个href="#bun735q-x" class="intrnllnk">“x”创建符号标量变量x

例子

一个=符号(<一个href="#bun735q-a" class="intrnllnk">“一个”,<一个href="#bun735q-n1nM" class="intrnllnk">(n1……海里)创建一个n1——- - - - - -...——- - - - - -纳米充满自动生成元素的符号数组。例如,A = sym(' A ',[1 3])创建行向量A = [a1 a2 a3].生成的元素a1a2,a3不出现在MATLAB中®工作区。对于多维数组,这些元素具有前缀一个后面是元素的索引using_作为分隔符,例如a1_3_2

例子

一个=符号(<一个href="#bun735q-a" class="intrnllnk">“一个”, n)创建一个n——- - - - - -n充满自动生成元素的符号矩阵。

例子

信谊(___,<一个href="#bun735q-set" class="intrnllnk">创建符号变量或数组,并设置变量或所有数组元素所属的假设.在这里,可以“真实”的“积极”“整数”,或“理性”.您还可以通过指定字符向量的字符串数组或单元格数组来组合多个假设。例如,通过指定假设一个正有理数作为(“积极”的“理性”){"正面",“理性”}

信谊(___“明确”)清除在符号变量或数组上设置的假设。你可以指定“清楚”在前面任何语法的输入参数之后,组合除外“清楚”而且<一个href="#bun735q-set" class="intrnllnk">.不能在同一个函数调用中设置和清除假设信谊

例子

信谊(<一个href="#bun735q-num" class="intrnllnk">全国矿工工会所指定的数字或数值矩阵全国矿工工会到一个符号数或符号矩阵。

例子

信谊(<一个href="#bun735q-num" class="intrnllnk">全国矿工工会,<一个href="#bun735q-flag" class="intrnllnk">国旗所指定的技术国旗将浮点数转换为符号数。

例子

信谊(<一个href="#mw_b4228c40-a002-49a8-a6cc-1bec4af17ca8" class="intrnllnk">strnum属性指定的字符向量或字符串strnum没有近似值的精确符号数。

例子

symexpr=符号(<一个href="#bun735q-h" class="intrnllnk">h创建符号表达式或矩阵symexpr来自与函数句柄相关的匿名MATLAB函数h

例子

symexpr=符号(<一个href="#mw_d307bac1-aee8-4bd1-968e-268cef706ebb" class="intrnllnk">转换符号矩阵变量类型的symmatrix到符号标量变量数组symexpr类型的信谊

例子

全部折叠

创建符号变量x而且y

X = sym(“x”
x =
                       
                        
                         
                          x
                        
                       
Y = sym(“y”
y =
                       
                        
                         
                          y
                        
                       

创建一个1乘4的符号向量一个使用自动生成的元素a1、……a4

A = sym(“一个”1, [4])
A = [a1, a2, a3, a4]

您可以使用格式字符向量作为第一个参数来指定元素名称的格式。信谊替换% d在格式中字符向量与元素的索引生成元素名称。

B = sym(”间的% d '1, [4])
B = [x_1, x_2, x_3, x_4]

这些语法不创建符号变量a1、……a4x_1、……x_4在MATLAB®工作空间。访问元素一个而且b使用标准索引方法。

(1) b (2:3)
Ans = a1 Ans = [x_2, x_3]

用自动生成的元素创建一个3乘4的符号矩阵。的信谊函数生成窗体的矩阵元素Ai_j.在这里,信谊生成元素A1_1、……A3_4

A = sym(“一个”[3, 4])
A = [A1_1 A1_2、A1_3 A1_4] [A2_1、A2_2 A2_3, A2_4] [A3_1、A3_2 A3_3, A3_4]

用元素名称创建一个4 × 4矩阵x_1_1、……x_4_4通过使用格式字符向量作为第一个参数。信谊替换% d在格式中字符向量与元素的索引生成元素名称。

B = sym(”间的% d_ % d '4)
B = [x_1_1 x_1_2、x_1_3 x_1_4] [x_2_1、x_2_2 x_2_3, x_2_4] [x_3_1、x_3_2 x_3_3, x_3_4] [x_4_1、x_4_2 x_4_3, x_4_4]

这些语法不创建符号变量A1_1、……A3_4x_1_1、……x_4_4在MATLAB®工作空间。要访问矩阵的一个元素,请使用括号。

(2、3)B (4,2)
ans = A2_3 ans = x_4_2

创建一个带有自动生成元素的2 × 2 × 2符号数组 一个 1 1 1 ... 一个 2 2 2

A = sym(“一个”,[2 2 2])
(:: 1) =

一个 1 1 1 一个 1 2 1 一个 2 1 1 一个 2 2 1

(:: 2) =

一个 1 1 2 一个 1 2 2 一个 2 1 2 一个 2 2 2

将数值转换为符号数字或表达式。使用信谊在子表达式上,而不是整个表达式上,以获得更好的精度。使用信谊在整个表达式上是不准确的,因为MATLAB®首先将表达式转换为浮点数,这失去了准确性。信谊不能总是恢复这种丢失的准确性。

Inaccurate1 = sym(1/1234567)
inaccurate1 =

7650239286923505 9444732965739290427392

Accurate1 = 1/sym(1234567)
accurate1 =

1 1234567

Inaccurate2 = sym(根号(1234567))
inaccurate2 =

4886716562018589 4398046511104

Accurate2 = sqrt(sym(1234567))
accurate2 =
                       
                        
                         
                          
                           
                            1234567
                          
                         
                        
                       
Inaccurate3 = sym(exp(pi))
inaccurate3 =

6513525919879993 281474976710656

Accurate3 = exp(sym(pi))
accurate3 =
                       
                        
                         
                          
                           
                            e
                          
                          
                           
                            π
                          
                         
                        
                       

当创建15位及以上的符号数字时,请使用引号准确地表示这些数字。

inaccurateNum = sym(1111111111111111111111)
inaccurateNum =
                       
                        
                         
                          11111111111111110656
                        
                       
accurateNum = sym(“11111111111111111111”
accurateNum =
                       
                        
                         
                          11111111111111111111
                        
                       

使用引号创建符号复数时,请将数字的虚数部分指定为1我2我等等。

信谊(1234567 + 1i
ans =
                       
                        
                         
                          
                           
                            1234567
                           
                            +
                           
                          
                         
                        
                       

将与MATLAB®句柄相关的匿名函数转换为符号表达式和符号矩阵。

H_expr = @(x)(sinx) + cos(x));sym(h_expr)
sym_expr =
                       
                        
                         
                          
                           
                            
                             
                              因为
                            
                            
                             
                             
                              
                               
                                x
                              
                             
                             
                            
                           
                           
                            +
                           
                            
                             
                            
                            
                             
                             
                              
                               
                                x
                              
                             
                             
                            
                           
                          
                         
                        
                       
H_matrix = @(x)(x*pascal(3));Sym_matrix = sym(h_matrix)
sym_matrix =

x x x x 2 x 3. x x 3. x 6 x

创建符号变量xyz,t同时设定假设x是真实的,y是正的,z是理性的,而且t为正整数。

X = sym(“x”“真实”的);Y = sym(“y”“积极”);Z = sym(“z”“理性”);T = sym(“t”, {“积极”“整数”});

检查以下假设xyz,t使用假设

假设
ans =
                       
                        
                         
                          
                          
                           
                            
                             
                              
                               
                                
                                 
                                  t
                                
                                
                                
                                 
                                  Z
                                
                               
                              
                             
                            
                            
                             
                              
                               
                                
                                 
                                  x
                                
                                
                                
                                 
                                  R
                                
                               
                              
                             
                            
                            
                             
                              
                               
                                
                                 
                                  z
                                
                                
                                
                                 
                                
                               
                              
                             
                            
                            
                             
                              
                               
                                
                                 1
                                
                                
                                 t
                               
                              
                             
                            
                            
                             
                              
                               
                                
                                 0
                                
                                 <
                                
                                 y
                               
                              
                             
                            
                           
                          
                          
                         
                        
                       

为进一步的计算,使用清除假设假设

假设([x y z t],“清楚”)假设
ans =空sym: 1乘0

创建一个符号矩阵,并对该矩阵的每个元素设置假设。

A = sym(' % d % d '(2 - 2),“积极”
一个=

一个 11 一个 12 一个 21 一个 22

解一个包含第一个元素的方程一个.MATLAB®假设这个元素是正的。

解决((1,1)^ 2 - 1,(1,1))
ans =
                       
                        
                         
                          1
                        
                       

检查元素的假设一个通过使用假设

假设(一)
ans =
                       
                        
                         
                          
                          
                           
                            
                             
                              
                               
                                
                                 0
                                
                                 <
                                
                                 
                                  
                                   一个
                                 
                                 
                                  
                                   11
                                 
                                
                               
                              
                             
                            
                            
                             
                              
                               
                                
                                 0
                                
                                 <
                                
                                 
                                  
                                   一个
                                 
                                 
                                  
                                   12
                                 
                                
                               
                              
                             
                            
                            
                             
                              
                               
                                
                                 0
                                
                                 <
                                
                                 
                                  
                                   一个
                                 
                                 
                                  
                                   21
                                 
                                
                               
                              
                             
                            
                            
                             
                              
                               
                                
                                 0
                                
                                 <
                                
                                 
                                  
                                   一个
                                 
                                 
                                  
                                   22
                                 
                                
                               
                              
                             
                            
                           
                          
                          
                         
                        
                       

清除先前对符号矩阵元素设置的所有假设假设

假设(一个,“清楚”);假设(一)
ans =空sym: 1乘0

再解一遍相同的方程。

解决((1,1)^ 2 - 1,(1,1))
ans =

- 1 1

转换π到一个象征的价值。

通过指定可选的第二个参数来选择转换技术,可以是“r”“f”' d ',或“e”.默认为“r”.有关转换技术的详细信息,请参阅输入参数部分。

R = sym(pi)
r =
                       
                        
                         
                          π
                        
                       
F = sym(,“f”
f =

884279719003555 281474976710656

D = sym(,' d '
d =
                       
                        
                         
                          3.1415926535897931159979634685442
                        
                       
E = sym(,“e”
e =

π - 198 每股收益 359

创建3 × 3和3 × 1符号矩阵变量。

信谊一个[3 3]矩阵信谊X(3 - 1)矩阵

求的黑森矩阵 X T 斧头

f = X.'*A*X;M = diff(f,X,X.')
M =
                       
                        
                         
                          
                           
                            
                             
                              
                               
                                一个
                              
                             
                            
                            
                             
                              T
                            
                           
                           
                            +
                           
                            
                             
                              一个
                            
                           
                          
                         
                        
                       

将结果从符号矩阵变量转换为符号标量变量的矩阵。

S = sym(M)
S =

2 一个 1 1 一个 1 2 + 一个 2 1 一个 1 3. + 一个 3. 1 一个 1 2 + 一个 2 1 2 一个 2 2 一个 2 3. + 一个 3. 2 一个 1 3. + 一个 3. 1 一个 2 3. + 一个 3. 2 2 一个 3. 3.

或者,您可以使用<一个href="//www.ru-cchi.com/help/symbolic/symmatrix2sym.html" data-docid="symbolic_ug#mw_1146db42-45e0-4cf7-9bca-644ee9a25e4b" class="a">symmatrix2sym将符号矩阵变量转换为符号标量变量数组。

S = symmatrix2sym(M)
S =

2 一个 1 1 一个 1 2 + 一个 2 1 一个 1 3. + 一个 3. 1 一个 1 2 + 一个 2 1 2 一个 2 2 一个 2 3. + 一个 3. 2 一个 1 3. + 一个 3. 1 一个 2 3. + 一个 3. 2 2 一个 3. 3.

输入参数

全部折叠

变量名,指定为字符向量或字符串。论点x必须是有效的变量名。也就是说,x必须以字母开头,只包含字母数字和下划线。若要验证该名称是否是有效的变量名称,请使用<一个href="//www.ru-cchi.com/help/matlab/ref/isvarname.html">isvarname

例子:“x”“y123”“z_1”

自动生成的矩阵元素的前缀,指定为字符向量或字符串。论点一个必须是有效的变量名。也就是说,一个必须以字母开头,只包含字母数字和下划线。若要验证该名称是否是有效的变量名称,请使用<一个href="//www.ru-cchi.com/help/matlab/ref/isvarname.html">isvarname

例子:“一个”“b”“a_bc”

向量、矩阵或数组的维度,指定为整数的向量。作为一种快捷方式,您可以通过只指定一个整数来创建方阵。例如,A = sym('A',3)创建一个3乘3的方阵。

例子:3 [2]

对符号变量或矩阵的假设,指定为字符向量、字符串数组或字符向量的单元格数组。可用的假设是“整数”“理性”“真实”的,或“积极”

您可以通过指定字符向量的字符串数组或单元格数组来组合多个假设。例如,通过指定假设一个正有理数作为(“积极”的“理性”){"正面",“理性”}

例子:“整数”

要转换为符号数字或矩阵的数值,指定为数字、符号常数或数字矩阵。

例子:π

转换技术,指定为本表中列出的字符之一。

“r” 信谊使用理性的模式,它转换通过计算窗体表达式获得的浮点数p / qp *π/sqrt (p)2 ^问,10 ^问(对于中等大小的整数p而且)转换为相应的符号形式。例如,信谊(1/10,“r”)返回1/10.此模式有效地补偿了原始计算中涉及的舍入误差,但可能无法精确地表示浮点值。如果信谊如果找不到一个简单的合理近似,那么它就会使用与标记相同的技术“f”
' d ' 信谊使用小数的当前设置中的位数数字.小于16位的转换会失去一定的准确性,而超过16位的转换可能就没有保证了。例如,信谊(4/3,' d ')具有10位精度的返回1.333333333,而它的返回精度为20位1.3333333333333332593.后者并没有结束于3.S,但它是最接近的浮点数的精确十进制表示4/3
“e” 信谊使用估计错误模态,它补充了一个在有理数模态下得到的结果,包含变量的项每股收益.这一项估计理论有理表达式与其实际浮点值之间的差异。例如,信谊(3 *π/ 4,' e ')返回(3*pi)/4 - (103*eps)/249
“f” 信谊使用浮点数到有理数模式时,它返回表单中所有值的符号形式N * 2 ^ e- n * 2 ^ e,在那里N >= 0是非负整数和e整数形式。返回的符号数是一个精确的有理数,等于浮点值。例如,信谊(1/10,' f ')返回3602879701896397/36028797018963968

表示符号数字的字符,指定为字符向量或字符串。

例子:“1/10”

匿名函数,指定为MATLAB函数句柄。有关更多信息,请参见<一个href="//www.ru-cchi.com/help/matlab/matlab_prog/anonymous-functions.html" class="a">匿名函数.

例子:H = @(x)sin(x)

符号矩阵变量转换,指定为符号矩阵变量。

或者,您可以使用<一个href="//www.ru-cchi.com/help/symbolic/symmatrix2sym.html">symmatrix2sym将符号矩阵变量转换为符号标量变量数组。

例子:符号a2矩阵;M = A^2 +眼睛(2)

数据类型:symmatrix

输出参数

全部折叠

变量,作为符号标量变量返回。

带有自动生成元素的向量或矩阵,作为符号标量变量的符号向量或矩阵返回。这个向量或矩阵的元素不会出现在MATLAB工作空间中。

由匿名MATLAB函数或符号矩阵变量转换而来的表达式或矩阵,返回为符号标量变量的符号表达式或矩阵。

数据类型:信谊

提示

  • 声明如PI = sym(PI)而且Delta = sym('1/10')的值中所固有的浮点近似值π而且1/10.的π以这种方式创建的符号数将存储在名为π,它会临时用相同的名称替换内置的数值函数。使用明确π的浮点表示形式π

  • 信谊总是把在字符向量输入中作为标识符。输入虚数,使用1我代替。

  • 清晰的x不清楚象征对象的假设,如真实的,积极的,或由设定的任何假设假设信谊,或信谊.要去除假设,请使用以下选项之一:

    • 假设(x,“明确的”)移除所有影响x

    • 清除所有清除MATLAB工作区中的所有对象并重置符号引擎。

    • 假设而且assumeAlso为设置变量假设提供更大的灵活性。

  • 当您用符号数替换数值向量或矩阵的一个或多个元素时,MATLAB将该数字转换为双精度数。

    A =眼睛(3);A(1,1) = sym(pi)
    A = 3.1416 000 1.0000 000 1.0000

    不能用符号变量、表达式或函数替换数值向量或矩阵的元素,因为这些元素不能转换为双精度数。例如,A(1,1) = sym(' A ')抛出错误。

  • 当你使用语法时A = sym(' A ',[n1…]海里),信谊函数仅分配符号数组一个到MATLAB工作空间。的自动生成元素赋值一个,使用<一个href="//www.ru-cchi.com/help/symbolic/syms.html">信谊函数来代替。例如,符号a [1 3]创建行向量A = [a1 a2 a3]符号变量a1a2,a3在MATLAB工作空间中。

选择功能

创建符号变量的替代方法

若要在一次函数调用中创建多个符号变量,请使用信谊.使用信谊还从已命名的变量中清除假设。

版本历史

R2006a之前介绍

全部展开

Baidu
map