主要内容

潜艇

符号替换

描述

例子

snew=潜艇(年代返回年代,替换所有出现的,然后计算年代.在这里,年代表达式是否包含符号标量变量和指定要替换的标量变量。

例子

snew=潜艇(年代返回年代,替换所有出现的默认符号标量变量年代,然后计算年代.默认变量定义为symvar(年代,1)

例子

snew=潜艇(年代返回年代中的符号标量变量年代,分别从调用函数和MATLAB中获得它们的值®工作区,然后求值年代.没有赋值的变量仍然是变量。

例子

sMnew=潜艇(sMoldMnewM返回sM,替换所有出现的oldMnewM,然后计算sM.在这里,sM表达式是否包含符号矩阵变量和oldM指定要替换的矩阵变量。(自从R2021b

例子

sMnew=潜艇(sMnewM返回sM,替换所有出现的默认符号矩阵变量sMnewM,然后计算sM.(自从R2021b

例子

全部折叠

取代一个4在这个表达式中。

信谊一个bs(a + b,a,4)
ans =
                      
                       
                        
                         
                          
                           b
                          
                           +
                          
                           4
                         
                        
                       
                      

取代a * b5在这个表达式中。

潜艇(a * b ^ 2, a * b, 5)
ans =
                      
                       
                        
                         
                          
                           5
                          
                          
                          
                           b
                         
                        
                       
                      

将此表达式中的默认符号标量变量替换为一个.如果未指定要替换的标量变量或表达式,潜艇使用symvar来查找默认变量。为X + y,默认为x

信谊xy一个Symvar (x + y,1)
ans =
                      
                       
                        
                         x
                       
                      

因此,subs替换x一个

s(x + y,a)
ans =
                      
                       
                        
                         
                          
                           一个
                          
                           +
                          
                           y
                         
                        
                       
                      

将新值赋给符号标量变量时,包含该变量的表达式不会自动求值。相反,通过使用求值表达式潜艇

定义表达式Y = x^2

信谊xY = x^2;

分配2x.的价值y仍然是x ^ 2而不是4

X = 2;y
y =
                      
                       
                        
                         
                          
                           x
                         
                         
                          
                           2
                         
                        
                       
                      

评估y的新值x通过使用潜艇

潜艇(y)
ans =
                      
                       
                        
                         4
                       
                      

通过将旧值和新值指定为向量来进行多次替换。

信谊一个bSubs (cos(a) + sin(b), [a,b], [sym(“α”), 2)
ans =
                      
                       
                        
                         
                          
                           
                            
                           
                           
                            
                            
                             
                              
                               2
                             
                            
                            
                           
                          
                          
                           +
                          
                           
                            
                             因为
                           
                           
                            
                            
                             
                              
                               α
                             
                            
                            
                           
                          
                         
                        
                       
                      

或者,对于多个替换,使用单元格数组。

Subs (cos(a) + sin(b), {a,b}, {sym(“α”), 2})
ans =
                      
                       
                        
                         
                          
                           
                            
                           
                           
                            
                            
                             
                              
                               2
                             
                            
                            
                           
                          
                          
                           +
                          
                           
                            
                             因为
                           
                           
                            
                            
                             
                              
                               α
                             
                            
                            
                           
                          
                         
                        
                       
                      

替换符号标量变量一个在这个3 × 3魔方阵的表达式中。注意这个常数1展开为3 × 3矩阵,其中所有元素等于1

信谊一个t(exp(a*t) + 1, a, -magic(3))
ans =

e - 8 t + 1 e - t + 1 e - 6 t + 1 e - 3. t + 1 e - 5 t + 1 e - 7 t + 1 e - 4 t + 1 e - 9 t + 1 e - 2 t + 1

还可以用非标量值替换向量、矩阵或数组的元素。例如,创建这些2 × 2矩阵。

A = sym(“一个”, (2, 2))
一个=

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

B = sym(“B”, (2, 2))
B =

B 1 1 B 1 2 B 2 1 B 2 2

替换矩阵的第一个元素一个用矩阵B.在做替换的时候,潜艇展开2 × 2矩阵一个变成这个4 × 4矩阵。

A44 = subs(A, A(1,1), B)
A44 =

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

潜艇不允许将非标量或矩阵替换为缩小矩阵大小的标量。

创建一个以符号表达式作为字段值的结构数组。

信谊xyzS = struct(“f1”x * y,“f2”,y + z,‘f3’, y ^ 2)
S =带字段的结构:f2: y + z f3: y^2

替换符号标量变量xy,z用数值。

Sval = subs(S,[x y z],[0.5 1 1.5])
Sval =带字段的结构:f2: 5/2 f3: 1

替换符号标量变量x而且y用这些2 × 2矩阵。当进行涉及向量或矩阵的多次替换时,请使用单元格数组指定旧值和新值。

信谊xySubs (x*y, {x,y}, {[0 1;-1 0], [1 -1;2 1]})
ans =

0 - 1 2 0

请注意,由于x而且y是标量,这些替换是按元素进行的。

[0 1;1 0]。* [1 1;2 (1)
ans =2×20 -1 2 0

通过使用另一个方程中的变量值来消除一个方程中的标量变量。在第二个方程中,将左边的变量用隔离,然后将右边代入第一个方程中的变量。

首先,声明方程eqn1而且eqn2

信谊xyEqn1 = sin(x)+y == x²+y²;Eqn2 = y*x == cos(x);

隔离yeqn2通过使用隔离

Eqn2 =隔离(Eqn2,y)
eqn2 =

y 因为 x x

消除yeqn1把右边代入eqn2用左边的eqn2eqn1

Eqn1 = subs(Eqn1,lhs(eqn2),rhs(eqn2))
eqn1 =

x + 因为 x x 因为 x 2 x 2 + x 2

取代x一个在这个符号函数中。

信谊xy一个信谊f (x, y)F (x,y) = x + y;F = subs(F,x,a)
F (x, y) =
                      
                       
                        
                         
                          
                           一个
                          
                           +
                          
                           y
                         
                        
                       
                      

潜艇替换符号函数公式中的值,但不替换函数的输入参数。

公式(f)
ans =
                      
                       
                        
                         
                          
                           一个
                          
                           +
                          
                           y
                         
                        
                       
                      
argnames (f)
ans =
                      
                       
                        
                         
                         
                          
                           
                            
                             
                              x
                            
                           
                           
                            
                             
                              y
                            
                           
                          
                         
                         
                        
                       
                      

显式替换符号函数的实参。

信谊xyF (x,y) = x + y;F (a,y) = subs(F,x,a);f
F (a, y) =
                      
                       
                        
                         
                          
                           一个
                          
                           +
                          
                           y
                         
                        
                       
                      

假设你想验证这个方程组的解。金宝搏官方网站

信谊xy= [x^2 + y^2 == 1, x == y];S = solve(eqs,[x y]);S.x
ans =

- 2 2 2 2

S.y
ans =

- 2 2 2 2

将解代入原方程组验证解金宝搏官方网站。

总(潜艇(方程式,S))
ans =2x2逻辑阵列1 1 1 1

自从R2021b

定义两个2 × 2矩阵的乘积。将矩阵声明为符号矩阵变量symmatrix数据类型。

信谊XY(2 - 2)矩阵sM = X*Y
sM =
                      
                       
                        
                         
                          
                           
                            
                             X
                           
                          
                          
                          
                          
                           
                            
                             Y
                           
                          
                         
                        
                       
                      

替换矩阵变量 X 而且 Y 用2乘2的符号矩阵。当进行涉及向量或矩阵的多次替换时,请使用单元格数组指定旧值和新值。

S = subs(sM,{X,Y},{[0 1;-1 0], [1 -1;2 1]})
S =

Σ 1 Σ 2 在哪里 Σ 1 0 1 - 1 0 Σ 2 1 - 1 - 2 1

转换表达式年代信谊数据类型,以显示替换矩阵乘法的结果。

Ssym = symmatrix2sym(S)
Ssym =

- 2 1 - 1 1

自从R2021b

创建一个符号数字矩阵。

A = sym([1 4 2;4、1、2;2、2、3)
一个=

1 4 2 4 1 2 2 2 3.

的特征多项式的系数一个使用charpoly函数。

c = charpoly(A);

接下来,定义 X 作为一个3乘3的符号矩阵变量。利用系数c为了得到多项式 p X c 1 X 3. + c 2 X 2 + c 3. X + c 4 3. ,在那里 X 是一个表示3 × 3矩阵的不定式。

信谊X[3 3]矩阵p = c(1)*X^3 + c(2)*X^2 + c(3)*X + c(4)*X^0
p =
                      
                       
                        
                         
                          
                           
                            
                             21
                            
                            
                            
                             
                              
                             
                             
                              
                               
                                3.
                              
                             
                            
                           
                          
                          
                           -
                          
                           
                            
                             17
                            
                            
                            
                             
                              
                               X
                             
                            
                           
                          
                          
                           -
                          
                           
                            
                             5
                            
                            
                            
                             
                              
                               
                                
                                 X
                               
                              
                             
                             
                              
                               2
                             
                            
                           
                          
                          
                           +
                          
                           
                            
                             
                              
                               X
                             
                            
                           
                           
                            
                             3.
                           
                          
                         
                        
                       
                      

替代 X 在多项式中 p X 一个使用潜艇函数。根据Cayley-Hamilton定理,这个结果是一个3 × 3的零矩阵,因为系数c的特征多项式是一个.使用symmatrix2sym将替换的表达式转换为符号数矩阵。

Y =下标s(p,A)
Y =

- 17 Σ 1 - 5 Σ 1 2 + Σ 1 3. + 21 3. 在哪里 Σ 1 1 4 2 4 1 2 2 2 3.

Z = symmatrix2sym(Y)
Z =

0 0 0 0 0 0 0 0 0

输入参数

全部折叠

输入,指定为符号标量变量、表达式、方程、函数、数组、矩阵或结构。

数据类型:信谊|symfun|结构体

要替换的标量变量,指定为符号标量变量、表达式、数组或单元格数组。

数据类型:信谊|细胞

要替换的新值,指定为数字、符号数字、标量变量、表达式、数组、结构或单元格数组。

数据类型:信谊|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串|结构体|细胞

自从R2021b

输入,指定为符号矩阵变量,或包含矩阵变量的符号表达式。

数据类型:symmatrix

自从R2021b

要替换的矩阵变量,指定为符号矩阵变量、符号表达式或包含矩阵变量的单元格数组。

数据类型:symmatrix|细胞

自从R2021b

要替换的新值,指定为数字、符号数字、矩阵变量、表达式、数组或单元格数组。newM一定要和oldM,或作为默认的符号矩阵变量sM

数据类型:信谊|symmatrix|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串|结构体|细胞

提示

  • 潜艇(s、旧、新)不修改年代.修改年代,使用S = subs(S,old,new)

  • 如果而且都是相同大小的向量或单元格数组,潜艇替换的每个元素的对应元素

  • 如果是标量,和那么是向量还是矩阵呢潜艇(s、旧、新)的所有实例年代,按元素执行所有操作。都是常数项年代替换为常数乘以一个全为1的向量或矩阵。

  • 如果年代是单变量多项式吗是一个数字矩阵,使用polyvalm (sym2poly (s)、新)评估年代作为一个矩阵。所有常数项都替换为常数乘以单位矩阵。

R2006a之前介绍