It's part of the solution: Solving an MNA matrix becomes the inner part of
a loop that attempts to figure out the correct bias point of all your
non-linear devices. From that bias point, you generate an MNA matrix
using the linearized equations describing your non-linear device. The
"loop" is just Newton-Raphson iteration... applied to the MNA matrix
(recall that "regular" Newton-Raphson is a method for solving an arbitrary
equation f(x)=y -- which is often non-linear -- using only linear
methods).
Hmm... I'm not sure, although I can tell you that in the class I took on
circuit simulators, we all wrote our own and it didn't take too long to do
so (it was something like... week 1... write the parser for the netlist,
week 2 get it to work with DC sources and RLCs, week 3 get it to work with
dependent sources and AC, week 4 add a diode and a transistor, week 5 add
transient analysis, etc.). You were allowed to use your programming
language of choice, and since at the time almost everyone was using C I
decided to be different and used "legitimate" object-oriented C++ for
mine, although I was sorely tempted to use Matlab instead (the main reason
I didn't is because we used the a public-domain sparse matrix package
written in C that not only handled all the memory management for you but
solved Ax=b as well... nice! ...although Matlab has sparse matrix support
built-in, it still would have been a bit more work.)
The class was taught by Dr. Karti Mayaram, who definitely knew what he was
talking about (not to mention being a nice guy). Hmm... looks like he's
teaching it this quarter as well, here's the web page:
http://web.engr.oregonstate.edu/~karti/ece521.html . Some of the student
projects were quite impressive... I just did some lame circuit modelling
stuff, but others implemented fancy things like harmonic balance
simulators.
Numbers. Conceptually you can use the symbolic form, but even with a
powerful computer algebra system such as the one in Maple or Mathematica,
in most cases you won't be able to derive a closed-form solution for
anything but trivial circuits.
---Joel