Algoritmo Para Matrices Tridiagonales

July 11, 2018 | Author: IvtGuzmAn | Category: Algorithms, Mathematical Concepts, Algebra, Linear Algebra, Physics & Mathematics
Share Embed Donate


Short Description

Descripción: Matriz tridiagonal...

Description

 Algoritmo para para matrices tridiagonales tridiagonales El algoritmo para matrices tridiagonales o algoritmo de Thomas (por Llewellyn Thomas) Thomas) es un algoritmo algoritmo del  del álgebra lineal numérica para resolver matrices resolver matrices tridiagonales de tridiagonales de forma eficiente. Una matri tridiagonal se corresponde a un sistema de ecuaciones de la forma

donde

y

. lo !ue se puede representar matricialmente como

"ara este tipo de sistemas se puede obtener con este algoritmo una soluci#n con solo operaciones en ve de las !ue re!uiere la eliminaci#n gaussiana. gaussiana. El algoritmo primero elimina las y luego usa una sustituci#n para obtener la soluci#n. Este tipo de matrices suelen salir al plantear discretiaciones por métodos de diferencias finitas$ finitas$ vol%menes finitos o finitos o elementos finitos de finitos de problemas unidimensionales. &lgunos de los problemas f'sicos !ue se plantean as' son la Ecuaci#n de "oisson$ "oisson $ la ecuaci#n de calor $ la ecuaci#n de onda o onda o la interpolaci#n por splines por  splines..

Índice ocultar 



* +é +éto todo do



, -mpl -mplemen ementac tacione iones s



o

,.* -mplementaci#n -mplementaci# n en 

o

,., -mplementaci#n -mplementaci# n en "ython

o

,./ -mplementaci#n -mplementaci# n en +atlab

o

,.0 -mplementaci#n -mplementaci# n en 1ortran 23

/ 4eri 4erivaci vaci#n #n

o

/.* &lgoritmo

o

/., 1#rmulas para coeficientes



0 5ariantes



6 7eferencias



8 Enlaces e9ternos

Métodoeditar  El primer paso del método es modificar los coeficientes como sigue:

donde se marcan con super'ndice ; los nuevos coeficientes. 4e igual manera se opera:

a lo !ue se llama barrido hacia adelante. & continuaci#n se obtiene la soluci#n por sustituci#n hacia atrás:

Implementacioneseditar  Implementación en Ceditar  La siguiente funci#n en  resolverá el sistema (aun!ue sobreescribirá el vector de entrada c en el proceso). emplo para resolver diversos sistemas !ue solo difieren en el término independiente)$ as' !ue esta implementaci#n mantiene dichos coeficientes.

subroutine solve_tridiag(a,b,c,d,x,n ) i$plicit none 

a - sub-diagonal &means it is the diagonal below 

the main diagonal' 

b - the main diagonal



c - sup-diagonal &means it is the diagonal above

the main diagonal' 

d - right part



x - the answer  



n - number of e%uations

integer,intent(in)  n real(6),di$ension(n),intent(in)  a,b,c,d real(6),di$ension(n),intent(out)  x real(6),di$ension(n)  cp,dp

real(6)  $ integer i  initialie c-prime and d-prime

cp(!) = c(!)b(!) dp(!) = d(!)b(!)  solve for vectors c-prime and d-prime

do i = ,n $ = b(i)&cp(i&!)'a(i) cp(i) = c(i)$ dp(i) = (d(i)&dp(i&!)'a(i))$ enddo  initialie x 

x(n) = dp(n)  solve for x from the vectors c-prime and d-prime

do i = n&!, !, &! x(i) = dp(i)&cp(i)'x(i#!) end do end subroutine solve_tridiag

Derivacióneditar  Algoritmoeditar 
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF