主要内容

求多元函数的极值及其逼近

这个例子展示了如何找到一个多元函数的极值,以及它在极值点附近的逼近。本例使用符号矩阵变量表示多元函数及其导数。符号矩阵变量从R2021a开始可用。

考虑多元函数 f x x T 一个 x ,在那里 x 2 × 1向量和 一个 是一个2 × 2矩阵。求这个函数的局部极值,求的导数的根 f x .也就是说,求导数的解 f x 0 0

创建函数并求其导数

创建矢量 x 这个矩阵 一个 作为符号矩阵变量。定义函数 f x x T 一个 x

信谊x(2 - 1)矩阵信谊一个(2 - 2)矩阵f = sin(x.'*A*x)
f =
                  
                   
                    
                     
                      
                     
                     
                      
                      
                       
                        
                         
                          
                           
                            
                             
                              
                               x
                             
                            
                           
                           
                            
                             T
                           
                          
                          
                          
                          
                           
                            
                             一个
                           
                          
                          
                          
                          
                           
                            
                             x
                           
                          
                         
                        
                       
                      
                      
                     
                    
                   
                  

计算导数D函数的 f x 对这个向量 x .导数D是用紧凑矩阵表示的 x 而且 一个

D = diff(f,x)
D =
                  
                   
                    
                     
                      
                       
                        
                         因为
                       
                       
                        
                        
                         
                          
                           
                            
                             
                              
                               
                                
                                 x
                               
                              
                             
                             
                              
                               T
                             
                            
                            
                            
                            
                             
                              
                               一个
                             
                            
                            
                            
                            
                             
                              
                               x
                             
                            
                           
                          
                         
                        
                        
                       
                      
                      
                      
                      
                       
                        
                         
                          
                           
                            
                             
                              
                               
                                
                                 x
                               
                              
                             
                             
                              
                               T
                             
                            
                            
                            
                            
                             
                              
                               一个
                             
                            
                           
                          
                          
                           +
                          
                           
                            
                             
                              
                               
                                
                                 x
                               
                              
                             
                             
                              
                               T
                             
                            
                            
                            
                            
                             
                              
                               
                                
                                 一个
                               
                              
                             
                             
                              
                               T
                             
                            
                           
                          
                         
                        
                       
                      
                     
                    
                   
                  

转换symmatrix对象信谊对象

符号矩阵变量x一个f,Dsymmatrix对象。这些对象用紧凑矩阵表示法表示矩阵、向量和标量。若要显示这些变量的分量,请转换symmatrix对象信谊对象的使用symmatrix2sym

sym = symmatrix2sym(x)
xsym =

x 1 x 2

symmatrix2sym(A)
Asym =

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

Fsym = symmatrix2sym(f)
fsym =
                  
                   
                    
                     
                      
                     
                     
                      
                      
                       
                        
                         
                          
                           
                            
                             
                              
                               x
                             
                             
                              
                               1
                             
                            
                            
                            
                            
                             
                              
                               
                                
                                 
                                  
                                   
                                    
                                     一个
                                   
                                   
                                    
                                     1
                                    
                                    
                                     1
                                   
                                  
                                  
                                  
                                  
                                   
                                    
                                     x
                                   
                                   
                                    
                                     1
                                   
                                  
                                 
                                
                                
                                 +
                                
                                 
                                  
                                   
                                    
                                     一个
                                   
                                   
                                    
                                     1
                                    
                                    
                                     2
                                   
                                  
                                  
                                  
                                  
                                   
                                    
                                     x
                                   
                                   
                                    
                                     2
                                   
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                          
                           +
                          
                           
                            
                             
                              
                               x
                             
                             
                              
                               2
                             
                            
                            
                            
                            
                             
                              
                               
                                
                                 
                                  
                                   
                                    
                                     一个
                                   
                                   
                                    
                                     2
                                    
                                    
                                     1
                                   
                                  
                                  
                                  
                                  
                                   
                                    
                                     x
                                   
                                   
                                    
                                     1
                                   
                                  
                                 
                                
                                
                                 +
                                
                                 
                                  
                                   
                                    
                                     一个
                                   
                                   
                                    
                                     2
                                    
                                    
                                     2
                                   
                                  
                                  
                                  
                                  
                                   
                                    
                                     x
                                   
                                   
                                    
                                     2
                                   
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                         
                        
                       
                      
                      
                     
                    
                   
                  
Dsym = symmatrix2sym(D)
Dsym =
                  
                   
                    
                     
                     
                      
                       
                        
                         
                          
                           
                            
                             
                              因为
                            
                            
                             
                             
                              
                               
                                
                                 
                                  
                                   
                                    
                                     
                                      x
                                    
                                    
                                     
                                      1
                                    
                                   
                                   
                                   
                                   
                                    
                                     
                                      
                                       
                                        
                                         
                                          
                                           
                                            一个
                                          
                                          
                                           
                                            1
                                           
                                           
                                            1
                                          
                                         
                                         
                                         
                                         
                                          
                                           
                                            x
                                          
                                          
                                           
                                            1
                                          
                                         
                                        
                                       
                                       
                                        +
                                       
                                        
                                         
                                          
                                           
                                            一个
                                          
                                          
                                           
                                            1
                                           
                                           
                                            2
                                          
                                         
                                         
                                         
                                         
                                          
                                           
                                            x
                                          
                                          
                                           
                                            2
                                          
                                         
                                        
                                       
                                      
                                     
                                    
                                   
                                  
                                 
                                 
                                  +
                                 
                                  
                                   
                                    
                                     
                                      x
                                    
                                    
                                     
                                      2
                                    
                                   
                                   
                                   
                                   
                                    
                                     
                                      
                                       
                                        
                                         
                                          
                                           
                                            一个
                                          
                                          
                                           
                                            2
                                           
                                           
                                            1
                                          
                                         
                                         
                                         
                                         
                                          
                                           
                                            x
                                          
                                          
                                           
                                            1
                                          
                                         
                                        
                                       
                                       
                                        +
                                       
                                        
                                         
                                          
                                           
                                            一个
                                          
                                          
                                           
                                            2
                                           
                                           
                                            2
                                          
                                         
                                         
                                         
                                         
                                          
                                           
                                            x
                                          
                                          
                                           
                                            2
                                          
                                         
                                        
                                       
                                      
                                     
                                    
                                   
                                  
                                 
                                
                               
                              
                             
                             
                            
                           
                           
                           
                           
                            
                             
                              
                               
                                
                                 
                                  2
                                 
                                 
                                 
                                  
                                   
                                    一个
                                  
                                  
                                   
                                    1
                                   
                                   
                                    1
                                  
                                 
                                 
                                 
                                 
                                  
                                   
                                    x
                                  
                                  
                                   
                                    1
                                  
                                 
                                
                               
                               
                                +
                               
                                
                                 
                                  
                                   
                                    一个
                                  
                                  
                                   
                                    1
                                   
                                   
                                    2
                                  
                                 
                                 
                                 
                                 
                                  
                                   
                                    x
                                  
                                  
                                   
                                    2
                                  
                                 
                                
                               
                               
                                +
                               
                                
                                 
                                  
                                   
                                    一个
                                  
                                  
                                   
                                    2
                                   
                                   
                                    1
                                  
                                 
                                 
                                 
                                 
                                  
                                   
                                    x
                                  
                                  
                                   
                                    2
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            
                             
                              因为
                            
                            
                             
                             
                              
                               
                                
                                 
                                  
                                   
                                    
                                     
                                      x
                                    
                                    
                                     
                                      1
                                    
                                   
                                   
                                   
                                   
                                    
                                     
                                      
                                       
                                        
                                         
                                          
                                           
                                            一个
                                          
                                          
                                           
                                            1
                                           
                                           
                                            1
                                          
                                         
                                         
                                         
                                         
                                          
                                           
                                            x
                                          
                                          
                                           
                                            1
                                          
                                         
                                        
                                       
                                       
                                        +
                                       
                                        
                                         
                                          
                                           
                                            一个
                                          
                                          
                                           
                                            1
                                           
                                           
                                            2
                                          
                                         
                                         
                                         
                                         
                                          
                                           
                                            x
                                          
                                          
                                           
                                            2
                                          
                                         
                                        
                                       
                                      
                                     
                                    
                                   
                                  
                                 
                                 
                                  +
                                 
                                  
                                   
                                    
                                     
                                      x
                                    
                                    
                                     
                                      2
                                    
                                   
                                   
                                   
                                   
                                    
                                     
                                      
                                       
                                        
                                         
                                          
                                           
                                            一个
                                          
                                          
                                           
                                            2
                                           
                                           
                                            1
                                          
                                         
                                         
                                         
                                         
                                          
                                           
                                            x
                                          
                                          
                                           
                                            1
                                          
                                         
                                        
                                       
                                       
                                        +
                                       
                                        
                                         
                                          
                                           
                                            一个
                                          
                                          
                                           
                                            2
                                           
                                           
                                            2
                                          
                                         
                                         
                                         
                                         
                                          
                                           
                                            x
                                          
                                          
                                           
                                            2
                                          
                                         
                                        
                                       
                                      
                                     
                                    
                                   
                                  
                                 
                                
                               
                              
                             
                             
                            
                           
                           
                           
                           
                            
                             
                              
                               
                                
                                 
                                  
                                   
                                    一个
                                  
                                  
                                   
                                    1
                                   
                                   
                                    2
                                  
                                 
                                 
                                 
                                 
                                  
                                   
                                    x
                                  
                                  
                                   
                                    1
                                  
                                 
                                
                               
                               
                                +
                               
                                
                                 
                                  
                                   
                                    一个
                                  
                                  
                                   
                                    2
                                   
                                   
                                    1
                                  
                                 
                                 
                                 
                                 
                                  
                                   
                                    x
                                  
                                  
                                   
                                    1
                                  
                                 
                                
                               
                               
                                +
                               
                                
                                 
                                  2
                                 
                                 
                                 
                                  
                                   
                                    一个
                                  
                                  
                                   
                                    2
                                   
                                   
                                    2
                                  
                                 
                                 
                                 
                                 
                                  
                                   
                                    x
                                  
                                  
                                   
                                    2
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                         
                        
                       
                      
                     
                     
                    
                   
                  

替换数值并找到最小值

假设你对的值感兴趣 一个 [2 1;0 3].将这个值代入函数fsym

fsym = subs(fsym,Asym,[2 -1;0 3])
fsym =
                  
                   
                    
                     
                      
                     
                     
                      
                      
                       
                        
                         
                          
                           
                            
                             3.
                            
                            
                            
                             
                              
                               
                                
                                 x
                               
                               
                                
                                 2
                               
                              
                             
                             
                              
                               2
                             
                            
                           
                          
                          
                           +
                          
                           
                            
                             
                              
                               x
                             
                             
                              
                               1
                             
                            
                            
                            
                            
                             
                              
                               
                                
                                 
                                  
                                   2
                                  
                                  
                                  
                                   
                                    
                                     x
                                   
                                   
                                    
                                     1
                                   
                                  
                                 
                                
                                
                                 -
                                
                                 
                                  
                                   x
                                 
                                 
                                  
                                   2
                                 
                                
                               
                              
                             
                            
                           
                          
                         
                        
                       
                      
                      
                     
                    
                   
                  

代入 一个 代入导数Dsym

Dsym = subs(Dsym,Asym,[2 -1;0 3])
Dsym =
                  
                   
                    
                     
                     
                      
                       
                        
                         
                          
                           
                            
                             
                              因为
                            
                            
                             
                             
                              
                               
                                
                                 
                                  
                                   
                                    3.
                                   
                                   
                                   
                                    
                                     
                                      
                                       
                                        x
                                      
                                      
                                       
                                        2
                                      
                                     
                                    
                                    
                                     
                                      2
                                    
                                   
                                  
                                 
                                 
                                  +
                                 
                                  
                                   
                                    
                                     
                                      x
                                    
                                    
                                     
                                      1
                                    
                                   
                                   
                                   
                                   
                                    
                                     
                                      
                                       
                                        
                                         
                                          2
                                         
                                         
                                         
                                          
                                           
                                            x
                                          
                                          
                                           
                                            1
                                          
                                         
                                        
                                       
                                       
                                        -
                                       
                                        
                                         
                                          x
                                        
                                        
                                         
                                          2
                                        
                                       
                                      
                                     
                                    
                                   
                                  
                                 
                                
                               
                              
                             
                             
                            
                           
                           
                           
                           
                            
                             
                              
                               
                                
                                 
                                  4
                                 
                                 
                                 
                                  
                                   
                                    x
                                  
                                  
                                   
                                    1
                                  
                                 
                                
                               
                               
                                -
                               
                                
                                 
                                  x
                                
                                
                                 
                                  2
                                
                               
                              
                             
                            
                           
                          
                         
                        
                       
                       
                        
                         
                          
                           
                            -
                           
                            
                             
                              
                               
                                因为
                              
                              
                               
                               
                                
                                 
                                  
                                   
                                    
                                     
                                      3.
                                     
                                     
                                     
                                      
                                       
                                        
                                         
                                          x
                                        
                                        
                                         
                                          2
                                        
                                       
                                      
                                      
                                       
                                        2
                                      
                                     
                                    
                                   
                                   
                                    +
                                   
                                    
                                     
                                      
                                       
                                        x
                                      
                                      
                                       
                                        1
                                      
                                     
                                     
                                     
                                     
                                      
                                       
                                        
                                         
                                          
                                           
                                            2
                                           
                                           
                                           
                                            
                                             
                                              x
                                            
                                            
                                             
                                              1
                                            
                                           
                                          
                                         
                                         
                                          -
                                         
                                          
                                           
                                            x
                                          
                                          
                                           
                                            2
                                          
                                         
                                        
                                       
                                      
                                     
                                    
                                   
                                  
                                 
                                
                               
                               
                              
                             
                             
                             
                             
                              
                               
                                
                                 
                                  
                                   
                                    x
                                  
                                  
                                   
                                    1
                                  
                                 
                                 
                                  -
                                 
                                  
                                   
                                    6
                                   
                                   
                                   
                                    
                                     
                                      x
                                    
                                    
                                     
                                      2
                                    
                                   
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                         
                        
                       
                      
                     
                     
                    
                   
                  

然后,应用符号函数解决求导数的根。

[xmin,ymin] = solve(Dsym,xsym,“PrincipalValue”,真正的);X0 = [xmin;ymin]
x0 =

0 0

绘制函数图 f x 和极值解一起 x 0 .将绘图间隔设置为 - 1 < x 1 < 1 而且 - 1 < x 2 < 1 的第二个论点fsurf.使用fplot3画出极值解的坐标。

Fsurf (fsym,[-1 1 -1 1])等待ymin fplot3 (xmin,潜艇(fsym xsym, x0),“罗”view([-68 13])

图中包含一个轴对象。axis对象包含两个类型为functionsurface, parameterizedfunctionline的对象。

接近最小值的近似函数

你可以在一点附近近似多元函数 x 0 用泰勒展开得到多项式。

f x f x 0 + f x 0 x - x 0 + 1 2 x - x 0 T H f x 0 x - x 0

这里,这个项 f x 0 梯度向量,和 H f x 0 是多元函数的黑森矩阵 f x 计算在 x 0

找到黑森矩阵,并将结果作为一个符号矩阵变量返回。

H = diff(f,x,x.')
H =
                  
                   
                    
                     
                      
                       -
                      
                       
                        
                         
                          
                         
                         
                          
                          
                           
                            
                             
                              
                               
                                
                                 
                                  
                                   x
                                 
                                
                               
                               
                                
                                 T
                               
                              
                              
                              
                              
                               
                                
                                 一个
                               
                              
                              
                              
                              
                               
                                
                                 x
                               
                              
                             
                            
                           
                          
                          
                         
                        
                        
                        
                        
                         
                          
                           
                            
                             
                              
                               
                                
                                 
                                  
                                   一个
                                 
                                
                               
                               
                                
                                 T
                               
                              
                              
                              
                              
                               
                                
                                 x
                               
                              
                             
                            
                            
                             +
                            
                             
                              
                               
                                
                                 一个
                               
                              
                              
                              
                              
                               
                                
                                 x
                               
                              
                             
                            
                           
                          
                         
                        
                        
                        
                        
                         
                          
                           
                            
                             
                              
                               
                                
                                 
                                  
                                   x
                                 
                                
                               
                               
                                
                                 T
                               
                              
                              
                              
                              
                               
                                
                                 一个
                               
                              
                             
                            
                            
                             +
                            
                             
                              
                               
                                
                                 
                                  
                                   x
                                 
                                
                               
                               
                                
                                 T
                               
                              
                              
                              
                              
                               
                                
                                 
                                  
                                   一个
                                 
                                
                               
                               
                                
                                 T
                               
                              
                             
                            
                           
                          
                         
                        
                       
                      
                      
                       +
                      
                       
                        
                         
                          
                           因为
                         
                         
                          
                          
                           
                            
                             
                              
                               
                                
                                 
                                  
                                   x
                                 
                                
                               
                               
                                
                                 T
                               
                              
                              
                              
                              
                               
                                
                                 一个
                               
                              
                              
                              
                              
                               
                                
                                 x
                               
                              
                             
                            
                           
                          
                          
                         
                        
                        
                        
                        
                         
                          
                           
                            
                             
                              
                               
                                
                                 一个
                               
                              
                             
                             
                              
                               T
                             
                            
                            
                             +
                            
                             
                              
                               一个
                             
                            
                           
                          
                         
                        
                       
                      
                     
                    
                   
                  

转换黑森矩阵 H f x 0 信谊数据类型,它以组件形式表示矩阵。使用潜艇来计算黑森矩阵 一个 = [2 -1;0 3]在最小值处 x 0

Hsym = symmatrix2sym(H);Hsym = subs(Hsym,Asym,[2 -1;0 3]);H0 = subs(Hsym,xsym,x0)
H0 =

4 - 1 - 1 6

计算梯度向量 f x 0 x 0

D0 = subs(Dsym,xsym,x0)
D0 =
                  
                   
                    
                     
                     
                      
                       
                        
                         
                          0
                        
                       
                       
                        
                         
                          0
                        
                       
                      
                     
                     
                    
                   
                  

计算函数在其最小值附近的泰勒近似。

fapprox =潜艇(fsym xsym x0) + D0 * (xsym-x0) + 1/2 * (xsym-x0)。* H0 * (xsym-x0)
fapprox =

x 1 2 x 1 - x 2 2 - x 2 x 1 2 - 3. x 2

在同一张图上画出函数近似值 f x 而且 x 0

持有Fsurf (fapprox,[-1 1 1 1 1]) zlim([-1 3])

图中包含一个轴对象。axis对象包含3个类型为functionsurface, parameterizedfunctionline的对象。