Divided difference(Newton metod)

6 views (last 30 days)
Ds31
Ds31 on 24 Oct 2021
Answered: Jan on 24 Oct 2021
I have to calculate divided differences, for vector x and vector y(which is function value of vector x). Divided difference is get when substracting two consecutive y elements, and then dividing that difference with two consecutive x elements. My function has to return vector that consists only of first elements of each divided difference. Here is my code, but not working.(So if we have vector x=[x1, x2, x3, ..., xn] this function has to return vector [f[x1], f[x1,x2],f[x1,x2,x3],...,f[x1,x2,...,xn]].
function div = evalDiv(x,y)
difference = y;
for j=2:length(y)
temp = difference;
for i=j:length(y)
difference(i) = (temp(i)-temp(i-1))/(x(i)-x(i-(j-1));
end
end
div = difference;
end
test = evalDiv([ 1 2 3 4],[5 6 7 8]);
  2 Comments
Ds31
Ds31 on 24 Oct 2021
Yes, I'm overwriting it, and on the end with that I will get only first element of each divided difference, that is what I need to return. But not sure why it is not printing anything

Sign in to comment.

Answers (1)

Jan
Jan on 24 Oct 2021
There was a missing closing parenthesis. The trailing esmivolon suppresses the output. If you omit it, this is displayed:
test = evalDiv([ 1 2 3 4],[5 6 7 8])
test = 1×4
5 1 0 0
function difference = evalDiv(x,y)
difference = y;
for j=2:length(y)
temp = difference;
for i=j:length(y)
difference(i) = (temp(i) - temp(i-1)) / (x(i) - x(i-(j-1)));
% missing: ^
end
end
end

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!