主要内容

创建符号数字,变量和表达式

这个例子展示了如何创建符号数字、变量和表达式。要学习如何使用符号数学,请参见执行符号计算

创建具有精确表示的符号数字

可以使用。创建符号数字信谊.符号数是精确的表示,不像浮点数。

使用创建符号数字信谊并将它们与相同的浮点数进行比较。

a1Sym = sym(1/3)
a1Sym =

1 3.

A1 = 1/3
A1 = 0.3333
a2Sym = sym(pi)
a2Sym =
                  
                   
                    
                     π
                   
                  
A2 = PI
A2 = 3.1416

符号数以精确的有理数形式表示,而浮点数则是十进制近似值。

符号数的计算是精确的。通过发现来证明这种精确性sin(π)象征和数字上。符号结果是精确的,而数值结果是近似值。

bSym = sin(sym(pi))
bSym =
                  
                   
                    
                     0
                   
                  
B = sin(pi)
B = 1.2246e-16

当你使用信谊对于数值输入,数值表达式首先计算为MATLAB®默认双精度数,这可能不太准确。然后,信谊应用于那个双精度数。若要表示一个精确的数字,而不计算为双倍精度,请使用带引号的字符向量。例如,创建一个符号数字来精确地表示一个非常大的整数。

inaccurateNum = sym(123456789012345678)
inaccurateNum =
                  
                   
                    
                     123456789012345680
                   
                  
