有人有在 AMPL 中求解微分方程的经验吗?我google了很多,但没有合适的结果......
在谷歌群组中,我找到了一个简单的“手工”示例,但它不起作用......
所以,我找到了这个例子。
考虑这个 ODE:
x' = -ax + u, x(0) = 0.
其中 a=0.2 是一个参数;x = 状态变量,介于 0 和 9 之间;u = 输入变量,介于 0 和 5 之间。您可以在 AMPL 中编写如下(使用教科书正向 Euler):
param N := 10; # no. of integration steps
param dt := 0.01; # integration step size
param a := 0.2;
set kset ordered := 0..N;
var x{kset}, >= 0, <= 9;
var u{kset}, >= 0, <= 5;
minimize obj: 0;
subject to
c1{k in 1..N}: (x[k] - x[k-1])/dt = -a*x[k-1] + u[k-1];
option solver ipopt;
solve;
display x, u;
解决方案给了我 u 和 x 的零...难怪因为这条线
最小化 obj: 0;
据我了解,我们需要将问题表示为代数方程组,但是在这种情况下,目标函数是什么???
那么,有人可以给出任何建议或适当的例子吗?
提前致谢。