声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1041|回复: 1

[编程技巧] 求中心差商形式的化简

[复制链接]
发表于 2007-12-2 16:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function g=dett(x,r_al,pena,N,N_inequ)
dx=0.0000001;
for i=1:N;
    d_x1=x;
    d_x2=x;
    d_x1(i)=d_x1(i)+dx;
    d_x2(i)=d_x2(i)-dx;
    g(i)=(AL_obj(d_x1,r_al,pena,N_inequ)-AL_obj(d_x2,r_al,pena,N_inequ))/(2*dx);
end
我用中心差商方法对离散函数AL_obj(d_x1,r_al,pena,N_inequ)求梯度,但是AL_obj(d_x1,r_al,pena,N_inequ)函数很大,计算时间比较长,而且上面的程序要多次循环求AL_obj因此很浪费时间,导致后面程序出问题.请院长看一下有没有方法化简程序.尽量避免循环出现.(我看了您关于矢量编程的帖子后仍然没有思路)
回复
分享到:

使用道具 举报

发表于 2007-12-2 16:58 | 显示全部楼层
原帖由 lyx_812 于 2007-12-2 16:10 发表
function g=dett(x,r_al,pena,N,N_inequ)
dx=0.0000001;
for i=1:N;
    d_x1=x;
    d_x2=x;
    d_x1(i)=d_x1(i)+dx;
    d_x2(i)=d_x2(i)-dx;
    g(i)=(AL_obj(d_x1,r_al,pena,N_inequ)-AL_obj(d_x ...


你的程序没有输入参数的说明,根本不知道你的变量是一个标量、一个向量还是一个数组

建议自己找个简单例子练习一下吧
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-10-2 18:32 , Processed in 0.055576 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表