PDF de programación - Programación: Solución de sistemas de ecuaciones lineales usando la eliminación de Gauss con pivotes diagonales

Imágen de pdf Programación: Solución de sistemas de ecuaciones lineales usando la eliminación de Gauss con pivotes diagonales

Programación: Solución de sistemas de ecuaciones lineales usando la eliminación de Gauss con pivotes diagonalesgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 10 de Marzo del 2018)
1.847 visualizaciones desde el 10 de Marzo del 2018
70,8 KB
3 paginas
Creado hace 9a (30/01/2015)
Programaci´on:

Soluci´on de sistemas de ecuaciones lineales usando

la eliminaci´on de Gauss con pivotes diagonales

Objetivos. Programar el m´etodo de eliminaci´on de Gauss sin pivoteo (esto es, con pivotes
diagonales). Programar la soluci´on de un sistema de ecuaciones lineales.

Requisitos. Operaciones con matrices, programaci´on de operaciones elementales, susti-
tuci´on hacia atr´as.

Eliminaci´on de Gauss con pivotes diagonales

1. Algoritmo Reduce1 (pseudoc´odigo).

Entrada: matriz A.
Variables locales: B, m, n, k, i, j;
m := n´umero de renglones de A;
n := n´umero de columnas de A;
B := una copia de A;
Para p := 1, ..., m - 1:

// Comentario: usamos B[p, p] como pivote
Para i := p + 1, ..., m:

mu := - B[i, p] / B[p, p];
B[i, p] := 0;
Para j := p + 1, ..., n:

B[i, j] := B[i, j] + mu * B[p, j];

Salida: B.

2. Eliminaci´on de Gauss con pivotes diagonales. Escriba una funci´on Reduce1 de
un argumento matricial que reduzca la matriz dada.

Entrada: una matriz rectangular A de tama˜no m × n, m ≤ n.

Salida: la matriz triangular superior B que se obtiene de la matriz A al aplicar la
eliminaci´on de Gauss.

Se supone que a la matriz A se puede aplicar el m´etodo de eliminaci´on de Gauss con
pivotes diagonales, es decir, para cada p en el paso n´umero p la entrada (p, p) es no nula.

3. Comprobaci´on. Aplique la funci´on Reduce1 a la siguiente matriz:

 2 −1 −2 3 1

1 −2 1 5
−2 −2 −1 4 3

4

 .

A =

Respusta correcta:

 2 −1 −2

3
0 −1

0
0

3 1
2 −5 3
2 7

 .

Programaci´on: eliminaci´on de Gauss con pivotes diagonales, p´agina 1 de 3

Juntar datos en una matriz aumentada.
Sacar datos de una matriz aumentada

Ejemplo: primer m´etodo para juntar una matriz y un vector en la matriz au-
mentada. Construir una matriz nula y llenar sus partes usando subconjuntos de ´ındices:

a = {{1, 2}, {3, 4}}; b = {-1, -2};

aext = Table[0, {2}, {3}]

aext[[All, Range[1, 2]]] = a; aext[[All, 3]] = b; MatrixForm[aext]

Ejemplo: segundo m´etodo para juntar una matriz y un vector en la matriz
aumentada. Usar la funci´on MapThread:

a = {{1, 2}, {3, 4}}; b = {-1, -2};

aext = MapThread[Append, {a, b}]

Para comprender que hace MapThread, se recomenda probar el siguiente ejemplo:

Plus[5, 3]

MapThread[Plus, {{100, 200, 300}, {4, 5, 6}}]

Ejemplo: primer m´etodo para sacar de la matriz aumentada la matriz de
coeficientes y el vector de constantes. Usar subconjuntos de ´ındices:

aext = {{1, 2, 3, 4}, {5, 6, 7, 8}}

aext[[All, Range[1, 3]]]

aext[[All, 4]]

Ejemplo: segundo m´etodo para sacar de la matriz aumentada la matriz de
coeficientes y el vector de constantes. Aplicar las funciones Most y Last a cada fila:

aext = {{1, 2, 3, 4}, {5, 6, 7, 8}}

Map[Most, aext]

Map[Last, aext]

Programaci´on: eliminaci´on de Gauss con pivotes diagonales, p´agina 2 de 3

Soluci´on de sistemas de ecuaciones lineales
usando la eliminaci´on de Gauss con pivotes diagonales

4. Problema: LinSolve1. Escriba una funci´on LinSolve1[A , b ] que resuelva el sis-
tema de ecuaciones lineales Ax = b usando las funciones Reduce1 y SolveUT.

5. Haga la comprobaci´on de la funci´on LinSolve1 con

A =

4

b =

 2 −1 −2

1 −2
−2 −2 −1

 ,

 .

 7

9
−4

La respuesta correcta es (4, −3, 2).

Comprobaci´on del m´etodo de Gauss con datos aleatorios

6. RandVector. Escriba una funci´on RandVector[n , vmin , vmax ] que construya
un vector aleatorio de longitud n con componentes reales pertenecientes al intervalo
[vmin, vmax].

7. RandMatrix. Escriba una funci´on RandMatrix[m , n , vmin , vmax ] que constru-
ya una matriz aleatoria de tama˜no m × n con entradas reales pertenecientes al intervalo
[vmin, vmax].

8. Comprobaci´on con matrices peque˜nas. Aplique la funci´on LinSolve1 a una matriz
aleatoria y un vector aleatorios de tama˜no peque˜no:

a = RandMatrix(3, 3, -5, 5); b = RandMatrix(3, -5, 5)

x = LinSolve1(a, b)

a . x

Norm[a . x - b]

9. Comprobaci´on con matrices grandes. Aplique la funci´on LinSolve1 a una matriz
aleatoria y un vector aleatorio de tama˜no grande (por ejemplo, n = 1000). Para estimar
el error, calcule Norm[a . x - b].

Programaci´on: eliminaci´on de Gauss con pivotes diagonales, p´agina 3 de 3
  • Links de descarga
http://lwp-l.com/pdf9381

Comentarios de: Programación: Solución de sistemas de ecuaciones lineales usando la eliminación de Gauss con pivotes diagonales (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad