Algebra Con Octave

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

ALGEBRA LINEAL CON OCTAVE

Números complejos y Sistemas de ecuaciones lineales.

¿Qué es Octave?

Es un lenguaje de programación de alto nivel, orientado al cálculo numérico. Y su vez es un programa que permite
interpretar este lenguaje de forma interactiva, mediante órdenes o comandos. Estas órdenes pueden ser introducidas a
través de un entorno en forma de terminal o consola de texto. Por supuesto, Octave incluye, además, la posibilidad de ser
utilizado de forma no interactiva, interpretando las órdenes contenidas en un fichero. Estas características se pueden
resumir diciendo que Octave es un lenguaje interpretado orientado al cálculo numérico matricial.

Desde sus orígenes, Octave es software libre, gracias a lo cual, su comunidad de desarrolladores y usuarios ha ido
creciendo hasta llegar a ser muy significativa. Su lenguaje de programación es altamente compatible con el de Matlab, el
conocido entorno de cálculo numérico (con licencia privativa) desarrollado por The MathWorks, Inc. Está disponible en
numerosas plataformas, entre ellas sistemas Unix (para los que fue originalmente desarrollado), Windows y MacOsX. Su
código fuente contiene una potente librería de cálculo matricial para C++. De hecho, ha sido diseñado de forma que sea
extensible dinámicamente, a través de nuevos procedimientos escritos en C++. Estas extensiones son programas
“especiales” que tienen la extensión.oct y, como programas compilados, cuentan con un rendimiento mucho mayor que
las funciones escritas en el lenguaje interpretado de Octave.

Octave en línea

OPERACIONES CON NUMEROS COMPLEJOS

Octave por defecto define la unidad imaginaria con i o j, como 0 + 1i;

Práctica 1. Ejecute en Octave en línea lo siguiente:

z = sqrt(-1);

z1 = i;

z2 = j;

z3 = complex(0,1);

¿Qué puede concluir?

sqrt(n); función propia del lenguaje para calcular raíz cuadrada de una cantidad n.

complex(a, b); función propia del lenguaje para crear un número complejo, cuya parte real se
representa por el argumento a y la parte imaginaria con el argumento b.

Práctica 2. Ejecute en Octave en línea lo siguiente:

z1 = 3 + 4i
z2 = -5 + 3i

z3 = -7 -10i

z4 = 7 – 4i

luego utilice el comando

compass(z1)

¿Qué sucedió?

Números complejos en forma polar y de Euler

Práctica 3. Ejecute en Octave en línea lo siguiente:

m = abs(z1)

a = angle(z1)

zp = m*(cos(a) + i*sen(a))

ze = m*exp(i*a)

Práctica 4. Realice las operaciones con complejos desarrolladas en clase.

Práctica 5. Calcular y graficar las n raíces de un número complejo.

1. Copie o transcriba el siguiente código en un archivo de Notepad (block de notas):

% CALCULO Y GRAFICACION DE LAS N RAICES DE UN COMPLEJO


% AUTOR: NELSON O. CACERES MUÑOZ.
% ©2018 www.nelsoncaceres.com
z = input('Numero complejo en forma cartesiana :');
a = angle(z)
modulo = abs(z)
n = input('Indice de la raíz :');
zm = modulo.^(1/n)
for m = 1:n
ze(m) = zm*exp(i*(a + 2*m*pi)/n);
compass(ze)
end
ze’
fprintf('\t\t%s%d%s','GRAFICA DE LAS ', n , ' RAICES DEL COMPLEJO '), disp(z)
2. Cree una carpeta temporal en el escritorio de Windows.
3. Guarde el archivo anterior con el nombre rcomplejas.m
4. Inicie sesión en Octave en línea
5. Entre en la opción menú
6. Ingrese con su cuenta de Gmail, Google o Correo electrónico.
7. Suba el archivo rcomplejas.m
8. Ejecútelo.

¿Qué aparece?

SISTEMAS DE m ECUACIONES LINEALES CON n VARIABLES

Práctica 6. Operaciones con matrices.

Operaciones con matrices en Octave

1. Copie o transcriba el siguiente código en un archivo de Notepad (block de notas):


