假设我有(简化的)微分方程
de:=diff(f(x),x,x,x)=1;
我确实有两个边界条件,例如f(-1)=0
和f(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
中提供这个条件。怎么做?
答案 0 :(得分:4)
将顺序增加1.也就是说,让 F 表示 f 的反衍生物(从-1开始集成)并将其包含在 dsolve的调用中以及基于积分的 F 的两个初始条件。
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
})
);