Wolfram mathematica 用Simplify求解产生真实解,用FullSimplify求解复杂解?

Wolfram mathematica 用Simplify求解产生真实解,用FullSimplify求解复杂解?,wolfram-mathematica,Wolfram Mathematica,mathematica 8中的DSolve[]命令有问题。解下面的四阶微分方程会得到一个复杂的解,尽管它应该是一个实解。 方程式为: y''''[x] + a y[x] == 0 用手解这个方程得到的解只有实部。所有常数和边界条件也是实数 我手工得到的解决方案是: y1[x_] = (C[5] E^(Power[a, (4)^-1]/Power[2, (2)^-1] x) + C[6] E^(-(Power[a, (4)^-1]/Power[2, (2)^-1]) x)) Cos[ P

mathematica 8中的DSolve[]命令有问题。解下面的四阶微分方程会得到一个复杂的解,尽管它应该是一个实解。 方程式为:

y''''[x] + a y[x] == 0
用手解这个方程得到的解只有实部。所有常数和边界条件也是实数

我手工得到的解决方案是:

y1[x_] = (C[5] E^(Power[a, (4)^-1]/Power[2, (2)^-1] x) + 
  C[6] E^(-(Power[a, (4)^-1]/Power[2, (2)^-1]) x)) Cos[
 Power[a, (4)^-1]/Power[2, (2)^-1]
   x] + (C[7] E^(Power[a, (4)^-1]/Power[2, (2)^-1] x) + 
  C[8] E^(-(Power[a, (4)^-1]/Power[2, (2)^-1]) x)) Sin[
 Power[a, (4)^-1]/Power[2, (2)^-1] x];
现在我要求解常数C[5]…C[8]。这就产生了一个类似的问题。我对边界条件使用Solve[]命令

Solve[{y1''[-c] == ic0, y1''[c] == ic0 , y1'''[-c] == ic1 , 
y1'''[c] == - ic1 }, {C[5], C[6], C[7], C[8]} ];
如果使用//Simplify,常数C[5]…C[8]现在是实数,如果使用//FullSimplify,则是复数

你知道原因是什么吗? 包含我的计算的笔记本可在以下位置下载:

在进一步的工作中,我必须使用DSolve[],我想了解这里的问题

谢谢


安德烈亚斯

我认为你的一些陈述取决于细节。例如,如果您选择
a,则一些参数
C[]
可能是复数,因为您将问题交叉张贴到了,我在那里给出了答案。问题的关键是,即使有一个实数和正值的
a
四阶微分方程的一般解也是复杂的。时期如果您碰巧只对真正的解决方案感兴趣,.

您好,谢谢您的回答。我忘了给我笔记本的下载链接。它可以在下面下载:我在符号计算中也得到了这种行为(在笔记本中,y3[x]是真实的,y4[x]是复杂的)。同样对于>0,我得到了复杂的常数
parS = Solve[{y1''[-c] == ic0, y1''[c] == ic0, y1'''[-c] == ic1, 
    y1'''[c] == -ic1}, {C[5], C[6], C[7], C[8]}] // Simplify;
parFS = Solve[{y1''[-c] == ic0, y1''[c] == ic0, y1'''[-c] == ic1, 
    y1'''[c] == -ic1}, {C[5], C[6], C[7], C[8]}] // FullSimplify

parS /. {a -> -2, c -> 10, ic0 -> 1, ic1 -> -1} // N
parFS /. {a -> -2, c -> 10, ic0 -> 1, ic1 -> -1} // N

(* {{C[5] -> -0.35876 - 2.498*10^-15 I,  C[6] -> -0.35876 - 2.498*10^-15 I, 
     C[7] -> 2.27596*10^-15 - 0.358762 I, C[8] -> -2.27596*10^-15 + 0.358762 I}}

   {{C[5] -> -0.35876 + 5.10703*10^-15 I, C[6] -> -0.35876 + 5.10703*10^-15 I, 
     C[7] -> 2.35922*10^-15 - 0.358762 I, C[8] -> -2.19269*10^-15 + 0.358762 I}} *)
sol[a_, ic0_, ic1_, c_, x_] = y[x] /. DSolve[{y''''[x] + a y[x] == 0, y''[-c] == ic0, 
     y''[c] == ic0, y'''[-c] == ic1, y'''[c] == -ic1}, y[x], x][[1]] ;

Plot[Im[sol[-2.0, 1.0, -1.0, 10., x]], {x, -10., 10.}]
Plot[Re[sol[-2.0, 1.0, -1.0, 10., x]], {x, -10., 10.}]