假设有一个ODE y''+ ay = 0,边界条件为y'(0)= 0且y'(1)= 0.如何使用Mathematica找到特征值和本征函数?如果给出一个更一般的ODE,假设y''+(y ^ 2 - 1/2)y = 0且具有相同的边界条件会怎么样?
Simon的评论已经回答了这个问题。
答案 0 :(得分:5)
DSolve
仅提供“通用”参数的解决方案,这就是
DSolve[y''[x] + a^2 y[x] == 0 && y'[0] == 0 && y'[1] == 0, y, x]
只返回普通的{{y -> Function[{x}, 0]}}
。
如果你认为$ -a ^ 2 $是具有0速度边界条件的二阶导数算子的特征值,首先求解
In[1]:= sol = DSolve[y''[x] + a^2 y[x] == 0, y, x]
Out[1]= {{y -> Function[{x}, C[1] Cos[a x] + C[2] Sin[a x]]}}
然后使用Reduce
强制执行边界条件
(为了简化结果,我还假设a != 0
并且sol
并非无足轻重)
In[2]:= Reduce[y'[0] == 0 && y'[1] == 0 &&
a != 0 && (C[1] != 0 || C[2] != 0) /. sol,
a] // FullSimplify
Out[2]= Element[C[3], Integers] && C[2] == 0 && C[1] != 0 &&
((a == 2*Pi*C[3] && a != 0) || Pi + 2*Pi*C[3] == a)
表示特征向量与$ \ cos(ax)$成比例,$ a = 2 n \ pi $或$ a =(2 n + 1)\ pi $,$ n $整数。
至于你问题中的第二个等式,只讨论线性算子的特征向量是有意义的。对于非线性微分方程,特征向量可用于检查临界点周围的线性化行为。