马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
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因此很浪费时间,导致后面程序出问题.请院长看一下有没有方法化简程序.尽量避免循环出现.(我看了您关于矢量编程的帖子后仍然没有思路) |