利用mathematica从微分方程计算特征函数的特征值

时间:2012-06-09 06:33:18

标签: wolfram-mathematica

假设我有一个像这样的微分方程:

mu1 u1[x] - u1''[x] - 10 u1[x] == 0 

其中mu1是特征值,u1是本征函数。现在,我如何在数值上计算特征值mu1?任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

我假设您要解决类似

的问题
u1''[x] + 10 u1[x] == mu1 u1[x]

有边界条件

u1[x0] == 0; u1[x1] == 0; u1'[x0] =!= 0
某些x0 < x1

。一种方法是首先求解微分方程加上x0处的边界条件,例如

sol = DSolve[{mu1 u1[x] - u1''[x] - 10 u1[x] == 0, u1[x0] == 0, u1'[x0] == 1}, u1, x][[1]]

作为输出

{u1 -> Function[{x}, -((E^(-Sqrt[-10 + mu1] x - Sqrt[-10 + mu1] x0) 
    (-E^(2 Sqrt[-10 + mu1] x) + E^(2 Sqrt[-10 + mu1] x0)))/(2 Sqrt[-10 + mu1]))]}

然后,我们可以使用此解决方案查找mu1,以便满足x1处的边界条件:

sol1 = Solve[{u1[x1] == 0 /. sol[[1]], x1 > x0}, mu1, MaxExtraConditions -> All]

我们从中找到

{{mu1 -> ConditionalExpression[(10 x0^2 - 20 x0 x1 + 10 x1^2 - 4 \[Pi]^2 C[1]^2)/(
     x0^2 - 2 x0 x1 + x1^2), 
    x0 \[Element] Reals && C[1] \[Element] Integers && C[1] >= 1 && x1 > x0]}, 
 {mu1 -> ConditionalExpression[(-\[Pi]^2 + 10 x0^2 - 20 x0 x1 + 10 x1^2 - 
     4 \[Pi]^2 C[1] - 4 \[Pi]^2 C[1]^2)/(x0^2 - 2 x0 x1 + x1^2), 
    x0 \[Element] Reals && C[1] \[Element] Integers && C[1] >= 0 && x1 > x0]}}