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因此很浪费时间,导致后面程序出问题.请院长看一下有没有方法化简程序.尽量避免循环出现.(我看了您关于矢量编程的帖子后仍然没有思路)