¿Cómo puedo desarrollar un programa en C para resolver una ecuación diferencial acoplada utilizando el método de diferencia finita?

Normalmente comienza con la variable dependiente asignada a la condición de contorno, luego incrementa la variable independiente una pequeña cantidad, calcula el nuevo valor de una variable dependiente, la alimenta a la otra, luego usa esos nuevos valores en cada nuevo paso. Igual que lo haría para resolver cualquier conjunto de ecuaciones diferenciales acopladas numéricamente.

Recuerdo que hace unos 20 años escribí código para modelar interiores estelares en un curso universitario de astrofísica estelar. Implicaba cuatro ecuaciones diferenciales acopladas (masa, presión, calor y radiación, creo). No fue tan difícil. El código solo estaba en el orden de una o dos pantallas. Los valores realistas se conectaron para los valores en el núcleo y luego se iteraron hacia la superficie. Esto proporcionó el flujo de la estrella y la temperatura de la superficie, que luego podrían compararse con la observación para reajustar los valores centrales.

Estos pueden ayudar, pero probablemente son excesivos para su problema:

http://tamuweb.tamu.edu/faculty/…

https://www.iaea.org/inis/collec…

http://vefur.simula.no/~hpl/INF5…

C ++ usando Diffpack:

http://www2.mae.ufl.edu/nkim/Int…

Gran cantidad de código MATLAB para situaciones de flujo de calor (ctrl-f “calor” para buscar códigos de calor en la página):

Códigos fuente de MATLAB

Un enfoque variado, interesante, pero puede no ser lo que quieres:

http://www.dtic.mil/dtic/tr/full…

MATLAB más relevante:

http://www.math.mtu.edu/~msgocke…

Parece una discusión muy útil de algoritmos:

http://personales.unican.es/guti…

https://www.comsol.com/multiphys…

Comenzaré desde cero, ya que no mencionaste dónde estás atrapado. Pero supongo que conoce la codificación C, o la codificación, al menos.

Antes que nada, debe saber cómo se entrelazan las matemáticas y la codificación. Hay una sección completa en Matemáticas dedicada a este problema, que se llama Métodos Numéricos .

Ahora elija un libro de Métodos Numéricos y descubra qué discretización es cómo se derivan los derivados.

Ahora, necesita encontrar cuáles son los diferentes algoritmos para resolver ecuaciones diferenciales con o sin discretización. (No omita la discretización, ya que puede encontrar abrumadores los métodos de no discretización, y volverá a ese paso).

Finalmente, elija un algoritmo y piense cómo puede escribir un código para ese algoritmo.

Ahora depurar.

Editar: Además, solo veo símbolos para constantes. Necesitará algunos valores reales para ellos. Solo las variables que está resolviendo para [matemáticas] (T_ {b}, T_ {o}, x) [/ matemáticas] deben permanecer variables. Cualquier otra cantidad necesita un valor numérico.