algoritmoOctave
-
Upload
jpaulocrego -
Category
Documents
-
view
224 -
download
0
Transcript of algoritmoOctave
-
7/21/2019 algoritmoOctave
1/14
INE5202 Prof. Daniel S. Freitas
3 RESOLUO DE SISTEMAS DE EQUAES LINEARES
Sistemas lineares : procedimento numrico utilizado na soluo de modelos matemticos que envolvem
muitos elementos interligados e onde no seja possvel resolver nenhum elemento isoladamente..
Exemplo 1: muitos elementos interligados.
Exemplo 2: soluo numrica de equaes diferenciais elasticidade! transfer"ncia de calor! mec#nica dos
fluidos! etc.$ :
o domnio de soluo %discretizado&! ou seja! o que era infinitamente contnuo dividido epassa a ser um conjunto limitado de partes finitas :
'ma maneira de o(ter uma soluo atri(uir a cada parte i!j$ uma varivel z i!j$! representando umasoluo constante dentro dos limites de i!j$ ou seja! zi!j uniforme dentro da poro i!j$
)odas as partes elementares esto interligadas e no possvel sa(er o valor de z em nenhuma delassem o(ter a soluo de todas ao mesmo tempo.
* soluo o(tida pela soluo de um sistema linear ++! onde + o n,mero de elementos partes$em que foi dividido o domnio.
-
eq./ eq.0 eq.1
eq.-quantidade que sai de umcerto componentedepende da quantidadeque entra
domnio contnuoonde se desejaconhecer a soluo
de uma 23
o contnuo divididoem partes finitas
partei!j$
/0 =
nos contornos o
valor de conhecido
em funo do queacontece noscontornos! a
equao fornece ovalor de emqualquer pontointerno 4!5$
-
7/21/2019 algoritmoOctave
2/14
INE5202 Prof. Daniel S. Freitas
Matrizes: assunto conhecido.
Definio: 'm sistema de n equaes lineares a n inc6gnitas toda e4presso do tipo :
=+++
=+++
=+++
nnnn00n//n
0nn0000/0/
/nn/0/0///
(4a4a4a
(4a4a4a
(4a4a4a
=
n
0
/
n
0
/
nn0n/n
n0000/
n//0//
(
(
(
4
4
4
aaa
aaa
aaa
)am(m : n!!0!/i!(4an
/j
ijij ===
aije (jso n,meros reais prescritos
)odas estas e4presses podem ser resumidas em forma matricial como : (4* =
* chamada de matriz de coeficientes
Definio: Sol!"ode (4* = todo vetor [ ]n0/ !!! = tal que (* = .7uanto 8 soluo ! (4* = pode ser :3eterminado : e4iste apenas uma soluo det * $9ndeterminado : e4istem infinitas solues det * $9mpossvel : no e4iste soluo det * $
Ilustro !+o caso de sistemas 00! possvel visualizar algumas propriedades das solues .
Exemplo: resolver o sistema :
=+=+
0404
/;4041
0/
0/
( )
( ) /4.0/4
0
-
>
;
40
4/
Soluo: 4/- ? 4
01
14/@ 04
0 /;
A4/@ 04
0 0
-
7/21/2019 algoritmoOctave
3/14
INE5202 Prof. Daniel S. Freitas
#asos particlares:
/$ Betas paralelas
no h soluo$:
0$ Betas coincidentes
infinitas solues$ :
1$ Sistema mal condicionado :
difcil visualizar$
Casos / e 0 : sistemas singulares Caso 1 : muito sensvel a erros de arredondamento durante a soluo numrica.
M"to#os #e resoluo #e A$%&
Diretos : a soluo o(tida realizandoAse um n,mero conhecido finito$ de operaes aritmticasem . 24ceto por erros de arredondamento! a soluo o(tida diretamente exata. *dequados para sistemas pequenos menores do que 11$. *dequados quando a matriz de coeficientes cheia.
Iterati$os : a soluo o(tida pelo truncamento do processo de limite de uma seqD"ncia de
apro4imaes sucessivas [ ]!!! 10/ . *dequados para sistemas de qualquer tamanho! quando a matriz de coeficientes esparsa muitos
coeficientes so nulos$.
Eais econFmicos quanto 8 armazenagem. Beduzem pro(lemas com erros de arredondamento! os quais aca(am sendo em grande parte
a(sorvidos pelo pr6prio processo iterativo.
)am(m podem ser utilizados em pro(lemas noAlineares.
-0
4/
40
A.=4/@ 4
0 /
A4/@ 04
0 0
4/
40
A4/@ 4
0 /
A4/@ 4
0 .=
4/
40 A.->4
/@ 4
0 /
A.=4/@ 4
0 /
-
7/21/2019 algoritmoOctave
4/14
INE5202 Prof. Daniel S. Freitas
3'( M"to#os Diretos
Definio: uma operao de ponto flutuante consiste em : um conjunto de operaes multiplicao @ adio !+$ou :
uma operao de diviso G$
)ro&le*s +o* *tri, #i-onl !
=
n
0
/
n
0
/
nn
00
//
(
(
(
4
4
4
a
a
a
Soluo:
//
/
/a
(4 = !
00
0
0a
(4 = ! ... !
HH
H
Ha
(4 = ! ... !
nn
n
na
(4 =
%&s.: so necessrias n operaes de IJ.
)ro&le*s +o* *tri, trin-ulr inferior .soluo /or 0su&stituio #iret12 !
=
n
0
/
n
0
/
nn0n/n
000/
//
(
(
(
4
4
4
aaa
aa
.a
Soluo:
//
/
/////a
(4(4a ==
00
/0/0
0/000/0/
a
4a(4(4a4a
==+
( )( )
nn
/n/nn00n//nn
nnnnn/n/nn00n//na
4a4a4a(4(4a4a4a4a
==++++
%&s.: so necessrias n divises e ( )
=
=/n
/i
0/n.ni su(traesGmultiplicaes
n0G0 +nG0$ operaes n0$ operaes de IJ significa %da ordem de&$
-1
-
7/21/2019 algoritmoOctave
5/14
INE5202 Prof. Daniel S. Freitas
)ro&le*s +o* *tri, trin-ulr su/erior .soluo /or 0retrossu&stituio12 !
=
n
0
/
n
0
/
nn
n000
n//0//
(
(
(
4
4
4
a
aa
aaa
Soluo:
nn
nnnnnn
a
(4(4a ==
( ) ( ) ( ) ( ) ( )( ) ( )
( ) ( )/n/n
nn/n/n
/n/nnn/n/n/n/na
4a(4(4a4a
==+
( )
( ) ( )
//
0/0/n/n/nn//
//nn//n/n/0/0/// a
4a4a4a(4(4a4a4a4a
==++++
%&s.: n0$ operaes de IJ
)ro&le*s +o* *tri,es +eis!
2stratgias de soluo :
a$ 'e(ra de #ramer :
=
i
i4
%&s.: e4ige a o(teno de n@/$ determinantes de matrizes nn$ n@/$ n nK operaes KK$ sem otimizar otimizando : n-$$ tempo de soluo em um computador com capacidade de >> EJlops
n Lperaes flops$ )empo anos$
/ 1.
-
7/21/2019 algoritmoOctave
6/14
INE5202 Prof. Daniel S. Freitas
d$ Decomposi!"o ,*-: n1G1$ e depois! cada nova soluo custa : n0$
*4 ( (4=
M '
M : matriz triangular inferior NMoOerAtriangular matri4N$
' : matriz triangular superior N'pperAtriangular matri4N$
uma vez o(tidas a M e a ':
*.4 ( tornaAse: M.'$.4 (
ou: M.'.4$ (
e a o(teno de um vetor soluo 4 pode ser decomposta em 0 passos muito mais rpidos doque uma eliminao gaussiana completa:
M.'.4$ ( /P$ M.5 ( su(stituio direta! com n0$$
5 0P$ '.4 5 retrossu(stituio! com n0$ $
no total! teremos NapenasN n0$ operaes at chegar 8 soluo! quando uma 2Q completacustaria n1G1$
%&s.: note que as componentes do vetor ( no so modificadas com a realizao da decomposio
isto significa que! uma vez o(tida a decomposio MA'! chegaAse rapidamente 8 soluo de umnovo sistema que tenha sido o(tido a partir do original pela simples modificao de (.
3'4 Eli*ino 5ussin 6In-7nu6
Jorma mais simples de 2liminao Qaussiana. N9ng"nuaN porque no adequada para computao automtica! a menos que modificaes essenciais
sejam feitas.
*4 ( (4 =
ou (4 =
Definio: Lperaes elementares so rearranjos vlidos$ de um conjunto de equaes *4( que noalteram a sua soluo 4! tais como:
/. qualquer equao pode ser multiplicada por uma constante
0. a ordem das equaes pode ser trocada1. qualquer equao pode ser su(stituda pela sua soma com qualquer uma das outras equaes.
-=
operaeselementares
-
7/21/2019 algoritmoOctave
7/14
INE5202 Prof. Daniel S. Freitas
Exemplo: Considere o seguinte sistema:
6x1 2x2+ 2x3+4x4= 16 (l1)12x1 8x2+ 6x3+10x4= 26 (l2)
3x113x2+ 9x3+ 3x4=-19 (l3)
-6x1+ 4x2+ x318x4=-34 (l4)
1 passo$ 2liminar 4/da 0R! da 1Re da -Requaes:
6x1 2x2+ 2x3+4x4= 16 6x1 2x2+ 2x3+4x4= 1612x1 8x2+ 6x3+10x4= 26 4x2+ 2x3+2x4=-6 l2-(12/6)l13x113x2+ 9x3+ 3x4=-19 12x2+ 8x3+ x4=-27 l3-( 3/6)l1-6x1+ 4x2+ x318x4=-34 2x2+ 3x3-14x4=-18 l4-(-6/6)l1
note que a /R
equao no alterada! em(ora tenha sido usada para zerar os /os
coeficientes das outrasequaes:
A neste conte4to! ela a Nequao pivFN
A o coeficiente a//> o Ncoeficiente pivFN
o(serve que os 0 sistemas so equivalentes t"m a mesma soluo$
2 passo$ 9gnorar a /Requao e a /Rcoluna de coeficientes: com isto! o(tmAse um sistema 11 e omesmoprocesso / repetido com a 2ea!"o como pi$.
6x1 2x2+ 2x3+4x4= 16 4x2+ 2x3+2x4=-6 2x3- 5x4=-9 l3-(-12/-4)l2 4x3-13x4=-21 l4-(2/-4)l2
3 passo$ 2liminar 41na ,ltima equao. L resultado :
6x1 2x2+ 2x3+4x4= 16 4x2+ 2x3+2x4=-6 2x3- 5x4=-9
- 3x4=-3 l4-(4/2)l3
agora o sistema est na forma Ntriangular superiorN note que ele ainda equivalente ao sistema cheio$ original! mas muito mais fcil de resolver.
Passo final$ L(teno da soluo por retrossu(stituio:
A da equao l-: x4= 1
A com 4-! da equao l1: 2x3 5 1 = -9 x3= -2A com 4-e 41 ! da equao l0: x2= 1A com 4-! 41 e 40! da equao l/: x1= 3
->
-
7/21/2019 algoritmoOctave
8/14
INE5202 Prof. Daniel S. Freitas
Al-orit*o /r Eli*ino -ussin 6in-7nu6
amos montar um algoritmo para a soluo de um sistema geral *4(! com n equaes e n inc6gnitas:
=
n
0
/
n
0
/
nn0n/n
n0000/
n//0//
(
(
(
4
4
4
aaa
aaa
aaa
/$ Etapa de Elimina!"o: 2sta fase pode ser dividida em n/ passos / H nA/$.
1 passo$ pivF a primeira equao a//$:
usar a /Requao para produzir nA/ zeros como coeficientes para cada 4 /em todas as equaes
e4ceto a primeira isto feito su(traindoAse m,ltiplos apropriados da /Requao das demais a /Requao chamada de a /Rea!"o pi$e permanece inalterada para cada equao restante 0 i n$! computar:
( )
/
//
/iii
j/
//
/iijij
(.a
a((
nj/a.a
aaa
as quantidades ai/Ga//$ so chamadas de mltiplicadores note que os novos coeficientes de 4//Rcoluna$ nas iAsimas equaes 0 i n$ sero zero pois
ai/ai/Ga//$a// depois deste /Ppasso! o sistema ficar na forma:
=
n
0
/
n
0
/
nn0n
n000
n//0//
(
(
(
4
4
4
aa
aa
aaa
2 passo$ pivF a segunda equao a00$:
note que! deste ponto em diante! a /R equao no mais alterada! e nem qualquer um doscoeficientes de 4/pois um multiplicador vezes su(trado de zero ainda zero$
portanto! podeAse ignorar a /Rlinha e a /Rcoluna e repetir o processo no sistema menor nA/nA/$ com ase(ndaequao como pivF! computaAse! para cada uma das equaes que restam 1in$:
( ) ( )( ) 0000iii
j0000iijij
(aa((nj0aaaaa
-T
pivF
-
7/21/2019 algoritmoOctave
9/14
INE5202 Prof. Daniel S. Freitas
Passo 4$ pivF a equao HAsima aHH$:
e4atamente antes do HAsimo passo na etapa de eliminao! o sistema aparece como:
=
n
i
H
1
0
/
n
i
H
1
0
/
nnnjnH
inijiH
HnHjHH
n111
n00100
n//1/0//
(
(
(
(
(
(
4
4
4
4
4
4
aaa
aaa
aaa
aa
aaa
aaaa
neste ponto! uma %cunha& de coeficientes %& foi criada e as primeiras H equaes foramprocessadas e esto agora fi4as
usando a HAsima equao como pivF! selecionaAse multiplicadores de modo a criar %&s comocoeficientes para cada 4Ha(ai4o do coeficiente aHH
ento! computaAse! para cada equao restante H@/ i n$:
( )
H
HH
iH
ii
Hj
HH
iH
ijij
(.a
a((
njHa.a
aaa
0$ Etapa de 'etross&stiti!"o: *o final da etapa de eliminao! o sistema est na forma:
a11x1+ a12x2+ ... + a1(n-1)xn-1 + a1nxn = b1 a22x2+ ... + a2(n-1)xn-1 + a2nxn = b2
a(n-1)(n-1)xn-1+ a(n-1)nxn= b(n-1)annxn = bn
+ote que! com e4ceo da /Rlinha! os aij Us e os (iUs no so mais os do sistema original! massim aqueles que foram alterados pelo processo de eliminao.
2ste sistema pode ser resolvido por:
9mediatamente! partir da nAsima equao:nn
nn
a
(4 =
em seguida! usando a nA/$Asima equao:( )
( ) ( )/n/n
nn/n/n
/na
4a(4
=
e assim por diante! at a /Requao://
nn/1/10/0/
/a
4a4a4a(4 =
-;
-
7/21/2019 algoritmoOctave
10/14
INE5202 Prof. Daniel S. Freitas
3e uma maneira geral! este procedimento pode ser resumido em:
nn
nn
a
(4 =
= +=
n
/ij
jiji
ii
i 4a(a/4 ! i n/! n0! ... ! /
89#i-o +o*/ut+ionl .O+t:e2
function x=eliau!"(#$b$n)
% &olu'o e u* !i!te*a linea nxn "o ,li*ina'o au!!iana !e* "iota*ento
% (,li*ina'o au!!iana innua).
x = eo!(n$1)
% ,ta"a e eli*ina'o
fo =1n-1
fo i=+1n
*ult = #(i$)/#($)
#(i$)=*ult
fo =+1n
#(i$) = #(i$) - *ult#($)
en
b(i) = b(i) - *ultb()
en
en
% ,ta"a e eto!!ub!tituico
x(n) = b(n) / #(n$n)fo i=n-1-11
x(i) = b(i)
fo =i+1n
x(i) = x(i) - #(i$)x()
en
x(i) = x(i)/#(i$i)
en
8sos e* ;ue E5 6in-7nu6 fl
24emplo:
=+=+044
/44.
0/
0/
donde se conclui que no se pode confiar em resultados o(tidos por 2Q para a//. para testar esta hip6tese! considere:
=+=+044
/44.
0/
0/ em que um nro pequeno e
resolvendo:
-
-
7/21/2019 algoritmoOctave
11/14
INE5202 Prof. Daniel S. Freitas
( )
==+
/04//
/44.
0
0/
=//
/04 0 e
=
0
/
4/4
ocorre que! neste caso! como /G grande! em clculos com mantissa finita tanto 0A/Gcomo /A/G
seriam computados como A/G$! o que traria as seguintes conseqD"ncias:40seria calculado como / KK$4/seria calculado como
quando a soluo correta seria por regra de Cramer! por 24emplo$:
//
/4/
= e //
.0/4 0
=
na verdade! a 2Q Ning"nuaN funcionaria (em se as equaes fossem primeiro permutadas neste caso! ap6s a etapa de eliminao! teramos:
( )
==+
.0/4/
044
0
0/ /
/
.0/4 0
= e /404 0/ =
%&s.: o pro(lema consiste no fato de ser pequeno em rela!"o aos otros coeficientesna mesma linha.
#oncls"o:
* ordem em que as equaes so tratadas afeta significativamente a preciso do algoritmo de
eliminao no computador. +a eliminao gaussiana ing"nua! a ordem sempre a natural V/!0!...!nW.
7ual a melhor ordem a usarX *lguma que seja determinada pelo sistema sendo resolvido. Eodificao da ordem pi$otamento.
Estrt"-is #e /i:ot*ento
/. Pi$otamento parcial Y rearranjo das equaes de maneira a colocar os maiores coeficientes na
diagonal principal! a cada passo. parcial: apenas trocas de linhas$
0. Pi$otamento parcial normalizado Y idem ao anterior! mas a comparao feita entre coeficientes
normalizados em escala$.
=
retrosA
su(stituio
retrosAsu(stituio
-
7/21/2019 algoritmoOctave
12/14
INE5202 Prof. Daniel S. Freitas
3'3 Eli*ino 5ussin +o* )i:ot*ento )r+il
amos guardar a ordem em que as equaes so tratadas em um $etor ndice:
l Vl/! l0! ...! lnW
os liso inteiros de / a n! em qualquer ordem. 24emplo: l V0!1!/!-W
Betomando o e4emplo da 2Q Ning"nuaN:
1-
/
/>
/;/->
1;/0
-00>
1-
/
0>
/;/->
1
/>;/0
ordem das linhas: { }-!1!0!/l= ordem das linhas: { }-!1!/!0l=
1 passo$ 2liminao de 4/na 0R! na 1Re na -Requaes:
( )
( )
( )
0/
0=/
1
0>
/1-0/
0/0/=//-/
//00/
/>;/0
( )
( )
( ) /-
/1
/0
l./0>l
l./01l
l./0>l
2 passo$ Iivotamento l0l1$ e eliminao de 40na 1Re na -Requaes:
Iivotamento:
( )
( )
( )
0/
1
0=/
0>
/1-0/
//00/
0/0/=//-/
/>;/0
2liminao:
( )
( ) ( )
( ) ( )
0/
///;
0=/0>
/1-0/
/////-//00/
0/0/=//-//>;/0
( )
( ) 0-
01
l.l
l.//0l
ordem das linhas: { }-!/!1!0l=
=/
l/l0
pivotamento
-
7/21/2019 algoritmoOctave
13/14
INE5202 Prof. Daniel S. Freitas
3 passo$ Iivotamento l1l-$ e eliminao de 41na -Requao:Iivotamento:
( )
( ) ( )
( ) ( )
///;
0/
0=/
0>
/////-//00/
/1-0/
0/0/=//-/
/>;/0
2liminao:
( )
( ) ( )
( ) ( ) ( )
//1
0/
0=/
0>
//1/////00/
/1-0/
0/0/=//-/
/>;/0
( ) 1- l.///l
ordem das linhas: { }/!-!1!0l=
Passo final$ L(teno da soluo por retrossu(stituio:
A da equao l-: x4= 1
A com 4-! da equao l1: 4x3 131 = -21 x3= -2A com 4-e 41 ! da equao l0: x2= 1
A com 4-! 41 e 40! da equao l/: x1= 3
Al-orit*o /r Eli*ino -ussin +o* /i:ot*ento /r+il .o+t:e2
function x=eliau!"(#$b$n)
% &olu'o e u* !i!te*a linea nxn "o ,li*. au!!iana co* "iota*ento "acial.
x = eo!(n$1)
% ,ta"a e eli*ina'o
fo =1n-1
i"="iot(#$n$)
if i"=
t*"=#($) #($)=#(i"$) #(i"$)=t*"
t*"=b() b()=b(i") b(i")=t*"
en
fo i=+1n
*ult = #(i$)/#($)
#(i$)=*ult
fo =+1n #(i$) = #(i$) - *ult#($)
en
b(i) = b(i) - *ultb()
en
en
% ,ta"a e eto!!ub!tituico
x(n) = b(n) / #(n$n)
fo i=n-1-11
x(i) = b(i)
fo =i+1n
x(i) = x(i) - #(i$)x()
en x(i) = x(i)/#(i$i)
en
=0
a funo pivot logo a(ai4o$ determinaqual a mudana que deve ser feita na
ordem das equaes
-
7/21/2019 algoritmoOctave
14/14
INE5202 Prof. Daniel S. Freitas
function i"t="iot(#$n$)
% u!ca a eua'o "i:$ ou !ea$ a eua'o co* coeficiente e *aio
% *;ulo na coluna
i"t=
"t=ab!(#($))
fo i=+1n
" = ab!(#(i$))
if " < "t
"t="
i"t=i
en
en
=1