Ciertamente, escribir un front-end en un simulador SPICE es más práctico (como se señala en los comentarios), pero si estás realmente interesado en los detalles esenciales:
Una herramienta común para realizar análisis de circuitos computacionales es el uso de análisis nodal modificado (MNA). Esta es una ligera variación del análisis nodal para configurar de forma sistemática las fuentes de voltaje agregando una corriente desconocida a través de la fuente de voltaje que se necesita resolver. Erik Cheever tiene un buen conjunto de páginas sobre cómo hacer esto para los circuitos básicos de DC, así como la forma de extender esto a CA de estado estable y fuentes dependientes.
Las simulaciones transitorias y los componentes no lineales son un poco más divertidos (más difíciles) de manejar. Un enfoque para simular transitorios es hacer aproximaciones de cómo se comportan los componentes transitorios y hacer un proceso de resolución / integración de dc a lo largo del tiempo. Por ejemplo, aquí hay una publicación de cómo me aproximé a los condensadores e inductores para simular efectos de línea de transmisión (Sí, sé que hay mejores modelos que el modelo conceptual más básico, pero ninguno realmente captura el interior).
Los componentes no lineales simplemente modifican el paso de resolución: en lugar de resolver un sistema lineal de ecuaciones, ahora debe resolver un sistema no lineal usando alguna técnica como la método Newton-Raphson . Estos métodos funcionan mejor cuando no proporciona respuestas discontinuas (es decir, use un exponencial para aproximar una curva V-I de diodo en lugar de una función de pasos, etc.).
Un enfoque alternativo para MNA es el análisis de cuadros dispersos. Personalmente no tengo mucha, si es que tengo alguna experiencia con este enfoque que no sea saber que existe. Se pueden encontrar más notas sobre MNA y el análisis de la tabla dispersa aquí .