Buscar

Trabalho Metemática

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
 
 
 
 
Função Gama e Série de Stirling 
 
 
Camila R. L. Cordeiro 
Paulo Henrique Dettmer 
Paulo L. Manenti 
Sinvaldo Rodrigues Moreno 
 
 
 
Trabalho apresentado como requisito 
parcial para aprovação na Disciplina 
TH704 - Matemática Aplicada sob 
orientação Prof. Eloy Kaviski. 
 
 
 
 
Curitiba 28 maio 2010. 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
Introdução 
 
O presente trabalho ilustra um algoritmo desenvolvido para ser utilizado na obtenção de 
fatoriais de números reais e complexos, através da utilização da função gama e da Série de 
Stirling. 
O algoritmo foi dividido de forma a resolver os dois problemas de forma independente, porém 
utilizando a mesma interface de entrada de dados. 
 
1. Descrição do Problema 
 
O enunciado do problema propõe que sua resolução seja através de um programa 
computacional, o Delphi será utilizado como linguagem de programação padrão, como fonte 
de homologação do algoritmo, foi fornecido, juntamente com o problema a ser resolvido, o 
resultado para os valores a serem calculados. A descrição do problema é divida em duas 
etapas que segue [1]: 
A. Escrever um programa para calcular )!(10 xLog diretamente da Série de Stirling, 
assumir que 10≥x , para valores menores, utilizar a forma de recorrência para o 
cálculo de fatorial. Criar uma tabela para valores de )!(10 xLog versus ix , utilizar 
incrementos com passo de 10 unidades, ou seja, incrementos de 10 com i= 1, 2,..., 30. 
Submeter o programa a teste, utilizando os dados obtidos pela multiplicação direta 
(definição de fatorial). O valor de referência para .97,157)!(10 =xLog 
B. Escrever uma rotina que calcule )!(zLn para z complexo baseado na Série de Stirling. 
Submeter a rotina a testes para z puramente real, z puramente complexo. O valor de 
referência para ( ) 82618,0!5.0 =i e a fase é ( ) .24406,0!5.0 −=i 
 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
2. Função Gama e Série de Stirling 
2.1 Função Gama 
 
A função gama aparece ocasionalmente em problemas físicos tais como a normalização de 
funções de onda de Coulomb e o cálculo de probabilidades em mecânica estatística. Contudo, 
em geral, ela tem menos aplicação física direta e interpretação do que, digamos, as funções de 
Legendre e Bessel [1]. 
 
Há em uso corrente, pelo menos três definições diferentes e convenientes da função gama, 
porém nesse trabalho a mesma será utilizada como, 
 
!
0
zdtte zt ≡∫
∞
−
 
1)( −>ℜ z
 (2.1) 
 
para defnir uma função fatorial !z .Ocasionalmente, podemos encontrar a notação de Gauss, 
( )∏ z , para a função fatorial [1] : 
 
( ) ( )1! +Γ=≡∏ zzz (2.2) 
 
A notação Γ se deve a Legendre, a função fatorial da equação (2.1) é relacionada à função 
gama por: 
( ) ( )!1−=Γ zz
 ou ( ) !1 zz =+Γ (2.3) 
 
Se nz = , um inteiro positivo, obtém-se a seguinte equação: 
,...321!! nnz ⋅⋅⋅⋅==
 (2.4) 
que é o familiar fatorial [1]. 
 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
2.2 Série de Stirling 
 
Através da função gama, Stirling realizou uma expansão assintótica [1] para o cálculo de 
( )1ln +Γ z e obteve a seguinte aproximação: 
( ) ...
1260
1
360
1
12
1
ln
2
1
2ln
2
1
1ln
53
−
⋅
+
⋅
−
⋅
+−+⋅




 ++⋅=+Γ
zzz
zzzz pi
 (2.5) 
 
Para ( )1+Γ z em vez de ( )1ln +Γ z , a equação (2.5) se torna: 
( ) 




 +
⋅
−
⋅
+
⋅
+⋅⋅⋅=+Γ −
+
...
51840
139
288
1
12
1
121
32
2
1
zzz
ezz z
z
pi
 (2.6) 
 
Sendo a equação (2.6) utilizada na solução do item A, após a obtenção do valor de 
( ) !1 zz =+Γ é aplicado o logaritmo na base 10, como é sugerido no problema proposto e a 
equação (2.5) utilizada na solução do item B do problema. 
 
3. Programa 
3.1 Interface do Programa 
 
A interface do programa contém quatro botões, onde o usuário poderá realizar a etapa de 
cálculo e reset das variáveis internas para as duas etapas do problema, a tela inicial pode ser 
vista na figura 3.1. 
Após a entrada do valor numérico para a qual se deseja calcular o fatorial, o resultado é 
apresentado através da propriedade Caption do label, é também informado qual método foi 
utilizado para a obtenção da solução, figuras 3.2 e 3.3; 
Caso o valor inserido seja menor que 10, como proposto na primeira etapa do problema, o 
cálculo é realizado pela definição de fatorial, caso seja superior a esse valor é utilizado à 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
equação (2.6) e pode-se calcular através deste programa o valor do fatorial até de 1500 sem o 
ocorrer overflow nas variáveis internas da rotina de cálculo. 
 
Figura 3.1- Tela inicial – Interface com o usuário. 
 
 
Figura 3.2- Tela inicial – Apresentação dos resultados. 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
 
Figura 3.3- Tela inicial – Apresentação dos resultados. 
Para a segunda etapa do problema os resultados apresentados são em módulo e fase, a rotina 
apresenta mensagens de erro caso os dois campos de entrada de dados sejam deixados sem 
preenchimento ou caso ambos sejam preenchidos com valor nulo (zero), a figura 3.4 mostra 
como os resultados são apresentados: 
 
Figura 3.4- Tela inicial – Apresentação dos resultados. 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
3.2 Desenvolvimento do Programa 
 
Para manipulação de números complexos, foi necessário desenvolver uma Unit (biblioteca), 
com todas as operações matemáticas de números complexos, a Unit desenvolvida recebeu o 
nome de Complex.pas e seu código fonte é detalhado no anexo deste trabalho. 
A função que descreve a série de Stirling tanto na forma da equação (2.5) e (2.6) foram 
reescritas para melhor desenvolvimento do algoritmo do programa. 
 
4. Resultados 
 
Os resultados da parte A do problema são mostrados na tabela 4.1, para melhor visualização 
foi construído o gráfico da figura 4.1; 
 
x Log(x!) x Log(x!) x Log(x!) 
10 6.559 110 178.200 210 398.024 
20 18.386 120 198.825 220 421.358 
30 32.423 130 219.810 230 444.889 
40 47.911 140 241.129 240 468.609 
50 64.483 150 262.756 250 492.509 
60 81.920 160 284.673 260 516.583 
70 100.078 170 306.860 270 540.823 
80 118.854 180 329.302 280 565.224 
90 138.171 190 351.985 290 589.780 
100 157.970 200 374.896 300 614.485 
Tabela 4.1 – Valores de Log(x!) versus x 
 
 
 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
Logaritimo da Função Gamma - Log(x!)
0
100
200
300
400
500
600
0 5 10 15 20 25 30
 X (x10)
Lo
g(
x
!)
Log(x!)
 
Figura 4.1 – Gráfico de Log da Função da Gamma. 
 
Os resultados da parte B do problema são mostrados na tabela 4.2, porém os mesmos 
apresentaram certo desvio do valor sugerido por Arfken [1] como solução. 
Argumento Fase Tipo de Solução 
0.82618 -0.24406 Sugerida pelo Autor 
0.7979 -0.27018 Encontrada 
Tabela 4.2 – Valoresda Solução Obtida 
 
5. Conclusão 
 
O trabalho mostrou a robustez da Série de Stirling para cálculos de fatoriais de números 
superiores a 70 e também a boa aproximação para números complexos, os desvios verificados 
se devem ao truncamento da série no termo de 5ª ordem. 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
Anexo I - Códigos Fonte do Programa 
 
O programa foi desenvolvido com base em [2] e [3], o mesmo faz uso das propriedades do 
Label para mostrar o resultado das operações. 
É apresentado abaixo o código com os comentários para facilitar o entendimento de um modo 
geral. 
Arquivo gamma.pas 
interface 
uses 
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Math, 
 StdCtrls, Complex; //Chamada da Unit Complex para manipular numeros complexos 
type 
TForm1 = class(TForm) 
Label1: TLabel; 
Label2: TLabel; 
Edit1: TEdit; 
Label3: TLabel; 
Label4: TLabel; 
Label5: TLabel; 
Label6: TLabel; 
Label7: TLabel; 
Label8: TLabel; 
Label9: TLabel; 
Button1: TButton; 
Button2: TButton; 
Label10: TLabel; 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
Label11: TLabel; 
Label12: TLabel; 
Edit2: TEdit; 
Edit3: TEdit; 
Label13: TLabel; 
Label14: TLabel; 
Label15: TLabel; 
Button3: TButton; 
Label16: TLabel; 
Button4: TButton; 
Label17: TLabel; 
Label19: TLabel; 
Label18: TLabel; 
procedure Button1Click(Sender: TObject); 
procedure Button2Click(Sender: TObject); 
procedure Button3Click(Sender: TObject); 
procedure Button4Click(Sender: TObject); 
private 
{ Private declarations } 
 public 
 { Public declarations } 
 end; 
var 
 Form1: TForm1; 
implementation 
{$R *.DFM} 
Var 
Raiz, Serie, Resul,X1, X2, X3 : Extended; 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
Const //Constantes da Série de Stirling 
A1= 12; //Termo A1 da Série 
A2= 288; //Termo A2 da Série 
A3= 51840; //Termo A3 da Série 
A4= 0.5; // Constante 1/2 da Série de Stirling para numeros complexos 
A5= 1.838; // Calculo do Valor de Ln(2pi) 
A6= 360; // Constante da Série; 
A7= 1260; // Constante da Série; 
 
//procedure para resolver a primeira etapa do problema 
procedure TForm1.Button1Click(Sender: TObject); 
var 
Fact, X: Integer; 
Begin 
Label4.Caption:= Edit1.text; 
If Edit1.text <> ' ' then 
 Begin 
 X:= StrToInt(Edit1.text); 
 If (X > 10) and (X < 1501) then 
 Begin 
 ShowMessage(' O Fatorial será calculado pela Série de Stirling'); 
 X1:= 1/(A1*X); 
 X2:= 1/(A2*SQR(X)); 
 X3:= 139/(A3*Power(X,3)); 
 Raiz:= SQRT(2*PI*X); // Constante da série: raiz de 2pi 
 Serie:= Raiz*Power(X,X)*exp(-X)*(1 + X1 + X2 - X3); // Termos da Série de Stirling 
 Label6.Caption:= FloatToStr(Serie); 
 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
 Label9.Caption:= ('Este resultado foi calculado pela Série de Stirling!!'); // Informa o método 
 Resul:= LOGN(10,Serie); // Calculo do Logaritmo Base 10 do Fatorial de X 
 End 
 Else 
 Begin 
 ShowMessage('O Fatorial será calculado pela Definição de Fatorial!!'); 
 IF X > 1 then 
 for Fact:=(X - 1) downto 1 do 
 begin 
 X:=Fact*X; //Calculo do Fatorial pela forma tradicional 
 Resul:= LOGN(10,X); // Calculo do Logaritmo Base 10 do Fatorial de X 
 Label6.Caption:= FloaTtoStr(X); 
 Label9.Caption:= ('Este resultado foi calculado pela Definição de Fatorial!!'); 
end 
 Else 
 IF (X = 0) or (X = 1) Then 
 Begin 
 Resul:= LOGN(10,1); 
 Label6.Caption:= '1'; 
 Label9.Caption:= ('Este resultado foi calculado pela Definição de Fatorial!!'); 
 End 
 Else 
 Begin 
 Resul:= LOGN(10,1); 
 Label6.Caption:= 'Valor Inválido'; 
 Label9.Caption:= ('Valor Inválido, impossível de calcular!!'); 
 End 
 End; 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
 End 
Else 
 Begin 
 Resul:= 0; 
 ShowMessage('Valor inválido, impossível calcular!!'); 
 Label6.Caption:= ('Valor inválido'); 
 Label9.Caption:= ('Não foi possível calcular!!'); 
 End; 
Label8.caption:= FloatToStr(Resul); 
End; 
 
//botão para resetar a interface gráfica 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
Edit1.Clear; //Limpa a textbox 
Label4.Caption:= ' '; //limpa os textos da label; 
Label6.Caption:=''; 
Label8.Caption:=''; 
Label9.Caption:=''; 
end; 
 
// segunda parte do trabalho 
//Calculo de Ln(z!) para z 
procedure TForm1.Button3Click(Sender: TObject); 
Var 
X,Y,NepZ,Arg, Modulo : Extended; 
Z0, Z1, Z2, Z3, Z4, Z5, Zcb, Zqt, Zn,Zr, S1, S2, S3, S4, Sn: Complexo; 
 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
begin 
If (Edit2.text <>'') and (Edit3.text <> '') then 
 Begin 
 X:= strtofloat(Edit2.text); 
 Y:= strtofloat(Edit3.text); 
 Z0:= Atribui(X,Y); //transformao par x,y em Z0 =x + yi 
 Z1:= SomaRealComp(Z0,A4); //Soma a parcela (Z0+1/2) 
 Nepz:= LN(ArgComp(Z0)); //Calcula o Ln|Z0| 
 Z2:= Atribui(Nepz,CFase(Z0)); //transforma em z = a + bi 
 Z3:= ProdComplexo(Z1,Z2); //Calcula (a+bi)*Ln(c+di) 
 Zr:= Atribui(1,0); // Transforma o par 1, 0 em z = 1 +0i para a divisão de 1/12*Z 
 Z4:= RealxComp(Z0,A1); // Calcula o termo 12*Z 
 Z4:= DivComplexo(Zr,Z4); // Calcula o termo 1/12*Z 
 Zcb:= Pot3Comp(Z0); //Calcula Z0^3 
 Z5:= RealxComp(Zcb,A6); //Calcula o termo 360*Z^3 
 Z5:= DivComplexo(Zr,Z5); //Calcula o termo 1/360*Z^3 
 Zqt:= Pot5Comp(Z0); //Calcula Z0^5 
 Zn:= RealxComp(Zqt,A7); //Calcula o termo 1260*Z^5 
 Zn:= DivComplexo(Zr,Zn); //Calcula o termo 1/1260*Z^5 
 S1:= SomaComp(Z3,Z5); // Calcula o termo (Z3 + Z5) 
 S2:= SomaComp(Z0,Z4); // Calcula o termo (z0 + Z4) 
 S3:= SomaComp(S2,Zn); // Calcula o termo (S2 + Zn) 
 S4:= SomaComp(S1,S3); // Calcula o termo (S1 + S3) 
 Sn:= SomaRealComp(S4,A4*A5); // monta o resultado final; 
 Modulo:= ArgComp(Sn); // Calcula o modulo do resultado 
 Arg:= Cfase(Sn); // Calcula a fase do resultado; 
 Label17.Caption:= floattostr(Modulo); 
 Label19.Caption:= floattostr(Arg); 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
 End 
Else 
 Begin 
 ShowMessage('Valor Inválido - Impossível de realizar o cálculo!'); 
 Label17.Caption:=''; //limpa os textos da label; 
 Label19.Caption:=''; //limpa os textos da label; 
 end; 
end; 
 
//botão para resetar a interface gráfica 
procedure TForm1.Button4Click(Sender: TObject); 
begin 
Edit2.Clear;//Limpa a texbox 
Edit3.Clear;//Limpa a texbox 
Label17.Caption:=''; //limpa os textos da label; 
Label19.Caption:=''; //limpa os textos da label; 
end; 
end. 
 
Biblioteca Complex.pas 
 
unit Complex; 
interface 
Type 
Complexo = RecordR : Extended; // Parte Real 
I : Extended; // Parte Imaginária 
 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
End; 
Function Atribui( Const U : Extended; Const V : Extended ): Complexo; 
Function SomaComp(Const U, V : Complexo): Complexo; 
Function ArgComp(Const Z: Complexo): Extended; 
Function SomaRealComp(Const Z: Complexo; C : Double): Complexo; 
function CFase(var Z: Complexo): Extended; 
function ProdComplexo(U,V: Complexo): Complexo; 
function RealxComp(Z: Complexo; C: Double): Complexo; 
function Pot3Comp(Z: Complexo): Complexo; 
function Pot5Comp(Z: Complexo): Complexo; 
function DivComplexo(U,V: Complexo): Complexo; 
 
implementation 
//função que transforma o par x, y em z= x+yi 
Function Atribui ( Const U : Extended; Const V : Extended ): Complexo; 
Begin 
Result.R := U; 
Result.I := V; 
End; 
 
//função que realiza a soma de dois números complexos 
Function SomaComp(Const U, V : Complexo): Complexo; 
Begin 
Result.R := U.R + V.R; 
Result.I := U.I + V.I; 
End; 
 
 
 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
//função que calcula o argumento do numero complexo 
Function ArgComp(Const Z: Complexo): Extended; 
Var R,I : Extended; 
Begin 
R:= Z.R*Z.R; 
I:= Z.I*Z.I; 
Result:= Sqrt(R + I); 
End; 
 
//função que soma um numero real com um numero complexo 
Function SomaRealComp(Const Z: Complexo; C : Double): Complexo; 
Begin 
Result.R := Z.R + C; 
Result.I := Z.I; 
End; 
 
//função que calcula a fase do numero complexo ( em radianos) 
function CFase(var Z: Complexo): Extended; 
var 
Phase: extended; 
begin 
 with Z do 
 begin 
 If Z.r = 0 then 
 If Z.i = 0 then 
 Phase := 0 
 Else 
 If Z.i > 0 then 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
 Phase := (0.5 * Pi) 
 Else 
 Phase :=(-0.5 * Pi) 
 Else 
 If Z.r > 0 then 
 Phase := ArcTan(Z.i/Z.r) 
 Else 
 IF Z.i < 0 then 
 Phase := ArcTan(Z.i/Z.r)- Pi 
 Else 
 Phase := ArcTan(Z.i/Z.r)+ Pi; 
 End; 
Result:= Phase; 
End; 
 
//função que calcula o produto complexo 
function ProdComplexo(U,V: Complexo): Complexo; 
begin 
with result do 
begin 
 Result.R:= U.r * V.r - U.i * V.i; 
 Result.I:= U.r * V.i + U.i * V.r; 
end 
end; 
 
//função que multiplica um real por complexo 
function RealxComp(Z: Complexo; C: Double): Complexo; 
begin 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
with result do 
begin 
 Result.r:= Z.r * C; 
 Result.i:= Z.i * C; 
end 
end; 
 
//função que calcula um numero complexo a terceira potência 
function Pot3Comp(Z: Complexo): Complexo; 
Var QuadR, QuadI : Extended; 
begin 
with result do 
begin 
 QuadR:= Sqr(Z.r); 
 QuadI:= Sqr(Z.i); 
 Result.r:= Z.r*(QuadR - 3*QuadI); 
 Result.i:= Z.i*(2*QuadR - QuadI); 
end 
end; 
 
//função que calcula um numero complexo aquinta potência 
function Pot5Comp(Z: Complexo): Complexo; 
Var QuadR, QuadI,QuadR1, QuadI1 : Extended; 
begin 
with result do 
begin 
 QuadR:= Sqr(Z.r); 
 QuadI:= Sqr(Z.i); 
Universidade Federal do Paraná 
Setor de Tecnologia - Departamento de Pós-Graduação em 
Engenharia de Recursos Hídricos e Ambiental 
 
 QuadR1:= Sqr(QuadR); 
 QuadI1:= Sqr(QuadI); 
 Result.r:= Z.r*(QuadR1 - 10*QuadR*QuadI + 5*QuadI1); 
 Result.i:= Z.i*(QuadI1 - 10*QuadR*QuadI + 5*QuadR1); 
end 
End; 
//função que calcula a divisão de dois números complexos 
function DivComplexo(U,V: Complexo): Complexo; 
Var PReal , PImag, Deno : Extended; 
begin 
with result do 
begin 
 PReal:= U.r * V.r + U.i * V.i; 
 PImag:= U.i * V.r - U.r * V.i; 
 Deno:= V.r*V.r + V.i*V.i; 
 Result.r:= (PReal/Deno); 
 Result.i:= (PImag/Deno); 
end 
end; 
 
4. Referencias Bibliográficas 
 
[1] Arfken, George B, Física Matemática: Métodos para Engenharia e Física – Rio de Janeiro. 
Elsiever 2007; 
[2] Notas de Aula da Disciplina Linguagem de Programação – Prof. Eloy Kaviski – 
Universidade Federal do Paraná- Curitiba , 2010; 
[3] Barros, Edson A. R.(ET AL) - Delphi para Universitários – São Paulo: Páginas e Letras - 
Editora e Gráfica, 1999.

Continue navegando