[C con Clase] Codigo de Euler en C

Jorge Vega Sanchez memmaker650 en gmail.com
Lun Jun 14 15:52:21 CEST 2010


Ahora mismo no recuerdo lo que hacía el método de Euler. Pero para  
estos casos hay una cosa que no falla. Coger la definición del método  
de euler, leeroslo y entenederlo bien. Hacer un par de ejemplos y  
anotar en un hoja aparte los pasos que vais siguiendo. Después de esto  
plantear sobre el papel en pseudocodigo o si quereis ya en c++ el  
código y comprobar que todas las partes en que divis el código son  
facilmente comprensibles y posiblemente ampliables en un futuro.

Luego pasarlas al ordenador que es lo que menos cuestay a probar con  
los ejemplos que habeis hecho antes en papel y comprobar que os sale  
lo mismo.

Un saludo.
  Agur!!
On 14/06/2010, at 15:24, ainhize goenaga wrote:

> Hola,
> Somos estudiantes de 1 de ingenieria informatica y como proyecto de  
> fin de curso nos han mandado hacer un programa que resuelva un  
> circuito de un filtro pasivo RC con el codigo de euler.
>
> Hasta ahora tenemos esto:
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <math.h>
> #define PI 3,141592653
>
> int menua();
> void Meter_Valores();
>
> int main(int argc, char *argv[])
> {
>  menu();
>  system("PAUSE");	
>  return 0;
> }
> int menu(){
> 	//Variables
> 	int aukera=0;
> 	int bukatu=0;
> 	int sartu=0;
> 	//Programa
> 	do{
> 	       
> printf 
> ("**************************************************************\n");
> 	      printf("****   EKUAZIO DIFERENTZIAL SISTEMAK EBASTEKO  
> PROGRAMA    ****\n");
> 	       
> printf 
> ("**************************************************************\n");
> 	      printf("*** 1) Programan sartu     ***\n");
> 	      printf("*** 2) Programatik irten   ***\n");
> 	      printf("******************************\n\n");
> 	      printf("Sartu zure aukera: ");
> 	      scanf("%i",&aukera);
> 	      fflush(stdin);
> 	      if(aukera==1){
>                  Meter_Valores();
> 	              bukatu=1;
>          }
> 	      if(aukera==2){
> 	              bukatu=1;
> 	      }
> 	}while(bukatu==0);
> 	//Final
> 	return sartu;
> }
> void Meter_Valores(){
> 	//Valores
> 	float Vin=0,C1=0,C2=0,R1=0,R2=0fre=0,sinu=0;
> 	int auk=0;
> 	//Programa
> 	system("cls");
> 	printf("Mete los valores\n");
> 	printf("\nMete la Frecuencia: ");
> 	scanf("%f",&fre);
> 	fflush(stdin);
> 	printf("\nMete la amplitud:");
> 	scanf("%f",&anp);
> 	sinu=2*PI*fre*t[0];
> 	Vin=anp*sin(sinu);
> 	fflush(stdin);
> 	printf("\nMete C1:");
> 	scanf("%f",&C1);
> 	fflush(stdin);
> 	printf("De cuanto?\n");
> 	printf("1) Micro\n");
> 	printf("2) Nano\n");
> 	printf("3) Pico\n");
> 	scanf("%i",&auk);
> 	if(auk==1){
> 	        C1=C1*0.000001;
> 	}
> 	if(auk==2){
>  	        C1=C1*0.000000001;
>  	}
>  	if(auk==3){
>   	        C1=C1*0.000000000001;
>   	}
>    printf("\nMete C2:");
> 	scanf("%f",&C2);
> 	fflush(stdin);
> 	printf("de cuanto?\n");
> 	printf("1) Micro\n");
> 	printf("2) Nano\n");
> 	printf("3) Pico\n");
> 	scanf("%i",&auk);
> 	if(auk==1){
> 	        C2=C2*0.000001;
> 	}
> 	if(auk==2){
>  	        C2=C2*0.000000001;
>  	}
>  	if(auk==3){
>   	        C2=C2*0.000000000001;
>   	}
> 	printf("\nMete R1:");
> 	scanf("%f",&R1);
> 	fflush(stdin);
> 	printf("\nMete R2:");
> 	scanf("%f",&R2);
> 	fflush(stdin);
> 	//Bukaera
> }
>
> float euler(){
> //Variables
> int i=0, n=0;
> float h=0.0000001;
> //Programa
> for(
> //Final
> }
>
> /*Aqui ya no tenemos ni idea de como seguir
> Nuestras ecuaciones del circuito son estos:
>
> dQ1t:=(Vin*C2*C1*R1+Vin*C2*C1*R2-Q1*C2*R1-Q1*C2*R2-Q2*R1*C1)/C2/C1/ 
> R1/R2
> dQ2t:=-(Q2*C1-Vin*C2*C1+Q1*C2)/C2/C1/R2
>
> y en el programa maple euler lo hemos hecho de esta manera:
>
> voltaia:=dQ2t*R2:
> Q1[0]:=0:Q2[0]:=0:t[0]:=0:delta:=1e-8:Vout[0]:=0:
> for n from 0 to 10000 dot[n+1]:=t[n]+delta:
> Q1[n+1]:=evalf(Q1[n]+(subs({Q1=Q1[n],Q2=Q2[n],t=t[n]},dQ1t))*delta):
> Q2[n+1]:=evalf(Q2[n]+(subs({Q1=Q1[n],Q2=Q2[n],t=t[n]},dQ2t))*delta):
> Vout[n+1]:=evalf(subs({Q1=Q1[n],Q2=Q2[n],t=t[n]},voltaia)):
> end do:n:='n':
> V:=[seq([j*1e-8,Vout[j]],j=0..100)]:
>
> y no sabemos como hacerlo en C
>
> */
>
>
> Si alguien nos ayuda le agradeceriamos mucho porque no sabemos ni  
> por donde empezar.
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ




Más información sobre la lista de distribución Cconclase