Algoritmo polinomi di Berstain
Ciao a tutti, ho qualche problema con la formulazione dell'algoritmo per calcolare il valore dei polinomi di Berstain di grado n in un determinato punto u,tramite la formula ricorsiva. per ora ho scritto questo:
function =bernst(n,u)
%n --> grado
%u --> punto di valutazione
%B <-- valore dei polinomi di Bernstein in u
B(1)=1.0;
u1=1.0-u;
for j=1:n+1
saved=0.0;
for k=1:j
A=pascal(n+1);
s=A(k,n+1-(k-1));
temp=s*(u^(k))*(u1^(n-k));
B(k)=saved+u1*temp;
saved=u*temp;
end;
B(j)=saved;
end
ma i valori che l'algoritmo mi da (ho provato ad esempio B=bernst(3,0.5)) sono sbagliati.. dov'e sbaglio? grazie in anticipo!
function =bernst(n,u)
%n --> grado
%u --> punto di valutazione
%B <-- valore dei polinomi di Bernstein in u
B(1)=1.0;
u1=1.0-u;
for j=1:n+1
saved=0.0;
for k=1:j
A=pascal(n+1);
s=A(k,n+1-(k-1));
temp=s*(u^(k))*(u1^(n-k));
B(k)=saved+u1*temp;
saved=u*temp;
end;
B(j)=saved;
end
ma i valori che l'algoritmo mi da (ho provato ad esempio B=bernst(3,0.5)) sono sbagliati.. dov'e sbaglio? grazie in anticipo!
Risposte
Si chiamano polinomi di Bernstein come scritto correttamente nel codice. Scriveresti esattamente la formula che stai cercando di implementare nel codice?