% OPERACIONES CON MATRICES
% AUTOR: NELSON O. CACERES MUÑOZ.
% ©2018 www.nelsoncaceres.com
disp('Digite los valores entre corchetes rectangulares [ ]. ');
disp('Hágalo por filas, separando cada valor con un espacio ');
disp('y finalizando cada fila con ;');
%A = input('Matriz :')
A = [3 6 7 9; 5 9 6 4; 4 0 6 8; 1 6 8 -4];
% Ubicación de un elemento de la matriz
disp('Elemento ubicado en la fila 1 columna 3');
m = A(1,3)
disp('Elemento ubicado en la fila 4 columna 2');
n = A(4,2)
disp('Intercambiar una fila, fila 4 por fila 1 ');
aux = A(1,:);
A(1,:) = A(4,:);
A(4,:) = aux
disp('Multiplicar una fila por un escalar y sumar o restar a otra fila ');
disp('Multiplicar por -5 la fila 1 y sumarla a la fila 2');
A(2,:) = -5*A(1,:)+A(2,:);
A
2. Analice cada línea.
3. Termine de completar la matriz de tal forma que en la diagonal principal solo queden 1s y
arriba y abajo 0s, si es posible.
SOLUCIÓN DE UN SISTEMA DE m ECUACIONES LINEALES CON n VARIABLES CON LA FUNCIÓN
LINSOLVE

Práctica 7. Resolver la siguiente situación.

Una embotelladora de refrescos desea cotizar la publicidad de sus productos en televisión, radio y revista, se tienen tres
propuestas del plan de medios de acuerdo con el presupuesto asignado acerca de la cantidad de anuncios por medio en el
transcurso de un mes. En el primer presupuesto cada anuncio en televisión tiene un coste de $250 000, en radio $5 000 y
en revista $30 000. En el segundo presupuesto $310 000, $4 000 y $15 000 y en el último presupuesto $560 000, $10 000 y
$35 000. Los totales por presupuesto son los siguientes: $2 795 000, $3 437 000 y $6 225 000. Determine la cantidad de
anuncios cotizados por cada medio.

Solución:

PRODUCTOS A. TELEVISION A. RADIO A. REVISTAS CAPACIDAD


INSUMOS x1 x2 x3
PRESUPUESTO 1 250000 5000 30000 2795000
PRESUPUESTO 2 310000 4000 15000 3437000
PRESUPUESTO 3 560000 10000 35000 6225000
Sistema de ecuaciones

250000x1 + 5000x2 + 30000x3 = 2795000

310000x1 + 4000x2 + 15000x3 = 3437000

560000x1 + 10000x2 + 35000x3 = 6225000

Matriz de coeficientes

250000 5000 30000


310000 4000 15000
560000 10000 35000
Matriz de términos independientes

2795000
3437000
6225000
Solución con linsolve de Octave

Digite en Octave en línea

A = [250000 5000 30000; 310000 4000 15000; 560000 10000 35000]

b = [2795000; 3437000; 6225000]

sol = linsolve(A,b)

¿Cómo se interpreta él resultado?

Verifique los resultados.


Práctica 8. Resolver la siguiente situación.

El departamento de pesca y caza proporciona tres tipos de comida a un lago que alberga tres especies de peces. Cada pez
de la especie 1 consume cada semana un promedio de 1 unidad del alimento 1, 1 unidad del alimento 2 y 2 unidades del
alimento 3. Cada pez de la especie 2 consume cada semana un promedio de 3 unidades del alimento 1, 4 unidades del
alimento 2 y 5 unidades del alimento 3. Cada pez de la especie 3 consume cada semana un promedio de 2 unidades del
alimento 1, 1 unidad del alimento 1 y 5 unidades del alimento 3. Cada semana se proporciona al lago 25000 unidades del
alimento 1, 20000 unidades del alimento 2 y 55000 unidades del alimento 3. Si se supone que los peces consumen todo el
alimento, ¿Cuántos peces de cada especie pueden coexistir en el lago?

PRODUCTOS PEZ ESPECIE 1 PEZ ESPECIE 2 PEZ ESPECIE 3 CAPACIDAD


INSUMOS x1 x2 x3
ALIMENTO 1 1 3 2 25000
ALIMENTO 2 1 4 1 20000
ALIMENTO 3 2 5 5 55000
Matriz reducida

1 0 5 40000

0 -1 1 5000

0 0 0 0

El sistema tiene infinitas soluciones

x1 + 5x3 = 40000 → x1 = 40000 – 5x3

-x2 + x3 = 5000 → -x2 = 5000 – x3 → x2 = x3 – 5000

Sol = (40000 – 5x3 , x3 – 5000, x3)

x3 tiene que ser restringida.

No puede tomar cualquier valor, puesto que las 3 especies de peces deben coexistir.

Luego,

40000 – 5x3 > 0 y x3 – 5000 > 0

8000 > x3 y x3 > 5000

Por lo tanto,

5000 < x3 < 8000

x3 solo puede tomar valor entre 5000 y 8000, sin inclusive.

Si x3 = 6000, x2 = 3000, x1 =10000

Si x3 = 6500, x2 = 1500, x1 = 7450


Práctica 9. Solución de un sistema homogéneo (Balanceo de una reacción química)

Al balancear reacciones químicas tales como la de la Fotosíntesis: CO2 + H2O → C6H12O6 + O2


Se buscan enteros positivos x1, x2, x3 y x4, que no tengan un divisor común diferente de 1, de manera que en

