A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

MÉTODOS NUMÉRICOS APLICAÇÃO NO MATLAB Professor: Lissandro Brito Viena Site:

Apresentações semelhantes


Apresentação em tema: "MÉTODOS NUMÉRICOS APLICAÇÃO NO MATLAB Professor: Lissandro Brito Viena Site:"— Transcrição da apresentação:

1 MÉTODOS NUMÉRICOS APLICAÇÃO NO MATLAB Professor: Lissandro Brito Viena Site:

2 EQUAÇÕES ALGÉBRICAS LINEARES E MATRIZES 1) NOTAÇÃO MATRICIAL Uma matriz consiste de um arranjo retangular de elementos. A matriz que tem “m” linhas e “n” colunas tem dimensão m x n. A matriz que possui apenas linhas ou colunas, é denominada de vetor linha ou vetor coluna respectivamente.

3 EQUAÇÕES ALGÉBRICAS LINEARES E MATRIZES Exemplo de matriz linha denominada de vetor linha: Exemplo de matriz coluna denominada de vetor coluna: Matriz quadrada é aquela que o número de linhas é igual ao número de colunas. (m = n). Matrizes quadradas são importantes no momento da resolução de um conjunto equações algébricas lineares. Para tais sistemas, o número de equações (linhas) e o número de variáveis (colunas)

4 Matrizes quadradas são importantes no momento da resolução de um conjunto equações algébricas lineares. Para tais sistemas, o número de equações (linhas) e o número de variáveis (colunas) devem ser iguais para que exista apenas uma solução. Matriz simétrica: é uma matriz do tipo quadrada em que os elementos a ij = a ji. Matriz diagonal: é uma matriz do tipo quadrada em que todos os elementos fora da diagonal principal são nulos. Matriz identidade: matriz diagonal em que os elementos da diagonal principal são iguais a 1.

5 Matriz triangular superior: é aquela matriz em que os elementos abaixo da diagonal principal são nulos. Matriz triangular inferior: é aquela matriz em que os elementos acima da diagonal principal são nulos. Para saber a dimensão de uma matruz no MATLAB usa-se o seguinte comando (size): [m, n] = size(matriz) Representando equações algébricas lineares na forma matricial Considere o sistema 3 x 3 abaixo:

6 Representando equações algébricas lineares na forma matricial Considere o sistema 3 x 3 abaixo: O sistema acima pode ser representado pela seguinte notação: A matriz é denominada de matriz dos coeficientes, a matriz b consiste de um vetor coluna de constantes e a matriz x consiste de um vetor coluna de variáveis.

7 Representando equações algébricas lineares na forma matricial Uma forma de resolver esse sistema é multiplicar ambos lados pela inversa da matriz dos coeficientes: Para resolver equações algébricas lineares com MATLAB aplica-se o seguinte comando: A segunda forma é usar matriz inversa:

8 NOÇÕES SOBRE ELMINAÇÃO DE GAUSS Para explicar o procedimento de resolver equações algébricas lineares pela eliminação de Gauss, o exemplo seguinte será usado: O primeiro passo na solução do sistema é multiplicar a primeira equação por 0,1/3 e subtraia da segunda, resultando em: Ao multiplicar a primeira equação por 0,3/3 e subtrair da última equação resulta no seguinte sistema:

9 NOÇÕES SOBRE ELMINAÇÃO DE GAUSS Para completar a operação, x 2 deve ser removida da terceira equação restando apenas x 3 que pode ser encontrada facilmente. Após isso, é necessário retornar nas outras equações para calcular as outras variáveis.

10 NOÇÕES SOBRE ELMINAÇÃO DE GAUSS Após isso, é necessário retornar nas outras equações para calcular as outras variáveis. function [a_ampliada,x] = eliminagauss_lissandro(a,b) % a- matriz dos coeficientes % b - matriz dos termos independentes % x- vetor das variáveis [m,n]=size(a); nb=n+1; a_ampliada=[a b]; for k=1:(n-1) for h=(k+1):(n) a_ampliada(h,k:nb)=((a_ampliada(h,k))/(a_ampliada(k,k)))*a_ampliada(k,k:nb)- a_ampliada(h,k:nb); end end x=zeros(n,1); % define inicialmente um vetor solução de zeros, para depois serem atualizados % serve também para estabelecer que o vetor solução é do tipo coluna x(n)=a_ampliada(n,nb)/a_ampliada(n,n); for l=n-1:-1:1 for g =((l+1):n) x(l)=(a_ampliada(l,nb))/(a_ampliada(l,l))-((a_ampliada(l,l+1:n))*x(l+1:n))/((a_ampliada(l,l))); end end

