24小时热门版块排行榜    

查看: 2861  |  回复: 24
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

chaogumath

铜虫 (小有名气)


[交流] 大规模优化数值计算,梯度的计算方式讨论

各位,
    最近在做非线性规划的大规模数值计算。用的是向前差分近似计算梯度:
g=[f(xi+h)-f(xi)]/h,用for i=1:n 进行循环计算。但是大家看到,如果变量有500个的话,就要计算500次f(xi+h),这个计算量太大了。例如:f(xi+h)计算1次需要0.001秒,那么,计算梯度g就需要5秒。这已经占了整个计算时间的70%。咋办?请教各位同仁。
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小木虫(金币+0.5):给个红包,谢谢回帖
引用回帖:
19楼: Originally posted by daicong at 2011-12-08 21:59:19:
看到高手了,你能否指点一下下面这个问题呢?
我就开门见山的说问题了:举一个例子

min   z=14.3-6*x-21*y
s.t.   x+y-c=0.99
x+y+c=1.41
x+2y-c=1.57
x+2y+c=2.03
x+3y-c=1.9
x+3y+c=2.3
c>=0

...

线性规划的解法比如单纯形法或许能给出解,不过如果是给出范围的话,恐怕需要去看看运筹学的书了,印象当中可以画割线图求解,毕竟只有二维。最大的问题在于,这里的c到底是常量还是变量。如果是常量,就有矛盾的方程了,充其量能给个某种意义下的最小二乘解。如果是变量,那么这个问题的维度就提高了。
20楼2011-12-09 21:40:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 25 个回答

chaogumath(金币+2):谢谢参与
500不叫大
计算500次不叫多
计算1次需要0.001秒,你的机子比蜗牛还慢,的改善硬件!
2楼2011-08-30 07:23:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chaogumath

铜虫 (小有名气)


送鲜花一朵
只是举个例子,500只能算小规模的。
这句话看了没有?“这已经占了整个计算时间的70%。”一个循环需要8秒的话,计算g就需要5秒。你做实验的时候是这样的吗?
请大侠分析得透彻一点,否则云里雾里的,抓不到本质。呵呵。
3楼2011-08-30 08:24:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chaogumath(金币+2):谢谢参与
你这里关键是函数值的计算耗费时间,与优化算法没什么关系啊?
如果你的函数计算,要解一个pde或者cfd,那就慢了,
所以,你的从函数计算着手解决问题
4楼2011-08-30 11:13:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见