%CreateOmega.m %Math 128B Spring 2005 %Returns W(i,j)=Wjk(Xi) % Wjk=j'th linear function with W(knots(j))=0,W(knot(j+k-1))=1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function w = CreateOmega(t, knots, K) %t = discretization of domain %knots = row vector of knot locations %returns w(i,j)=Wjk(Ti) N = length(knots); M = length(t); k = K-1; % degree TT = repmat(t', 1, N-k); KNOTS = repmat(knots, M, 1); %w numerator = x - t(j) wNum = TT - KNOTS(:,1:N-k); %w denominator = t(j+k) - t(j) wDen = KNOTS(:,1+k:N) - KNOTS(:,1:N-k); %replace zero entries in wDen (multiplicity > 1) wDen(find(~wDen)) = 1; %Wjk = quotient w = wNum./wDen; return