define copyleft() { printf("Este programa é distribuido sob GPL. \n"); printf("Se você não souber o que é a GPL, envie um e-mail ao autor \n"); printf(" tarcisio@member.ams.org \n, ou procure em www.fsg.org\n"); printf("mas em suma isto quer dizer que você pode usar livremente o sistema\n"); printf("de programas aqui mencionados, desde que esta copyleftção seja mantida\n"); printf("em todas as alterações que você fizer do programa e das cópias que \n"); printf("você dele fizer - é a proteção do direito autoral que não lhe impede\n"); printf("de usar livremente o conhecimento mas que mantém a memória de quem \n"); printf("participou de sua produção.\n"); printf("Este programa foi escrito por Tarcisio Praciano-Pereira \n"); printf("professor da Universidade Estadual Vale do Acaraú - UeVA \n"); printf("Departamento de Física/Ueva - Dep de Matemática/www.ua.pt \n"); printf("http://www.sobralmatematica.org - Sobral - Ceará - Brasil\n"); } ## crie o arquivo texto informa_este_programa.txt define informa() { system("less Green_calc.txt");printf("\n"); } define apeteco() { printf("%s","================================================= \n"); printf(" Dê para continuar \n"); system("read teste"); } PI= 4*atan(1); ## PI é uma aproximação da constante de Arquimedes ## printf("Pi = %f \n\n", PI); j = sqrt(-1); define f(x,y) { local z = mat[2]; z[0] = 1.0*x/(power(x,2) + power(y,2)); z[1] = -1.0*y/(power(x,2) + power(y,2)); return z; } define z(t) { return exp(j*t); } define dz(t) { return j*exp(j*t); } /* define gamma(t) { local z = mat[2] = { re(exp(j*t)), im(exp(j*t)) }; return(z); } define d_gamma(t) { local z = mat[2] = { -im(exp(j*t)), re(exp(j*t)) }; return(z); } */ define gamma(t) { local z = mat[2] = {sqrt(2) + cos(t), sqrt(2) + sin(t) }; return(z); } define d_gamma(t) { local z = mat[2] = { -sin(t), cos(t) }; return(z); } ## Derivada complexa de F- usando o operador partial - RCV pg 250 ## page 250 RCV checked! define DF(z) { 2*z; } ## produto escalar de dois vetores define Escalar (A,B) { return A[0]*B[0] + A[1]*B[1]; } ## soma de Riemann para calcular a integral de Cauchy ## a curva gama é homotópica ao circulo unitário rel à zero, F(\S) \S é esfera de dim 1 define RiemannLinha(delta) { local t = 0, soma = 0, fim = 2*PI; local A, B, x,y; while (t < fim){ A = gamma(t); x = A[0]; y = A[1]; A = f(x,y); B = d_gamma(t); soma += Escalar(A,B); t += delta; } return re(soma*delta); } ## não está terminado! Vale a pena? define RiemannDupla() { local inicioX, fimX, inicioY, fimY; local t = 0, soma = 0, delta = 0.001, fim = 2*PI; while (t < fim){ } } delta = 0.005 while(delta > 0.00005) { print "delta = ", delta, "O valor da integral de Linha ", RiemannLinha(delta); delta *= 0.1; } /* Usando a definição define gamma(t) { local z = mat[2] = { 250 + 2*cos(t), -350 + 4*sin(t) }; return(z); } define d_gamma(t) { local z = mat[2] = { -2*sin(t), 4*cos(t) }; return(z); } os resultado ficaram diferentes quando a elipse fica muito afastada da origem. define gamma(t) { local z = mat[2] = { 5 + re(exp(j*t)), im(exp(j*t)) }; return(z); } delta = 0.005 0.00000056197914502704 delta = 0.0005 0.00000000566949826305 delta = 0.00005 0.00000000005043519921 define gamma(t) { local z = mat[2] = { re(exp(j*t)), im(exp(j*t)) }; return(z); } delta = 0.005 O valor da integral de Linha ~0.00000578036520713210 delta = 0.0005 O valor da integral de Linha ~0.00000005831484012049 delta = 0.00005 O valor da integral de Linha ~0.00000000051876204903 define gamma(t) { local z = mat[2] = { 5+ re(exp(j*t)), -5 + 4*im(exp(j*t)) }; return(z); } delta = 0.005 O valor da integral de Linha ~-0.47564682723048604222 delta = 0.0005 O valor da integral de Linha ~-0.47613904683052727761 delta = 0.00005 O valor da integral de Linha ~-0.47623741169594098190 define gamma(t) { local z = mat[2] = { 25 + 2*re(exp(j*t)), 35 + 4*im(exp(j*t)) }; return(z); } delta = 0.005 O valor da integral de Linha ~0.02565261771458460815 delta = 0.0005 O valor da integral de Linha ~0.02576001639743378691 define gamma(t) { local z = mat[2] = { 250 + 2*re(exp(j*t)), -350 + 4*im(exp(j*t)) return(z); } delta = 0.005 O valor da integral de Linha ~-0.00024336021517505740 delta = 0.0005 O valor da integral de Linha ~-0.00025465796417592447 define gamma(t) { local z = mat[2] = { -250 + 2*re(exp(j*t)), -350 + 4*im(exp(j*t)) return(z); } delta = 0.005 O valor da integral de Linha ~0.00027082591325592290 delta = 0.0005 O valor da integral de Linha ~0.00025942091750157329 ## círculo unitario centrado em (-250, -350) define gamma(t) { local z = mat[2] = { -250 + re(exp(j*t)), -350 + im(exp(j*t)) }; return(z); } delta = 0.005 O valor da integral de Linha ~0.00003556589824586957 delta = 0.0005 O valor da integral de Linha ~0.00003272425274286792 ## círculo unitario centrado em (250, -350) define gamma(t) { local z = mat[2] = { 250 + re(exp(j*t)), -350 + im(exp(j*t)) }; return(z); } delta = 0.005 O valor da integral de Linha ~-0.00002869948243743535 delta = 0.0005 O valor da integral de Linha ~-0.00003153352088835090 ## círculo unitario centrado em (0, 0) define gamma(t) { local z = mat[2] = { re(exp(j*t)), im(exp(j*t)) }; return(z); } delta = 0.005 O valor da integral de Linha ~0.00000578036520713210 delta = 0.0005 O valor da integral de Linha ~0.00000005831484012049 */