Campo Elétrico do Quadripolo
Publicado por Roberto Júnior 30/11/2006
[ Hits: 8.964 ]
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); }
Programa que Exibe centro da tela
Um algoritmo genético para o TSP (Travel Salesman Problem)
Fazendo o somatório de 1 até N
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Vou voltar moderar conteúdos de Dicas e Artigos (3)
OpenVPN no MACBOOK conecta mas não pinga pastas de rede compartilhada ... (1)
Melhorando a precisão de valores flutuantes em python[AJUDA] (8)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta