Red de conocimiento informático - Computadora portátil - Lenguaje C buscando un programa

Lenguaje C buscando un programa

No entiendo la fórmula específica....

#include

#include

#include

#define KE 200

main()

{

flotador ex[ KE], hy[KE],dx[KE],ix[KE];

float ga[KE],gb[KE]

float ex_low_m1=0, ex_low_m2= 0, ex_high_m1 =0, ex_high_m2=0;

int n,k,kc,ke,NSTEPS, kstart

float ddx,dt,epsz,epsilon,sigma,eaf, freq_in,pi ,arg;

float T,t0,spread,pulse;

ARCHIVO *fp

// ARCHIVO *fopen(); el programa tiene esto, Error, debe eliminarse

/*printf("input freq(MHz):"

scanf("%f",&freq

freq=freq*1e6;*/

//Constantes de inicialización

ddx = 0.01

dt = ddx/(2*3e8) ;

kc=KE/2;

pi=3.14159;

epsz=8.85419e-12; espacio libre*/

for(k=0;k

//Solicitar no conductividad de entrada

printf("inicio dieléctrico en -->");

scanf("%d",&kstart

//Solicitud de épsilon

printf); ("epsilon - >");

scanf("%f",&epsilon

//Solicitud de conductividad de entrada

printf("conductividad); -->") ;

scanf("%f",&sigma);

printf("Kstart,epsilon,sigma:%d,%6.2f,%6.2f \ n",kstart, épsilon,sigma);

/* eaf=dt*sigma/(2*epsz*epsilon);

printf("eaf:%6.4f \n ",eaf); */

//Rellena ga,gb según la fórmula

for(k=kstart;k<=KE;k++)

{

ga[k]=1./(1.+epsilon+sigma*dt/epsz

gb[k]=sigma*dt/epsz

p>

}

//Salida ga,gb

for(k=0;k<=KE;k++)

//Inicializar todo espacios a 0

for(k=0;k

{

ex[k]=0;

hy[k]=0;dx[k]=0;ix[k]=0;

}

/*estos parámetros especifican el pulso de entrada*/

//Parámetros de inicialización

t0=50.0;

spread =20.0

T=0; ;

//Continúa calculando si ingresas un número positivo, de lo contrario saldra

while(NSTEPS>0)

{

printf (" NSTEPS--->");

scanf("%d",&NSTEPS

printf("%d\n",NSTEPS);

//Si ingresa un número no positivo aquí, aún se ejecutará. Si necesita salir, agregue el siguiente código

// if (NSTEPS <= 0) break;

// bucle de tiempos NSTEPS

for(n=1;n<=NSTEPS;n++)

{

T=T+ 1;

/*bucle fdtd principal*/

/*calcular el campo dx*/

//Completar dx según la fórmula

for(k=0;k

{

dx[k]=dx[k]+0.5*(hy[k-1]- hy[k]);

}

/* poner pulso gaussiano en el extremo inferior */

freq_in=3e8; pulso=exp(-0.5*(pow( (t0-T )/spread,2.0))

/*pulse=sin(2*pi*freq*dt*T);*/

dx[kc]=dx[kc ]+pulso;

//Salida

printf("n=%d,T=%d,pulse= %6.2f\n",n,T,pulso);

printf("n=%d,dx[kc]=%6.2f\n",n,dx[kc]);

/*ex campo*/

p>

//Rellena ex, ix según la fórmula

for(k=1;k

{

ex [k]=ga[k]*(dx[k]-ix[k]); [k]=ix[k]+gb[k]*ex[k];

p>

}

/* condiciones de contorno absorbentes*/

ex[0]= ex_low_m2

ex_low_m2= ex_low_m1;

ex_low_m1=ex[1]

ex[KE-1]= ex_high_m2; ;

ex_high_m2= ex_high_m1;

ex_high_m1=ex[KE-2 ]

//Completar hy según la fórmula

for(k=1;k

}

/* fin del fdtd principal lo

op*/

/*imprime los campos ex y hy*/

for(k=1;k<=KE;k++)

printf(" %3d %6.2f %6.2f\n",k,ex[k],hy[k]);

/*imprime los campos ex y hy en archivos*/

//Salida ex al archivo ex2.1

fp=fopen("ex2.1","w");

for(k=1;k<=KE; k++)

fprintf(fp," %6.2f\n",ex[k]);

fclose(fp);

//Salida hy Para presentar hy2.1

fp=fopen("hy2.1","w");

for(k=1;k<=KE;k++)

fprintf(fp," %6.2f\n",hy[k]);

fclose(fp);

printf("T=%5.0f\ n",T);

}

}