matlab,理查德森外推法计算函数梯度,程序,求助啊!

理查德森外推法计算函数梯度,不知道谁能够提供该外推法计算梯度的详细原理啊,或者有外推法的程序。我正在做用该理论去做一个matlab的linprog运算。如果谁有相关理论,请告诉我啊,不胜感谢咯

1、外推法的MATLAB程序代码如下所示:
function yy = DEWT(f,h,a,b,gama,y0,order,varvec)
%一阶常微分方程的一般表达式的右端函数:f
%积分步长:h
%自变量取值下限:a
%自变量取值上限:b
%外推参数,参考外推公式:gama
%函数初值:y0
%外推阶数:order
%常微分方程的变量组:varvec
format long;
ArrayH = [1;2;4;6;8;12;16;24;32;48;64;96];
N = (b-a)/h;
yy = zeros(N+1,1);
for i = 2:N+1
dh = h;
s = zeros(order,1);
for j=1:order
dh = h/ArrayH(j); %不同的h值
tmpY = DELGKT2_suen(f,dh,a,a+(i-1)*h,y0,varvec); %休恩法
s(j) = tmpY((i-1)*ArrayH(j)+1);
end
tmpS = zeros(order,1);
for j=1:order-1
for k=(j+1):order
tmpS(k) = s(k)+(s(k)-s(k-1))/((ArrayH(k)/ArrayH(j))^gama-1);
end
s(1:(order-j)) = tmpS((j+1):order); %取对角值
end
yy(i) = tmpS(order);
end
format short;
温馨提示:答案为网友推荐,仅供参考
相似回答