Maple的符号二次优化

时间:2013-08-21 09:59:14

标签: mathematical-optimization solver symbolic-math maple

我正在尝试使用Maple中的线性相等约束来最小化二次能量。目前我发布的内容如下:

with(Optimization):
p := (t) -> c3*t^3 + c2*t^2;
m := Minimize(int(diff(p(t),t)^2,t=0..1),{eval(p(t),t=1)=1,eval(diff(p(t),t),t=1)=0});

但这似乎给了我一个带有浮点错误的数字优化解决方案:

m := [1.19999999999997, [c2 = 3.00000000000000, c3 = -2.00000000000000]]

(正确的答案是m:= [6/5,[c2 = 3,c3 = -2]])

有没有办法使用maple计算解决方案符号

我宁愿自己也不必研究拉格朗日。我希望有一个像symbolic = true的旗帜。

1 个答案:

答案 0 :(得分:1)

逐步应用拉格朗日乘数。这很容易做到。

p:= t-> c3*t^3+c2*t^2:
Obj:= int(D(p)^2,  0..1):
Con:= {p(1)=1, D(p)(1)=0}:
L:= Obj - l1*lhs(Con[1]) - l2*lhs(Con[2]):
solve(Con union {diff(L,c3), diff(L,c2)});
              /                      12       -1\ 
             { c2 = 3, c3 = -2, l1 = --, l2 = -- }
              \                      5        5 / 
eval(Obj, %);
                               6
                               -
                               5