d*********a 发帖数: 255 | 1 【 以下文字转载自 Statistics 讨论区 】
发信人: dragoninsea (龙哥), 信区: Statistics
标 题: 问个二次不可导函数最值问题
发信站: BBS 未名空间站 (Thu May 10 22:21:38 2007)
有没有好的算法或软件解决下面的问题呢
例如,minf=x1^2+x2^2+|x1|+|x2|
谢谢 |
H****h 发帖数: 1037 | 2 不可导的点只有有限个,所以可以逐一判断。可导的点利用导数为零来判断。
【在 d*********a 的大作中提到】 : 【 以下文字转载自 Statistics 讨论区 】 : 发信人: dragoninsea (龙哥), 信区: Statistics : 标 题: 问个二次不可导函数最值问题 : 发信站: BBS 未名空间站 (Thu May 10 22:21:38 2007) : 有没有好的算法或软件解决下面的问题呢 : 例如,minf=x1^2+x2^2+|x1|+|x2| : 谢谢
|
d*********a 发帖数: 255 | 3 我指的是参数很多的问题。有没有好的算法。
刚才我是举个简单的例子。
【在 H****h 的大作中提到】 : 不可导的点只有有限个,所以可以逐一判断。可导的点利用导数为零来判断。
|
c*******h 发帖数: 1096 | 4 很明显x1=x2=0么。。
【在 d*********a 的大作中提到】 : 【 以下文字转载自 Statistics 讨论区 】 : 发信人: dragoninsea (龙哥), 信区: Statistics : 标 题: 问个二次不可导函数最值问题 : 发信站: BBS 未名空间站 (Thu May 10 22:21:38 2007) : 有没有好的算法或软件解决下面的问题呢 : 例如,minf=x1^2+x2^2+|x1|+|x2| : 谢谢
|
d*********a 发帖数: 255 | 5 难道我把问题说得太明白了?呵呵
那只是一个例子。
【在 c*******h 的大作中提到】 : 很明显x1=x2=0么。。
|
D*******a 发帖数: 3688 | 6 直接放到solver基本都能搞定,反正也是用差分逼近导数的
【在 d*********a 的大作中提到】 : 难道我把问题说得太明白了?呵呵 : 那只是一个例子。
|
r*****r 发帖数: 630 | 7 i guess the example is trivial...
【在 d*********a 的大作中提到】 : 【 以下文字转载自 Statistics 讨论区 】 : 发信人: dragoninsea (龙哥), 信区: Statistics : 标 题: 问个二次不可导函数最值问题 : 发信站: BBS 未名空间站 (Thu May 10 22:21:38 2007) : 有没有好的算法或软件解决下面的问题呢 : 例如,minf=x1^2+x2^2+|x1|+|x2| : 谢谢
|
d*********a 发帖数: 255 | 8 自变量数目很多,比如100个
目标函数不可导,是二次式加上绝对值等项。
有没有好的算法呢
【在 r*****r 的大作中提到】 : i guess the example is trivial...
|
g*********e 发帖数: 42 | |
c*******v 发帖数: 2599 | 10 自变量那么多,就算无穷次可导的函数,其极值也是在实践中基本不可求解的。
用超级计算机都够呛。牛顿法之类的方法的合适初始值和步长
很不好猜。根本的原因是大规模非线性代数方程组求解非常困难。
你还是在建模上多考虑下,计算之前先把模型简化。
【在 d*********a 的大作中提到】 : 自变量数目很多,比如100个 : 目标函数不可导,是二次式加上绝对值等项。 : 有没有好的算法呢
|
|
|
c*******v 发帖数: 2599 | 11 时灵时不灵。可以试一下。
mathematica的全局优化函数有GA方法。
Matlab也有。根据我个人的经验。用GA求解超过30个变量的高阶
多项式方程组是没啥效果的。
【在 g*********e 的大作中提到】 : Genetic algorithm
|
s*******a 发帖数: 921 | 12 可以用二次规划来解.将原问题转化成:
min f=y1^2+y2^2+y1+y2
s.t. x1<=y1
-x1<=y1
x2<=y2
-x2<=y2
y1>=0, y2>=0
matlab里面可以用quadprog来求解. |
d*********a 发帖数: 255 | 13 模型其实很简单。遇到的问题是这样的,min x'Ax+b|x| 其中x是未知的向量,A,b是
已知的矩阵,向量。
【在 c*******v 的大作中提到】 : 自变量那么多,就算无穷次可导的函数,其极值也是在实践中基本不可求解的。 : 用超级计算机都够呛。牛顿法之类的方法的合适初始值和步长 : 很不好猜。根本的原因是大规模非线性代数方程组求解非常困难。 : 你还是在建模上多考虑下,计算之前先把模型简化。
|
c*******v 发帖数: 2599 | 14 你的维数太高了。
你试试看上面一帖的方法用quadprog求解看。
我看reasonable time内很难求出来。
模型其实很简单。遇到的问题是这样的,min x'Ax+b|x| 其中x是未知的向量,A,b是
已知的矩阵,向量。
【在 d*********a 的大作中提到】 : 模型其实很简单。遇到的问题是这样的,min x'Ax+b|x| 其中x是未知的向量,A,b是 : 已知的矩阵,向量。
|
d*********a 发帖数: 255 | 15 去他们网站看了看,需要用哪个产品,网站太乱
【在 D*******a 的大作中提到】 : 直接放到solver基本都能搞定,反正也是用差分逼近导数的
|
d*********a 发帖数: 255 | 16 好的,谢谢
看来得去买个正版的matlab了。
【在 s*******a 的大作中提到】 : 可以用二次规划来解.将原问题转化成: : min f=y1^2+y2^2+y1+y2 : s.t. x1<=y1 : -x1<=y1 : x2<=y2 : -x2<=y2 : y1>=0, y2>=0 : matlab里面可以用quadprog来求解.
|