版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(3055)
>
导师招生
(209)
>
文献求助
(206)
>
虫友互识
(198)
>
休闲灌水
(145)
>
博后之家
(82)
>
基金申请
(74)
>
论文投稿
(70)
>
硕博家园
(48)
>
考博
(41)
>
招聘信息布告栏
(39)
>
考研
(38)
>
教师之家
(36)
>
绿色求助(高悬赏)
(31)
>
SciFinder/Reaxys
(18)
>
找工作
(18)
小木虫论坛-学术科研互动平台
»
专业学科区
»
数学
»
运筹学与控制论
»
大规模优化数值计算,梯度的计算方式讨论
25
1/1
返回列表
查看: 2837 | 回复: 24
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
chaogumath
铜虫
(小有名气)
应助: 0
(幼儿园)
金币: 44.2
帖子: 73
在线: 24.8小时
虫号: 1200054
[交流]
大规模优化数值计算,梯度的计算方式讨论
各位,
最近在做非线性规划的大规模数值计算。用的是向前差分近似计算梯度:
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朵)
chaogumath
chaogumath
» 猜你喜欢
自荐读博
已经有7人回复
自然科学基金委宣布启动申请书“瘦身提质”行动
已经有4人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有6人回复
求个博导看看
已经有18人回复
青基代表作,AAAI之类的A会的special track在国内认可度高吗?还是归为workshop之流?
已经有3人回复
上海工程技术大学【激光智能制造】课题组招收硕士
已经有6人回复
上海工程技术大学张培磊教授团队招收博士生
已经有4人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
【讨论】如何使用java进行数值计算编程
已经有10人回复
» 抢金币啦!回帖就可以得到:
查看全部散金贴
江汉大学招聘AI for Materials/电解液/锂金属/全固态电池等方面的博士或者博士后
+
1
/178
山东农业大学韩福社教授团队招聘有机合成研究助理
+
1
/174
国重点实验室双一流A类长江学者团队招2026年全日制博士1-2名/博后1-2名
+
2
/116
限广州,征女友
+
2
/108
澳门大学智慧城市物联网国重“结构智能感知、健康监测与无损检测”研究方向博士后招聘
+
1
/96
山东征女友,坐标济南
+
1
/95
福建师范大学柔性电子学院招收2026年博士(储能材料与柔性电子器件)
+
2
/90
中科院长春光机所 招收计算材料学博士/硕士研究生(含机器学习辅助材料设计方向)
+
1
/80
希望你在这里
+
1
/74
坐标北京不异地
+
1
/59
从业之感悟
+
2
/54
急招碳材料相关特任研究人员/博士后/科研助理/26级博士和硕士
+
1
/49
上海大学昝鹏教授、军事医学研究院伯晓晨研究员/倪铭副研究员 课题组招聘博士生
+
2
/28
中国科学院苏州纳米所院士团队博士后岗位招聘
+
1
/12
复旦大学聂志鸿团队招聘聚电解质方向博士后和科研助理
+
1
/10
重庆大学前沿院,黄小洋教授课题组,招收2026年非均相催化方向学术博士2名
+
1
/9
【博士后/科研助理招聘-北京理工大学-集成电路与电子学院-国家杰青团队】
+
1
/8
哈尔滨工业大学招收硕士研究生(欢迎环境、市政、生物、化学、农业等专业,长期有效)
+
1
/7
求博导收留
+
1
/3
湖南大学机械与运载工程学院赵岩副教授课题组招生2026级普通博士生1名
+
1
/2
1楼
2011-08-30 06:31:05
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
pengyehui
木虫
(正式写手)
数学EPI: 3
应助: 15
(小学生)
贵宾: 0.03
金币: 4215.2
帖子: 510
在线: 190.6小时
虫号: 462928
★
chaogumath(金币
+2
):谢谢参与
500不叫大
计算500次不叫多
计算1次需要0.001秒,你的机子比蜗牛还慢,的改善硬件!
赞
一下
(1人)
回复此楼
2楼
2011-08-30 07:23:32
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
chaogumath
铜虫
(小有名气)
应助: 0
(幼儿园)
金币: 44.2
帖子: 73
在线: 24.8小时
虫号: 1200054
送鲜花一朵
只是举个例子,500只能算小规模的。
这句话看了没有?“这已经占了整个计算时间的70%。”一个循环需要8秒的话,计算g就需要5秒。你做实验的时候是这样的吗?
请大侠分析得透彻一点,否则云里雾里的,抓不到本质。呵呵。
赞
一下
回复此楼
3楼
2011-08-30 08:24:27
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
pengyehui
木虫
(正式写手)
数学EPI: 3
应助: 15
(小学生)
贵宾: 0.03
金币: 4215.2
帖子: 510
在线: 190.6小时
虫号: 462928
★
chaogumath(金币
+2
):谢谢参与
你这里关键是函数值的计算耗费时间,与优化算法没什么关系啊?
如果你的函数计算,要解一个pde或者cfd,那就慢了,
所以,你的从函数计算着手解决问题
赞
一下
(1人)
回复此楼
4楼
2011-08-30 11:13:15
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
saladin983
铁杆木虫
(正式写手)
数学EPI: 4
应助: 6
(幼儿园)
贵宾: 0.2
金币: 9197.9
帖子: 687
在线: 115.7小时
虫号: 448168
★
chaogumath(金币
+2
):谢谢参与
如果是用matlab,把for循环去掉估计能省下不少时间。否则的话,很难。优化问题中梯度、Hessian之类的信息一向都是难点。在一些特殊问题上,人们会有特别的方法来对待,不过通行的技巧据我所知是不存在的。通过算法上的改进来控制总体的计算量,这样的可能性当然存在,可以选取合适的全局算法,比如某些单调问题的免梯度算法,即便是计算梯度,也许也可以引入其他技巧,但是这个对于问题本身的依赖很强。建议多看看同类问题的文献,或许能有收获。
赞
一下
(1人)
回复此楼
5楼
2011-08-30 20:40:19
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
chaogumath
铜虫
(小有名气)
应助: 0
(幼儿园)
金币: 44.2
帖子: 73
在线: 24.8小时
虫号: 1200054
这个for循环确实厉害。使我想到一句话,中国人民的事情,就算再小,乘以13亿就是大事了。呵呵。谢谢各位指点。
赞
一下
回复此楼
6楼
2011-09-03 23:28:15
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
潇湘子博客
木虫
(职业作家)
应助: 4
(幼儿园)
金币: 5589.3
帖子: 4200
在线: 145.3小时
虫号: 1312720
★
chaogumath(金币
+2
):谢谢参与
nono2009: 专业区讨论贴请勿灌水赚金币! 2011-09-05 21:33:50
支持五楼!!
回复此楼
7楼
2011-09-04 01:09:16
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
潇湘子博客
木虫
(职业作家)
应助: 4
(幼儿园)
金币: 5589.3
帖子: 4200
在线: 145.3小时
虫号: 1312720
★
chaogumath(金币
+2
):谢谢参与
六楼!这是周总理说的话。
赞
一下
(1人)
回复此楼
8楼
2011-09-04 01:10:22
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
潇湘子博客
木虫
(职业作家)
应助: 4
(幼儿园)
金币: 5589.3
帖子: 4200
在线: 145.3小时
虫号: 1312720
★
chaogumath(金币
+2
):谢谢参与
的确啊!!中国人民的事情,就算再小,乘以13亿就是大事了
赞
一下
(1人)
回复此楼
9楼
2011-09-04 01:10:59
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
saladin983
铁杆木虫
(正式写手)
数学EPI: 4
应助: 6
(幼儿园)
贵宾: 0.2
金币: 9197.9
帖子: 687
在线: 115.7小时
虫号: 448168
★
chaogumath(金币
+2
):谢谢参与
引用回帖:
6楼
:
Originally posted by
chaogumath
at 2011-09-03 17:28:15:
这个for循环确实厉害。使我想到一句话,中国人民的事情,就算再小,乘以13亿就是大事了。呵呵。谢谢各位指点。
关于Matlab的循环,多说两句吧。因为Matlab是执行脚本的,而不是像C++之类的编译后执行,循环的本质是每次都重新读取代码执行,这个效率是极其低下的,所以尽量避免使用循环语句是Matlab编程的一条基本准则。而Matlab也提供很多内建的程序使得很多情况下剔除循环语句成为可能。
赞
一下
(1人)
回复此楼
10楼
2011-09-04 03:31:26
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
chaogumath
铜虫
(小有名气)
应助: 0
(幼儿园)
金币: 44.2
帖子: 73
在线: 24.8小时
虫号: 1200054
fortran语言是编译后执行吗?应该比matlab好?
我现在用Octave,他的循环也是跟matlab一样的吧?时间超长。
赞
一下
回复此楼
12楼
2011-09-04 21:40:54
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
saladin983
铁杆木虫
(正式写手)
数学EPI: 4
应助: 6
(幼儿园)
贵宾: 0.2
金币: 9197.9
帖子: 687
在线: 115.7小时
虫号: 448168
★
chaogumath(金币
+2
):谢谢参与
引用回帖:
12楼
:
Originally posted by
chaogumath
at 2011-09-04 15:40:54:
fortran语言是编译后执行吗?应该比matlab好?
我现在用Octave,他的循环也是跟matlab一样的吧?时间超长。
Fortran我没有用过,但是因为是编译后执行,所以效率更高应该是没有问题的。Octave算是Matlab的效仿者吧,而且逐渐流行也是因为开源和与Matlab兼容比较好,两者应该是差不多的。
赞
一下
(1人)
回复此楼
13楼
2011-09-05 15:46:58
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
chaogumath
铜虫
(小有名气)
应助: 0
(幼儿园)
金币: 44.2
帖子: 73
在线: 24.8小时
虫号: 1200054
有什么方法能去除for循环
赞
一下
回复此楼
17楼
2011-09-07 08:51:46
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
huyunq
新虫
(初入文坛)
应助: 0
(幼儿园)
金币: 34
帖子: 11
在线: 10.4小时
虫号: 1494575
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
尽量用解析表达式。如果避免不了,才考虑使用数值求导,即你所说的差分表达式。
赞
一下
(1人)
回复此楼
18楼
2011-11-19 23:18:21
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
daicong
木虫
(小有名气)
应助: 7
(幼儿园)
金币: 2886.8
帖子: 160
在线: 79.1小时
虫号: 1397910
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
引用回帖:
10楼
:
Originally posted by
saladin983
at 2011-09-03 07:31:26:
关于Matlab的循环,多说两句吧。因为Matlab是执行脚本的,而不是像C++之类的编译后执行,循环的本质是每次都重新读取代码执行,这个效率是极其低下的,所以尽量避免使用循环语句是Matlab编程的一条基本准则。而M ...
看到高手了,你能否指点一下下面这个问题呢?
我就开门见山的说问题了:举一个例子
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
求解:x,y的范围。应该用什么方法?
赞
一下
(1人)
回复此楼
19楼
2011-12-09 03:59:19
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
saladin983
铁杆木虫
(正式写手)
数学EPI: 4
应助: 6
(幼儿园)
贵宾: 0.2
金币: 9197.9
帖子: 687
在线: 115.7小时
虫号: 448168
★
小木虫(金币
+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到底是常量还是变量。如果是常量,就有矛盾的方程了,充其量能给个某种意义下的最小二乘解。如果是变量,那么这个问题的维度就提高了。
赞
一下
(1人)
回复此楼
20楼
2011-12-09 21:40:17
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
daicong
木虫
(小有名气)
应助: 7
(幼儿园)
金币: 2886.8
帖子: 160
在线: 79.1小时
虫号: 1397910
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
引用回帖:
20楼
:
Originally posted by
saladin983
at 2011-12-09 01:40:17:
线性规划的解法比如单纯形法或许能给出解,不过如果是给出范围的话,恐怕需要去看看运筹学的书了,印象当中可以画割线图求解,毕竟只有二维。最大的问题在于,这里的c到底是常量还是变量。如果是常量,就有矛盾的 ...
因为是范围,所以你的推荐是使用“画个线图求解”是吗?
c其实本来不存在的,因为原来的约束条件是大于等于和小于等于,所以为了转换成标准的形式,加入了c,即c是大于等于0的,是一个范围。
赞
一下
(2人)
回复此楼
21楼
2011-12-10 02:36:18
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
saladin983
铁杆木虫
(正式写手)
数学EPI: 4
应助: 6
(幼儿园)
贵宾: 0.2
金币: 9197.9
帖子: 687
在线: 115.7小时
虫号: 448168
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
引用回帖:
21楼
:
Originally posted by
daicong
at 2011-12-09 20:36:18:
因为是范围,所以你的推荐是使用“画个线图求解”是吗?
c其实本来不存在的,因为原来的约束条件是大于等于和小于等于,所以为了转换成标准的形式,加入了c,即c是大于等于0的,是一个范围。
c是松弛变量的话,运筹学的教材中应该有对应的例子了,拿线性规划的方法姐就是了。手头没有运筹的书,你可以翻一下看。
赞
一下
(2人)
回复此楼
22楼
2011-12-10 07:21:44
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
小巫巫
新虫
(初入文坛)
应助: 1
(幼儿园)
金币: 320.8
帖子: 23
在线: 3.5小时
虫号: 1655268
★
小木虫(金币
+0.5
):给个红包,谢谢回帖
如果你使用的matlab的话,循环次数很花费时间的,你不妨将循环文件用C语言写,然后做一个接口,用matlab进行调用,这样子会快很多的
赞
一下
回复此楼
23楼
2012-03-11 13:45:55
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
chaogumath
铜虫
(小有名气)
应助: 0
(幼儿园)
金币: 44.2
帖子: 73
在线: 24.8小时
虫号: 1200054
送鲜花一朵
兄弟的计算机水平不行,做不来调用的事情。呵呵
赞
一下
回复此楼
24楼
2012-03-13 19:44:19
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
简单回复
zyxme
11楼
2011-09-04 05:41
回复
chaogumath(金币
+2
):谢谢参与
nono2009: 专业区讨论贴请勿灌水赚金币! 2011-09-05 21:34:08
祝福
scx1109
14楼
2011-09-05 16:04
回复
chaogumath(金币
+2
):谢谢参与
nono2009: 专业区讨论贴请勿灌水赚金币! 2011-09-05 21:34:20
scx1109
15楼
2011-09-05 16:04
回复
chaogumath(金币
+2
):谢谢参与
scx1109
16楼
2011-09-05 16:04
回复
chaogumath(金币
+2
):谢谢参与
wzp182475
25楼
2012-03-22 12:12
回复
相关版块跳转
数理科学综合
机械
物理
数学
农林
食品
地学
能源
信息科学
土木建筑
航空航天
转基因
我要订阅楼主
chaogumath
的主题更新
25
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定