Capítulo 2: Comandos Úteis e Simples
Seção 2.5: Avaliação do Ponto Flutuante
Session 2.5.1: Usando evalhf
| > | restart; |
| > | ProblemB1 := proc(a, h, ya, n, y) local j,k,c,y1,y2; y[1,0] := ya[1]; y[2,0] := ya[2]; for k from 1 to n do c := 0; for j from 0 to k-1 do c := c + y[1,j]*y[2,k-j-1]; end do; y[1,k] := 2*(y[1,k-1] - c)/k; y[2,k] := (y[2,k-1] - c)/k; end do; end proc: |
| > | ya := array(1..2, [1., 3.]): |
| > | n := 200: |
| > | y := array(1..2, 0..n): |
| > | yf := array(1..2, 0..n): |
| > | st := time(): evalhf(ProblemB1(0., 0.1, ya, n, var(y))): etime := time() -st; |
| > | Digits := trunc(evalhf(Digits))+1; |
| > | st := time(): evalf(ProblemB1(0., 0.1, ya, n, yf)): etimef := time() -st; |
| > | etimef/etime; |
| > | y[1,n]; |
| > | yf[1,n]; |
| > | restart; |
| > | currentdir("C:/local/mpl/adics"); |
| > | read "polyflake.mpl"; |
| > | bm := evalhf( polyflake(3) ); |
| > | bmp := PLOT3D( POINTS(bm) ): |
| > | b := n -> plots[display]( bmp, scaling=CONSTRAINED, orientation=[n,60] ): |
| > | plots[display]( [seq(b(10*n),n=0..35)], insequence=true ); |
| > |
| > |