x1(CO2) + x2(H2O) → x3(C6H12O6) + x4(O2)

el número de átomos de cada elemento químico involucrado es el mismo en cada lado de la reacción. El número de átomos
de un elemento químico lo indica un subíndice; por ejemplo, en CO 2 hay un átomo de C (carbono) y dos átomos de O
(oxígeno). Esto nos lleva a un sistema homogéneo de ecuaciones.

Solución

C: x1 = 6x3
O: 2x1 + x2 = 6x3 + 2x4
H: 2x2 = 12x3

Sistema homogéneo

x1 - 6x3 = 0
2x1 + x2 – 6x3 – 2x4 = 0
2x2 – 12x3 =0

Matriz de coeficientes

1 0 -6 0

2 1 -6 -2

0 2 -12 0

Digite en Octave

octave:1> A = [1 0 -6 0; 2 1 -6 -2; 0 2 -12 0]


A =
1 0 -6 0
2 1 -6 -2
0 2 -12 0
octave:2> R = rref(A)
R =
1.00000 0.00000 0.00000 -1.00000
0.00000 1.00000 0.00000 -1.00000
0.00000 0.00000 1.00000 -0.16667
octave:3> format rat
octave:4> R
R =
1 0 0 -1
0 1 0 -1
0 0 1 -1/6

Matriz reducida, de dónde


x3 – 1/6x4 = 0 → x3 = 1/6x4

x2 – x4 = 0 → x2 = x4

x1 – x4 = 0 → x1 = x4

➔ x4 = x4
Si x4 = 6, entonces

x1 = 6
x2 = 6
x3 = 1
x4 = 6

De tal forma que la reacción queda balanceada si:

6(CO2) + 6(H2O) → 1(C6H12O6) + 6(O2)

18 O = 18 O
6C=6C
12 H = 12 H
Práctica 10. Operaciones con matrices.

1. Introduzca dos matrices A3x4 y B4x2. Calcule A*B y B*A. ¿Qué puede decir de los resultados?

2. Genere dos matrices aleatorias, A y B, con elementos entre -10 y 10. Encuentre A*B y B*A.
Repita el proceso para, al menos, siete pares de matrices A y B. ¿Cuántos pares satisfacen A*B
= B*A? ¿Qué puede concluir sobre la posibilidad de que A*B = B*A?
Nota: Para generar una matriz de números aleatorios entre -10 y 10 haga lo siguiente:
a = -10; b = 10;
A = round((a + (b – a).*rand(3,4)))

3. Introduzca las matrices A, b, x y z siguientes.

a) Muestre que Ax = b y Az = 0.

b) ¿Qué podría concluir de A(x + sz), donde s es cualquier escalar? Pruebe calculando A(x + sz)
para al menos cinco escalares s diferentes.

4. a) Genere dos matrices aleatorias con elementos enteros A y B tales que el producto AB esté
definido. Modifique B de manera que tenga dos columnas iguales. (Por ejemplo, B(:,2) = B(:,3))

b) Encuentre AB y vea sus columnas. ¿Qué puede decir sobre las columnas de AB si B tiene dos
columnas iguales?

c) Pruebe su conclusión repitiendo las instrucciones anteriores para otros tres pares de
matrices A y B (no elija sólo matrices cuadradas).
Práctica 11. Aplicación de las matrices. (Cadenas de Márkov)

Una empresa que realiza estudios de mercado está estudiando los patrones de compra para tres
productos que son competidores entre sí. La empresa ha determinado el porcentaje de residentes de
casas que cambiarían de un producto a otro después de un mes (suponga que cada residente compra
uno de los tres productos y que los porcentajes no cambian de un mes a otro). Esta información se
presenta en forma de matriz:

pij = porcentaje que cambia del producto j al producto i


Sea P la matriz de transición:

Donde p12 = 0.2 significa que el 20% de los residentes que compran el producto 2 cambian al producto
1 después de un mes, p22 = 0.75 significa que el 75% de los residentes que compraban el producto 2
continúa comprándolo después de un mes y p31 = 0,15 significa que el 15% de los residentes que
compraban el producto 1 cambia al producto 3 después de un mes. Suponga que existe un total de
30000 residentes.

a) Interprete los demás elementos de P


b) Sea x una matriz de 3x1 donde xk = el numero de residentes que compran el producto k. ¿Cuál
es la interpretación de Px? ¿Y P2x = P(Px)?
c) Suponga inicialmente que

Encuentre Pnx para n = 5, 10, 15, 20, 25, 30, 35, 40, 45 y 50. Describa el comportamiento de los
vectores Pnx conforme n crece. ¿Qué interpretación se le puede dar a esto?

d) Suponga inicialmente que

Repita las instrucciones anteriores. Compare los resultados de c) y d).


