#! /usr/bin/calc Fronteira=0; Disco = 0; pi = 4*atan(1); ## Definição de P(x,y), Q(x,y), define DQ_Dx(x,y), define DP_Dy(x,y) define P(x,y) {return re(-x*power(y,2));}; define Q(x,y) {return re(-power(x,2)*y/2);}; define DQ_x(x,y) {return re(-x*y);}; define DP_y(x,y) {return re(-2*x*y);}; ## define F(x,y) {return re(DQ_x(x,y)) - re(DP_y(x,y));} ## as fronteiras do círculo - fronteira do domínio da integral dupla define h1(x,r,a,b) {return b + re(sqrt(power(r,2) - power(x-a,2))) ;} ; define h2(x,r,a,b) {return b - re(sqrt(power(r,2) - power(x-a,2))) ;} ; define riemann_disco(a,b, r, N){ local soma=0; local delta = 2*r/N; local x=a-r,FimX=a+r, y, FimY; while(x FimY) swap(y,FimY); while(y < FimY){ soma = soma + DQ_x(x,y) - DP_y(x,y) ; y +=delta; } x +=delta; } return(soma*delta*delta); } ## equações paramétricas da fronteira e suas derivadas ## (x1(t), x2(t)) define x1(t,a,r){ return re(a + r*cos(t)); } define x2(t,b,r){ return re(b + r*sin(t)); } ## (dx1(t), x2(t)) define dx1(t, r){ return re(-r*sin(t)); } define dx2(t,r){ return re(r*cos(t)); } define riemann_fronteira(a,b, r, N){ local soma=0; local t=0,fim=2*pi; local delta = 2*pi/N; while( t FimY) swap(y,FimY); ## laço interno roda entre as curvas da fronteira while(y < FimY){ soma[1] += ( DQ_x(x,y) - DP_y(x,y) ) ; y +=Delta_y; } k++; ## controle do somatório externo } soma[0] = soma[0]*Delta_t; ## integral na fronteira soma[1] = soma[1]*(Delta_x*Delta_y); ## integral no disco return(soma); ## tem duas coordenadas } define main(a, b, r, N){ ## local Fronteira, Disco; local mat soma[] = {0,0}; ## disco, fronteira: as integrais soma = riemann_paralela(a, b, r, N); Fronteira = soma[0]; Disco = soma[1]; ## Fronteira = riemann_fronteira(a,b, r, N); ## Disco = riemann_disco(a,b, r, N); print "Na fronteira = ",Fronteira; print "No disco = ",Disco; } r = 1; delta = 0.005; N = 1000; a = 100; b = 200; main(a, b, r, N); ## system("joe exer10_03.calc");