主要内容

功能衍生物教程

此示例显示如何使用波动方程的示例在符号数学工具箱™中使用功能衍生物。此示例符号执行计算以获取分析结果。使用功能衍生物解决固定在其端部的串的波动方程。功能衍生物是关于功能依赖的函数的功能的导数。符号数学工具箱™使用该符号数学工具箱™实现功能衍生物功能性衰变功能。

求解波动方程是功能衍生物的一种应用。它描述了波的运动,从串的运动到电磁波的传播,并且是物理学中的重要方程。您可以应用在该示例中示出的技术在求解BRachistochrone问题的变化中的应用中,以找到最小表面的肥皂泡。

考虑一串长度L.暂停两点之间x = 0.x = L.。该弦每单位长度具有特征密度和特征张力。定义长度,密度和张力作为常量以供以后使用。为简单起见,将这些常量设置为1

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

如果字符串处于运动状态,则字符串的动力学和潜在能量是其静止的位移的函数s(x,t),与位置不同X和时间T.。如果D.是每单位长度的密度,动能是

T. = 0. L. D. 2 D. D. T. S. X T. 2 D. X

潜在的能量是

V. = 0. L. R. 2 D. D. X S. X T. 2 D. X

在哪里R.是紧张的。

在MATLAB®中输入这些等式。由于长度必须是正的,因此设置了这个假设。这个假设允许简化简化所得方程式的预期形式。

Syms.s(x,t)D.R.V.L.假设(l> 0)t(x,t)= int(d / 2 * diff(s,t)^ 2,x,0,l);v(x,t)= int(r / 2 * diff(s,x)^ 2,x,0,l);

那个行动一种电视。最小行动的原则指出,行动总是最小化。通过找到功能衍生物来确定最小动作的条件一种关于S.使用功能性衰变并将其等同于零。

a = t-v;EQN = FunctionalVerivative(A,S)== 0
EQN(x,t)=

L. R. 2 X 2 S. X T. - L. D. 2 T. 2 S. X T. = 0. l * r * diff(s(x,t),x,2) - l * d * diff(s(x,t),t,2)== 0

简化等式使用简化。通过代替来将方程转换为其预期形式R / D.随着波速的平方V.

EQN =简化(EQN)/ R;EQN =子(EQN,R / D,V ^ 2)
EQN(x,t)=

2 T. 2 S. X T. V. 2 = 2 X 2 S. X T. 差异(s(x,t),t,2)/ v ^ 2 == diff(s(x,t),x,2)

使用变量的分离方法来解决方程。放s(x,t)= u(x)* v(t)将依赖与位置分开X和时间T.。使用所得方程的两侧使用孩子们