accurateNum = sym(“123456789012345678”
accurateNum =
                  
                   
                    
                     123456789012345678
                   
                  

还可以创建符号复数,方法是将数字的虚部指定为1我2我等等。

信谊(1234567 + 1i
ans =
                  
                   
                    
                     
                      
                       1234567
                      
                       +
                      
                     
                    
                   
                  

要了解有关数字的符号表示的更多信息,请参见数字到符号转换

创建具有可变精度的符号数字

可以使用。创建具有可变精度浮点算术的符号数vpa.默认情况下,vpa计算值为32位有效数字。

piVpa = vpa(pi)
piVpa =
                  
                   
                    
                     3.1415926535897932384626433832795
                   
                  

当你使用vpa在数值表达式上,例如日志(2)时,表达式首先求值为MATLAB默认双精度数,其有效数字小于32位。然后,vpa应用于该双精度数,其精度可能较低。若要获得更精确的结果,请将表达式中的双精度数转换为符号数信谊然后使用vpa以可变精度评估结果。例如,查找日志(2)具有17位和20位精度。

vpaOnDouble = vpa(log(2))
vpaOnDouble =
                  
                   
                    
                     0.69314718055994528622676398299518
                   
                  
vpaOnSym_17 = vpa(log(sym(2)),17)
vpaOnSym_17 =
                  
                   
                    
                     0.69314718055994531
                   
                  
vpaOnSym_20 = vpa(log(sym(2)),20)
vpaOnSym_20 =
                  
                   
                    
                     0.69314718055994530942
                   
                  

当转换较大的数字时,使用引号准确地表示它们。

inaccurateNum = vpa(123456789012345678)
inaccurateNum =
                  
                   
                    
                     123456789012345680.0
                   
                  
accurateNum = vpa(“123456789012345678”
accurateNum =
                  
                   
                    
                     123456789012345678.0
                   
                  

创建符号变量

您可以使用任何一种方法创建符号变量信谊信谊.这些函数的典型用法包括:

  • 信谊-创建编号的符号变量,MATLAB函数中的符号变量,或其值与MATLAB工作区中的名称不同的符号数字。

  • 信谊——创建新鲜的用于交互式符号工作流的符号变量,即在MATLAB命令行或MATLAB实时脚本中创建符号变量。一个新鲜的符号变量没有任何假设。

信谊命令是命令的简写信谊语法,但是这两个函数处理假设的方式不同。信谊在创建变量时清除假设。但是,使用信谊不明确它的假设。

创建符号变量x和y使用信谊而且信谊,分别。

信谊xY = sym(“y”
y =
                  
                   
                    
                     y
                   
                  

第一个命令创建一个符号变量x在MATLAB工作区中使用该值 x 赋值给变量x.第二个命令创建一个符号变量y用值 y

信谊,可以在一条命令中创建多个变量。创建变量一个b,c

信谊一个bc

创建符号变量数组

如果要创建带有编号符号变量的MATLAB数组,请使用信谊的语法更方便信谊语法。因此,使用信谊创建由许多编号的符号变量组成的数组。

清理工作区。创建包含符号变量的行向量 一个 1 ... 一个 20. 然后赋值给MATLAB变量一个.在MATLAB工作区中显示变量。

clear A = sym(“一个”20 [1])
一个=
                  
                   
                    
                     
                     
                      
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            1
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            2
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            3.
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            4
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            5
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            6
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            7
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            8
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            9
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            10
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            11
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            12
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            13
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            14
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            15
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            16
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            17
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            18
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            19
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            一个
                          
                          
                           
                            20.
                          
                         
                        
                       
                      
                     
                     
                    
                   
                  
名称大小字节类属性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 + 5 2

使用信谊创造黄金比例。

=(1 +根号下(sym(5)))/2;

现在你可以对φ.例如:

F = ^2 - - 1
f =

5 2 + 1 2 2 - 5 2 - 3. 2

接下来,假设你想研究二次函数 f 一个 x 2 + bx + c .首先,创建符号变量一个bc,x

信谊一个bcx

然后,创建一个象征性的表达f它表示算术表达式 一个 x 2 + bx + c

F = a*x²+ b*x + c
f =
                  
                   
                    
                     
                      
                       
                        
                         一个
                        
                        
                        
                         
                          
                           x
                         
                         
                          
                           2
                         
                        
                       
                      
                      
                       +
                      
                       
                        
                         b
                        
                        
                        
                         x
                       
                      
                      
                       +
                      
                       c
                     
                    
                   
                  

求二次方程 f 0 x 通过使用解决

X_0 = solve(f == 0,x)
从=

- b + b 2 - 4 一个 c 2 一个 - b - b 2 - 4 一个 c 2 一个

还可以将数学函数应用于算术表达式。例如,应用第一类贝塞尔函数 J 0 到算术表达式 f 求它对的导数 x

J_0 = besselj(0,f)
J_0 =
                  
                   
                    
                     
                      
                       
                        
                         
                          J
                        
                        
                         
                          besselj
                         
                        
                       
                      
                      
                       
                        0
                      
                     
                     
                      
                      
                       
                        
                         
                          
                           
                            一个
                           
                           
                           
                            
                             
                              x
                            
                            
                             
                              2
                            
                           
                          
                         
                         
                          +
                         
                          
                           
                            b
                           
                           
                           
                            x
                          
                         
                         
                          +
                         
                          c
                        
                       
                      
                      
                     
                    
                   
                  
DJ_0 = diff(J_0,x)
DJ_0 =
                  
                   
                    
                     
                      
                       -
                      
                       
                        
                         
                          
                           
                            
                             
                              J
                            
                            
                             
                              besselj
                             
                            
                           
                          
                          
                           
                            1
                          
                         
                         
                          
                          
                           
                            
                             
                              
                               
                                一个
                               
                               
                               
                                
                                 
                                  x
                                
                                
                                 
                                  2
                                
                               
                              
                             
                             
                              +
                             
                              
                               
                                b
                               
                               
                               
                                x
                              
                             
                             
                              +
                             
                              c
                            
                           
                          
                          
                         
                        
                        
                        
                        
                         
                          
                           
                            
                             b
                            
                             +
                            
                             
                              
                               2
                              
                              
                              
                               一个
                              
                              
                              
                               x
                             
                            
                           
                          
                         
                        
                       
                      
                     
                    
                   
                  

若要在符号表达式中创建符号数,请使用信谊.不要使用信谊创建一个常量的符号表达式。例如,要创建一个值为的表达式5,输入F = sym(5).命令F = 5没有定义f作为一种象征性的表达。

还可以使用str2sym当从文本文件中读取表达式或精确指定数字时。

重复使用符号对象的名称

如果将变量设置为符号表达式,然后应用信谊命令到变量,MATLAB从变量中删除之前定义的表达式。

例如,创建一个符号表达式f

信谊一个bF = a + b
f =
                  
                   
                    
                     
                      
                       一个
                      
                       +
                      
                       b
                     
                    
                   
                  

如果你重新创建f, MATLAB会删除这个值 一个 + b 从表达式中f

信谊ff
f =
                  
                   
                    
                     f
                   
                  

您可以使用信谊命令清除之前在MATLAB会话中分配给它们的定义变量。信谊清除变量的假设。这些假设(可以是实的、整数的、有理的和正的)与符号对象分开存储。但是,使用信谊不明确它的假设。有关更多信息,请参见删除符号对象和他们的假设

相关的话题

Baidu
map