主要内容

功能衍生品教程

这个例子展示了如何使用功能衍生品的符号数学工具箱™使用波动方程的例子。本例中执行计算象征性地获得分析结果。波动方程的一个字符串固定在其目的是解决使用功能衍生品。函数导数是函数的导数对函数的功能取决于。符号数学工具箱实现功能衍生品使用functionalDerivative函数。

求解波动方程是一个应用程序的功能的衍生品。它描述了波浪的运动,从运动的一个字符串电磁波的传播,和是一个重要的物理方程。您可以应用在这个示例应用程序演示的技术解决最速降线问题的变分法寻找最小表面的肥皂泡沫。

考虑一个字符串的长度l两个点之间的暂停x = 0x = L。单位长度字符串有一个密度特征和特有的张力。定义长度、质量密度和紧张作为以后使用的常量。为简单起见,将这些常量1

长度= 1;密度= 1;张力= 1;

如果字符串是运动的,字符串的动能和势能密度函数的位移S (x, t),随位置x和时间t。如果d是单位长度质量密度,动能密度

T = d 2 ( d d t 年代 ( x , t ) ) 2

潜在的能量密度

V = r 2 ( d d x 年代 ( x , t ) ) 2 ,

在哪里r是紧张的。

在MATLAB®输入这些方程。因为长度必须是积极的,这一假设。这种假设允许简化为了简化方程为预期的形式。

信谊S (x, t)drvl假设(L > 0) T (x, T) = d / 2 * diff (S, T) ^ 2;V (x, t) = r / 2 * diff(年代,x) ^ 2;

行动密度一个过程。最小的原则行动,行动总是最小化。确定最低的条件采取行动找到函数的导数一个关于年代使用functionalDerivative并将为零。

一个=过程;eqn = functionalDerivative (S) = = 0
eqn (x, t) =

r 2 x 2 年代 ( x , t ) - - - - - - d 2 t 2 年代 ( x , t ) = 0

简化方程使用简化。将方程转化为预期的形式代替r / d波速度的平方v

eqn =简化(eqn) / r;eqn =潜艇(eqn, r / d, v ^ 2)
eqn (x, t) =

2 t 2 年代 ( x , t ) v 2 = 2 x 2 年代 ( x , t )

解决方程采用分离变量的方法。集S (x, t) = U (x) * V (t)将位置的依赖x和时间t。单独的双方使用的方程孩子们

信谊U (x)V (t)eqn2 =潜艇(eqn S (x, t), U (x) * V (t));eqn2 = eqn2 / (U (x) * V (t))
eqn2 (x, t) =

2 t 2 V ( t ) v 2 V ( t ) = 2 x 2 U ( x ) U ( x )

tmp =孩子(eqn2);

方程两边取决于不同的变量,然而是相等的。这是唯一可能的,如果双方都是一个常数。到一个任意常数等同起来C两个微分方程。

信谊Ceqn3 = tmp (1) = = C
eqn3 =

2 t 2 V ( t ) v 2 V ( t ) = C

eqn4 = tmp (2) = = C
eqn4 =

2 x 2 U ( x ) U ( x ) = C

解决微分方程使用dsolve与位移的条件0x = 0t = 0。他们预期的形式使用简化方程简化步骤选项设置为50

V (t) = dsolve (eqn3, V (0) = = 0, t);U (x) = dsolve (eqn4 U (0) = = 0, x);V (t) =简化(V (t)“步骤”,50)
V (t) =
                 
                  
                   
                    
                     
                      - - - - - -
                     
                      
                       
                        2
                       
                       
                       
                        
                         
                          C
                        
                        
                         
                          1
                        
                       
                       
                       
                       
                        
                         
                          sinh
                        
                        
                         
                          (
                         
                          
                           
                            
                             
                              
                               
                                C
                              
                             
                             
                             
                             
                              t
                             
                             
                             
                              v
                            
                           
                          
                         
                         
                          )
                        
                       
                      
                     
                    
                   
                  
                 
U (x) =简化(U (x),“步骤”,50)
U (x) =
                 
                  
                   
                    
                     
                      2
                     
                     
                     
                      
                       
                        C
                      
                      
                       
                        1
                      
                     
                     
                     
                     
                      
                       
                        sinh
                      
                      
                       
                        (
                       
                        
                         
                          
                           
                            
                             
                              C
                            
                           
                           
                           
                           
                            x
                          
                         
                        
                       
                       
                        )
                      
                     
                    
                   
                  
                 

