a0=-3.0; a1 = -2.0; a2=-1.0; a3 =0.0; a4=1.0; a5 =2.0; a6 = 3.0; define h(x){ return(power(x,3)*sin(x));} y0=h(a0); y1 =h(a1);y2= h(a2);y3 =h(a3);y4=h(a4);y5 =h(a5); y6 =h(a6); define P(x) {return (x-a0)*(x-a1)*(x-a2)*(x-a3)*(x-a4)*(x-a5)*(x-a6);} define P0(x) {return (x-a1)*(x-a2)*(x-a3)*(x-a4)*(x-a5)*(x-a6);} define P1(x) {return (x-a0)*(x-a2)*(x-a3)*(x-a4)*(x-a5)*(x-a6);} define P2(x) {return (x-a0)*(x-a1)*(x-a3)*(x-a4)*(x-a5)*(x-a6);} define P3(x) {return (x-a0)*(x-a1)*(x-a2)*(x-a4)*(x-a5)*(x-a6);} define P4(x) {return (x-a0)*(x-a1)*(x-a2)*(x-a3)*(x-a5)*(x-a6);} define P5(x) {return (x-a0)*(x-a1)*(x-a2)*(x-a3)*(x-a4)*(x-a6);} define P6(x) {return (x-a0)*(x-a1)*(x-a2)*(x-a3)*(x-a4)*(x-a5);} define dP(x) {return P0(x)+ P1(x)+P2(x)+ P3(x)+ P4(x)+ P5(x)+ P6(x);} ## o polinĂ´mio de Lagrange define f(x) {local y; y = y0*P0(x)/dP(a0)+y1*P1(x)/dP(a1)+y2*P2(x)/dP(a2)+y3*P3(x)/dP(a3)+y4*P4(x)/dP(a4)+y5*P5(x)/dP(a5)+y6*P6(x)/dP(a6); return y; } define riemann(inicio, fim, delta) { local soma = 0; local x = inicio; while( x < fim) { soma = soma + f(x); x = x + delta; } return( soma*delta); } ## derivada aproximada do polinĂ´mio de Lagrange define df(x) {local delta = 0.000001; return (f(x+delta)-f(x))/delta;} x=a0 delta =1 while(x<=a6){ printf("%f %f %f \n", x, f(x), df(x)); x = x + delta } dados = fopen("dados", "w"); fclose(dados); define cria_dados(inicio, fim, delta) { dados = fopen("dados", "w"); while(inicio <= fim){ fprintf(dados, "%f %f %f \n", inicio, f(inicio), df(inicio)); inicio = inicio + delta; } fclose(dados); } transfere = fopen("transfere", "w"); fclose(transfere); define cria_comandos(){ transfere = fopen("transfere", "w"); fprintf(transfere, "set title \"meus graficos - polinomio de Lagrange\" \n"); fprintf(transfere, "set pointsize 0.1 \n"); fprintf(transfere, "plot \"dados\" with points \n"); fprintf(transfere, "pause -2"); fclose(transfere); } ## cria_dados(-5, 10, 0.1); ##cria_comandos(); ##system("joe transfere") ##system("gnuplot transfere") riemann(-3,3,0.00001);