[C con Clase] Offtopic: Método de diferencias finitas.. programa en c o algoritmo?

D1e6o! diegogeid en gmail.com
Dom Mar 11 07:44:14 CET 2007


Hola Steven..! Muchas Gracias de nuevo..! je veo que estás en todos los
temás...y bien..!!!!!


Es ese el algoritmo que tengo. Estaba debiendo un trabajo de ecuaciones
diferenciales en derivadas parciales y se me complicó en ese punto... creí
que estaba mal mejor dicho, me trajo muchas dudas. El algoritmo es ese que
tenés vos, solo falta ahí la primera aproximación por tratarse de
condiciones en derivadas... Pero aparentemente los datos obtenidos por
taylor están bien... Capaz que tenga mal las condiciones de estabilidad...
(c^2*t^2/h^2<=1 para que sea estable... pero eso es lo que dicen los libros
donde h es el paso en x y t en el tiempo) En este momento no te lo paso
porque no puedo abrir Maple pero el archivo lo tengo (no se pueden adjuntar
acá, y no es texto plano el formato mws. voy a tener que formatear... o al
menos reparar... je ni la mayor de las seguridades sirve con windows a
veces... No hay firewall, antispyware ni antivirus que valga ya... cuestion
de mala suerte :-( ) y muchas gracias por todo!!! información que me sirvio
realmente de mucho sino seguiría en la duda del algoritmo. El trabajo ya fué
visto y aprobado, lo único que me dijeron que era un problema de constantes
y no como debería ser la gráfica... pero aprobado está, estaba entre otros
algoritmos para el mismo trabajo y los demás estabn bien... por el momento
me voy a poner a pensar puede estar mal porque quiero saberlo y
numéricamente me da igual... pero no tengo seguridad si lo está por no saber
el resultado que debería dar. Apenas solucione el tema de la pc lo posteo
acá... Igualmente ya esta entregado, supongo que la profesora me va a saber
decir cuando le vuelva a preguntar... Así que no es tanto problema AHORA mas
que un capricho por saber...


 Un saludo!!!!! O mas de uno....!!!!! GRRAAACCIIAASS!!

El día 9/03/07, Steven Davidson <steven en conclase.net> escribió:
>
> Hola Diego,
>
> El pasado 2007-03-07 21:04:52, D1e6o! escribió:
>
> D> Hola amigos.. Bueno, estoy en un gran problema, debo programar el
> método de
> D> diferencias finitas para aproximar la ecuación de la onda
> D> (d^2T/dt^2=alfa*d^T/dx^2) y creo que mi algoritmo está mal, ya que no
> me da
> D> la solución que debería... lo debo hacer en maple, pero si por ahí
> alguien
> D> lo tiene al algoritmo o el programa en c me serviría muchísimo..! ...
> Perdon
> D> por molestar con esto, pero es que debo entregarlo y estoy en los
> últimos
> D> días sin nada de información....! Y en el amigo google no encuentro
> nada de
> D> nada.. Un saludo..!
>
> Bueno, sería conveniente si nos mostraras el algoritmo que tienes y
> compararlo con el que escribiste. Sospecho que esto ya lo hiciste por tu
> cuenta, por lo que el otro detalle a analizar es el algoritmo o fórmula en
> sí.
>
> Al hablar del método de diferencias finitas, realmente estamos hablando de
> un conjunto de métodos que son: diferencia posterior (o avanzada, o
> adelantada), diferencia anterior (o retrógrada), y diferencia central o
> centrada. Para la ecuación diferencial parcial a considerar, sugiero la
> diferencia central. La "versión" finita y discreta es la siguiente ecuación
> finita parcial (efp):
>
> d^2T / dt^2 ~ ( T[j,m+1] - 2T[j,m] + T[j,m-1] ) / (Dt)^2
> d^2T / dx^2 ~ ( T[j+1,m] - 2T[j,m] + T[j-1,m] ) / (Dx)^2
>
> donde,
>
> Dt := intervalo constante a "discretizar" para el tiempo, t
> Dx := intervalo constante a "discretizar" para la longitud, x
>
> x[] := {0,Dx,2Dx,3Dx,...,J*Dx}, donde tenemos J cantidad de intervalos
> t[] := {0,Dt,2Dt,3Dt,...,M*Dt}, donde tenemos M cantidad de intervalos
>
> x[j] := j*Dx
> t[m] := m*Dt
>
> T[j,m] := T(x[j],t[m]), la solución aproximada para x[j] y t[m]
>
> La solución viene a ser:
>
> T[j,m+1] = 2T[j,m] - T[j,m-1] + K ( T[j+1,m] - 2T[j,m] + T[j-1,m] ), donde
>
> K = c^2 / (Dx/Dt)^2, donde c suele representar la velocidad de la onda
>
> (Nota: En tu enunciado, has usado 'alfa' en lugar de c^2).
>
>
> Obviamente, necesitamos saber las condiciones iniciales, que típicamente
> son:
>
> 1. T(x,0) = f(x)
> 2. dT(x,0)/t = g(x)
>
> Usando la efp, las CC.II. finitas son:
>
> 1. T[j,0] = f(x[j]) = f(j*Dx)
> 2. ( T[j,1] - T[j,-1] ) / (2Dt) = g(x[j]) = g(j*Dx)
>
>
> Espero que todo esto te ayude.
>
> Steven
> _______________________________________________
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070311/3c35c59b/attachment.html>


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