sexta-feira, 15 de abril de 2016

Computação Científica - Script Scilab

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');



Nenhum comentário:

Postar um comentário