algoritmoOctave

download algoritmoOctave

of 14

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