Sheet Music

1 Receita básica. x + cos(x) = y + y 3 x 2 + y 2 = 1. E o escrevemos na forma. x + cos(x) y y. F 1 x F 2. x 1 x 2 x n J F = F n F n F n

Description
Receitas para solução de sistemas de equações usando o método de Newton-Raphson no Scilab Prof. Fabio Azevedo - Cálculo Numérico - MAT Receita básica Nesta receira básica, mostraremos como calcular
Categories
Published
of 6
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
Receitas para solução de sistemas de equações usando o método de Newton-Raphson no Scilab Prof. Fabio Azevedo - Cálculo Numérico - MAT Receita básica Nesta receira básica, mostraremos como calcular a solução aproximada de uma sistema não linear via método de Newton-Raphson próxima a um ponto dado. Ou seja, não explicaremos como obter condições iniciais para o método. Primeiro passo Partimos de um problema de n equações e n incógnitas e o escrevemos na forma F (x) 0 onde F : R n R n. Exemplo: Partimos do sistema E o escrevemos na forma x + cos(x) y + y x 2 + y 2 1 [ x + cos(x) y y F (x, y) Segundo passo Calculamos a matriz jacobina 1 2 n J F 1 2 n..... F n F n F n 1 2 n Exemplo: Partimos da função do exemplo anterior [ x + cos(x) y y F (x, y) J F [ 1 sen(x) 1 y 2 2x 2y Segundo passo Construímos o processo iterativo: { x (n+1) x (n) J F ( x (n) ) 1 F ( x (n) ) x (0) condição inicial Exemplo: Procuremos a solução do problema apresentado em exemplo próxima a x.5 e y 1. Iniciamos o método com x (0).5 e y (0) 1 1 + cos(x) y y F (x, y) [ cos(.5) [ J F [ 1 sen(x) 1 y 2 2x 2y [ 1 sen(.5) [ Logo (1) y (1) [ [ x (0) 1 [ y (0) [ [ [ Repetindo o processo, temos: (2) y (2) [ [ x (1) 1 [ y (1) [ [ [ Da mesma forma () y () [ (4) y (4) [ (5) y (5) [ O critério de paragem foi a coincidência até a sétima casa decimal depois da vírgula para ambas incógnitas. Este critério é heurístico, porém devido à rápida convergência é esperado que a solução esteja correta com erro inferior a Implementação no Scilab: Usaremos x(1) para x e x(2) para y. function yf(x) y(1)x(1)+cos(x(1))-x(2)-x(2)^ y(2)x(1)^2+x(2)^2-1 function yj(x) y(1,1)1-sin(x(1)) y(1,2)-1-*x(2)^2 y(2,1)2*x(1) y(2,2)2*x(2) x[.5;1 xx-j(x)\f(x) (4 vezes) 2 Receita com derivada numérica Nesta receira, mostraremos como calcular a solução aproximada de uma sistema não linear via método de Newton-Raphson próxima a um ponto dado usando o Scilab para obter. Assim como na receita básica não explicaremos como obter condições iniciais para o método. Primeiro passo Idêntico ao da receita básica, o qual repetimos para conveniência do leitor. Partimos de um problema de n equações e n incógnitas e o escrevemos na forma F (x) 0 onde F : R n R n. Exemplo: Partimos do sistema x + cos(x) y + y x 2 + y 2 1 E o escrevemos na forma + cos(x) y y F (x, y) Segundo passo Para calcular a matriz jacobiana numericamente com ajuda da função 'derivative()', é necessário implementar a função F no Scilab como uma função que recebe como entrava um vetor e retorna um vetor de saída. Para tal sugerimos o seguinte código: function yf(x) y(1)x(1)+cos(x(1))-x(2)-x(2)^ y(2)x(1)^2+x(2)^2-1 Observa que esta função tem um vetor de duas componentes como entrada (x) e uma vetor de duas componentes como saída (y). Uma vez implementada a função, o comando 'derivative()' pode ser usado para aproximar a jacobiana em em dado ponto. Exemplo: x[.5 ;1 JFderivative(F,x) Observe que o vetor x deve obrigatóriamente ser um vetor coluna. Terceiro passo Execução do processo iterativo de Newton-Raphson. Cada passa pode ser executado em uma única linha: x[.5 ;1 xx-derivative(f,x)\f(x) X 5 vezes Receita de gráco implícito Nesta receita, mostraremos como traçar o gráco de curvas descritas por equações do tipo f(x, y) 0. Exemplo: Traçaremos as curvas correspondentes às funções do exemplo, ou seja: f(x, y) x + cos(x) y y g(x, y) Primeiro passo Denimos as funções R R R: function wf(x,y) wx+cos(x)-y-y^ function wg(x,y) wx^2+y^2-1 Segundo passo Denimos a região do gráco. Neste caso, como sabemos que a função g descreve um círculo de raio 1 centrado na origem. Pelo que é conveniente escolher a região [ 1, 1 [ 1, 1 para traçar o gráco. Usamos o comando 'contour': contour([-1:.1:1,[-1:.1:1,f,[0 0) contour([-1:.1:1,[-1:.1:1,g,[0 0) O termo '[0 0' indica que apenas a curva de nível de valor 0 deve ser traçada. 4 Receita básica para problemas de otimização Nesta receira básica, mostraremos como encontrar numericamente um ponto crítico de uma função via método de Newton-Raphson próxima a um ponto dado. Ou seja, não explicaremos como obter condições iniciais para o método. Primeiro passo Partimos de uma função f : R n R G(x) f(x) 0 onde G : R n R n. Exemplo: Queremos encontrar o ponto de máximo da função Calculamos o gradiente: G(x, y) f(x, y) 20 e (x 1)2 2(y 2) x 2 + y 2 40(x 2(y 2) 2 1)e (x 1)2 40x e (x 1)2 2(y 2)2 1 + x 2 + y 2 (1 + x 2 + y 2 ) 2 80(y 1)e (x 1)2 2(y 2) x 2 + y 2 40y e (x 1)2 2(y 2)2 (1 + x 2 + y 2 ) 2 4 Segundo passo Aplica-se a receita básica ou a receita com derivada numérica ao sistema G(x) 0 e obtém-se x , y Receita para problemas de otimização com cálculo numérico do gradiente Nesta receira básica, mostraremos como encontrar numericamente um ponto crítico de uma função via método de Newton-Raphson próxima a um ponto dado. Ou seja, não explicaremos como obter condições iniciais para o método. Em contraste com a receita anterior, o gradiente será aproximado numericamente. Atenção: O uso de aproximação numérica do gradiente pode deteriorar a qualidade da solução. Primeiro passo Partimos de uma função f : R n R G(x) f(x) 0 onde G : R n R n. Exemplo: Queremos encontrar o ponto de máximo da função f(x, y) 20 e (x 1)2 2(y 2) x 2 + y 2 Observamos que a matriz jacobiana J G associada ao gradiente G(x) f(x) é a matriz hessiana de f e usamos o comando 'derivative' para calcular simultaneamente a hessiana e o gradiente. Segundo passo Implementamos no Scilab a função f : R n R. Exemplo: function wf(v) xv(1) yv(2) w20*(exp(-(x-1)^2-2*(y-2)^2))/(1+x^2+y^2) Terceiro passo Implementamos no Scilab o processo iterativo de Newton-Raphson: Exemplo: x (n+1) x (n) H 1 f (x n ) f(x n ) v[1;2 [G,Hderivative(f,v,H_form'blockmat');vv-H\G' X 4 Observe que o Scilab produz o gradiente na forma de um vetor linha, pelo que é necessário transpô-lo para (G') para resolver o sistema Hx G com o comando H\G. 6 Receita de gráco de curvas de nível Nesta receita, mostraremos como traçar o gráco de curvas de nível descritas por funções do tipo f(x, y). Este tipo de gráco é útil em problemas de otimização. Exemplo: Traçaremos as curvas de nível correspondentes à função do exemplo anterior, ou seja: f(x, y) 20 e (x 1)2 2(y 2) x 2 + y 2 Primeiro passo Denimos a função R R R: 5 function wf(x,y) w20*(exp(-(x-1)^2-2*(y-2)^2))/(1+x^2+y^2) Segundo passo Denimos a região do gráco. Neste caso, como sabemos que o numerador da função f tem um máximo em x 1 e y 2. Pelo que escolhemos a região [0, 2 [1, para traçar o gráco. Deve-se escolher os níveis a serem traçados. Por inspeção da função, vemos que é conveniente traçar valores positivos menores que 4. Usamos o comando 'contour': contour([0:.025:2,[1:.025:,f,[0:.25:4) O termo '[0:.25:4' indica que devem ser traçadas as curvas de nível de valores entre 0 e 4 com passo de
Search
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks