0

假设我有(简化的)微分方程

de:=diff(f(x),x,x,x)=1;

我确实有两个边界条件,例如f(-1)=0f(1)=0。但是,第三个积分常数应该服从积分条件int(f(x),x=-1..1)=0

我知道如何处理常规边界条件,即

 ans:=dsolve({de,f(1)=0,f(-1)=0});

但是,我该如何处理积分条件?

我尝试了类似的东西

ans:=dsolve({de,f(1)=0,f(-1)=0,int(f(x),x=-1..1)=0});

但这并不能求解微分方程:

错误,(在 dsolve 中)输入系统不能仅包含任意参数中的方程;找到方程: int(f(x),x = -1 .. 1,AllSolutions)

我的问题确实有一个额外步骤的解决方案:

solve(int(rhs(ans),x=-1..1)=0);

但是,我想在dsolve. 这个怎么做?

4

1 回答 1

4

将阶数增加 1。也就是说,让F表示f的反导数(从 -1 积分),并将其与基于积分的F上的两个初始条件一起包含在对dsolve的调用中。

eval(
     f(x),
     dsolve({
          diff(f(x),x$3)=1, f(-1)=0, f(1)=0,
          diff(F(x),x)=f(x), F(-1)=0, F(1)=0
     })
); 
于 2013-10-14T19:59:21.183 回答