Está en la página 1de 10

ACTIVIDAD 4:

EJERCICIOS

Fecha:02/OCTUBRE/2022
Nombre del estudiante:EQUIPO 12
RICARDO ROMERO VERA
HUGO ERNESTO CERVANTES PONCE
CARLOS EDUARDO RICO PATLAN

Nombre del docente:DIEGO URIBE

1. Resuelve los ejercicios aplicando los conocimientos sobre:

 Matrices especiales, método de Jacobi.


 Métodos numéricos
 Programación

2. Con base en el material consultado, replica los siguientes ejercicios indicados para cada método y realiza
pruebas con dos ecuaciones aleatorias a resolver. Revisa nuevamente el siguiente material:

Chapra, S. & Canale, R. (2007). Métodos numéricos para


ingenieros [Versión electrónica]. Recuperado de
https://elibro.net/es/ereader/uvm/73710

a) Propón un sistema de ecuaciones de 3x3 de la forma “Ax = b” e ingrésalo para ser resuelto
por el método de Jacobi

3. Para programar los ejercicios solicitados, utiliza algún lenguaje de programación recomendado por
el docente, consulta la herramienta en línea aquí sugerida. No olvides realizar las capturas de pantalla
que muestre haber corrido y obtenido los resultados derivados de la aplicación de cada método.
https://www.onlinegdb.com/

4. Redacta una conclusión en la que expliques qué fue lo que más aprendiste de errores u omisiones al hacer
el programa y en el momento de capturar y correr los métodos utilizados.

5. Incorpora el proceso de desarrollo de los ejercicios en este mismo documento.

6. Genera una carpeta .ZIP donde integres tu reporte, así como el ejecutable y código fuente de cada ejercicio.

7. Al finalizar esta actividad, vuelve a la plataforma y sigue los pasos que se indican para enviar tu trabajo.

* * *

a) Propón un sistema de ecuaciones de 3x3 de la forma “Ax = b” e ingrésalo para ser resuelto
por el método de Jacobi
# Método de Gauss-Seidel

# solución de sistemas de ecuaciones

# por métodos iterativos

import numpy as np

# INGRESO

A = np.array([[3. , -0.1, -0.2],

[0.1, 7 , -0.3],

[0.3, -0.2, 10 ]])

B = np.array([7.85,-19.3,71.4])

X0 = np.array([0.,0.,0.])

tolera = 0.00001

iteramax = 100

# PROCEDIMIENTO

# Gauss-Seidel
tamano = np.shape(A)

n = tamano[0]

m = tamano[1]

# valores iniciales

X = np.copy(X0)

diferencia = np.ones(n, dtype=float)

errado = 2*tolera

itera = 0

while not(errado<=tolera or itera>iteramax):

# por fila

for i in range(0,n,1):

# por columna

suma = 0

for j in range(0,m,1):

# excepto diagonal de A

if (i!=j):

suma = suma-A[i,j]*X[j]

nuevo = (B[i]+suma)/A[i,i]

diferencia[i] = np.abs(nuevo-X[i])
X[i] = nuevo

errado = np.max(diferencia)

itera = itera + 1

# Respuesta X en columna

X = np.transpose([X])

# revisa si NO converge

if (itera>iteramax):

X=0

# revisa respuesta

verifica = np.dot(A,X)

# SALIDA

print('respuesta X: ')

print(X)

print('verificar A.X=B: ')

print(verifica)
Que da como resultado

respuesta X:

[[ 3. ]

[-2.5]

[ 7. ]]

verificar A.X=B:

[[ 7.84999999]

[-19.3 ]

[ 71.4 ]]

>>>

También podría gustarte