Divided difference(Newton metod)
32 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Sargondjani
am 24 Okt. 2021
It is not clear what you want to me. You should provide a better formula for what this is supposed to be:
(temp(i)-temp(i-1))/(x(i)-x(i-(j-1));
Also I am not sure you intend to overwrite the values in 'difference'
Antworten (1)
Jan
am 24 Okt. 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])
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
0 Kommentare
Siehe auch
Kategorien
Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!