Campo Elétrico do Quadripolo
Publicado por Roberto Júnior 30/11/2006
[ Hits: 9.190 ]
Homepage: http://sites.google.com/site/dibetao
Publiquei aqui (VOL) um script de um programa em C que gera o gráfico de um campo elétrico por duas cargas opostas (dipolo elétrico). Agora, para ampliar e dar mais entendimento ao código, estou publicando uma variação do programa, um quadripolo (quatro cargas elétricas). Vale à pena conferir!
/**
* @author Roberto Lima da C C Junior
* @file campo2.c
*
* @begin Sab Nov 11 2006
* @copyright (C) 2006 by Roberto Lima
* @email dibetao@gmail.com
* PROGRAMA GERADOR DO GRAFICO DO CAMPO ELETRICO
*
* Usamos tres elementos vetoriais:
* Ei : (campo eletrico da carga i)
* Ri : (posicao da carga i)
* r : (vetor que roda o espaco)
* ou melhor E(r) - E em funcao de r
*
* E1 - Em relacao a carga 1
* E1[1] - Campo da carga 1 na dimensao 1 (que pode ser X)
* E1[2] - Campo da carga 1 na dimensao 2 (que pode ser Y)
* Assim como para as outras cargas.
*
* No caso: Quadrupolo Elétrico
*
* ______________
* | q1 q2 |
* | |
* | q4 q3 |
* |____________|
*
Este programa plota o gráfico do campo elétrico
gerado por quatro cargas elétricas puntiformes.
Para gerar o gráfico voce terá que ter o GNUPlot.
http://www.gnuplot.info/
Quando o programa for compilado (gcc campo2.c -lm -o campo2)
e executado (./campo2), será criado um arquivo (dados.dat)
onde estarão os dados a serem plotados no GNUPLot.
Então basta executar o Gnuplot e digitar o seguinte comando:
plot "dados.dat" w vectors;
O será gerado o grafico do Campo Elétrico criado
pelas cargas (gráfico vetorial).
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
int i,j,k;
float C,q1,q2,q3,q4,x,y;
float E1[4]={0};
float R1[4]={0,-30,30,0};
float E2[4]={0};
float R2[4]={0,30,30,0};
float E3[4]={0};
float R3[4]={0,30,-30,0};
float E4[4]={0};
float R4[4]={0,-30,-30,0};
float r[4]={0};
FILE *arq1;
arq1= fopen("dados.dat","w+");
C=8;
q1=1.0; q2=-1.0; q3=1.0; q4=-1.0;
for (r[1]=-50; r[1]<=50; r[1]++)
for (r[2]=-50; r[2]<=50; r[2]++)
{
E1[1] = (C*q1*(R1[1]-r[1]))/sqrt( pow(R1[1]-r[1],2) + pow(R1[2]-r[2],2));
E1[2] = (C*q1*(R1[2]-r[2]))/sqrt( pow(R1[1]-r[1],2) + pow(R1[2]-r[2],2));
E2[1] = (C*q2*(R2[1]-r[1]))/sqrt( pow(R2[1]-r[1],2) + pow(R2[2]-r[2],2));
E2[2] = (C*q2*(R2[2]-r[2]))/sqrt( pow(R2[1]-r[1],2) + pow(R2[2]-r[2],2));
E3[1] = (C*q3*(R3[1]-r[1]))/sqrt( pow(R3[1]-r[1],2) + pow(R3[2]-r[2],2));
E3[2] = (C*q3*(R3[2]-r[2]))/sqrt( pow(R3[1]-r[1],2) + pow(R3[2]-r[2],2));
E4[1] = (C*q4*(R4[1]-r[1]))/sqrt( pow(R4[1]-r[1],2) + pow(R4[2]-r[2],2));
E4[2] = (C*q4*(R4[2]-r[2]))/sqrt( pow(R4[1]-r[1],2) + pow(R4[2]-r[2],2));
fprintf(arq1,"\n%f %f %f %f",R1[1]-r[1]+R2[1]-r[1]+R3[1]-r[1]+R4[1]-r[1], R1[2]-r[2]+R2[2]-r[2]+R3[2]-r[2]+R4[2]-r[2], E1[1]+E2[1]+E3[1]+E4[1], E1[2]+E2[2]+E3[2]+E4[2]);
}
fclose(arq1);
}
Função que converte números decimais em binários
SIMULADOR DE DADOS DE RPG - Baseado em Vampiro A Máscara - Alea Jacta Est ver2.0.1
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (3)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