11 MÉTODOS ITERATIVOS Os métodos iterativos ou métodos aproximados constituem um caminho alternativo aos métodos de eliminação. Sistemas lineares – Gauss Seidel É o método iterativo mais comumente usado para resolver equações algébricas lineares. Assuma que foi fornecido um conjunto de n equações na forma: Para entender melhor esse método, limitaremos o sistema a 3 x 3:

12 MÉTODOS ITERATIVOS Se os elementos da diagonal são todos não nulos, a primeira equação pode ser resolvida para x 1, a segunda equação para x 2, e a terceira para x 3.

13 MÉTODOS ITERATIVOS Em que j e j-1 são iteração atual e a anterior respectivamente. Para começar o processo uma estimativa “chute” inicial deve dado para o valor das variáveis. Uma aproximação simples é considerar que todos valores são nulos. Para a convergência é necessário que: Exemplo prático: Use o método de Gauss Seidel para obter a solução do seguinte sistema:

14 MÉTODOS ITERATIVOS A solução para o sistema é:[ ] Solução: Inicialmente deve-se resolver cada equação para variável da diagonal principal.

15 MÉTODOS ITERATIVOS Assumindo x 2 e x 3 iguais a zero e substituindo na primeira equação para calcular a variável x 1. O valor acima juntamente com o valor definido para x 3, encontra-se a variável x 2. A primeira iteração é finalizada substituindo os valores x 1 e x 2 para o cálculo de x 3. O slide seguinte mostra o cálculo.

16 MÉTODOS ITERATIVOS O valor da variável x 3 pode ser calculado da seguinte forma: Para a segunda iteração, tem-se que:

17 MÉTODOS ITERATIVOS Para a segunda iteração, tem-se que: O valor da variável x 2 na segunda iteração:

18 MÉTODOS ITERATIVOS O valor da variável x 3 na segunda iteração: OBS: A CADA NOVO VALOR DE “x” CALCULADO PELO MÉTODO DE GAUSS-SEIDEL É IMEDIATAMENTE USADO NA PRÓXIMA EQUAÇÃO PARA ENCONTRAR O OUTRO VALOR DE “x”.

19 MÉTODOS ITERATIVOS

20 MÉTODOS ITERATIVOS %BIBLIOTECA DE FUNÇÕES DO MATLAB COM AS RESPECTIVAS APLICAÇÕES % error - função matlab que mostra uma mensagem de erro e cancela a função % nargin - número de argumentos de entrada de uma determinada função. O % nargin retorna o número de argumentos de entrada que foi usado para % chamar a função. % nargout - retorna o número de argumentos de saída da função. % isempty - isemty(y) retorna 1 se y é um array sem elemento e 0 caso % contrário if nargin<2 error('pelo menos dois argumentos de entrada são necessários') end if nargin <4 || isempty(maxit) maxit=50; end if nargin<3 ||isempty(es) es = ; end

21 MÉTODOS ITERATIVOS [m,n]=size(a); if m~=n error('a matriz deve ser quadrada') end c=a; % x=xp; for i =1:n c(i,i)=0; x(i)=0; end x=x'; for i=1:n d(i)=b(i)/a(i,i); end for i=1:n c(i,1:n)=c(i,1:n)/a(i,i); end iter = 0; ea=1; % format long while ea>=es xvelho=x; for i=1:n x(i)=d(i)-c(i,:)*x; if x(i)~=0 ea(i)=abs(x(i)-xvelho(i)); end iter=iter+1; end x end

