El Lenguaje de Programación MATLAB

Solución de ecuaciones lineales con MATLAB.

 

Consideremos un conjunto de n ecuaciones lineales con n variables, representado por:

 

a11x1 + a12x2 + a13x3 + ... + a1nxn = b1

a21x1 + a22x2 + a23x3 + ... + a2nxn = b2

a31x1 + a32x2 + a33x3 + ... + a3nxn = b3

 

an1x1 + an2x2 + an3x3 + ... + annxn = bn

 

donde  aij son los coeficientes, xi son las variables a calcular y bi los términos independietes.

 

El sistema anterior puede representarse de forma compacta por:

 

Ax=b

 

donde :

 

        |a11 a12 a13 ... a1n  |

        |a21 a22 a23 ... a2n  |

    A = |a31 a32 a33 ... a3n  |

        |                  |

        |an1 an2 an3 ... ann  |

 

          |b1|

          |b2|

      b=  |b3|

          |  |

          |bn|

 

          |x1|

          |x2|

      x=  |x3|

          |  |

          |xn|

 

 

La solución de este sistema de ecuaciones esta dado por:

 

x = A\b

 

o de manera equivalente por

 

x = inv(A)*b

 

Ejemplo 1.

 

Para el circuito eléctrico mostrado en la figura calcular el valor de la corriente en cada una de las mallas.

 

 

Los valores de resistencia y de fuentes de voltaje en cada elemento son

 

R = [1, 1, 1, 2, 3, 1] y E = [10, 0, 5, 0, 0, 0]

 

Solución:

 

A=[1,0,0; 1,-1,0; 0,-1,0; 1,0,-1; 0,1,-1; 0, 0, 1];

R=[1, 1, 1, 2, 3, 1]';

E=[10,0,5,0,0,0]';

 

n = 6;

 

Relem = zeros(n, n);

 

for i=1:6, Relem(i,i) = R(i), end;

 

Rmalla = A'*Relem*A

 

Emalla = A'*E

Imalla = Rmalla\Emalla

I = A*Imalla

 

Ejemplo 2.

 

Encontrar la línea recta que aproxima al conjunto de puntos dados por X =[1, 2, 3, 4, 5, 6, 7] y Y = [2.5, 4.5, 6, 10, 11.2, 12, 14.3].

 

 

La ecuación de la línea recta esta dada por Yi = mXi + b, por lo tanto:

 

X1 m + b = Y1

X2 m + b = Y2

...

 

XN m + b = YN

 

En forma matricial podemos escribir:

 

 

Lo cual es equivalente al sistema de ecuaciones Cp=y, donde :

 

           y      

 

dado que tenemos un sistema de ecuaciones sobredeterminado, donde el número de ecuaciones es mayor que el número de incógnitas, no podemos calcular la solución exacta. Si  multiplicamos ambos lados de la ecuación por CT

 

CTCp=CTy

 

Tenemos un sistema de ecuaciones que si podemos resolver. La solución la calculamos haciendo

 

p = [CTC]-1 CTy

 

 

La solución utilizando Matlab es:

 

% Valores iniciales

 

X =[1, 2, 3, 4, 5, 6, 7]';

Y = [2.5, 4.5, 6, 10, 11.2, 12, 14.3]';

 

% Grafica los puntos dados

 

plot(X, Y, '*')

 

% Calcula la matriz C

 

C = [X, ones(length(X),1)]

 

% Calculo de los parametros

 

p = inv(C'*C)*C'*Y

 

% Calcula los puntos de acuerdo con los parametros

 

Yc = C*p;

 

% Grafica la linea calculada

 

hold on;

plot(X, Yc)

 

 

Regresar.