Syms.U(x)v(t)eqn2 = summ(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 X X 差异(v(t),t,2)/(v ^ 2 * v(t))== diff(u(x),x,2)/ u(x)

TMP =儿童(EQN2);

等式的两侧依赖于不同的变量,但却是平等的。只有在每一侧都是常数,才有可能。将每一侧等同于任意常数C获得两个微分方程。

Syms.Ceqn3 = tmp(1)== c
eqn3 =

2 T. 2 V. T. V. 2 V. T. = C 差异(v(t),t,2)/(v ^ 2 * v(t))== c

eqn4 = tmp(2)== c
eqn4 =

2 X 2 X X = C 差异(U(x),x,2)/ u(x)== c

使用求解微分方程Dsolve.随着位移的条件0.x = 0.t = 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.
                           
                          
                         
                        
                        
                       
                      
                     
                    
                   
                  
                  
                   -2 * c1 * sinh(sqrt(c)* t * v)
                 
                
U(x)=简化(u(x),'脚步',50)
U(x)=
                
                 
                  
                   
                    
                     2
                    
                    
                    
                     
                      
                       C
                     
                     
                      
                       1
                     
                    
                    
                    
                    
                     
                      
                       Sinh.
                     
                     
                      
                      
                       
                        
                         
                          
                           
                            
                             C
                           
                          
                          
                          
                          
                           X
                         
                        
                       
                      
                      
                     
                    
                   
                  
                  
                   2 * c1 * sinh(sqrt(c)* x)
                 
                

获得方程中的常数。

p1 = setdiff(symvar(u(x)),sym([c,x]))
P1 =
                
                 
                  
                   
                    
                     
                      C
                    
                    
                     
                      1
                    
                   
                  
                  
                   C1.
                 
                
p2 = setdiff(symvar(v(t)),sym([c,v,t]))
p2 =
                
                 
                  
                   
                    
                     
                      C
                    
                    
                     
                      1
                    
                   
                  
                  
                   C1.
                 
                

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

eqn_bc = u(l)== 0;[solc,param,cond] =解决(eqn_bc,c,'returnconditions',真的)
solc =

- K. 2 π 2 L. 2 - (k ^ 2 * sym(pi)^ 2)/ l ^ 2

Param =
                
                 
                  
                   
                    K.
                  
                  
                   K.
                 
                
Cond =.
                
                 
                  
                   
                    
                     
                      
                       
                        K.
                      
                      
                      
                       
                        Z.
                      
                     
                    
                    
                    
                     
                      
                       
                        
                         C
                       
                       
                        
                         1
                       
                      
                      
                      
                       0.
                     
                    
                    
                    
                     
                      
                       1
                      
                       ≤.
                      
                       K.
                     
                    
                   
                  
                  
                   在(k,'整数')和c1〜= 0&1 <= k
                 
                
假设(Cond)

解决方案s(x,t)是产品的U(x)v(t)。找到解决方案,并将字符串的特征值替换为解决方案以获得解决方案的最终形式。

s(x,t)= u(x)* v(t);s =子(s,c,solc);s =子(s,[l V],[长度Sqrt(张力/密度)]);

参数P1P2.确定振动的幅度。放P1P2.1为简单起见。

s =潜艇(s,[p1 p2],[1 1]);s =简化(s,'脚步',50)
s(x,t)=
                
                 
                  
                   
                    
                     4.
                    
                    
                    
                     
                      
                     
                     
                      
                      
                       
                        
                         
                          
                           π
                          
                          
                          
                           K.
                          
                          
                          
                           T.
                         
                        
                       
                      
                      
                     
                    
                    
                    
                    
                     
                      
                     
                     
                      
                      
                       
                        
                         
                          
                           π
                          
                          
                          
                           K.
                          
                          
                          
                           X
                         
                        
                       
                      
                      
                     
                    
                   
                  
                  
                   4 * sin(sym(pi)* k * t)* sin(sym(pi)* k * x)
                 
                

对于不同值,该字符串具有不同的振动模式K.。绘制任意时间值的前四种模式T.。使用帕纳争论返回解决要解决参数K.

Splot(x)= s(x,0.3);图(1)持有网格ymin = double(coeffs(符号));为了i = 1:4 YPLOT =潜艇(SPLET,PARAM,I);fplot(Yplot,[0长])结尾ylim([ -  ymin ymin])传奇('k = 1''k = 2''k = 3''k = 4''地点''最好的事物')Xlabel('位置(x)')ylabel('流离失所(s)') 标题('字符串的模式'

图包含轴。具有字符串标题模式的轴包含4个类型函数线的对象。这些对象表示k = 1,k = 2,k = 3,k = 4。

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

F X T. = σ. K. = N m 一种 K. π K. T. π K. X

在哪里 一种 K. 表示任意常量。

Symsum.总结字符串的前五种模式。在一个新图中,在与先前的波形相同的时间内显示结果波形,以进行比较。

图(2)S5(x)= 1/5 * Symsum(s,param,1,5);fplot(潜艇(S5,T,0.3),[0长])Ylim([ -  ymin ymin])网格Xlabel('位置(x)')ylabel('流离失所(s)') 标题('前5种模式的求和'

图包含轴。具有前5个模式的标题求和的轴包含类型函数线的对象。

该图表明求和模式允许您建模定性不同的波形。在这里,我们指定了初始条件是 S. X T. = 0. = 0. 对所有人 X

您可以计算值 一种 K. 在等式中 F X T. = σ. K. = N m 一种 K. π K. T. π K. X 通过指定初始速度的条件

T. X T. = 0. = F T. X 0.

模式的适当求和可以表示任何波形,它与使用傅立叶系列表示字符串的运动相同。