函数导数教程
本例以波动方程为例,展示了如何在符号数学工具箱™中使用函数导数。本例以符号方式执行计算以获得分析结果。用函数导数来求解两端固定的弦的波动方程。函数导数是一个函数对它所依赖的函数的导数。符号数学工具箱使用functionalDerivative
函数。
求解波动方程是函数导数的一种应用。它描述了波的运动,从弦的运动到电磁波的传播,是物理学中一个重要的方程。您可以将本例中演示的技术应用于从解决腕臂时程问题到寻找肥皂泡的最小表面的微积分中的应用程序。
考虑一个长度的字符串l
悬在两点之间的X = 0
而且x = L
.弦具有每单位长度的特征密度和特征张力。将长度、质量密度和张力定义为常数,以供以后使用。为简单起见,将这些常量设置为1
.
长度= 1;密度= 1;张力= 1;
如果弦在运动,弦的动能密度和势能密度是它静止时位移的函数S (x, t)
,随着位置的变化而变化x
和时间t
.如果d
单位长度的质量密度,动能密度是多少
势能密度是
在哪里r
就是张力。
在MATLAB®中输入这些方程。因为长度必须是正的,所以设这个假设。这个假设允许简化
将得到的方程简化成所期望的形式。
信谊S (x, t)drvl假设(L>0) T(x, T) = d/2*diff(S, T)^2;V(x,t) = r/2*diff(S,x)^2;
作用密度一个
是过程
.最小行动原则是指行动总是被最小化。的函数导数确定最小作用的条件一个
关于年代
使用functionalDerivative
把它等于0。
A = t-v;eqn = functionalDerivative(A,S) == 0
Eqn (x, t) =
用简化
.代入,将方程转化为所期望的形式r / d
是波速的平方v
.
Eqn = simplify(Eqn)/r;Eqn = subs(Eqn,r/d,v^2)
Eqn (x, t) =
用分离变量的方法求解方程。集S(x,t) = U(x)*V(t)
分离对位置的依赖x
和时间t
.将得到的方程两边用孩子们
.
信谊U (x)V (t)eqn2 = subs(eqn,S(x,t),U(x)*V(t));eqn2 = eqn2/(U(x)*V(t))
Eqn2 (x, t) =
TMP =儿童(eqn2);
方程的两边取决于不同的变量,但它们是相等的。这只有在每条边都是常数时才有可能。每边都等于任意常数C
得到两个微分方程。
信谊Ceqn3 = tmp(1) == C
eqn3 =
eqn4 = tmp(2) == C
eqn4 =
求解微分方程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) =
U(x) =化简(U(x),“步骤”, 50)
U (x) =
求方程中的常数。
p1 = setdiff(syvar (U(x)),sym([C,x])))
p1 =
p2 = setdiff(symvar(V(t)),sym([C, V,t])))
p2 =
字符串在位置上是固定的X = 0
而且x = L
.的条件U(0) = 0
已经存在。应用边界条件U(l) = 0
解出C
.
eqn_bc = U(L) == 0;[solC,param,cond] = solve(eqn_bc,C, C,“ReturnConditions”,真正的)
solC =
param =
气孔导度=
假设(电导率)
解决方案S (x, t)
是U (x)
而且V (t)
.求出解,将字符串的特征值代入解中,得到解的最终形式。
S(x,t) = U(x)*V(t);S = subs(S,C,solC);S = subs(S,[L v],[长度平方根(张力/密度)]);
的参数p1
而且p2
确定振动的幅度。集p1
而且p2
来1
为了简单起见。
S = subs(S,[p1 p2],[1 1]);S =化简(S,“步骤”, 50)
S(x, t) =
弦对于不同的值有不同的振动模式k
.绘制任意时间值的前四种模式t
.使用参数
返回的参数解决
寻址参数k
.
(x) = S(x,0.3);图(1)在网格在ymin = double(coeffs(spplot));为i = 1:4 yplot = subs(Splot,param,i);fplot (yplot长度[0])结束Ylim ([-ymin ymin])传说('k = 1','k = 2','k = 3','k = 4',“位置”,“最佳”)包含(“位置(x)”) ylabel (“位移(S)”)标题('字符串的模式')
波动方程是线性的。这意味着所允许模态的任何线性组合都是波动方程的有效解。因此,给定边界条件和初始值的波动方程的完整解是对允许模式的和
在哪里 表示任意常数。
使用symsum
将字符串的前五个模式相加。在新图形上,显示与先前波形相同时刻的结果波形,以便进行比较。
图(2)S5(x) = 1/5*symsum(S,param,1,5);fplot(subs(S5,t,0.3),[0 Length]) ylim([-ymin ymin]))网格在包含(“位置(x)”) ylabel (“位移(S)”)标题(“前5个模态的总和”)
该图显示,求和模式允许您建模一个定性不同的波形。这里,我们指定初始条件是 对所有 .
你可以计算这些值 在等式中 通过指定初始速度的条件
适当的模态和可以表示任何波形,这与用傅立叶级数表示弦的运动是一样的。