Senhores alunos:
O Script a seguir traça o gráfico erro total versus passo e cálculo na estimativa da primeira derivada de uma função polinomial em um ponto xi.
//************************************************************
j=1;
xi = input('Entre com o valor de xi: ');
h = input('Entre com o passo de cálculo inicial: ');
disp('Entre com os coef da f. polinomial entre ')
vetor = input(' no formato [a0 a1 ... an] : ');
f = poly(vetor,'x','c');
disp(f, 'f(x)');
flinha = derivat(f);
disp(flinha,'f´(x)');
vreal = horner(flinha,xi);
printf("O valor real da derivada em x = %f é %f\n",xi,vreal);
printf("tamanho do passo | diferenca finita | erro total\n ");
while h >= 1.0D-10
H(j)=h;
dfdt(j) = (horner(f,xi+h)-horner(f,xi-h))/(2*h);
e(j) = 100*abs((vreal - dfdt(j))/vreal);
printf("%16.10f | %16.10f | %16.10f\n ",h,dfdt(j),e(j));
h = h/2;
j=j+1;
end
xlabel('Tamanho do passo');
ylabel('Erro total');
plot2d(H,e,style=[color('blue4')],logflag='ll');
xgrid;
f2linha = derivat(flinha);
f3linha = derivat(f2linha);
M = abs(horner(f3linha,xi));
disp(M,'M');
hotm = (3*%eps/M)^(1/3.);
disp(hotm,'hotm');