我在看直接配点法的例程,在正是求解之前看到一段代码是这样的(matlab内),实在搞不清楚这个的原理是啥
d=3;
y_base=0;
%get collocation points
% cp1*x^3+cp2*x^2+cp1*x+y_base
tau_root=[y_base collocation_points(d, 'legendre')];
%coefficients of collocation equation
C=zeros(d+1,d+1);
%coes of the continuity equation
D=zeros(d+1,1);
%coes of quadrature(正交,求积,面积) function
B=zeros(d+1,1);
%construct polinomial 看不懂... ...
%遍历多项式参数
for j=1:(d+1)
%缩放参数?A:不是
%其实就是因为要乘积,初始值
coeff=1;
%再次遍历,这说明是卷积类似的操作0731YH
for r=1:(d+1)
if r~=j
%conv卷积 等于两个多项式相乘后结果的系数
coeff=conv(coeff, [1, -tau_root(r)]);
coeff=coeff/(tau_root(j)-tau_root(r));%1*2
end
end
D(j)=polyval(coeff, 1.0); %系数的和,高次在前 1*1
pder=polyder(coeff); %多项式微分
for r=1:(d+1)
C(j,r)=polyval(pder,tau_root(r));
end
pint=polyint(coeff); %多项式积分
B(j)=polyval(pint, 1.0);
end