在Mathematica中寻找ODE的特征值和本征函数

ADF*_*ADF 2 math wolfram-mathematica

假设有一个ODE y''+ ay = 0,边界条件为y'(0)= 0且y'(1)= 0.如何使用Mathematica找到特征值和本征函数?如果给出一个更一般的ODE,假设y''+(y ^ 2 - 1/2)y = 0且具有相同的边界条件,该怎么办?


Simon的评论已在下面回答了这个问题.

Sim*_*mon 5

DSolve 只提供"通用"参数的解决方案,这就是原因

DSolve[y''[x] + a^2 y[x] == 0 && y'[0] == 0 && y'[1] == 0, y, x]
Run Code Online (Sandbox Code Playgroud)

只返回琐碎的事{{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]]}}
Run Code Online (Sandbox Code Playgroud)

然后使用Reduce (在哪里,为了简化结果,我也假设,a != 0sol不是微不足道的)强制执行边界条件

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)
Run Code Online (Sandbox Code Playgroud)

这表示特征向量与$\cos(ax)$成比例,$ a = 2 n\pi $或$ a =(2 n + 1)\ pi $,$ n $整数.


至于你问题中的第二个等式,谈论线性算子的特征向量是有意义的.对于非线性微分方程,特征向量可用于检查临界点周围的线性化行为.