Gauss Jordan
November 7, 2018 | Author: vimaba | Category: N/A
Short Description
Download Gauss Jordan...
Description
Jorge Celis Oriols Oriolson on Rodrig Rodriguez uez Oscar Alberto Estevez Octavio Bonnet
Contenido 1) Intr Introd oduc ucc ción ión 2) Elim Elimin inac ació ión n Gaus Gaussi sian ana a 3) Algo Algori ritm tmo o Mat Matem emát átic ico o 4) Ejemplo 5) Diag Diagra rama ma de fluj flujo o 6) Códi Código go de de prog progra rama maci ción ón::
Fortran
JAVA
Introduccion
La eliminación Gaussiana, Gaussiana , también también llamad llamado o como eliminación de Gauss o eliminación de Gauss-Jordan, Gauss-Jordan , llamadas así debido a Carl Friedrich Gauss y Wilhelm Jordan. Aunque el método fue presentado por Gauss se conocía anteriormente en un importante libro matemático chino llamado Jiuzhang suanshu o Nueve capítulos del arte matemático .
Eliminación Gaussiana
La elim elimina inaci ción ón Gaus Gaussia siana na es es un algor algorit itmo mo del álge álgebr bra a linea lineall par para a deter determin minar ar las las soluciones de un sistema de ecuaciones lineales, encontrar matrices e inversas.
La compl complej ejida idad d compu computa tacio ciona nall de la eliminac eliminación ión gaus gaussia siana na es aprox aproxima imada damen mente te n3. Esto es, el número de operaciones requeridas es n3 si el tamaño de la matriz es n × n
Sistema
de ec ecuaciones linéales
a12 x1
a13 x 2
.....
a1 n x n
a 21 x1
a 22 x 2
.....
a 2 n x n
a m 2 x 2
Matriz au aumentada re resultante
b1
! !
b2
/
a m 1 x1
.....
a mn x n
!
bm
_ x 1 x 2 ........
xn
¨ a11 a12 ........ a1 n ¸ ¨ b1 ¸ © ¹© ¹ © a 21 a 22 ........ a 2 n ¹ © b 2 ¹ ©/ ¹© / ¹ © ¹© ¹ © a a ....... a ¹ © b ¹ ª m1 m 2 mn º ª m º
Algoritmo Matemático 1.
Ir a la column columna a no no cero cero extr extrema ema izquie izquierd rda a
2.
Si
el primer renglón tiene un cero en esta columna, intercambiarlo con otro que no lo tenga
Si
a11
!
0 , , a12 ! 0
¨ a12 a11 ........ a1 n ¸ ¨ b1 ¸ © ¹© ¹ © a 22 a 21 ........ a 2 n ¹ © b 2 ¹ ©/ ¹© / ¹ © ¹© ¹ © a a ....... a ¹ © b ¹ mn º ª m º ª m 2 m1
3. Luego, Luego, obten obtener er ceros ceros debajo debajo de este este element elemento o delante delantero, ro, sumand sumando o múltiplos adecuados del renglón superior a los l os renglones debajo de él. Este proceso se realiza por medio de las siguientes operaciones:
Mult Multipl iplica icarr una ecuac ecuación ión por por un esca escalar lar no nulo. nulo.
Inte Interc rcam ambi biar ar de de posi posici ción ón dos dos ecua ecuaci cion ones es
Sumar
a una ecuación un múltiplo de otra.
a1 n ¸ ¨ b1 ¸ ¨ a12 ........ ©1 ¹© ¹ ¨ a11 a12 ........ a1 n ¸ ¨ b1 ¸ © ¹© ¹ a11 ¹ © a11 ¹ © a11 1 © a 21 a 22 ........ a 2 n ¹ © b2 ¹ © ¹© ¹ ©/ ¹ © / ¹ @ F 1 * ( a ) © a 21 a 22 ........ a 2 n ¹ © b2 ¹ 11 © ¹© ¹ ©/ ¹© / ¹ © a a ....... a ¹ © b ¹ ª 1 2 n º ª º © a a ....... a ¹ © b ¹ n º ª º ª 1 2 m
m
m
m
m
m
m
m
a ¸ ¨ b ¸ ¨ a12 ........ 1 n ¹ © 1 ¹ ©1 a11 ¹ © a11 ¹ © a11 © a a ........ a ¹ © b ¹ 2n © 21 22 ¹© 2 ¹ ©/ ¹© / ¹ © a a ....... a ¹ © b ¹ mn º ª m º ª m1 m 2
2
1 * a 21
¨ a1 n ¸ © ¨ a12 ........ ©1 ¹© a a 11 © 11 ¹© © 0 a ........ a ¹© b2 22 2n © ¹© ©/ ¹© © a a ....... a ¹ © mn º © ª m1 m 2 ª
¸ ¹ a11 ¹ b1 ¹ ¹ a11 ¹ ¹ / ¹ b m º¹ b1
4. Cubrir Cubrir el el renglón renglón superio superiorr y repeti repetirr el proce proceso so anter anterior ior con con la submat submatriz riz restan restante. te. Repetir con el resto de los renglones renglone s (en este punto la matriz se encuentra encuen tra en la forma de escalón)
¨ 1 .. a12 ... a13 ... a1 n ¸ © ¹ © 0 ... 1 .... a13 .... a 2 n ¹ © 0 .... 0 .... 1 ... a ¹ 3n © ¹ © ¹ / © ¹ 0 0 ........ ....... 1 ª º
5.
Comenz Comenzan ando do con con el último último reng renglón lón no cer cero, o, ava avanz nzar ar hac hacia ia arr arriba iba:: para para cada renglón obtener un 1 delantero dela ntero e introducir ceros arriba de este sumando múltiplos correspondientes a los renglones correspondientes
¨ 1 .. a12 ... a13 ... a1 n ¸ © ¹ © 0 ... 1 .... a13 .... a 2 n ¹ © 0 .... 0 .... 1 ... a ¹ 3n © ¹ © ¹ / © ¹ ª 0 ........ 0 ....... 1 º Repetimos
( n 1)
n * (a3n )
¨ 1 ... a12 ... a13 ... a1 n ¸ © ¹ © 0 ... 1 .... a 23 .... a 2 n ¹ © 0 .... 0 .... 1 ... 0 ¹ © ¹ © ¹ / © ¹ ........ ....... 1 0 0 ª º
este procedimiento hasta llegar a una matriz escalonada reducida.
6.
Luego Luego obte obtene nemos mos las soluc solucion iones es del del sist sistema ema de ecuac ecuacion iones es
¨ x1 ... 0 .... 0 ... 0 ¸ ¨ b1 ¸ © ¹© ¹ © 0 ... x 2 .... 0 .... 0 ¹ © b 2 ¹ © 0 .... 0 .... x 3 ... 0 ¹ © b 3 ¹ © ¹© ¹ / © ¹© / ¹ © 0 ........ 0 ....... xn ¹ © bn ¹ ª º ª º Luego, la solución es:
x1 ! b1 x 2
!
b2
!
bn
/
xn
Ejemplo
Supongamos
que es necesario encontrar los números x , y , z , que satisfacen simultáneamente estas ecuaciones:
2 x y z ! 8
3 x y 2 z ! 11 2 x y 2 z ! 3
Del anteri anterior or siste sistema ma de ecuacion ecuaciones es resu resulta lta,, la siguie siguiente nte matriz matriz aumenta aumentada: da:
¨2 © © 3 © 2 ª
1
1
1
2
1
2
@
3 F 1 F 2 2 F 1 F 3
8 ¸
¹@ F *(1) 11¹ 1 2 3 º¹
¨ 1 1/2 1/2 4 ¸ © ¹ 2 11¹ ©3 1 ©2 1 ¹ 2 3 ª º
¨1 1/2 © ©0 1/2 ©0 2 ª
1/2 1/2 1
4 ¸
¹ 1¹ ¹ 5 º
¨1 1/2 © ©0 1 ©0 2 ª
@ F 2 *2
@
(1/ 2) F 2 F 1
2 F 2 F 3
¨1 0 © ©0 1 ©0 0 ª
1/2 1 1
1
4 ¸
¹ 2¹ ¹ 5 º 3 ¸
¹ 1 2¹ 1 º¹ 1
X Y Z
@
F 3 F 2
F 3 F 1 F 3 *1
¨1 0 0 © ©0 1 0 ©0 0 1 ª
2 ¸
¹ 3¹ ¹ 1 º
Luego la solución de este sistema sis tema de ecuaciones es:
x ! 2; y ! 3; z ! 1
Diagrama de Flujo INICIO
i i=1,n,1
j=1,n,1
1
j
a11 a12
-
a1n
f 1
a21 a22
-
a2 n
f 2
/
/
ann
f n
/ M(j,i)
F(i)
/
an1 an 2
-
M nxn
f j
1 k
2
i=1,n,1
i
j=1,n,1
j si k=i,n,1
M(j,k)=M(j,k)/M (j,i)
F(i)=F(i)/M(j,i)
i=j
1 a12
-
a1n
0
-
a2 n
no k=i,n,1
M(j,k)=M(j,k)M(j,i)*M(i,k)
F(j)=F(j)M(j,i)*F(i)
1
/
/
0
0
/
-
1
2 i i=n,1,-1
x1
x2
-
xn
j=i-1,1,-1
1
0
-
0
f 1
0
1
-
0
f 2
/
/
1
f n
F(j)=F(j)M(j,i)*F(i) k=i,n,1
M(j,k)=M(j,k)M(j,i)*M(i,k)
i=1,n,1
µX¶(i)=F(i)
FIN
j
/
/
0
0
-
k
Código
Fortran:
m(j,k)=m(j,k)-a*m(i,k)
program gauss_Jordan
end do
integer ::i,j,n,k ::i,j,n,k
f(j)=f(j)-a*f(i)
real::a real ::a
end if
real,allocatable::m(:,:) real,allocatable ::m(:,:)
end do
real,allocatable::f(:) real,allocatable ::f(:)
end do
read(*,*)n read (*,*)n
do i=n,1,-1
allocate(m(n,n),f(n)) allocate (m(n,n),f(n)) do i=1,n,1 read(*,*)f(i) read (*,*)f(i) end do
do j=i-1,1,-1 do j=i-1,1,-1 a=m(j,i) do k=j,n,1 m(j,k)=m(j,k)-a*m(i,k)
do i=1,n,1 read(*,*)m(i,1:n) read (*,*)m(i,1:n) end do
end do f(j)=f(j)-a*f(i) end do
do i=1,n,1 do j=1,n,1 do j=1,n,1
end do do i=1,n,1
if (i==j)then (i==j)then a=m(j,i) do k=i,n,1 m(j,k)=(m(j,k))/(a) end do
write(*,*)¶x¶,(i),¶=µ,f(i) write (*,*)¶x¶,(i),¶=µ,f(i) end do write(*,*)'bn' write(*,*)'bn' write(*,*)m write (*,*)m close(25)
f(i)=(f(i))/(a) else a=m(j,i) do k=i,n,1
end program gauss
JAVA:
package javaapplication1; package javaapplication1; import javax.swing.JOptionPane; import javax.swing.JOptionPane; import java.util. import java.util.Scanner; public pub lic cla class ss Gauss_ Gauss_Jor Jordan dan { publ pu blic ic st stat atic ic vo void id main(String[] args) { int i,j,k,n; double a; double m[][],f[]; reader=new Scanner(System.in); Scanner reader=new System.out.println("escriba n"); n=reader.nextInt(); m=new m=new double [n][n]; f=new f=new double [n]; for (i=0;i
View more...
Comments