e) Elija su propio vector inicial para x, en donde las componentes de x sumen 30000. Repita las
instrucciones y haga una comparación con los resultados anteriores.
f) Calcule Pn y 30000Pn para los valores de n dados antes. ¿Qué observa sobre las columnas de
Pn? ¿Cuál es la relación de las columnas de 30000Pn y los resultados anteriores de este
problema?
Práctica 12. Aplicación de la inversa de una matriz. (Análisis estructural1)

1
LAY, DAVID C. Álgebra Lineal y sus aplicaciones. Cuarta edición. PEARSON EDUCACIÓN. México 2012.
Aplicaciones:

Solución

y = D*f

octave:1> D = [0.011 0.003 0.001;0.003 0.009 0.003;0.001 0.003 0.011]


D =

0.0110000 0.0030000 0.0010000


0.0030000 0.0090000 0.0030000
0.0010000 0.0030000 0.0110000
octave:6> f = [40; 50; 30]
f =
40
50
30
octave:7> y = D*f
y =
31/50
33/50
13/25
octave:8> format short
octave:9> y
y =
0.62000
0.66000
0.52000
Las deflexiones en los puntos 1, 2 y 3 respectivamente son:

0.62, 0.66 y 0.52 pulgadas.


Solución

D-1 (Matriz de rigidez)

octave:10> Dinv = inv(D)


Dinv =
1.0000e+02 -3.3333e+01 1.3878e-15
-3.3333e+01 1.3333e+02 -3.3333e+01
1.3878e-15 -3.3333e+01 1.0000e+02
octave:11> format rat
octave:12> Dinv

Dinv =
100 -100/3 0
-100/3 400/3 -100/3
0 -100/3 100
Otra forma (Matriz ampliada)

octave:13> Da = 1000*D
Da =
11 3 1
3 9 3
1 3 11
octave:14> I = eye(3)
I =
Diagonal Matrix
1 0 0
0 1 0
0 0 1
octave:15> C = [Da I]
C =
11 3 1 1 0 0
3 9 3 0 1 0
1 3 11 0 0 1
octave:16> C(1,:) = (1/11)*C(1,:)
C =
1 3/11 1/11 1/11 0 0
3 9 3 0 1 0
1 3 11 0 0 1
octave:17> C(2,:) = -3*C(1,:)+C(2,:)
C =
1 3/11 1/11 1/11 0 0
0 90/11 30/11 -3/11 1 0
1 3 11 0 0 1
octave:18> C(3,:) = -1*C(1,:)+C(3,:)
C =
1 3/11 1/11 1/11 0 0
0 90/11 30/11 -3/11 1 0
0 30/11 120/11 -1/11 0 1

octave:19> C(2,:) = (11/90)*C(2,:)


C =
1 3/11 1/11 1/11 0 0
0 1 1/3 -1/30 11/90 0
0 30/11 120/11 -1/11 0 1
octave:20> C(1,:) = -C(1,2)*C(2,:)+C(1,:)
C =
1 0 0 1/10 -1/30 0
0 1 1/3 -1/30 11/90 0
0 30/11 120/11 -1/11 0 1

octave:21> C(3,:) = -C(3,2)*C(2,:)+C(3,:)


C =
1 0 0 1/10 -1/30 0
0 1 1/3 -1/30 11/90 0
0 0 10 0 -1/3 1
octave:22> C(3,:) = (1/10)*C(3,:)
C =
1 0 0 1/10 -1/30 0
0 1 1/3 -1/30 11/90 0
0 0 1 0 -1/30 1/10
octave:23> C(2,:) = -C(2,3)*C(3,:)+C(2,:)
C =
1 0 0 1/10 -1/30 0
0 1 0 -1/30 2/15 -1/30
0 0 1 0 -1/30 1/10
octave:24> Dinv2 = [C(1,4) C(1,5) C(1,6);C(2,4) C(2,5) C(2,6);C(3,4) C(3,5)
C(3,6)]
Dinv2 =
1/10 -1/30 0
-1/30 2/15 -1/30
0 -1/30 1/10
octave:25> Dinv3 = 1000*Dinv2
Dinv3 =
100 -100/3 0
-100/3 400/3 -100/3
0 -100/3 100
y = D*f

f = D-1*y

y = (0; 0; 0.04)

octave:26> y = [0; 0; 0.04]


y =
0
0
1/25
octave:27> f = Dinv*y
f =
0
-4/3
4
Las fuerzas respectivas en los puntos 1, 2 y 3 para obtener la deflexión requerida en el punto 3, son:

0, -4/3 y 4 lbf.

Ejercicio.

Con un procedimiento como el anterior resuelva las siguientes situaciones.


Ejercicios tomados de: LAY, DAVID C. Álgebra Lineal y sus aplicaciones. Cuarta edición. PEARSON
EDUCACIÓN. México 2012.

También podría gustarte