Si tiene acceso a un buen solucionador simbólico rápido, podría resolver el siguiente conjunto de ecuaciones derivadas de la imagen situada justo debajo de ellas. Estas ecuaciones son simplemente aquellas hechas a través del análisis nodal en cada uno de los vértices desconocidos:
$$ \ begin {align *}
\ frac {V_2} {R_2} + \ frac {V_2} {R_6} + \ frac {V_2} {R_9} & = \ frac {V_3} {R_2} + \ frac {V_1} {R_6} + \ frac { V_7} {R_9} \ tag {$ V_2 $} \\\\
\ frac {V_3} {R_1} + \ frac {V_3} {R_2} + \ frac {V_3} {R_7} & = \ frac {0 \: \ text {V}} {R_1} + \ frac {V_2} {R_2} + \ frac {V_4} {R_7} \ tag {$ V_3 $} \\\\
\ frac {V_4} {R_7} + \ frac {V_4} {R_8} + \ frac {V_4} {R_ {11}} & = \ frac {V_3} {R_7} + \ frac {V_1} {R_8} + \ frac {V_5} {R_ {11}} \ tag {$ V_4 $} \\\\
\ frac {V_5} {R_3} + \ frac {V_5} {R_4} + \ frac {V_5} {R_ {11}} & = \ frac {0 \: \ text {V}} {R_3} + \ frac {V_6} {R_4} + \ frac {V_4} {R_ {11}} \ tag {$ V_5 $} \\\\
\ frac {V_6} {R_4} + \ frac {V_6} {R_5} + \ frac {V_6} {R_ {10}} & = \ frac {V_5} {R_4} + \ frac {V_1} {R_5} + \ frac {V_7} {R_ {10}} \ tag {$ V_6 $} \\\\
\ frac {V_7} {R_9} + \ frac {V_7} {R_ {10}} + \ frac {V_7} {R_ {12}} & = \ frac {V_2} {R_9} + \ frac {V_6} { R_ {10}} + \ frac {0 \: \ text {V}} {R_ {12}} \ tag {$ V_7 $}
\ end {align *} $$
(Tengaencuentaquenoesnecesarioagregarunaecuaciónparaelnodopara \ $ V_1 \ $ , ya que es un hecho conocido y no un desconocido).
Si resuelves las ecuaciones anteriores simultáneamente, podrás configurar \ $ V_1 = 1 \: \ text {V} \ $ y luego resolverlo Todos los demás voltajes de nodo. A partir de eso, puede calcular la resistencia efectiva de:
$$ R_ \ text {TOTAL} = \ frac {1} {\ frac {V_7} {R_ {12}} + \ frac {V_5} {R_3} + \ frac {V_3} {R_1}} \ tag {R} $$
Por otro lado, también puedes resolver esto numéricamente. Simplemente configure una matriz de 2x2x2 y asigne una esquina ( \ $ V_1 \ $ ) el valor "1" y la esquina diagonalmente opuesta ( \ $ GND \ $ ) el valor" 0 ". Luego, asigne a todos los otros nodos el valor "0" para comenzar.
Ahora, solo procese los nodos \ $ V_2 \ $ , \ $ V_4 \ $ , y < span class="math-container"> \ $ V_6 \ $ en la fase A y nodos de proceso \ $ V_3 \ $ , \ $ V_5 \ $ , y \ $ V_7 \ $ en la fase B, en un ciclo continuo de software. (Hágalo \ $ N \ $ cuando decida cuántos son "suficientemente buenos"). El cálculo para cada nodo es simplemente las ecuaciones enumeradas anteriormente, pero resuelto para el nodo en el lado izquierdo apropiado como se muestra. Entonces, resolverías la primera ecuación para \ $ V_2 \ $ y eso es lo que calcularías, cada iteración. Del mismo modo, para los otros 5 nodos.
Tenga en cuenta que ni los vértices \ $ V_1 \ $ ni los \ $ GND \ $ son siempre re-calculado en este proceso de bucle. Así que esos dos valores permanecen permanentemente en su lugar.
Aquí hay un ejemplo en C, donde he establecido valores tales que \ $ R_1 = 1 \: \ Omega \ $ , \ $ R_2 = 2 \: \ Omega \ $ , etc. (El elemento de matriz para r [0] no se usa en el código y el nodo de tierra se asigna a v [0] - que tampoco se usa en el código porque se supone que es 0 cuando escribí las ecuaciones que ves al principio arriba.)
#include <stdio.h>
int main(int argc, char *argv[]) {
double v[8]; /* v[0] not used */
double r[13]; /* r[0] not used */
v[1]= 1.0;
for (int i= 2; i < 8; ++i) v[i]= 0.0;
for (int i= 1; i < 13; ++i) r[i]= (double) i;
for (int n= 0; n < 20; ++n) {
v[2]= (r[2]*r[6]*v[7] + r[2]*r[9]*v[1] + r[6]*r[9]*v[3]) / (r[2]*r[6] + r[2]*r[9] + r[6]*r[9]);
v[4]= (r[11]*r[7]*v[1] + r[11]*r[8]*v[3] + r[7]*r[8]*v[5]) / (r[11]*r[7] + r[11]*r[8] + r[7]*r[8]);
v[6]= (r[10]*r[4]*v[1] + r[10]*r[5]*v[5] + r[4]*r[5]*v[7]) / (r[10]*r[4] + r[10]*r[5] + r[4]*r[5]);
v[3]= r[1]*(r[2]*v[4] + r[7]*v[2]) / (r[1]*r[2] + r[1]*r[7] + r[2]*r[7]);
v[5]= r[3]*(r[11]*v[6] + r[4]*v[4]) / (r[11]*r[3] + r[11]*r[4] + r[3]*r[4]);
v[7]= r[12]*(r[10]*v[2] + r[9]*v[6]) / (r[10]*r[12] + r[10]*r[9] + r[12]*r[9]);
}
printf( "%lg\n", v[1]/(v[3]/r[1] + v[5]/r[3] + v[7]/r[12]) );
return 0;
}
En el código anterior, puede sentirse libre de cambiar la inicialización de v 1 a algo distinto de 1 . Todavía funcionará bien porque esto se tiene en cuenta en la ecuación de printf () cerca del final del código.
Note también en el código anterior que las primeras tres líneas de cálculos dentro del bucle solo calculan valores para los nodos impares que usan solo voltajes de nodos pares para hacer eso; y que las siguientes tres líneas de cálculos dentro del bucle solo calculan los valores de los nodos pares usando solo voltajes de nodos impares para hacer eso, también. Esto no es un accidente. Es importante.
Sin embargo, eres libre de numerar los nodos de la forma que elijas, por lo que no se trata ni siquiera de impar En su lugar, se trata de dividir los nodos en dos grupos donde el primer grupo calcula los valores para sus nodos utilizando solo nodos del segundo grupo, y donde el segundo grupo calcula los valores para sus nodos utilizando solo nodos del primer grupo. Esa es la motivación importante aquí y si no sigue la pista de esta regla, el proceso no funcionará correctamente. Esto a veces se denomina cálculo de tablero de ajedrez, o blanco / negro, o rojo / negro, para enfatizar cómo se agrupan estos nodos y alternar el cálculo utilizando "nodos adyacentes".