75 lines
1.1 KiB
Matlab
75 lines
1.1 KiB
Matlab
Y = [] %it doesn't like when I don't add this
|
|
function y = f_newt_diff1(Y,h)
|
|
y = ( Y(2) - Y(1) ) / h
|
|
end
|
|
|
|
function y = c_newt_diff1(Y,h)
|
|
y = ( Y(2) - Y(1) ) / ( 2 * h )
|
|
end
|
|
|
|
|
|
function y = b_newt_diff1(Y,h)
|
|
y = ( Y(1) - Y(2) ) / h
|
|
end
|
|
|
|
|
|
function y = newt_diff_fr(Y,X,x,h)
|
|
idx = find(X==x);
|
|
if (idx == length(X))
|
|
elems = [X(idx), X(idx-1)]
|
|
y = b_newt_diff1(elems,h)
|
|
|
|
elseif (idx == 1)
|
|
elems = [X(idx), X(idx+1)]
|
|
y = f_newt_diff1(elems,h)
|
|
else
|
|
elems = [X(idx), X(idx+1)]
|
|
y = c_newt_diff1(elems,h)
|
|
endif
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function y = f_newt_diff2(Y,h)
|
|
Y = ( Y(3) - 2 * Y(2) + Y(1) ) / h^2
|
|
end
|
|
|
|
function y = c_newt_diff2(Y,h)
|
|
Y = ( Y(3) - 2 * Y(2) + Y(1) ) / h^2
|
|
end
|
|
|
|
|
|
function y = b_newt_diff2(Y,h)
|
|
y = ( Y(1) - 2 * Y(2) + Y(3) ) / h^2
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
function y = newt_diff_fr(Y,X,x,h)
|
|
idx = find(X==x);
|
|
if (idx == length(X))
|
|
elems = [X(idx), X(idx-1), X(idx-2)]
|
|
y = b_newt_diff1(elems,h)
|
|
|
|
elseif (idx == 1)
|
|
elems = [X(idx), X(idx+1), X(idx+2)]
|
|
y = f_newt_diff1(elems,h)
|
|
else
|
|
elems = [X(idx-1), X(idx), X(idx+1)]
|
|
y = c_newt_diff1(elems,h)
|
|
endif
|
|
endfunction
|
|
|