n = 63; K = zeros(n+2, n) for i=1:n+2 if i<=n K(i,i) = 1; end if i-1 >= 1 && i-1 <= n K(i,i-1) = -2; end if i-2 >= 1 && i-2 <= n K(i,i-2) = 1; end end xinit = 2; xgoal = -2; e = zeros(n+2,1); e(1) = -xinit; e(2) = xinit; e(end-1) = xgoal; e(end) = -xgoal; A = K'*K b = K'*e x = -inv(A)*b plot(linspace(0, 1, n+2), [xinit; x; xgoal]); i1 = round(0.25*(n+1)) i2 = round(0.75*(n+1)) C = zeros(2,n); C(1,i1) = 1; C(2,i2) = 1; d = [ +3; 1 ]; M = [ A C' ; C zeros(2,2) ]; AiCt = A\C'; Q = C*AiCt; m11 = A\(eye(n,n) - C'*(Q\AiCt')); m12 = (Q\AiCt')'; %Mi = inv(M); %x = Mi(1:n,:) * [ -b; d ]; x = -m11*b + m12*d; hold on plot(linspace(0, 1, n+2), [xinit; x; xgoal], 'r-'); plot([0.25, 0.75], d, 'ro'); hold off