获得方程的常数。

p1 = setdiff (symvar (U (x))信谊((C、x)))
p1 =
                 
                  
                   
                    
                     
                      C
                    
                    
                     
                      1
                    
                   
                  
                 
p2 = setdiff (symvar (V (t)),信谊((C、V、t)))
p2 =
                 
                  
                   
                    
                     
                      C
                    
                    
                     
                      1
                    
                   
                  
                 

字符串是固定的位置x = 0x = L。的条件U (0) = 0已经存在。应用边界条件U (L) = 0和解决C

eqn_bc = U (L) = = 0;[solC,参数,气孔导度]=解决(eqn_bc C“ReturnConditions”,真正的)
solC =

- - - - - - k 2 π 2 l 2

param =
                 
                  
                   
                    k
                  
                 
气孔导度=
                 
                  
                   
                    
                     
                      
                       
                        
                         k
                       
                       
                       
                        
                         Z
                       
                      
                     
                     
                     
                      
                       
                        
                         
                          C
                        
                        
                         
                          1
                        
                       
                       
                       
                        0
                      
                     
                     
                     
                      
                       
                        1
                       
                       
                        k
                      
                     
                    
                   
                  
                 
假设(电导率)

解决方案S (x, t)的产品是U (x)V (t)。找到解决方案,把弦的特征值代入解决方案获得解决方案的最终形式。

S (x, t) = U (x) * V (t);S =潜艇(S、C、solC);L S =潜艇(年代,[v],[长度sqrt(压力/密度)]);

的参数p1p2确定振动的振幅。集p1p21为了简单起见。

S =潜艇(年代,[p1 p2], [1]);S =简化(年代,“步骤”,50)
S (x, t) =
                 
                  
                   
                    
                     
                      4
                     
                     
                     
                      
                       
                      
                      
                       
                        (
                       
                        
                         
                          
                           
                            π
                           
                           
                           
                            k
                           
                           
                           
                            t
                          
                         
                        
                       
                       
                        )
                      
                     
                     
                     
                     
                      
                       
                      
                      
                       
                        (
                       
                        
                         
                          
                           
                            π
                           
                           
                           
                            k
                           
                           
                           
                            x
                          
                         
                        
                       
                       
                        )
                      
                     
                    
                   
                  
                 

不同的值的字符串有不同的振动模式k。情节的第一个四个模式任意时间的价值t。使用参数返回的参数解决为了解决参数k

Splot (x) = S (x, 0.3);图(1)网格ymin =双(多项式系数(Splot));我= 1:4 yplot =潜艇(Splot,参数);fplot (yplot长度[0])结束ylim ([-ymin ymin])传说(“k = 1”,“k = 2”,“k = 3”,“k = 4”,“位置”,“最佳”)包含(“位置(x)”)ylabel (“位移(S)”)标题(一个字符串的模式)

图包含一个坐标轴对象。坐标轴对象标题模式字符串包含4 functionline类型的对象。这些对象代表k = 1, k = 2 k = 3, k = 4。

波动方程是线性的。这意味着任何允许的线性组合模式波动方程是一个有效的解决方案。因此,完整的解波动方程与给定的边界条件和初始值是一个允许求和模式

F ( x , t ) = k = n 一个 k ( π k t ) ( π k x ) ,

在哪里 一个 k 表示任意常数。

使用symsum和字符串的前五个模式。一个新的图,显示生成的波形在同一瞬间的时间与前面的波形进行比较。

图(2)S5 (x) = 1/5 * symsum (S参数1、5);fplot(潜艇(S5 t 0.3),长度[0])ylim ([-ymin ymin])网格包含(“位置(x)”)ylabel (“位移(S)”)标题(“第一个5模式的总和”)

图包含一个坐标轴对象。标题求和的坐标轴对象前5模式包含一个functionline类型的对象。

图显示加法模式允许模型定性不同的波形。在这里,我们指定了初始条件 年代 ( x , t = 0 ) = 0 对所有 x

你可以计算值 一个 k 在方程中 F ( x , t ) = k = n 一个 k ( π k t ) ( π k x ) 通过指定一个初始速度的条件

u t ( x , t = 0 ) = F t ( x , 0 )

适当的模式可以代表任意波形,总结的一样使用傅里叶级数来表示字符串的运动。