y***d 发帖数: 2330 | 1 有一个泛函(物理上的自由能) F[rho(x)] = some integrations,
想求使 F 最小的 rho(x), 并且要求满足约束条件 \int dx rho(x) = A,
从数学上我知道是要用拉格朗日乘子法,
\delta (F + k(\int dx rho(x) - A)) |
c*m 发帖数: 1114 | 2 非线性约束是个很复杂的领域。课本上那些玩意只能解决一些简单的问题。
推荐用一些现成的工具: http://www.mat.univie.ac.at/~neum/glopt/software_l.html
如果你的函数和约束不很复杂的话可以自己用matlab做。
我现在用DONLP2, 用的是DSQP strategy, 功能很强大,速度比matlab快很多。
如果你只是偶尔用用的话折腾matlab玩玩就算了。
【在 y***d 的大作中提到】 : 有一个泛函(物理上的自由能) F[rho(x)] = some integrations, : 想求使 F 最小的 rho(x), 并且要求满足约束条件 \int dx rho(x) = A, : 从数学上我知道是要用拉格朗日乘子法, : \delta (F + k(\int dx rho(x) - A))
|
y***d 发帖数: 2330 | 3 \int dx rho(x) = \sum_i rho(x_i) = A 是不是好像可以算成线性约束?会不会就间
的了?
我只是做物理的 model 偶尔用到一下
【在 c*m 的大作中提到】 : 非线性约束是个很复杂的领域。课本上那些玩意只能解决一些简单的问题。 : 推荐用一些现成的工具: http://www.mat.univie.ac.at/~neum/glopt/software_l.html : 如果你的函数和约束不很复杂的话可以自己用matlab做。 : 我现在用DONLP2, 用的是DSQP strategy, 功能很强大,速度比matlab快很多。 : 如果你只是偶尔用用的话折腾matlab玩玩就算了。
|
c*m 发帖数: 1114 | 4 你这里面的rho(x_i)是啥表达式和x_i线性相关?
【在 y***d 的大作中提到】 : \int dx rho(x) = \sum_i rho(x_i) = A 是不是好像可以算成线性约束?会不会就间 : 的了? : 我只是做物理的 model 偶尔用到一下
|
y***d 发帖数: 2330 | 5 x 只是坐标,离散化,变成 x_i;然后在每个 x_i 有一个密度 rho(x_i);
rho(x_i) =def= rho_i 是真正的自变量;
所以 \int dx rho(x) = \sum_i rho(x_i) = \sum_i rho_i = A, 算是线性关系吧
【在 c*m 的大作中提到】 : 你这里面的rho(x_i)是啥表达式和x_i线性相关?
|
c*m 发帖数: 1114 | 6 你这个是简单线性等式约束 \sum_i rho_i = A
加N个boundary 不等式约束 A>rho_i>0
由于没有常规不等式约束,直接用拉格朗日乘子转换为求一个非线性方程组的解就可以
了。 用matlab code很容易实现,随便找点matlab的书就有现成例子。
【在 y***d 的大作中提到】 : x 只是坐标,离散化,变成 x_i;然后在每个 x_i 有一个密度 rho(x_i); : rho(x_i) =def= rho_i 是真正的自变量; : 所以 \int dx rho(x) = \sum_i rho(x_i) = \sum_i rho_i = A, 算是线性关系吧
|
y***d 发帖数: 2330 | 7 好,thx
【在 c*m 的大作中提到】 : 你这个是简单线性等式约束 \sum_i rho_i = A : 加N个boundary 不等式约束 A>rho_i>0 : 由于没有常规不等式约束,直接用拉格朗日乘子转换为求一个非线性方程组的解就可以 : 了。 用matlab code很容易实现,随便找点matlab的书就有现成例子。
|
p***r 发帖数: 195 | 8 this model can be solved within milliseconds. haha
【在 y***d 的大作中提到】 : 有一个泛函(物理上的自由能) F[rho(x)] = some integrations, : 想求使 F 最小的 rho(x), 并且要求满足约束条件 \int dx rho(x) = A, : 从数学上我知道是要用拉格朗日乘子法, : \delta (F + k(\int dx rho(x) - A))
|
y***d 发帖数: 2330 | 9 ft, howto?
【在 p***r 的大作中提到】 : this model can be solved within milliseconds. haha
|
p***r 发帖数: 195 | 10 这种约束学名叫polyhedral set或者polyhedron
最最典型的convexoptimization的东西,用cvx软件可以轻松搞定
你如果不想费事,google “boyd CVX”下载以后安装,看看说明书,保证一小时以内
作出结果,呵呵
这种在math programming中已经被坐烂了,呵呵
【在 y***d 的大作中提到】 : ft, howto?
|
y***d 发帖数: 2330 | 11 我想想觉得我这个问题可能不是 convex 的,convex 应该只有一个 minimum,我这个
似乎会有两个 minima,尽管其中一个是非物理的
【在 p***r 的大作中提到】 : 这种约束学名叫polyhedral set或者polyhedron : 最最典型的convexoptimization的东西,用cvx软件可以轻松搞定 : 你如果不想费事,google “boyd CVX”下载以后安装,看看说明书,保证一小时以内 : 作出结果,呵呵 : 这种在math programming中已经被坐烂了,呵呵
|