22 MÉTODOS ITERATIVOS MÉTODO DE NEWTON-RAPHSON A expansão em série de Taylor de primeira ordem é dada por: A equação acima corresponde ao método de Newton Raphson para apenas uma equação. Estimativa inicial Equivale ao ponto em que ocorre a intersecção com eixo x. Nesse ponto f(x i+1 ) = 0.

23 MÉTODO DE NEWTON-RAPHSON

24 MÉTODO DE NEWTON-RAPHSON Na forma vetorial as equações ficam da seguinte maneira: Podemos resolver a equação acima para (x 1, x 2 ).

25 MÉTODO DE NEWTON-RAPHSON A seguir a notação resumida: Em que é a matriz jacobiana das funções do sistema de equações algébricas. Podemos também fazer as seguintes considerações sobre o método de Newton. Considere a solução de uma equação de uma única variável dada por:

26 MÉTODO DE NEWTON-RAPHSON Se x o é a estimativa inicial da solução e é um pequeno desvio da solução correta, então: Expandindo o lado esquerdo da equação por série de Taylor, tem-se que: Assumindo um erro muito pequeno resulta que: Em que:

27 MÉTODO DE NEWTON-RAPHSON O algoritmo de Newton Raphson é então colocado abaixo: Para ilustrar a aplicação do método de Newton-Raphson, o seguinte exemplo será utilizado:

28 MÉTODO DE NEWTON-RAPHSON Inicialmente calcula-se a derivada da função:

29 MÉTODO DE NEWTON-RAPHSON O resultado no final da primeira iteração é: As iterações subsequentes resultam em:

30 MÉTODO DE NEWTON-RAPHSON Agora considere o problema que envolve uma quantidade maior de variáveis:

31 MÉTODO DE NEWTON-RAPHSON Aplicando série de Taylor e desprezando os termos de ordem elevada resulta em: Colocando na forma matricial:

32 MÉTODO DE NEWTON-RAPHSON Colocando na forma matricial: Numa forma mais compacta, a notação seguinte torna-se mais apropriada.

33 MÉTODO DE NEWTON-RAPHSON Colocando na forma matricial: A atualização das variáveis é feita da seguinte maneira:

34 MÉTODO DE NEWTON-RAPHSON Em que: - MATRIZ JACOBIANA

35 MÉTODO DE NEWTON-RAPHSON Exemplo de aplicação do método de Newton-Raphson 1) Encontre a solução do seguinte sistema de equações Passo 1: Construção da matriz jacobiana Passo 2: Preparar o algoritmo

36 MÉTODO DE NEWTON-RAPHSON Exemplo de aplicação do método de Newton-Raphson deltax=1; % incremento da variável é ajustado em um valor alto x=input('Entre com a estimativa inicial -> '); iter = 0; disp(' iter deltac j deltax x') while abs(deltax)> & iter<100 iter=iter+1; deltac=0-(x^3-6*x^2+9*x-4); j=3*x^2-12*x+9; deltax=deltac/j; x=x+deltax; % fprintf('%g', iter) disp([iter, deltac, j, deltax, x]) end

37 MÉTODO DE NEWTON-RAPHSON Exemplo de aplicação do método de Newton-Raphson iter = 0; x=input('Entre com a estimativa inicial da solução - vetor coluna x=[x1;x2] - > '); deltax=[1;1]; c=[4;1]; disp('iter deltac jacobiana deltax x') while max(abs(deltax))>= & iter<10 iter=iter+1; f=[x(1)^2+x(2)^2; exp(x(1))+x(2)]; deltac=c-f; j=[2*x(1) 2*x(2);exp(x(1)) 1]; deltax=j\deltac; x=x+deltax; fprintf('%g', iter) disp([ deltac, j, deltax, x]

38 MÉTODO DE NEWTON-RAPHSON Exemplo de aplicação do método de Newton-Raphson Atividade: Partindo com valores iniciais x 1, x 2, x 3 resolva o seguinte sistema de equações pelo método de Newton Raphson:


Carregar ppt "MÉTODOS NUMÉRICOS APLICAÇÃO NO MATLAB Professor: Lissandro Brito Viena Site:"

Apresentações semelhantes


Anúncios Google